Merge "Do not allow -1 duration in setUserAuthenticationParameters" into rvc-dev
diff --git a/Android.bp b/Android.bp
index 5e068ee..0fe5833 100644
--- a/Android.bp
+++ b/Android.bp
@@ -282,7 +282,6 @@
 filegroup {
     name: "framework-updatable-sources",
     srcs: [
-        ":framework-appsearch-sources",
         ":framework-sdkextensions-sources",
         ":framework-statsd-sources",
         ":framework-tethering-srcs",
@@ -468,7 +467,6 @@
     defaults: ["framework-defaults"],
     srcs: [":framework-non-updatable-sources"],
     libs: [
-        "framework-appsearch-stubs",
         "framework-sdkextensions-stubs-systemapi",
         "framework-statsd-stubs-module_libs_api",
         "framework-permission-stubs-systemapi",
@@ -494,7 +492,6 @@
     visibility: [
         "//frameworks/base",
         // TODO(b/147128803) remove the below lines
-        "//frameworks/base/apex/appsearch/framework",
         "//frameworks/base/apex/blobstore/framework",
         "//frameworks/base/apex/jobscheduler/framework",
         "//frameworks/base/packages/Tethering/tests/unit",
@@ -516,7 +513,6 @@
     installable: false, // this lib is a build-only library
     static_libs: [
         "framework-minus-apex",
-        "framework-appsearch", // TODO(b/146218515): should be framework-appsearch-stubs
         "framework-media-stubs-systemapi",
         "framework-mediaprovider-stubs-systemapi",
         "framework-permission-stubs-systemapi",
@@ -541,7 +537,6 @@
         "exoplayer2-extractor",
         "android.hardware.wifi-V1.0-java-constants",
     ],
-    libs: ["icing-java-proto-lite"],
     apex_available: ["//apex_available:platform"],
     visibility: [
         // DO NOT ADD ANY MORE ENTRIES TO THIS LIST
@@ -562,7 +557,6 @@
     libs: [
         "app-compat-annotations",
         "ext",
-        "icing-java-proto-lite",
         "unsupportedappusage",
     ],
 
@@ -967,6 +961,10 @@
         "core/java/android/content/pm/DataLoaderParamsParcel.aidl",
         "core/java/android/content/pm/DataLoaderType.aidl",
         "core/java/android/content/pm/FileSystemControlParcel.aidl",
+        "core/java/android/content/pm/IDataLoader.aidl",
+        "core/java/android/content/pm/IDataLoaderManager.aidl",
+        "core/java/android/content/pm/InstallationFileParcel.aidl",
+        "core/java/android/content/pm/InstallationFileLocation.aidl",
         "core/java/android/content/pm/IDataLoaderStatusListener.aidl",
         "core/java/android/content/pm/IPackageInstallerSessionFileSystemConnector.aidl",
         "core/java/android/content/pm/NamedParcelFileDescriptor.aidl",
@@ -977,7 +975,6 @@
 filegroup {
     name: "incremental_manager_aidl",
     srcs: [
-        "core/java/android/os/incremental/IIncrementalManager.aidl",
         "core/java/android/os/incremental/IIncrementalService.aidl",
         "core/java/android/os/incremental/IncrementalNewFileParams.aidl",
         "core/java/android/os/incremental/IncrementalSignature.aidl",
diff --git a/apct-tests/perftests/core/Android.bp b/apct-tests/perftests/core/Android.bp
new file mode 100644
index 0000000..984893a
--- /dev/null
+++ b/apct-tests/perftests/core/Android.bp
@@ -0,0 +1,34 @@
+android_test {
+    name: "CorePerfTests",
+
+    resource_dirs: ["res"],
+    srcs: [
+        "src/**/*.java",
+        "src/**/*.kt",
+        "src/android/os/ISomeService.aidl",
+    ],
+
+    static_libs: [
+        "androidx.appcompat_appcompat",
+        "androidx.test.rules",
+        "androidx.annotation_annotation",
+        "apct-perftests-overlay-apps",
+        "apct-perftests-resources-manager-apps",
+        "apct-perftests-utils",
+        "guava",
+    ],
+
+    libs: ["android.test.base"],
+
+    platform_apis: true,
+
+    jni_libs: ["libperftestscore_jni"],
+
+    // Use google-fonts/dancing-script for the performance metrics
+    // ANDROIDMK TRANSLATION ERROR: Only $(LOCAL_PATH)/.. values are allowed
+    // LOCAL_ASSET_DIR := $(TOP)/external/google-fonts/dancing-script
+
+    test_suites: ["device-tests"],
+    certificate: "platform",
+
+}
diff --git a/apct-tests/perftests/core/Android.mk b/apct-tests/perftests/core/Android.mk
deleted file mode 100644
index 968478c..0000000
--- a/apct-tests/perftests/core/Android.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-LOCAL_SRC_FILES := \
-  $(call all-java-files-under, src) \
-  src/android/os/ISomeService.aidl
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-    androidx.appcompat_appcompat \
-    androidx.test.rules \
-    androidx.annotation_annotation \
-    apct-perftests-overlay-apps \
-    apct-perftests-resources-manager-apps \
-    apct-perftests-utils \
-    guava
-
-LOCAL_JAVA_LIBRARIES := android.test.base
-
-LOCAL_PACKAGE_NAME := CorePerfTests
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_JNI_SHARED_LIBRARIES := libperftestscore_jni
-
-# Use google-fonts/dancing-script for the performance metrics
-LOCAL_ASSET_DIR := $(TOP)/external/google-fonts/dancing-script
-
-LOCAL_COMPATIBILITY_SUITE += device-tests
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
\ No newline at end of file
diff --git a/apct-tests/perftests/core/src/android/os/PackageParsingPerfTest.kt b/apct-tests/perftests/core/src/android/os/PackageParsingPerfTest.kt
new file mode 100644
index 0000000..9e46365
--- /dev/null
+++ b/apct-tests/perftests/core/src/android/os/PackageParsingPerfTest.kt
@@ -0,0 +1,250 @@
+/*
+ * Copyright (C) 2020 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.os
+
+import android.content.pm.PackageParser
+import android.content.pm.PackageParserCacheHelper.ReadHelper
+import android.content.pm.PackageParserCacheHelper.WriteHelper
+import android.content.pm.parsing.ParsingPackageImpl
+import android.content.pm.parsing.ParsingPackageRead
+import android.content.pm.parsing.ParsingPackageUtils
+import android.content.pm.parsing.result.ParseTypeImpl
+import android.content.res.TypedArray
+import android.perftests.utils.BenchmarkState
+import android.perftests.utils.PerfStatusReporter
+import androidx.test.filters.LargeTest
+import com.android.internal.util.ConcurrentUtils
+import libcore.io.IoUtils
+import org.junit.Rule
+import org.junit.Test
+import org.junit.rules.TemporaryFolder
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+import java.io.File
+import java.io.FileOutputStream
+import java.util.concurrent.ArrayBlockingQueue
+import java.util.concurrent.TimeUnit
+
+@LargeTest
+@RunWith(Parameterized::class)
+class PackageParsingPerfTest {
+
+    companion object {
+        private const val PARALLEL_QUEUE_CAPACITY = 10
+        private const val PARALLEL_MAX_THREADS = 4
+
+        private const val QUEUE_POLL_TIMEOUT_SECONDS = 5L
+
+        // TODO: Replace this with core version of SYSTEM_PARTITIONS
+        val FOLDERS_TO_TEST = listOf(
+            Environment.getRootDirectory(),
+            Environment.getVendorDirectory(),
+            Environment.getOdmDirectory(),
+            Environment.getOemDirectory(),
+            Environment.getOemDirectory(),
+            Environment.getSystemExtDirectory()
+        )
+
+        @JvmStatic
+        @Parameterized.Parameters(name = "{0}")
+        fun parameters(): Array<Params> {
+            val apks = FOLDERS_TO_TEST
+                .filter(File::exists)
+                .map(File::walkTopDown)
+                .flatMap(Sequence<File>::asIterable)
+                .filter { it.name.endsWith(".apk") }
+
+            return arrayOf(
+                Params(1, apks) { ParallelParser1(it?.let(::PackageCacher1)) },
+                Params(2, apks) { ParallelParser2(it?.let(::PackageCacher2)) }
+            )
+        }
+
+        data class Params(
+            val version: Int,
+            val apks: List<File>,
+            val cacheDirToParser: (File?) -> ParallelParser<*>
+        ) {
+            // For test name formatting
+            override fun toString() = "v$version"
+        }
+    }
+
+    @get:Rule
+    var perfStatusReporter = PerfStatusReporter()
+
+    @get:Rule
+    var testFolder = TemporaryFolder()
+
+    @Parameterized.Parameter(0)
+    lateinit var params: Params
+
+    private val state: BenchmarkState get() = perfStatusReporter.benchmarkState
+    private val apks: List<File> get() = params.apks
+
+    @Test
+    fun sequentialNoCache() {
+        params.cacheDirToParser(null).use { parser ->
+            while (state.keepRunning()) {
+                apks.forEach { parser.parse(it) }
+            }
+        }
+    }
+
+    @Test
+    fun sequentialCached() {
+        params.cacheDirToParser(testFolder.newFolder()).use { parser ->
+            // Fill the cache
+            apks.forEach { parser.parse(it) }
+
+            while (state.keepRunning()) {
+                apks.forEach { parser.parse(it) }
+            }
+        }
+    }
+
+    @Test
+    fun parallelNoCache() {
+        params.cacheDirToParser(null).use { parser ->
+            while (state.keepRunning()) {
+                apks.forEach { parser.submit(it) }
+                repeat(apks.size) { parser.take() }
+            }
+        }
+    }
+
+    @Test
+    fun parallelCached() {
+        params.cacheDirToParser(testFolder.newFolder()).use { parser ->
+            // Fill the cache
+            apks.forEach { parser.parse(it) }
+
+            while (state.keepRunning()) {
+                apks.forEach { parser.submit(it) }
+                repeat(apks.size) { parser.take() }
+            }
+        }
+    }
+
+    abstract class ParallelParser<PackageType : Parcelable>(
+        private val cacher: PackageCacher<PackageType>? = null
+    ) : AutoCloseable {
+        private val queue = ArrayBlockingQueue<Any>(PARALLEL_QUEUE_CAPACITY)
+        private val service = ConcurrentUtils.newFixedThreadPool(
+            PARALLEL_MAX_THREADS, "package-parsing-test",
+            Process.THREAD_PRIORITY_FOREGROUND)
+
+        fun submit(file: File) = service.submit { queue.put(parse(file)) }
+
+        fun take() = queue.poll(QUEUE_POLL_TIMEOUT_SECONDS, TimeUnit.SECONDS)
+
+        override fun close() {
+            service.shutdownNow()
+        }
+
+        fun parse(file: File) = cacher?.getCachedResult(file)
+            ?: parseImpl(file).also { cacher?.cacheResult(file, it) }
+
+        protected abstract fun parseImpl(file: File): PackageType
+    }
+
+    class ParallelParser1(private val cacher: PackageCacher1? = null)
+        : ParallelParser<PackageParser.Package>(cacher) {
+        val parser = PackageParser().apply {
+            setCallback { true }
+        }
+
+        override fun parseImpl(file: File) = parser.parsePackage(file, 0, cacher != null)
+    }
+
+    class ParallelParser2(cacher: PackageCacher2? = null)
+        : ParallelParser<ParsingPackageRead>(cacher) {
+        val input = ThreadLocal.withInitial { ParseTypeImpl() }
+        val parser = ParsingPackageUtils(false, null, null,
+            object : ParsingPackageUtils.Callback {
+                override fun hasFeature(feature: String) = true
+
+                override fun startParsingPackage(
+                    packageName: String,
+                    baseCodePath: String,
+                    codePath: String,
+                    manifestArray: TypedArray,
+                    isCoreApp: Boolean
+                ) = ParsingPackageImpl(packageName, baseCodePath, codePath, manifestArray)
+            })
+
+        override fun parseImpl(file: File) =
+                parser.parsePackage(input.get()!!.reset(), file, 0).result
+    }
+
+    abstract class PackageCacher<PackageType : Parcelable>(private val cacheDir: File) {
+
+        fun getCachedResult(file: File): PackageType? {
+            val cacheFile = File(cacheDir, file.name)
+            if (!cacheFile.exists()) {
+                return null
+            }
+
+            val bytes = IoUtils.readFileAsByteArray(cacheFile.absolutePath)
+            val parcel = Parcel.obtain().apply {
+                unmarshall(bytes, 0, bytes.size)
+                setDataPosition(0)
+            }
+            ReadHelper(parcel).apply { startAndInstall() }
+            return fromParcel(parcel).also {
+                parcel.recycle()
+            }
+        }
+
+        fun cacheResult(file: File, parsed: Parcelable) {
+            val cacheFile = File(cacheDir, file.name)
+            if (cacheFile.exists()) {
+                if (!cacheFile.delete()) {
+                    throw IllegalStateException("Unable to delete cache file: $cacheFile")
+                }
+            }
+            val cacheEntry = toCacheEntry(parsed)
+            return FileOutputStream(cacheFile).use { fos -> fos.write(cacheEntry) }
+        }
+
+        private fun toCacheEntry(pkg: Parcelable): ByteArray {
+            val parcel = Parcel.obtain()
+            val helper = WriteHelper(parcel)
+            pkg.writeToParcel(parcel, 0 /* flags */)
+            helper.finishAndUninstall()
+            return parcel.marshall().also {
+                parcel.recycle()
+            }
+        }
+
+        protected abstract fun fromParcel(parcel: Parcel): PackageType
+    }
+
+    /**
+     * Re-implementation of v1's cache, since that's gone in R+.
+     */
+    class PackageCacher1(cacheDir: File) : PackageCacher<PackageParser.Package>(cacheDir) {
+        override fun fromParcel(parcel: Parcel) = PackageParser.Package(parcel)
+    }
+
+    /**
+     * Re-implementation of the server side PackageCacher, as it's inaccessible here.
+     */
+    class PackageCacher2(cacheDir: File) : PackageCacher<ParsingPackageRead>(cacheDir) {
+        override fun fromParcel(parcel: Parcel) = ParsingPackageImpl(parcel)
+    }
+}
diff --git a/apct-tests/perftests/packagemanager/src/android/os/PackageManagerPerfTest.java b/apct-tests/perftests/packagemanager/src/android/os/PackageManagerPerfTest.java
index 761e930..673c6a3 100644
--- a/apct-tests/perftests/packagemanager/src/android/os/PackageManagerPerfTest.java
+++ b/apct-tests/perftests/packagemanager/src/android/os/PackageManagerPerfTest.java
@@ -43,9 +43,8 @@
             "com.android.perftests.packagemanager.TestPermission";
     private static final String PERMISSION_NAME_DOESNT_EXIST =
             "com.android.perftests.packagemanager.TestBadPermission";
-    private static final String OTHER_PACKAGE_NAME = "com.android.perftests.appenumeration0";
     private static final ComponentName TEST_ACTIVITY =
-            new ComponentName(OTHER_PACKAGE_NAME,
+            new ComponentName("com.android.perftests.packagemanager",
                     "android.perftests.utils.PerfTestActivity");
 
     @Rule
@@ -130,7 +129,7 @@
                 InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager();
 
         while (state.keepRunning()) {
-            pm.getPackageInfo(OTHER_PACKAGE_NAME, 0);
+            pm.getPackageInfo(TEST_ACTIVITY.getPackageName(), 0);
         }
     }
 
@@ -148,7 +147,7 @@
                 InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager();
 
         while (state.keepRunning()) {
-            pm.getApplicationInfo(OTHER_PACKAGE_NAME, 0);
+            pm.getApplicationInfo(TEST_ACTIVITY.getPackageName(), 0);
         }
     }
 
diff --git a/apex/appsearch/Android.bp b/apex/appsearch/Android.bp
deleted file mode 100644
index b014fdc..0000000
--- a/apex/appsearch/Android.bp
+++ /dev/null
@@ -1,37 +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.
-
-apex {
-    name: "com.android.appsearch",
-    manifest: "apex_manifest.json",
-    java_libs: [
-        "framework-appsearch",
-        "service-appsearch",
-    ],
-    key: "com.android.appsearch.key",
-    certificate: ":com.android.appsearch.certificate",
-}
-
-apex_key {
-    name: "com.android.appsearch.key",
-    public_key: "com.android.appsearch.avbpubkey",
-    private_key: "com.android.appsearch.pem",
-}
-
-android_app_certificate {
-    name: "com.android.appsearch.certificate",
-    // This will use com.android.appsearch.x509.pem (the cert) and
-    // com.android.appsearch.pk8 (the private key)
-    certificate: "com.android.appsearch",
-}
diff --git a/apex/appsearch/apex_manifest.json b/apex/appsearch/apex_manifest.json
deleted file mode 100644
index 39a2d38..0000000
--- a/apex/appsearch/apex_manifest.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "name": "com.android.appsearch",
-  "version": 300000000
-}
diff --git a/apex/appsearch/com.android.appsearch.avbpubkey b/apex/appsearch/com.android.appsearch.avbpubkey
deleted file mode 100644
index 4e5acae..0000000
--- a/apex/appsearch/com.android.appsearch.avbpubkey
+++ /dev/null
Binary files differ
diff --git a/apex/appsearch/com.android.appsearch.pem b/apex/appsearch/com.android.appsearch.pem
deleted file mode 100644
index 4ed5945..0000000
--- a/apex/appsearch/com.android.appsearch.pem
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIJKQIBAAKCAgEAro9f/jvoIsj6ywuRmuUQS8UtprhohJitrovDMfm/T2R/WQvy
-AvUxgetyF4XvBPCDRqCsGxXCJMQOn1furrAeTmWbGHPhA0PI1Ys/qtfNMbh9THyn
-70I2c4X70CUQ+8/Y8BJ8CAB4iER/s9QtD28QLvM2BBUzRoKUSBGUYNMlYobjgRdK
-57V7yg48LkvUIg1fzIW3M5gCgOXa0u1xOadKX3m7tzCboHcXp5anfWX5PH1+okRu
-jzdI8OjtUq23qhoRw5Skz0Vbf4a+8t3kT3slF/Q7O8LoRPwpZsvIcvTyCGAqlra7
-2L2LN4H1p+u2ko3r/QmRbJn2eXW07elkyrggXMyn2rTxibQgk53wYfSavMyNd/E7
-+de/uJ60l2aPa+5KUaR8eYwchXEELdqQ+zRgSZ2711xCaY4glEj7DT6VlEEdr26x
-akX0ra7e2sVGv1um/dvSyVO5aFKKjVvo4LqhWKWO8yvDMxmDDTNatvWhY2Bhd3RA
-0hilYpWQFb9Tv5f4E0tZmfvlddgux7sw++Y/RIimBFoSyf5AezAUIFYYoYvEzytB
-muq1/ecNHr+Z2tZMxN88sJVhzRzD9tKUyXhvxOV2Lg9TIeVTWGwQqgSnHWtIe+1p
-cw8inPfYEhP4Q+3W/RlPvNdu75x8Nj2aG7bxZnhoQDRDw5ddgma27I+a8esCAwEA
-AQKCAgBsNh9I6HRAVBz8kCBkSEnw3rwtFTZdtJQ+lw+bRHpvShqT5g7R/JQDOSTS
-JkoE4uBOgT4P0E45Inz6FLW2/yDacqxR3UwJDRVMI/WFACCJCRhLuR8V+BLvTIjN
-AJ1lrPSL5rmS8E/IEcakgQyp+6ypnkXHBCl0NXCcuKEl4N7VFE+mb/0UZPHnUSnH
-fWR085uGmwH17u7mXxdnGKDPH8DALSPMLUrcj9dPIdqUpwl5kUZWa1uqVphWF98/
-GMe5oE2Q0+3TO+i7xplKz3lAOFPHZLTvmCUK1tMHkZ6ifOwpewwLwB30/5N1BpB1
-126nrWk0xKCtFUixBOHzdnLwJHKSbi7chQU5q39oAJoTfxdmAJlaG0zQHUQZ44MQ
-gemzSA7uJbtoAOAZVF1K14xbIpnfidqTB7N3RCmiJE+/Hpkq6PxgPfu5rqocPbPC
-t0FgJ4NXNmKOAuJllSlrrHATcUOhF4g5pX7tvOc8X4y7bvfwOmtw5ez3INKMF0q6
-/y0vVCi6N1Z7CTa9eY8feZ1PImk/Fkq4NInSPyx7ZE3pLYmsvuJjliFrWo9TRVae
-Dt5vvBKBOpAfhDiHkeXbX7Raj2B6c6adF4no/3SAVlAjIq1iBVjfQWyHAGUoEW1O
-u3LdHTIb6gSTLJ4AfryEKrOE+1VMlYt92GwX692KKXMaJjytSQKCAQEA3pYbl8HD
-Y++UyEN5VzWAQedT3//GDwpDfgdERe2E4smYrkVNJ2WAG2SqY1A35DIl8be3eHvl
-soaL38j48ailfDYY9tI+IlapNh+VOLej+HiOytaPlLhcv2FpSC2qZT4EiU6IBXLo
-+l6FrmD/VQXTjvoktzsDB/n1t4Dfa3Ogf+lLf1Jxr94YpEnDh18V5ofj78SplVLm
-NrzsHxAafE4Ni2a7dyWjcDYIuL7FTShT+0K4W45tRr+CGxThxu7LEe7zw4Z1IagU
-jJNtXjvDD/Zw4UTqI6RwWGZsu6UjPS6LHhOqnWqflWmFRIfMbDkuWvnGZTM9DkVg
-kk1+BNi1PECZXwKCAQEAyMOjbVo6XV3lFN0X8TpHyg/z9ar00/SE7WEJHqPSuzYT
-rSfU4vDDlaPAwkYvGi9ZKi9VM+R3CyBNxnK9Yq6NurHhhrYcAwdS/hGLT1K2o0Y8
-Pgv7gZCFb+SIwLBhlUG9otGULcBzLneqgVUqyMG6IoCjuC2LRyB71Xc2UMyg6n/f
-XpV2RTMb8f+26cgm6nj0SDAfgpr8HV6uNV80c6l1A8gq86nUWwiVAEUdmExSDe7J
-shsfWAj8RSErqDXf1BtEdPLJUSIPX5VXkzAXOXIkengwVno0vv0dBN8uraS8iQSG
-0JsJLLcw9b5kvnh6FEbE7POsIqKyCZV9VADwO6YW9QKCAQBYQsdwNqoGv6KMgozj
-8tgHyfWtVduwbQ50M+dznwpZbzz2pY5Bd/MDabhSpyVyfBwlrAa5ZM+hKc7fDu7/
-zDLKfR0LCjUPIrP4PS/LjK4dQZjFf6zxeOV2EedQcqMlgCEGXTh8iKMvXDm/+sBk
-c2n/QNs8OM8r44b2m8h78B6NefGw6/0ekn/M7V72F9M0VWAh3Cauim+09tbePmFy
-NvUR+MuPJEKZpSNyNltADCS49izqSSC1tAygNniMjHXDh6/rMS7TCLYVRARTIHlp
-o/wAp3X8aiEOPJcTFRlTElihtYSq5POgqHXqxbpek5H5CyALUvT76rCvcsDspQ3A
-dZEbAoIBAQCoLEmP5o8Rev/UdEgECB/uwWJIngYsLp3TAv/SrMRvkiL1X3JTD/+m
-L9/eXVBDjPoR/khPCcg2h77ex2qhaTrL8wnKAG6CkvYQYb3impTnPIRmLT9nDxrX
-2gY78wQrNUCXTRvlH1rcx90KLb+DH9S95ig+tdf/otRYwl27XU5GYQtJfcXuvZth
-IiWku8btjpiCh909WHpsV81yY+faI08j9d8U8WQzRYMbEMpzsyrhBO/rxBCDfDNl
-7R1W8JooYRb9KAs/bVqXZNBROW2a72RjOp6zMfdRLVHLrPC7AE32MNaFk/khfesD
-T5OwgdcxeP6oxo2hDcw5fwHXBlo2fTCpAoIBAQChgjv5AfQ50spqvHy6MNem4tV0
-L0IsxmNLsi8X2a6s4kStwUzOxDA8c/e54XabxQNZ0ERU1q+bgbG7PWC4twDMPR8i
-2DO6rgqSK4MjGOTgAoeDuy3mElFQmCLRs04Wf4jh8kPi217WFlYBynh2HmBKbh42
-JmIrLetbKEK13FXRvMkgZcX4OIDrT5TOvev4VZArU8PTRlWv3sqsKAVXjX0clGHf
-I0/2kSsr2qq1UY7JrYWZsZ9uqz2ZH0pF19a6O/Cq4uqTYoL+sYzFTSeFmChRjV1g
-ancTvTn9lcBqECDMgq5DE/p96Oxg/t8elalR6WDUlysafphVz3nTuyMTh7ka
------END RSA PRIVATE KEY-----
diff --git a/apex/appsearch/com.android.appsearch.pk8 b/apex/appsearch/com.android.appsearch.pk8
deleted file mode 100644
index 77e98b2..0000000
--- a/apex/appsearch/com.android.appsearch.pk8
+++ /dev/null
Binary files differ
diff --git a/apex/appsearch/com.android.appsearch.x509.pem b/apex/appsearch/com.android.appsearch.x509.pem
deleted file mode 100644
index e37c4b9..0000000
--- a/apex/appsearch/com.android.appsearch.x509.pem
+++ /dev/null
@@ -1,35 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIGETCCA/mgAwIBAgIUGl+MIvpEi0+TWzj0ieh6WtjXmP8wDQYJKoZIhvcNAQEL
-BQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
-DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
-b2lkMRIwEAYDVQQDDAlhcHBzZWFyY2gxIjAgBgkqhkiG9w0BCQEWE2FuZHJvaWRA
-YW5kcm9pZC5jb20wIBcNMTkxMTIwMjMxNTM1WhgPNDc1NzEwMTYyMzE1MzVaMIGW
-MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
-bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwHQW5kcm9pZDES
-MBAGA1UEAwwJYXBwc2VhcmNoMSIwIAYJKoZIhvcNAQkBFhNhbmRyb2lkQGFuZHJv
-aWQuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsyPlp3q3P9Xg
-W1WhIwQiF9em9oqaGQ/3dbIxickAy591qcRbpHb4lDTZusRECfqlV215mV+lv5x4
-EhOnId3uPKBAJ/YDtL7zUW6TWL7to7zEnUqSIKTcoQzNF2EiCeGuRhrtgYvAD3HQ
-dwr4xrbSADbDArF04A49voLpsmq1fyNgl86VISiMRqoSLJnA6eghlduuOt+nf252
-6WgxDs/JrO/eK70q0+RwmWzVJ/tVr+36a65N4EHhfL4t2hdV0k0XFob7hBn7XWzC
-QrSR3jCvE3yAfAr3tq5c19/WWBA7V45nEHzXyAvBUHWubYvDi+vm/yzqU2rQwScC
-bzp4zK4CnhBHqb4gHoy0+kfFIwJ1A3GT2pl3ba/NsIYgliMtPQfkDV5PE5RTNcwH
-21ewH7vm2+spQv5Z/2TEV2lEHlp2vuAliyn2AT4u1ginr6vtBRFLmpPeziFcfB0y
-7h04GctZpX8odz+XI7aMDe47RNu9XyJX0vulntxmlDF76k8Z9DIXg02hY+yc/i7+
-2ztnj1eXL51p+HyhK5VbvJWbKkVaMQijlbuIMYNzMA6L0WHWRc2Cux9UDODMGoiC
-w09JpqudCS/95I/F1xaWJ/Kh3vKeQshHAz0hrL7v7wpjmfeXf6NGsWJGy+giCwZj
-ABtn9nFQoesgi7M1LeazD5Q/4v4AMaUCAwEAAaNTMFEwHQYDVR0OBBYEFJpHCy2Y
-3qaL6cLpE9fe53L61KEEMB8GA1UdIwQYMBaAFJpHCy2Y3qaL6cLpE9fe53L61KEE
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAGDYAcOhbOYcDB2K
-WDZka+FCORFFvz4nLQGE7Z9TAn1g7XusM2KbXlb2drIN6CWOFlnKQrUsNsAHrc+s
-tl+A1vC3/NfYKKBVuizPx/kHUgz3k/UIJzbzEu/uCJd86idcJoUTqC/qEJAeeQqM
-XpsNP1Yg7oyzZT8sFlUAKeDeXJ7fIDXR6nduUQ6uJXkee/5JF3VedHdgHAUsC19/
-KHhyVU3MLDUNBdAmM79+DsdVYi2Pw31jojMu95Zz1MYTRBcgQAiEw5nncr38k6ac
-Gy+JffgJR68FzI4QLBSxnDRFD2zXJ09lpP6Sjb1FVcDzk7Bi/EQDLBkrkbeLsk5F
-a0xz9VoJ3kM7Cc4R9MXN4ZWuePjdJwgasnHmllsXn45R9odgJgmfzuUwtgNw/XKQ
-QcQl7Q9QUrBCqIoHijxscUZCBSmIHVNBBDckRAmSXHeWMRlO3uBR4IA/Jfrt//4f
-uc7CNUp+LQ6EzBXJOVFrXRtau6Oj+jM1+fzxKo1uV2+T+GdVEE5jeF/6nB3qna6h
-2NmyLqbqeqp2QxgzBWSGy8Ugs6zg4wItJBqOoRLKKFxTJu5OAzJ4fUA+g7WFXNhR
-kG56SJ863LZoORKHWE72oXYeIW98Tq0qKLH3NzH5L4tfX8DeBTq+APezHetH1ljA
-D0avPy62g0i643bbpwZgezBgRIKL
------END CERTIFICATE-----
diff --git a/apex/appsearch/framework/Android.bp b/apex/appsearch/framework/Android.bp
deleted file mode 100644
index 24309d7..0000000
--- a/apex/appsearch/framework/Android.bp
+++ /dev/null
@@ -1,83 +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.
-
-filegroup {
-    name: "framework-appsearch-sources",
-    srcs: [
-        "java/**/*.java",
-        "java/**/*.aidl",
-    ],
-    path: "java",
-}
-
-java_library {
-    name: "framework-appsearch",
-    installable: true,
-    sdk_version: "core_platform", // TODO(b/146218515) should be core_current
-    srcs: [":framework-appsearch-sources"],
-    hostdex: true, // for hiddenapi check
-    libs: [
-        "framework-minus-apex",  // TODO(b/146218515) should be framework-system-stubs
-    ],
-    static_libs: ["icing-java-proto-lite"],
-    visibility: [
-        // TODO(b/146218515) remove this when framework is built with the stub of appsearch
-        "//frameworks/base",
-        "//frameworks/base/apex/appsearch:__subpackages__",
-    ],
-    permitted_packages: ["android.app.appsearch"],
-    apex_available: ["com.android.appsearch"],
-}
-
-metalava_appsearch_docs_args =
-    "--hide-package com.android.server " +
-    "--error UnhiddenSystemApi " +
-    "--hide RequiresPermission " +
-    "--hide MissingPermission " +
-    "--hide BroadcastBehavior " +
-    "--hide HiddenSuperclass " +
-    "--hide DeprecationMismatch " +
-    "--hide UnavailableSymbol " +
-    "--hide SdkConstant " +
-    "--hide HiddenTypeParameter " +
-    "--hide Todo --hide Typo " +
-    "--hide HiddenTypedefConstant " +
-    "--show-annotation android.annotation.SystemApi "
-
-droidstubs {
-    name: "framework-appsearch-stubs-srcs",
-    srcs: [
-        ":framework-annotations",
-        ":framework-appsearch-sources",
-    ],
-    aidl: {
-        include_dirs: ["frameworks/base/core/java"],
-    },
-    args: metalava_appsearch_docs_args,
-    sdk_version: "core_current",
-    libs: ["android_system_stubs_current"],
-}
-
-java_library {
-    name: "framework-appsearch-stubs",
-    srcs: [":framework-appsearch-stubs-srcs"],
-    aidl: {
-        export_include_dirs: [
-            "java",
-        ],
-    },
-    sdk_version: "core_current",
-    libs: ["android_system_stubs_current"],
-    installable: false,
-}
diff --git a/apex/appsearch/framework/java/android/app/TEST_MAPPING b/apex/appsearch/framework/java/android/app/TEST_MAPPING
deleted file mode 100644
index 12188f8..0000000
--- a/apex/appsearch/framework/java/android/app/TEST_MAPPING
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "imports": [
-    {
-      "path": "frameworks/base/apex/appsearch/service/java/com/android/server/appsearch"
-    }
-  ]
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchBatchResult.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchBatchResult.java
deleted file mode 100644
index 773db93..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchBatchResult.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.util.ArrayMap;
-
-import java.util.Collections;
-import java.util.Map;
-
-/**
- * Provides access to multiple results from a batch operation accepting multiple inputs.
- *
- * @param <KeyType> The type of the keys for {@link #getResults} and {@link #getFailures}.
- * @param <ValueType> The type of result objects associated with the keys.
- * @hide
- */
-public class AppSearchBatchResult<KeyType, ValueType> implements Parcelable {
-    @NonNull private final Map<KeyType, ValueType> mResults;
-    @NonNull private final Map<KeyType, Throwable> mFailures;
-
-    private AppSearchBatchResult(
-            @NonNull Map<KeyType, ValueType> results, @NonNull Map<KeyType, Throwable> failures) {
-        mResults = results;
-        mFailures = failures;
-    }
-
-    private AppSearchBatchResult(@NonNull Parcel in) {
-        mResults = Collections.unmodifiableMap(in.readHashMap(/*loader=*/ null));
-        mFailures = Collections.unmodifiableMap(in.readHashMap(/*loader=*/ null));
-    }
-
-    @Override
-    public void writeToParcel(@NonNull Parcel dest, int flags) {
-        dest.writeMap(mResults);
-        dest.writeMap(mFailures);
-    }
-
-    /** Returns {@code true} if this {@link AppSearchBatchResult} has no failures. */
-    public boolean isSuccess() {
-        return mFailures.isEmpty();
-    }
-
-    /**
-     * Returns a {@link Map} of all successful keys mapped to the results they produced.
-     *
-     * <p>The values of the {@link Map} may be {@code null}.
-     */
-    @NonNull
-    public Map<KeyType, ValueType> getResults() {
-        return mResults;
-    }
-
-    /**
-     * Returns a {@link Map} of all failed keys mapped to a {@link Throwable} representing the cause
-     * of failure.
-     *
-     * <p>The values of the {@link Map} may be {@code null}.
-     */
-    @NonNull
-    public Map<KeyType, Throwable> getFailures() {
-        return mFailures;
-    }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    public static final Creator<AppSearchBatchResult> CREATOR =
-            new Creator<AppSearchBatchResult>() {
-        @NonNull
-        @Override
-        public AppSearchBatchResult createFromParcel(@NonNull Parcel in) {
-            return new AppSearchBatchResult(in);
-        }
-
-        @NonNull
-        @Override
-        public AppSearchBatchResult[] newArray(int size) {
-            return new AppSearchBatchResult[size];
-        }
-    };
-
-    /**
-     * Creates a new {@link Builder} for this {@link AppSearchBatchResult}.
-     * @hide
-     */
-    @NonNull
-    public static <KeyType, ValueType> Builder<KeyType, ValueType> newBuilder() {
-        return new Builder<>();
-    }
-
-    /**
-     * Builder for {@link AppSearchBatchResult} objects.
-     *
-     * @param <KeyType> The type of keys.
-     * @param <ValueType> The type of result objects associated with the keys.
-     * @hide
-     */
-    public static final class Builder<KeyType, ValueType> {
-        @NonNull private final Map<KeyType, ValueType> mResults = new ArrayMap<>();
-        @NonNull private final Map<KeyType, Throwable> mFailures = new ArrayMap<>();
-
-        private Builder() {}
-
-        /**
-         * Registers that the {@code key} was processed successfully and associates it with
-         * {@code value}. Any previous mapping for a key, whether success or failure, is deleted.
-         */
-        public Builder setSuccess(@NonNull KeyType key, @Nullable ValueType value) {
-            mResults.put(key, value);
-            mFailures.remove(key);
-            return this;
-        }
-
-        /**
-         * Registers that the {@code key} failed and associates it with {@code throwable}. Any
-         * previous mapping for a key, whether success or failure, is deleted.
-         */
-        public Builder setFailure(@NonNull KeyType key, @Nullable Throwable throwable) {
-            mFailures.put(key, throwable);
-            mResults.remove(key);
-            return this;
-        }
-
-        /** Builds an {@link AppSearchBatchResult} from the contents of this {@link Builder}. */
-        @NonNull
-        public AppSearchBatchResult<KeyType, ValueType> build() {
-            return new AppSearchBatchResult<>(mResults, mFailures);
-        }
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchDocument.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchDocument.java
deleted file mode 100644
index ff0f0dd..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchDocument.java
+++ /dev/null
@@ -1,724 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.CurrentTimeMillisLong;
-import android.annotation.DurationMillisLong;
-import android.annotation.IntRange;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.util.ArrayMap;
-import android.util.Log;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.util.ArrayUtils;
-import com.android.internal.util.Preconditions;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.PropertyProto;
-import com.google.android.icing.protobuf.ByteString;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * Represents a document unit.
- *
- * <p>Documents are constructed via {@link AppSearchDocument.Builder}.
- * @hide
- */
-public class AppSearchDocument {
-    private static final String TAG = "AppSearchDocument";
-
-    /**
-     * The maximum number of elements in a repeatable field. Will reject the request if exceed
-     * this limit.
-     */
-    private static final int MAX_REPEATED_PROPERTY_LENGTH = 100;
-
-    /**
-     * The maximum {@link String#length} of a {@link String} field. Will reject the request if
-     * {@link String}s longer than this.
-     */
-    private static final int MAX_STRING_LENGTH = 20_000;
-
-    /**
-     * Contains {@link AppSearchDocument} basic information (uri, schemaType etc) and properties
-     * ordered by keys.
-     */
-    @NonNull
-    private final DocumentProto mProto;
-
-    /** Contains all properties in {@link #mProto} to support getting properties via keys. */
-    @NonNull
-    private final Map<String, Object> mProperties;
-
-    /**
-     * Create a new {@link AppSearchDocument}.
-     * @param proto Contains {@link AppSearchDocument} basic information (uri, schemaType etc) and
-     *               properties ordered by keys.
-     * @param propertiesMap Contains all properties in {@link #mProto} to support get properties
-     *                      via keys.
-     */
-    private AppSearchDocument(@NonNull DocumentProto proto,
-            @NonNull Map<String, Object> propertiesMap) {
-        mProto = proto;
-        mProperties = propertiesMap;
-    }
-
-    /**
-     * Create a new {@link AppSearchDocument} from an existing instance.
-     *
-     * <p>This method should be only used by constructor of a subclass.
-     */
-    protected AppSearchDocument(@NonNull AppSearchDocument document) {
-        this(document.mProto, document.mProperties);
-    }
-
-    /** @hide */
-    AppSearchDocument(@NonNull DocumentProto documentProto) {
-        this(documentProto, new ArrayMap<>());
-        for (int i = 0; i < documentProto.getPropertiesCount(); i++) {
-            PropertyProto property = documentProto.getProperties(i);
-            String name = property.getName();
-            if (property.getStringValuesCount() > 0) {
-                String[] values = new String[property.getStringValuesCount()];
-                for (int j = 0; j < values.length; j++) {
-                    values[j] = property.getStringValues(j);
-                }
-                mProperties.put(name, values);
-            } else if (property.getInt64ValuesCount() > 0) {
-                long[] values = new long[property.getInt64ValuesCount()];
-                for (int j = 0; j < values.length; j++) {
-                    values[j] = property.getInt64Values(j);
-                }
-                mProperties.put(property.getName(), values);
-            } else if (property.getDoubleValuesCount() > 0) {
-                double[] values = new double[property.getDoubleValuesCount()];
-                for (int j = 0; j < values.length; j++) {
-                    values[j] = property.getDoubleValues(j);
-                }
-                mProperties.put(property.getName(), values);
-            } else if (property.getBooleanValuesCount() > 0) {
-                boolean[] values = new boolean[property.getBooleanValuesCount()];
-                for (int j = 0; j < values.length; j++) {
-                    values[j] = property.getBooleanValues(j);
-                }
-                mProperties.put(property.getName(), values);
-            } else if (property.getBytesValuesCount() > 0) {
-                byte[][] values = new byte[property.getBytesValuesCount()][];
-                for (int j = 0; j < values.length; j++) {
-                    values[j] = property.getBytesValues(j).toByteArray();
-                }
-                mProperties.put(name, values);
-            } else if (property.getDocumentValuesCount() > 0) {
-                AppSearchDocument[] values =
-                        new AppSearchDocument[property.getDocumentValuesCount()];
-                for (int j = 0; j < values.length; j++) {
-                    values[j] = new AppSearchDocument(property.getDocumentValues(j));
-                }
-                mProperties.put(name, values);
-            } else {
-                throw new IllegalStateException("Unknown type of value: " + name);
-            }
-        }
-    }
-
-    /**
-     * Get the {@link DocumentProto} of the {@link AppSearchDocument}.
-     *
-     * <p>The {@link DocumentProto} contains {@link AppSearchDocument}'s basic information and all
-     *    properties ordered by keys.
-     * @hide
-     */
-    @NonNull
-    @VisibleForTesting
-    public DocumentProto getProto() {
-        return mProto;
-    }
-
-    /**
-     * Get the uri of the {@link AppSearchDocument}.
-     *
-     * @hide
-     */
-    @NonNull
-    public String getUri() {
-        return mProto.getUri();
-    }
-
-    /**
-     * Get the schema type of the {@link AppSearchDocument}.
-     * @hide
-     */
-    @NonNull
-    public String getSchemaType() {
-        return mProto.getSchema();
-    }
-
-    /**
-     * Get the creation timestamp in milliseconds of the {@link AppSearchDocument}. Value will be in
-     * the {@link System#currentTimeMillis()} time base.
-     *
-     * @hide
-     */
-    @CurrentTimeMillisLong
-    public long getCreationTimestampMillis() {
-        return mProto.getCreationTimestampMs();
-    }
-
-    /**
-     * Returns the TTL (Time To Live) of the {@link AppSearchDocument}, in milliseconds.
-     *
-     * <p>The default value is 0, which means the document is permanent and won't be auto-deleted
-     *    until the app is uninstalled.
-     *
-     * @hide
-     */
-    @DurationMillisLong
-    public long getTtlMillis() {
-        return mProto.getTtlMs();
-    }
-
-    /**
-     * Returns the score of the {@link AppSearchDocument}.
-     *
-     * <p>The score is a query-independent measure of the document's quality, relative to other
-     * {@link AppSearchDocument}s of the same type.
-     *
-     * <p>The default value is 0.
-     *
-     * @hide
-     */
-    public int getScore() {
-        return mProto.getScore();
-    }
-
-    /**
-     * Retrieve a {@link String} value by key.
-     *
-     * @param key The key to look for.
-     * @return The first {@link String} associated with the given key or {@code null} if there
-     *         is no such key or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public String getPropertyString(@NonNull String key) {
-        String[] propertyArray = getPropertyStringArray(key);
-        if (ArrayUtils.isEmpty(propertyArray)) {
-            return null;
-        }
-        warnIfSinglePropertyTooLong("String", key, propertyArray.length);
-        return propertyArray[0];
-    }
-
-    /**
-     * Retrieve a {@link Long} value by key.
-     *
-     * @param key The key to look for.
-     * @return The first {@link Long} associated with the given key or {@code null} if there
-     *         is no such key or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public Long getPropertyLong(@NonNull String key) {
-        long[] propertyArray = getPropertyLongArray(key);
-        if (ArrayUtils.isEmpty(propertyArray)) {
-            return null;
-        }
-        warnIfSinglePropertyTooLong("Long", key, propertyArray.length);
-        return propertyArray[0];
-    }
-
-    /**
-     * Retrieve a {@link Double} value by key.
-     *
-     * @param key The key to look for.
-     * @return The first {@link Double} associated with the given key or {@code null} if there
-     *         is no such key or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public Double getPropertyDouble(@NonNull String key) {
-        double[] propertyArray = getPropertyDoubleArray(key);
-        // TODO(tytytyww): Add support double array to ArraysUtils.isEmpty().
-        if (propertyArray == null || propertyArray.length == 0) {
-            return null;
-        }
-        warnIfSinglePropertyTooLong("Double", key, propertyArray.length);
-        return propertyArray[0];
-    }
-
-    /**
-     * Retrieve a {@link Boolean} value by key.
-     *
-     * @param key The key to look for.
-     * @return The first {@link Boolean} associated with the given key or {@code null} if there
-     *         is no such key or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public Boolean getPropertyBoolean(@NonNull String key) {
-        boolean[] propertyArray = getPropertyBooleanArray(key);
-        if (ArrayUtils.isEmpty(propertyArray)) {
-            return null;
-        }
-        warnIfSinglePropertyTooLong("Boolean", key, propertyArray.length);
-        return propertyArray[0];
-    }
-
-    /**
-     * Retrieve a {@code byte[]} value by key.
-     *
-     * @param key The key to look for.
-     * @return The first {@code byte[]} associated with the given key or {@code null} if there
-     *         is no such key or the value is of a different type.
-     */
-    @Nullable
-    public byte[] getPropertyBytes(@NonNull String key) {
-        byte[][] propertyArray = getPropertyBytesArray(key);
-        if (ArrayUtils.isEmpty(propertyArray)) {
-            return null;
-        }
-        warnIfSinglePropertyTooLong("ByteArray", key, propertyArray.length);
-        return propertyArray[0];
-    }
-
-    /**
-     * Retrieve a {@link AppSearchDocument} value by key.
-     *
-     * @param key The key to look for.
-     * @return The first {@link AppSearchDocument} associated with the given key or {@code null} if
-     *         there is no such key or the value is of a different type.
-     */
-    @Nullable
-    public AppSearchDocument getPropertyDocument(@NonNull String key) {
-        AppSearchDocument[] propertyArray = getPropertyDocumentArray(key);
-        if (ArrayUtils.isEmpty(propertyArray)) {
-            return null;
-        }
-        warnIfSinglePropertyTooLong("Document", key, propertyArray.length);
-        return propertyArray[0];
-    }
-
-    /** Prints a warning to logcat if the given propertyLength is greater than 1. */
-    private static void warnIfSinglePropertyTooLong(
-            @NonNull String propertyType, @NonNull String key, int propertyLength) {
-        if (propertyLength > 1) {
-            Log.w(TAG, "The value for \"" + key + "\" contains " + propertyLength
-                    + " elements. Only the first one will be returned from "
-                    + "getProperty" + propertyType + "(). Try getProperty" + propertyType
-                    + "Array().");
-        }
-    }
-
-    /**
-     * Retrieve a repeated {@code String} property by key.
-     *
-     * @param key The key to look for.
-     * @return The {@code String[]} associated with the given key, or {@code null} if no value
-     *         is set or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public String[] getPropertyStringArray(@NonNull String key) {
-        return getAndCastPropertyArray(key, String[].class);
-    }
-
-    /**
-     * Retrieve a repeated {@code long} property by key.
-     *
-     * @param key The key to look for.
-     * @return The {@code long[]} associated with the given key, or {@code null} if no value is
-     *         set or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public long[] getPropertyLongArray(@NonNull String key) {
-        return getAndCastPropertyArray(key, long[].class);
-    }
-
-    /**
-     * Retrieve a repeated {@code double} property by key.
-     *
-     * @param key The key to look for.
-     * @return The {@code double[]} associated with the given key, or {@code null} if no value
-     *         is set or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public double[] getPropertyDoubleArray(@NonNull String key) {
-        return getAndCastPropertyArray(key, double[].class);
-    }
-
-    /**
-     * Retrieve a repeated {@code boolean} property by key.
-     *
-     * @param key The key to look for.
-     * @return The {@code boolean[]} associated with the given key, or {@code null} if no value
-     *         is set or the value is of a different type.
-     * @hide
-     */
-    @Nullable
-    public boolean[] getPropertyBooleanArray(@NonNull String key) {
-        return getAndCastPropertyArray(key, boolean[].class);
-    }
-
-    /**
-     * Retrieve a {@code byte[][]} property by key.
-     *
-     * @param key The key to look for.
-     * @return The {@code byte[][]} associated with the given key, or {@code null} if no value
-     *         is set or the value is of a different type.
-     */
-    @Nullable
-    public byte[][] getPropertyBytesArray(@NonNull String key) {
-        return getAndCastPropertyArray(key, byte[][].class);
-    }
-
-    /**
-     * Retrieve a repeated {@link AppSearchDocument} property by key.
-     *
-     * @param key The key to look for.
-     * @return The {@link AppSearchDocument[]} associated with the given key, or {@code null} if no
-     *         value is set or the value is of a different type.
-     */
-    @Nullable
-    public AppSearchDocument[] getPropertyDocumentArray(@NonNull String key) {
-        return getAndCastPropertyArray(key, AppSearchDocument[].class);
-    }
-
-    /**
-     * Gets a repeated property of the given key, and casts it to the given class type, which
-     * must be an array class type.
-     */
-    @Nullable
-    private <T> T getAndCastPropertyArray(@NonNull String key, @NonNull Class<T> tClass) {
-        Object value = mProperties.get(key);
-        if (value == null) {
-            return null;
-        }
-        try {
-            return tClass.cast(value);
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Error casting to requested type for key \"" + key + "\"", e);
-            return null;
-        }
-    }
-
-    @Override
-    public boolean equals(@Nullable Object other) {
-        // Check only proto's equality is sufficient here since all properties in
-        // mProperties are ordered by keys and stored in proto.
-        if (this == other) {
-            return true;
-        }
-        if (!(other instanceof AppSearchDocument)) {
-            return false;
-        }
-        AppSearchDocument otherDocument = (AppSearchDocument) other;
-        return this.mProto.equals(otherDocument.mProto);
-    }
-
-    @Override
-    public int hashCode() {
-        // Hash only proto is sufficient here since all properties in mProperties are ordered by
-        // keys and stored in proto.
-        return mProto.hashCode();
-    }
-
-    @Override
-    public String toString() {
-        return mProto.toString();
-    }
-
-    /**
-     * The builder class for {@link AppSearchDocument}.
-     *
-     * @param <BuilderType> Type of subclass who extend this.
-     * @hide
-     */
-    public static class Builder<BuilderType extends Builder> {
-
-        private final Map<String, Object> mProperties = new ArrayMap<>();
-        private final DocumentProto.Builder mProtoBuilder = DocumentProto.newBuilder();
-        private final BuilderType mBuilderTypeInstance;
-
-        /**
-         * Create a new {@link AppSearchDocument.Builder}.
-         *
-         * @param uri The uri of {@link AppSearchDocument}.
-         * @param schemaType The schema type of the {@link AppSearchDocument}. The passed-in
-         *       {@code schemaType} must be defined using {@link AppSearchManager#setSchema} prior
-         *       to inserting a document of this {@code schemaType} into the AppSearch index using
-         *       {@link AppSearchManager#putDocuments(List)}. Otherwise, the document will be
-         *       rejected by {@link AppSearchManager#putDocuments(List)}.
-         * @hide
-         */
-        public Builder(@NonNull String uri, @NonNull String schemaType) {
-            mBuilderTypeInstance = (BuilderType) this;
-            mProtoBuilder.setUri(uri).setSchema(schemaType);
-            // Set current timestamp for creation timestamp by default.
-            setCreationTimestampMillis(System.currentTimeMillis());
-        }
-
-        /**
-         * Sets the score of the {@link AppSearchDocument}.
-         *
-         * <p>The score is a query-independent measure of the document's quality, relative to
-         * other {@link AppSearchDocument}s of the same type.
-         *
-         * @throws IllegalArgumentException If the provided value is negative.
-         * @hide
-         */
-        @NonNull
-        public BuilderType setScore(@IntRange(from = 0, to = Integer.MAX_VALUE) int score) {
-            if (score < 0) {
-                throw new IllegalArgumentException("Document score cannot be negative.");
-            }
-            mProtoBuilder.setScore(score);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Set the creation timestamp in milliseconds of the {@link AppSearchDocument}. Should be
-         * set using a value obtained from the {@link System#currentTimeMillis()} time base.
-         *
-         * @hide
-         */
-        @NonNull
-        public BuilderType setCreationTimestampMillis(
-                @CurrentTimeMillisLong long creationTimestampMillis) {
-            mProtoBuilder.setCreationTimestampMs(creationTimestampMillis);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Set the TTL (Time To Live) of the {@link AppSearchDocument}, in milliseconds.
-         *
-         * <p>After this many milliseconds since the {@link #setCreationTimestampMillis(long)}
-         * creation timestamp}, the document is deleted.
-         *
-         * @param ttlMillis A non-negative duration in milliseconds.
-         * @throws IllegalArgumentException If the provided value is negative.
-         */
-        @NonNull
-        public BuilderType setTtlMillis(@DurationMillisLong long ttlMillis) {
-            Preconditions.checkArgumentNonNegative(
-                    ttlMillis, "Document ttlMillis cannot be negative.");
-            mProtoBuilder.setTtlMs(ttlMillis);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Sets one or multiple {@code String} values for a property, replacing its previous
-         * values.
-         *
-         * @param key The key associated with the {@code values}.
-         * @param values The {@code String} values of the property.
-         * @hide
-         */
-        @NonNull
-        public BuilderType setProperty(@NonNull String key, @NonNull String... values) {
-            putInPropertyMap(key, values);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Sets one or multiple {@code boolean} values for a property, replacing its previous
-         * values.
-         *
-         * @param key The key associated with the {@code values}.
-         * @param values The {@code boolean} values of the property.
-         */
-        @NonNull
-        public BuilderType setProperty(@NonNull String key, @NonNull boolean... values) {
-            putInPropertyMap(key, values);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Sets one or multiple {@code long} values for a property, replacing its previous
-         * values.
-         *
-         * @param key The key associated with the {@code values}.
-         * @param values The {@code long} values of the property.
-         */
-        @NonNull
-        public BuilderType setProperty(@NonNull String key, @NonNull long... values) {
-            putInPropertyMap(key, values);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Sets one or multiple {@code double} values for a property, replacing its previous
-         * values.
-         *
-         * @param key The key associated with the {@code values}.
-         * @param values The {@code double} values of the property.
-         */
-        @NonNull
-        public BuilderType setProperty(@NonNull String key, @NonNull double... values) {
-            putInPropertyMap(key, values);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Sets one or multiple {@code byte[]} for a property, replacing its previous values.
-         *
-         * @param key The key associated with the {@code values}.
-         * @param values The {@code byte[]} of the property.
-         */
-        @NonNull
-        public BuilderType setProperty(@NonNull String key, @NonNull byte[]... values) {
-            putInPropertyMap(key, values);
-            return mBuilderTypeInstance;
-        }
-
-        /**
-         * Sets one or multiple {@link AppSearchDocument} values for a property, replacing its
-         * previous values.
-         *
-         * @param key The key associated with the {@code values}.
-         * @param values The {@link AppSearchDocument} values of the property.
-         */
-        @NonNull
-        public BuilderType setProperty(@NonNull String key, @NonNull AppSearchDocument... values) {
-            putInPropertyMap(key, values);
-            return mBuilderTypeInstance;
-        }
-
-        private void putInPropertyMap(@NonNull String key, @NonNull String[] values)
-                throws IllegalArgumentException {
-            Objects.requireNonNull(key);
-            Objects.requireNonNull(values);
-            validateRepeatedPropertyLength(key, values.length);
-            for (int i = 0; i < values.length; i++) {
-                if (values[i] == null) {
-                    throw new IllegalArgumentException("The String at " + i + " is null.");
-                } else if (values[i].length() > MAX_STRING_LENGTH) {
-                    throw new IllegalArgumentException("The String at " + i + " length is: "
-                            + values[i].length()  + ", which exceeds length limit: "
-                            + MAX_STRING_LENGTH + ".");
-                }
-            }
-            mProperties.put(key, values);
-        }
-
-        private void putInPropertyMap(@NonNull String key, @NonNull boolean[] values) {
-            Objects.requireNonNull(key);
-            Objects.requireNonNull(values);
-            validateRepeatedPropertyLength(key, values.length);
-            mProperties.put(key, values);
-        }
-
-        private void putInPropertyMap(@NonNull String key, @NonNull double[] values) {
-            Objects.requireNonNull(key);
-            Objects.requireNonNull(values);
-            validateRepeatedPropertyLength(key, values.length);
-            mProperties.put(key, values);
-        }
-
-        private void putInPropertyMap(@NonNull String key, @NonNull long[] values) {
-            Objects.requireNonNull(key);
-            Objects.requireNonNull(values);
-            validateRepeatedPropertyLength(key, values.length);
-            mProperties.put(key, values);
-        }
-
-        private void putInPropertyMap(@NonNull String key, @NonNull byte[][] values) {
-            Objects.requireNonNull(key);
-            Objects.requireNonNull(values);
-            validateRepeatedPropertyLength(key, values.length);
-            mProperties.put(key, values);
-        }
-
-        private void putInPropertyMap(@NonNull String key, @NonNull AppSearchDocument[] values) {
-            Objects.requireNonNull(key);
-            Objects.requireNonNull(values);
-            for (int i = 0; i < values.length; i++) {
-                if (values[i] == null) {
-                    throw new IllegalArgumentException("The document at " + i + " is null.");
-                }
-            }
-            validateRepeatedPropertyLength(key, values.length);
-            mProperties.put(key, values);
-        }
-
-        private static void validateRepeatedPropertyLength(@NonNull String key, int length) {
-            if (length == 0) {
-                throw new IllegalArgumentException("The input array is empty.");
-            } else if (length > MAX_REPEATED_PROPERTY_LENGTH) {
-                throw new IllegalArgumentException(
-                        "Repeated property \"" + key + "\" has length " + length
-                                + ", which exceeds the limit of "
-                                + MAX_REPEATED_PROPERTY_LENGTH);
-            }
-        }
-
-        /**
-         * Builds the {@link AppSearchDocument} object.
-         * @hide
-         */
-        public AppSearchDocument build() {
-            // Build proto by sorting the keys in mProperties to exclude the influence of
-            // order. Therefore documents will generate same proto as long as the contents are
-            // same. Note that the order of repeated fields is still preserved.
-            ArrayList<String> keys = new ArrayList<>(mProperties.keySet());
-            Collections.sort(keys);
-            for (int i = 0; i < keys.size(); i++) {
-                String name = keys.get(i);
-                Object values = mProperties.get(name);
-                PropertyProto.Builder propertyProto = PropertyProto.newBuilder().setName(name);
-                if (values instanceof boolean[]) {
-                    for (boolean value : (boolean[]) values) {
-                        propertyProto.addBooleanValues(value);
-                    }
-                } else if (values instanceof long[]) {
-                    for (long value : (long[]) values) {
-                        propertyProto.addInt64Values(value);
-                    }
-                } else if (values instanceof double[]) {
-                    for (double value : (double[]) values) {
-                        propertyProto.addDoubleValues(value);
-                    }
-                } else if (values instanceof String[]) {
-                    for (String value : (String[]) values) {
-                        propertyProto.addStringValues(value);
-                    }
-                } else if (values instanceof AppSearchDocument[]) {
-                    for (AppSearchDocument value : (AppSearchDocument[]) values) {
-                        propertyProto.addDocumentValues(value.getProto());
-                    }
-                } else if (values instanceof byte[][]) {
-                    for (byte[] value : (byte[][]) values) {
-                        propertyProto.addBytesValues(ByteString.copyFrom(value));
-                    }
-                } else {
-                    throw new IllegalStateException(
-                            "Property \"" + name + "\" has unsupported value type \""
-                                    + values.getClass().getSimpleName() + "\"");
-                }
-                mProtoBuilder.addProperties(propertyProto);
-            }
-            return new AppSearchDocument(mProtoBuilder.build(), mProperties);
-        }
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchEmail.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchEmail.java
deleted file mode 100644
index 5b9457b..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchEmail.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.app.appsearch.AppSearchSchema.PropertyConfig;
-
-/**
- * Encapsulates a {@link AppSearchDocument} that represent an email.
- *
- * <p>This class is a higher level implement of {@link AppSearchDocument}.
- *
- * <p>This class will eventually migrate to Jetpack, where it will become public API.
- *
- * @hide
- */
-public class AppSearchEmail extends AppSearchDocument {
-    private static final String KEY_FROM = "from";
-    private static final String KEY_TO = "to";
-    private static final String KEY_CC = "cc";
-    private static final String KEY_BCC = "bcc";
-    private static final String KEY_SUBJECT = "subject";
-    private static final String KEY_BODY = "body";
-
-    /** The name of the schema type for {@link AppSearchEmail} documents.*/
-    public static final String SCHEMA_TYPE = "builtin:Email";
-
-    public static final AppSearchSchema SCHEMA = AppSearchSchema.newBuilder(SCHEMA_TYPE)
-            .addProperty(AppSearchSchema.newPropertyBuilder(KEY_FROM)
-                    .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                    .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                    .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                    .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                    .build()
-
-            ).addProperty(AppSearchSchema.newPropertyBuilder(KEY_TO)
-                    .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                    .setCardinality(PropertyConfig.CARDINALITY_REPEATED)
-                    .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                    .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                    .build()
-
-            ).addProperty(AppSearchSchema.newPropertyBuilder(KEY_CC)
-                    .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                    .setCardinality(PropertyConfig.CARDINALITY_REPEATED)
-                    .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                    .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                    .build()
-
-            ).addProperty(AppSearchSchema.newPropertyBuilder(KEY_BCC)
-                    .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                    .setCardinality(PropertyConfig.CARDINALITY_REPEATED)
-                    .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                    .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                    .build()
-
-            ).addProperty(AppSearchSchema.newPropertyBuilder(KEY_SUBJECT)
-                    .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                    .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                    .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                    .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                    .build()
-
-            ).addProperty(AppSearchSchema.newPropertyBuilder(KEY_BODY)
-                    .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                    .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                    .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                    .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                    .build()
-
-            ).build();
-
-    /**
-     * Creates a new {@link AppSearchEmail} from the contents of an existing
-     * {@link AppSearchDocument}.
-     *
-     * @param document The {@link AppSearchDocument} containing the email content.
-     */
-    public AppSearchEmail(@NonNull AppSearchDocument document) {
-        super(document);
-    }
-
-    /**
-     * Get the from address of {@link AppSearchEmail}.
-     *
-     * @return Returns the subject of {@link AppSearchEmail} or {@code null} if it's not been set
-     *         yet.
-     * @hide
-     */
-    @Nullable
-    public String getFrom() {
-        return getPropertyString(KEY_FROM);
-    }
-
-    /**
-     * Get the destination addresses of {@link AppSearchEmail}.
-     *
-     * @return Returns the destination addresses of {@link AppSearchEmail} or {@code null} if it's
-     *         not been set yet.
-     * @hide
-     */
-    @Nullable
-    public String[] getTo() {
-        return getPropertyStringArray(KEY_TO);
-    }
-
-    /**
-     * Get the CC list of {@link AppSearchEmail}.
-     *
-     * @return Returns the CC list of {@link AppSearchEmail} or {@code null} if it's not been set
-     *         yet.
-     * @hide
-     */
-    @Nullable
-    public String[] getCc() {
-        return getPropertyStringArray(KEY_CC);
-    }
-
-    /**
-     * Get the BCC list of {@link AppSearchEmail}.
-     *
-     * @return Returns the BCC list of {@link AppSearchEmail} or {@code null} if it's not been set
-     *         yet.
-     * @hide
-     */
-    @Nullable
-    public String[] getBcc() {
-        return getPropertyStringArray(KEY_BCC);
-    }
-
-    /**
-     * Get the subject of {@link AppSearchEmail}.
-     *
-     * @return Returns the value subject of {@link AppSearchEmail} or {@code null} if it's not been
-     *         set yet.
-     * @hide
-     */
-    @Nullable
-    public String getSubject() {
-        return getPropertyString(KEY_SUBJECT);
-    }
-
-    /**
-     * Get the body of {@link AppSearchEmail}.
-     *
-     * @return Returns the body of {@link AppSearchEmail} or {@code null} if it's not been set yet.
-     * @hide
-     */
-    @Nullable
-    public String getBody() {
-        return getPropertyString(KEY_BODY);
-    }
-
-    /**
-     * The builder class for {@link AppSearchEmail}.
-     * @hide
-     */
-    public static class Builder extends AppSearchDocument.Builder<AppSearchEmail.Builder> {
-
-        /**
-         * Create a new {@link AppSearchEmail.Builder}
-         * @param uri The Uri of the Email.
-         * @hide
-         */
-        public Builder(@NonNull String uri) {
-            super(uri, SCHEMA_TYPE);
-        }
-
-        /**
-         * Set the from address of {@link AppSearchEmail}
-         * @hide
-         */
-        @NonNull
-        public AppSearchEmail.Builder setFrom(@NonNull String from) {
-            setProperty(KEY_FROM, from);
-            return this;
-        }
-
-        /**
-         * Set the destination address of {@link AppSearchEmail}
-         * @hide
-         */
-        @NonNull
-        public AppSearchEmail.Builder setTo(@NonNull String... to) {
-            setProperty(KEY_TO, to);
-            return this;
-        }
-
-        /**
-         * Set the CC list of {@link AppSearchEmail}
-         * @hide
-         */
-        @NonNull
-        public AppSearchEmail.Builder setCc(@NonNull String... cc) {
-            setProperty(KEY_CC, cc);
-            return this;
-        }
-
-        /**
-         * Set the BCC list of {@link AppSearchEmail}
-         * @hide
-         */
-        @NonNull
-        public AppSearchEmail.Builder setBcc(@NonNull String... bcc) {
-            setProperty(KEY_BCC, bcc);
-            return this;
-        }
-
-        /**
-         * Set the subject of {@link AppSearchEmail}
-         * @hide
-         */
-        @NonNull
-        public AppSearchEmail.Builder setSubject(@NonNull String subject) {
-            setProperty(KEY_SUBJECT, subject);
-            return this;
-        }
-
-        /**
-         * Set the body of {@link AppSearchEmail}
-         * @hide
-         */
-        @NonNull
-        public AppSearchEmail.Builder setBody(@NonNull String body) {
-            setProperty(KEY_BODY, body);
-            return this;
-        }
-
-        /**
-         * Builds the {@link AppSearchEmail} object.
-         *
-         * @hide
-         */
-        @NonNull
-        @Override
-        public AppSearchEmail build() {
-            return new AppSearchEmail(super.build());
-        }
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java
deleted file mode 100644
index e2c9b0f..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.app.appsearch;
-
-import android.annotation.CallbackExecutor;
-import android.annotation.NonNull;
-import android.annotation.SystemService;
-import android.content.Context;
-import android.os.RemoteException;
-
-import com.android.internal.infra.AndroidFuture;
-
-import com.google.android.icing.proto.SchemaProto;
-import com.google.android.icing.proto.SearchResultProto;
-import com.google.android.icing.proto.SearchSpecProto;
-import com.google.android.icing.proto.StatusProto;
-import com.google.android.icing.protobuf.InvalidProtocolBufferException;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executor;
-import java.util.function.BiConsumer;
-
-/**
- * This class provides access to the centralized AppSearch index maintained by the system.
- *
- * <p>Apps can index structured text documents with AppSearch, which can then be retrieved through
- * the query API.
- *
- * @hide
- */
-@SystemService(Context.APP_SEARCH_SERVICE)
-public class AppSearchManager {
-    private final IAppSearchManager mService;
-
-    /** @hide */
-    public AppSearchManager(@NonNull IAppSearchManager service) {
-        mService = service;
-    }
-
-    /**
-     * Sets the schema being used by documents provided to the {@link #putDocuments} method.
-     *
-     * <p>The schema provided here is compared to the stored copy of the schema previously supplied
-     * to {@link #setSchema}, if any, to determine how to treat existing documents. The following
-     * types of schema modifications are always safe and are made without deleting any existing
-     * documents:
-     * <ul>
-     *     <li>Addition of new types
-     *     <li>Addition of new
-     *         {@link android.app.appsearch.AppSearchSchema.PropertyConfig#CARDINALITY_OPTIONAL
-     *             OPTIONAL} or
-     *         {@link android.app.appsearch.AppSearchSchema.PropertyConfig#CARDINALITY_REPEATED
-     *             REPEATED} properties to a type
-     *     <li>Changing the cardinality of a data type to be less restrictive (e.g. changing an
-     *         {@link android.app.appsearch.AppSearchSchema.PropertyConfig#CARDINALITY_OPTIONAL
-     *             OPTIONAL} property into a
-     *         {@link android.app.appsearch.AppSearchSchema.PropertyConfig#CARDINALITY_REPEATED
-     *             REPEATED} property.
-     * </ul>
-     *
-     * <p>The following types of schema changes are not backwards-compatible. Supplying a schema
-     * with such changes will result in this call throwing an {@link IllegalSchemaException}
-     * describing the incompatibility, and the previously set schema will remain active:
-     * <ul>
-     *     <li>Removal of an existing type
-     *     <li>Removal of a property from a type
-     *     <li>Changing the data type ({@code boolean}, {@code long}, etc.) of an existing property
-     *     <li>For properties of {@code Document} type, changing the schema type of
-     *         {@code Document Documents} of that property
-     *     <li>Changing the cardinality of a data type to be more restrictive (e.g. changing an
-     *         {@link android.app.appsearch.AppSearchSchema.PropertyConfig#CARDINALITY_OPTIONAL
-     *             OPTIONAL} property into a
-     *         {@link android.app.appsearch.AppSearchSchema.PropertyConfig#CARDINALITY_REQUIRED
-     *             REQUIRED} property).
-     *     <li>Adding a
-     *         {@link android.app.appsearch.AppSearchSchema.PropertyConfig#CARDINALITY_REQUIRED
-     *             REQUIRED} property.
-     * </ul>
-     *
-     * <p>If you need to make non-backwards-compatible changes as described above, instead use the
-     * {@link #setSchema(List, boolean)} method with the {@code forceOverride} parameter set to
-     * {@code true}.
-     *
-     * <p>It is a no-op to set the same schema as has been previously set; this is handled
-     * efficiently.
-     *
-     * @param schemas The schema configs for the types used by the calling app.
-     * @throws IllegalSchemaException If the provided schema is invalid, or is incompatible with the
-     *     previous schema.
-     *
-     * @hide
-     */
-    public void setSchema(@NonNull AppSearchSchema... schemas) {
-        setSchema(Arrays.asList(schemas), /*forceOverride=*/false);
-    }
-
-    /**
-     * Sets the schema being used by documents provided to the {@link #putDocuments} method.
-     *
-     * <p>This method is similar to {@link #setSchema(AppSearchSchema...)}, except for the
-     * {@code forceOverride} parameter. If a backwards-incompatible schema is specified but the
-     * {@code forceOverride} parameter is set to {@code true}, instead of throwing an
-     * {@link IllegalSchemaException}, all documents which are not compatible with the new schema
-     * will be deleted and the incompatible schema will be applied.
-     *
-     * @param schemas The schema configs for the types used by the calling app.
-     * @param forceOverride Whether to force the new schema to be applied even if there are
-     *     incompatible changes versus the previously set schema. Documents which are incompatible
-     *     with the new schema will be deleted.
-     * @throws IllegalSchemaException If the provided schema is invalid, or is incompatible with the
-     *     previous schema and the {@code forceOverride} parameter is set to {@code false}.
-     *
-     * @hide
-     */
-    public void setSchema(@NonNull List<AppSearchSchema> schemas, boolean forceOverride) {
-        // Prepare the merged schema for transmission.
-        SchemaProto.Builder schemaProtoBuilder = SchemaProto.newBuilder();
-        for (AppSearchSchema schema : schemas) {
-            schemaProtoBuilder.addTypes(schema.getProto());
-        }
-
-        // Serialize and send the schema.
-        // TODO: This should use com.android.internal.infra.RemoteStream or another mechanism to
-        //  avoid binder limits.
-        byte[] schemaBytes = schemaProtoBuilder.build().toByteArray();
-        AndroidFuture<Void> future = new AndroidFuture<>();
-        try {
-            mService.setSchema(schemaBytes, forceOverride, future);
-        } catch (RemoteException e) {
-            future.completeExceptionally(e);
-        }
-        getFutureOrThrow(future);
-    }
-
-    /**
-     * Index {@link AppSearchDocument Documents} into AppSearch.
-     *
-     * <p>You should not call this method directly; instead, use the
-     * {@code AppSearch#putDocuments()} API provided by JetPack.
-     *
-     * <p>Each {@link AppSearchDocument Document's} {@code schemaType} field must be set to the
-     * name of a schema type previously registered via the {@link #setSchema} method.
-     *
-     * @param documents {@link AppSearchDocument Documents} that need to be indexed.
-     * @return An {@link AppSearchBatchResult} mapping the document URIs to {@link Void} if they
-     *     were successfully indexed, or a {@link Throwable} describing the failure if they could
-     *     not be indexed.
-     * @hide
-     */
-    public AppSearchBatchResult<String, Void> putDocuments(
-            @NonNull List<AppSearchDocument> documents) {
-        // TODO(b/146386470): Transmit these documents as a RemoteStream instead of sending them in
-        // one big list.
-        List<byte[]> documentsBytes = new ArrayList<>(documents.size());
-        for (AppSearchDocument document : documents) {
-            documentsBytes.add(document.getProto().toByteArray());
-        }
-        AndroidFuture<AppSearchBatchResult> future = new AndroidFuture<>();
-        try {
-            mService.putDocuments(documentsBytes, future);
-        } catch (RemoteException e) {
-            future.completeExceptionally(e);
-        }
-        return getFutureOrThrow(future);
-    }
-
-    /**
-     * This method searches for documents based on a given query string. It also accepts
-     * specifications regarding how to search and format the results.
-     *
-     *<p>Currently we support following features in the raw query format:
-     * <ul>
-     *     <li>AND
-     *     <p>AND joins (e.g. “match documents that have both the terms ‘dog’ and
-     *     ‘cat’”).
-     *     Example: hello world matches documents that have both ‘hello’ and ‘world’
-     *     <li>OR
-     *     <p>OR joins (e.g. “match documents that have either the term ‘dog’ or
-     *     ‘cat’”).
-     *     Example: dog OR puppy
-     *     <li>Exclusion
-     *     <p>Exclude a term (e.g. “match documents that do
-     *     not have the term ‘dog’”).
-     *     Example: -dog excludes the term ‘dog’
-     *     <li>Grouping terms
-     *     <p>Allow for conceptual grouping of subqueries to enable hierarchical structures (e.g.
-     *     “match documents that have either ‘dog’ or ‘puppy’, and either ‘cat’ or ‘kitten’”).
-     *     Example: (dog puppy) (cat kitten) two one group containing two terms.
-     *     <li>Property restricts
-     *     <p> Specifies which properties of a document to specifically match terms in (e.g.
-     *     “match documents where the ‘subject’ property contains ‘important’”).
-     *     Example: subject:important matches documents with the term ‘important’ in the
-     *     ‘subject’ property
-     *     <li>Schema type restricts
-     *     <p>This is similar to property restricts, but allows for restricts on top-level document
-     *     fields, such as schema_type. Clients should be able to limit their query to documents of
-     *     a certain schema_type (e.g. “match documents that are of the ‘Email’ schema_type”).
-     *     Example: { schema_type_filters: “Email”, “Video”,query: “dog” } will match documents
-     *     that contain the query term ‘dog’ and are of either the ‘Email’ schema type or the
-     *     ‘Video’ schema type.
-     * </ul>
-     *
-     * <p> It is strongly recommended to use Jetpack APIs.
-     *
-     * @param queryExpression Query String to search.
-     * @param searchSpec Spec for setting filters, raw query etc.
-     * @param executor Executor on which to invoke the callback.
-     * @param callback  Callback to receive errors resulting from the query operation. If the
-     *                 operation succeeds, the callback will be invoked with {@code null}.
-     * @hide
-     */
-    @NonNull
-    public void query(
-            @NonNull String queryExpression,
-            @NonNull SearchSpec searchSpec,
-            @NonNull @CallbackExecutor Executor executor,
-            @NonNull BiConsumer<? super SearchResults, ? super Throwable> callback) {
-        AndroidFuture<byte[]> future = new AndroidFuture<>();
-        future.whenCompleteAsync((searchResultBytes, err) -> {
-            if (err != null) {
-                callback.accept(null, err);
-                return;
-            }
-
-            if (searchResultBytes != null) {
-                SearchResultProto searchResultProto;
-                try {
-                    searchResultProto = SearchResultProto.parseFrom(searchResultBytes);
-                } catch (InvalidProtocolBufferException e) {
-                    callback.accept(null, e);
-                    return;
-                }
-                if (searchResultProto.getStatus().getCode() != StatusProto.Code.OK) {
-                    // TODO(sidchhabra): Add better exception handling.
-                    callback.accept(
-                            null,
-                            new RuntimeException(searchResultProto.getStatus().getMessage()));
-                    return;
-                }
-                SearchResults searchResults = new SearchResults(searchResultProto);
-                callback.accept(searchResults, null);
-                return;
-            }
-
-            // Nothing was supplied in the future at all
-            callback.accept(
-                    null, new IllegalStateException("Unknown failure occurred while querying"));
-        }, executor);
-
-        try {
-            SearchSpecProto searchSpecProto = searchSpec.getSearchSpecProto();
-            searchSpecProto = searchSpecProto.toBuilder().setQuery(queryExpression).build();
-            mService.query(searchSpecProto.toByteArray(),
-                    searchSpec.getResultSpecProto().toByteArray(),
-                    searchSpec.getScoringSpecProto().toByteArray(), future);
-        } catch (RemoteException e) {
-            future.completeExceptionally(e);
-        }
-    }
-
-    private static <T> T getFutureOrThrow(@NonNull AndroidFuture<T> future) {
-        try {
-            return future.get();
-        } catch (Throwable e) {
-            if (e instanceof ExecutionException) {
-                e = e.getCause();
-            }
-            if (e instanceof RuntimeException) {
-                throw (RuntimeException) e;
-            }
-            if (e instanceof Error) {
-                throw (Error) e;
-            }
-            throw new RuntimeException(e);
-        }
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchManagerFrameworkInitializer.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchManagerFrameworkInitializer.java
deleted file mode 100644
index 02cc967..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchManagerFrameworkInitializer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.app.appsearch;
-
-import android.annotation.SystemApi;
-import android.app.SystemServiceRegistry;
-import android.content.Context;
-
-/**
- * Class holding initialization code for the AppSearch module.
- *
- * @hide
- */
-@SystemApi
-public class AppSearchManagerFrameworkInitializer {
-    private AppSearchManagerFrameworkInitializer() {}
-
-    /**
-     * Called by {@link SystemServiceRegistry}'s static initializer and registers all AppSearch
-     * services to {@link Context}, so that {@link Context#getSystemService} can return them.
-     *
-     * @throws IllegalStateException if this is called from anywhere besides
-     *     {@link SystemServiceRegistry}
-     */
-    public static void initialize() {
-        SystemServiceRegistry.registerStaticService(
-                Context.APP_SEARCH_SERVICE, AppSearchManager.class,
-                (service) -> new AppSearchManager(IAppSearchManager.Stub.asInterface(service)));
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchSchema.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchSchema.java
deleted file mode 100644
index 1d54dc4..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchSchema.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.util.ArraySet;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-import com.google.android.icing.proto.PropertyConfigProto;
-import com.google.android.icing.proto.SchemaTypeConfigProto;
-import com.google.android.icing.proto.TermMatchType;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.Set;
-
-/**
- * The AppSearch Schema for a particular type of document.
- *
- * <p>For example, an e-mail message or a music recording could be a schema type.
- *
- * <p>The schema consists of type information, properties, and config (like tokenization type).
- *
- * @hide
- */
-public final class AppSearchSchema {
-    private final SchemaTypeConfigProto mProto;
-
-    private AppSearchSchema(SchemaTypeConfigProto proto) {
-        mProto = proto;
-    }
-
-    /** Creates a new {@link AppSearchSchema.Builder}. */
-    @NonNull
-    public static AppSearchSchema.Builder newBuilder(@NonNull String typeName) {
-        return new AppSearchSchema.Builder(typeName);
-    }
-
-    /** Creates a new {@link PropertyConfig.Builder}. */
-    @NonNull
-    public static PropertyConfig.Builder newPropertyBuilder(@NonNull String propertyName) {
-        return new PropertyConfig.Builder(propertyName);
-    }
-
-    /**
-     * Returns the {@link SchemaTypeConfigProto} populated by this builder.
-     * @hide
-     */
-    @NonNull
-    @VisibleForTesting
-    public SchemaTypeConfigProto getProto() {
-        return mProto;
-    }
-
-    @Override
-    public String toString() {
-        return mProto.toString();
-    }
-
-    /** Builder for {@link AppSearchSchema objects}. */
-    public static final class Builder {
-        private final SchemaTypeConfigProto.Builder mProtoBuilder =
-                SchemaTypeConfigProto.newBuilder();
-
-        private Builder(@NonNull String typeName) {
-            mProtoBuilder.setSchemaType(typeName);
-        }
-
-        /** Adds a property to the given type. */
-        @NonNull
-        public AppSearchSchema.Builder addProperty(@NonNull PropertyConfig propertyConfig) {
-            mProtoBuilder.addProperties(propertyConfig.mProto);
-            return this;
-        }
-
-        /**
-         * Constructs a new {@link AppSearchSchema} from the contents of this builder.
-         *
-         * <p>After calling this method, the builder must no longer be used.
-         */
-        @NonNull
-        public AppSearchSchema build() {
-            Set<String> propertyNames = new ArraySet<>();
-            for (PropertyConfigProto propertyConfigProto : mProtoBuilder.getPropertiesList()) {
-                if (!propertyNames.add(propertyConfigProto.getPropertyName())) {
-                    throw new IllegalSchemaException(
-                            "Property defined more than once: "
-                                    + propertyConfigProto.getPropertyName());
-                }
-            }
-            return new AppSearchSchema(mProtoBuilder.build());
-        }
-    }
-
-    /**
-     * Configuration for a single property (field) of a document type.
-     *
-     * <p>For example, an {@code EmailMessage} would be a type and the {@code subject} would be
-     * a property.
-     */
-    public static final class PropertyConfig {
-        /** Physical data-types of the contents of the property. */
-        // NOTE: The integer values of these constants must match the proto enum constants in
-        // com.google.android.icing.proto.PropertyConfigProto.DataType.Code.
-        @IntDef(prefix = {"DATA_TYPE_"}, value = {
-                DATA_TYPE_STRING,
-                DATA_TYPE_INT64,
-                DATA_TYPE_DOUBLE,
-                DATA_TYPE_BOOLEAN,
-                DATA_TYPE_BYTES,
-                DATA_TYPE_DOCUMENT,
-        })
-        @Retention(RetentionPolicy.SOURCE)
-        public @interface DataType {}
-
-        public static final int DATA_TYPE_STRING = 1;
-        public static final int DATA_TYPE_INT64 = 2;
-        public static final int DATA_TYPE_DOUBLE = 3;
-        public static final int DATA_TYPE_BOOLEAN = 4;
-
-        /** Unstructured BLOB. */
-        public static final int DATA_TYPE_BYTES = 5;
-
-        /**
-         * Indicates that the property itself is an Document, making it part a hierarchical
-         * Document schema. Any property using this DataType MUST have a valid
-         * {@code schemaType}.
-         */
-        public static final int DATA_TYPE_DOCUMENT = 6;
-
-        /** The cardinality of the property (whether it is required, optional or repeated). */
-        // NOTE: The integer values of these constants must match the proto enum constants in
-        // com.google.android.icing.proto.PropertyConfigProto.Cardinality.Code.
-        @IntDef(prefix = {"CARDINALITY_"}, value = {
-                CARDINALITY_REPEATED,
-                CARDINALITY_OPTIONAL,
-                CARDINALITY_REQUIRED,
-        })
-        @Retention(RetentionPolicy.SOURCE)
-        public @interface Cardinality {}
-
-        /** Any number of items (including zero) [0...*]. */
-        public static final int CARDINALITY_REPEATED = 1;
-
-        /** Zero or one value [0,1]. */
-        public static final int CARDINALITY_OPTIONAL = 2;
-
-        /** Exactly one value [1]. */
-        public static final int CARDINALITY_REQUIRED = 3;
-
-        /** Encapsulates the configurations on how AppSearch should query/index these terms. */
-        @IntDef(prefix = {"INDEXING_TYPE_"}, value = {
-                INDEXING_TYPE_NONE,
-                INDEXING_TYPE_EXACT_TERMS,
-                INDEXING_TYPE_PREFIXES,
-        })
-        @Retention(RetentionPolicy.SOURCE)
-        public @interface IndexingType {}
-
-        /**
-         * Content in this property will not be tokenized or indexed.
-         *
-         * <p>Useful if the data type is not made up of terms (e.g.
-         * {@link PropertyConfig#DATA_TYPE_DOCUMENT} or {@link PropertyConfig#DATA_TYPE_BYTES}
-         * type). All the properties inside the nested property won't be indexed regardless of the
-         * value of {@code indexingType} for the nested properties.
-         */
-        public static final int INDEXING_TYPE_NONE = 0;
-
-        /**
-         * Content in this property should only be returned for queries matching the exact tokens
-         * appearing in this property.
-         *
-         * <p>Ex. A property with "fool" should NOT match a query for "foo".
-         */
-        public static final int INDEXING_TYPE_EXACT_TERMS = 1;
-
-        /**
-         * Content in this property should be returned for queries that are either exact matches or
-         * query matches of the tokens appearing in this property.
-         *
-         * <p>Ex. A property with "fool" <b>should</b> match a query for "foo".
-         */
-        public static final int INDEXING_TYPE_PREFIXES = 2;
-
-        /** Configures how tokens should be extracted from this property. */
-        // NOTE: The integer values of these constants must match the proto enum constants in
-        // com.google.android.icing.proto.IndexingConfig.TokenizerType.Code.
-        @IntDef(prefix = {"TOKENIZER_TYPE_"}, value = {
-                TOKENIZER_TYPE_NONE,
-                TOKENIZER_TYPE_PLAIN,
-        })
-        @Retention(RetentionPolicy.SOURCE)
-        public @interface TokenizerType {}
-
-        /**
-         * It is only valid for tokenizer_type to be 'NONE' if the data type is
-         * {@link PropertyConfig#DATA_TYPE_DOCUMENT}.
-         */
-        public static final int TOKENIZER_TYPE_NONE = 0;
-
-        /** Tokenization for plain text. */
-        public static final int TOKENIZER_TYPE_PLAIN = 1;
-
-        private final PropertyConfigProto mProto;
-
-        private PropertyConfig(PropertyConfigProto proto) {
-            mProto = proto;
-        }
-
-        @Override
-        public String toString() {
-            return mProto.toString();
-        }
-
-        /**
-         * Builder for {@link PropertyConfig}.
-         *
-         * <p>The following properties must be set, or {@link PropertyConfig} construction will
-         * fail:
-         * <ul>
-         *     <li>dataType
-         *     <li>cardinality
-         * </ul>
-         *
-         * <p>In addition, if {@code schemaType} is {@link #DATA_TYPE_DOCUMENT}, {@code schemaType}
-         * is also required.
-         */
-        public static final class Builder {
-            private final PropertyConfigProto.Builder mPropertyConfigProto =
-                    PropertyConfigProto.newBuilder();
-            private final com.google.android.icing.proto.IndexingConfig.Builder
-                    mIndexingConfigProto =
-                        com.google.android.icing.proto.IndexingConfig.newBuilder();
-
-            private Builder(String propertyName) {
-                mPropertyConfigProto.setPropertyName(propertyName);
-            }
-
-            /**
-             * Type of data the property contains (e.g. string, int, bytes, etc).
-             *
-             * <p>This property must be set.
-             */
-            @NonNull
-            public PropertyConfig.Builder setDataType(@DataType int dataType) {
-                PropertyConfigProto.DataType.Code dataTypeProto =
-                        PropertyConfigProto.DataType.Code.forNumber(dataType);
-                if (dataTypeProto == null) {
-                    throw new IllegalArgumentException("Invalid dataType: " + dataType);
-                }
-                mPropertyConfigProto.setDataType(dataTypeProto);
-                return this;
-            }
-
-            /**
-             * The logical schema-type of the contents of this property.
-             *
-             * <p>Only required when {@link #setDataType(int)} is set to
-             * {@link #DATA_TYPE_DOCUMENT}. Otherwise, it is ignored.
-             */
-            @NonNull
-            public PropertyConfig.Builder setSchemaType(@NonNull String schemaType) {
-                mPropertyConfigProto.setSchemaType(schemaType);
-                return this;
-            }
-
-            /**
-             * The cardinality of the property (whether it is optional, required or repeated).
-             *
-             * <p>This property must be set.
-             */
-            @NonNull
-            public PropertyConfig.Builder setCardinality(@Cardinality int cardinality) {
-                PropertyConfigProto.Cardinality.Code cardinalityProto =
-                        PropertyConfigProto.Cardinality.Code.forNumber(cardinality);
-                if (cardinalityProto == null) {
-                    throw new IllegalArgumentException("Invalid cardinality: " + cardinality);
-                }
-                mPropertyConfigProto.setCardinality(cardinalityProto);
-                return this;
-            }
-
-            /**
-             * Configures how a property should be indexed so that it can be retrieved by queries.
-             */
-            @NonNull
-            public PropertyConfig.Builder setIndexingType(@IndexingType int indexingType) {
-                TermMatchType.Code termMatchTypeProto;
-                switch (indexingType) {
-                    case INDEXING_TYPE_NONE:
-                        termMatchTypeProto = TermMatchType.Code.UNKNOWN;
-                        break;
-                    case INDEXING_TYPE_EXACT_TERMS:
-                        termMatchTypeProto = TermMatchType.Code.EXACT_ONLY;
-                        break;
-                    case INDEXING_TYPE_PREFIXES:
-                        termMatchTypeProto = TermMatchType.Code.PREFIX;
-                        break;
-                    default:
-                        throw new IllegalArgumentException("Invalid indexingType: " + indexingType);
-                }
-                mIndexingConfigProto.setTermMatchType(termMatchTypeProto);
-                return this;
-            }
-
-            /** Configures how this property should be tokenized (split into words). */
-            @NonNull
-            public PropertyConfig.Builder setTokenizerType(@TokenizerType int tokenizerType) {
-                com.google.android.icing.proto.IndexingConfig.TokenizerType.Code
-                        tokenizerTypeProto =
-                            com.google.android.icing.proto.IndexingConfig
-                                .TokenizerType.Code.forNumber(tokenizerType);
-                if (tokenizerTypeProto == null) {
-                    throw new IllegalArgumentException("Invalid tokenizerType: " + tokenizerType);
-                }
-                mIndexingConfigProto.setTokenizerType(tokenizerTypeProto);
-                return this;
-            }
-
-            /**
-             * Constructs a new {@link PropertyConfig} from the contents of this builder.
-             *
-             * <p>After calling this method, the builder must no longer be used.
-             *
-             * @throws IllegalSchemaException If the property is not correctly populated (e.g.
-             *     missing {@code dataType}).
-             */
-            @NonNull
-            public PropertyConfig build() {
-                mPropertyConfigProto.setIndexingConfig(mIndexingConfigProto);
-                // TODO(b/147692920): Send the schema to Icing Lib for official validation, instead
-                //     of partially reimplementing some of the validation Icing does here.
-                if (mPropertyConfigProto.getDataType()
-                        == PropertyConfigProto.DataType.Code.UNKNOWN) {
-                    throw new IllegalSchemaException("Missing field: dataType");
-                }
-                if (mPropertyConfigProto.getSchemaType().isEmpty()
-                        && mPropertyConfigProto.getDataType()
-                            == PropertyConfigProto.DataType.Code.DOCUMENT) {
-                    throw new IllegalSchemaException(
-                            "Missing field: schemaType (required for configs with "
-                                    + "dataType = DOCUMENT)");
-                }
-                if (mPropertyConfigProto.getCardinality()
-                        == PropertyConfigProto.Cardinality.Code.UNKNOWN) {
-                    throw new IllegalSchemaException("Missing field: cardinality");
-                }
-                return new PropertyConfig(mPropertyConfigProto.build());
-            }
-        }
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/IAppSearchManager.aidl b/apex/appsearch/framework/java/android/app/appsearch/IAppSearchManager.aidl
deleted file mode 100644
index eef41ed..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/IAppSearchManager.aidl
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Copyright 2020, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.app.appsearch;
-
-import com.android.internal.infra.AndroidFuture;
-
-parcelable AppSearchBatchResult;
-
-/** {@hide} */
-interface IAppSearchManager {
-    /**
-     * Sets the schema.
-     *
-     * @param schemaBytes Serialized SchemaProto.
-     * @param forceOverride Whether to apply the new schema even if it is incompatible. All
-     *     incompatible documents will be deleted.
-     * @param callback {@link AndroidFuture}&lt;{@link Void}&gt;. Will be completed with
-     *     {@code null} upon successful completion of the setSchema call, or completed
-     *     exceptionally if setSchema fails.
-     */
-    void setSchema(in byte[] schemaBytes, boolean forceOverride, in AndroidFuture callback);
-
-    /**
-     * Inserts documents into the index.
-     *
-     * @param documentsBytes {@link List}&lt;byte[]&gt; of serialized DocumentProtos.
-     * @param callback
-     *     {@link AndroidFuture}&lt;{@link AppSearchBatchResult}&lt;{@link String}, {@link Void}&gt;&gt;.
-     *     If the call fails to start, {@code callback} will be completed exceptionally. Otherwise,
-     *     {@code callback} will be completed with an
-     *     {@link AppSearchBatchResult}&lt;{@link String}, {@link Void}&gt;
-     *     where the keys are document URIs, and the values are {@code null}.
-     */
-    void putDocuments(in List documentsBytes, in AndroidFuture<AppSearchBatchResult> callback);
-
-    /**
-     * Searches a document based on a given specifications.
-     *
-     * @param searchSpecBytes Serialized SearchSpecProto.
-     * @param resultSpecBytes Serialized SearchResultsProto.
-     * @param scoringSpecBytes Serialized ScoringSpecProto.
-     * @param callback {@link AndroidFuture}. Will be completed with a serialized
-     *     {@link SearchResultsProto}, or completed exceptionally if query fails.
-     */
-    void query(in byte[] searchSpecBytes, in byte[] resultSpecBytes,
-            in byte[] scoringSpecBytes, in AndroidFuture callback);
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/IllegalSchemaException.java b/apex/appsearch/framework/java/android/app/appsearch/IllegalSchemaException.java
deleted file mode 100644
index f9e528c..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/IllegalSchemaException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.NonNull;
-
-/**
- * Indicates that a {@link android.app.appsearch.AppSearchSchema} has logical inconsistencies such
- * as unpopulated mandatory fields or illegal combinations of parameters.
- *
- * @hide
- */
-public class IllegalSchemaException extends IllegalArgumentException {
-    /**
-     * Constructs a new {@link IllegalSchemaException}.
-     *
-     * @param message A developer-readable description of the issue with the bundle.
-     */
-    public IllegalSchemaException(@NonNull String message) {
-        super(message);
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/IllegalSearchSpecException.java b/apex/appsearch/framework/java/android/app/appsearch/IllegalSearchSpecException.java
deleted file mode 100644
index 0d029f0..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/IllegalSearchSpecException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.NonNull;
-
-/**
- * Indicates that a {@link android.app.appsearch.SearchResults} has logical inconsistencies such
- * as unpopulated mandatory fields or illegal combinations of parameters.
- *
- * @hide
- */
-public class IllegalSearchSpecException extends IllegalArgumentException {
-    /**
-     * Constructs a new {@link IllegalSearchSpecException}.
-     *
-     * @param message A developer-readable description of the issue with the bundle.
-     */
-    public IllegalSearchSpecException(@NonNull String message) {
-        super(message);
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/MatchInfo.java b/apex/appsearch/framework/java/android/app/appsearch/MatchInfo.java
deleted file mode 100644
index 5ce2960..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/MatchInfo.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.NonNull;
-import android.util.Range;
-
-import com.google.android.icing.proto.SnippetMatchProto;
-
-/**
- * Snippet: It refers to a substring of text from the content of document that is returned as a
- * part of search result.
- * This class represents a match objects for any Snippets that might be present in
- * {@link SearchResults} from query. Using this class user can get the full text, exact matches and
- * Snippets of document content for a given match.
- *
- * <p>Class Example 1:
- * A document contains following text in property subject:
- * <p>A commonly used fake word is foo. Another nonsense word that’s used a lot is bar.
- *
- * <p>If the queryExpression is "foo".
- *
- * <p>{@link MatchInfo#getPropertyPath()} returns "subject"
- * <p>{@link MatchInfo#getFullText()} returns "A commonly used fake word is foo. Another nonsense
- * word that’s used a lot is bar."
- * <p>{@link MatchInfo#getExactMatchPosition()} returns [29, 32]
- * <p>{@link MatchInfo#getExactMatch()} returns "foo"
- * <p>{@link MatchInfo#getSnippetPosition()} returns [29, 41]
- * <p>{@link MatchInfo#getSnippet()} returns "is foo. Another"
- * <p>
- * <p>Class Example 2:
- * A document contains a property name sender which contains 2 property names name and email, so
- * we will have 2 property paths: {@code sender.name} and {@code sender.email}.
- * <p> Let {@code sender.name = "Test Name Jr."} and {@code sender.email = "TestNameJr@gmail.com"}
- *
- * <p>If the queryExpression is "Test". We will have 2 matches.
- *
- * <p> Match-1
- * <p>{@link MatchInfo#getPropertyPath()} returns "sender.name"
- * <p>{@link MatchInfo#getFullText()} returns "Test Name Jr."
- * <p>{@link MatchInfo#getExactMatchPosition()} returns [0, 4]
- * <p>{@link MatchInfo#getExactMatch()} returns "Test"
- * <p>{@link MatchInfo#getSnippetPosition()} returns [0, 9]
- * <p>{@link MatchInfo#getSnippet()} returns "Test Name Jr."
- * <p> Match-2
- * <p>{@link MatchInfo#getPropertyPath()} returns "sender.email"
- * <p>{@link MatchInfo#getFullText()} returns "TestNameJr@gmail.com"
- * <p>{@link MatchInfo#getExactMatchPosition()} returns [0, 20]
- * <p>{@link MatchInfo#getExactMatch()} returns "TestNameJr@gmail.com"
- * <p>{@link MatchInfo#getSnippetPosition()} returns [0, 20]
- * <p>{@link MatchInfo#getSnippet()} returns "TestNameJr@gmail.com"
- * @hide
- */
-// TODO(sidchhabra): Capture real snippet after integration with icingLib.
-public final class MatchInfo {
-
-    private final String mPropertyPath;
-    private final SnippetMatchProto mSnippetMatch;
-    private final AppSearchDocument mDocument;
-    /**
-     * List of content with same property path in a document when there are multiple matches in
-     * repeated sections.
-     */
-    private final String[] mValues;
-
-    /** @hide */
-    public MatchInfo(@NonNull String propertyPath, @NonNull SnippetMatchProto snippetMatch,
-            @NonNull AppSearchDocument document) {
-        mPropertyPath = propertyPath;
-        mSnippetMatch = snippetMatch;
-        mDocument = document;
-        // In IcingLib snippeting is available for only 3 data types i.e String, double and long,
-        // so we need to check which of these three are requested.
-        // TODO (sidchhabra): getPropertyStringArray takes property name, handle for property path.
-        String[] values = mDocument.getPropertyStringArray(propertyPath);
-        if (values == null) {
-            values = doubleToString(mDocument.getPropertyDoubleArray(propertyPath));
-        }
-        if (values == null) {
-            values = longToString(mDocument.getPropertyLongArray(propertyPath));
-        }
-        if (values == null) {
-            throw new IllegalStateException("No content found for requested property path!");
-        }
-        mValues = values;
-    }
-
-    /**
-     * Gets the property path corresponding to the given entry.
-     * <p>Property Path: '.' - delimited sequence of property names indicating which property in
-     * the Document these snippets correspond to.
-     * <p>Example properties: 'body', 'sender.name', 'sender.emailaddress', etc.
-     * For class example 1 this returns "subject"
-     */
-    @NonNull
-    public String getPropertyPath() {
-        return mPropertyPath;
-    }
-
-    /**
-     * Gets the full text corresponding to the given entry.
-     * <p>For class example this returns "A commonly used fake word is foo. Another nonsense word
-     * that’s used a lot is bar."
-     */
-    @NonNull
-    public String getFullText() {
-        return mValues[mSnippetMatch.getValuesIndex()];
-    }
-
-    /**
-     * Gets the exact match range corresponding to the given entry.
-     * <p>For class example 1 this returns [29, 32]
-     */
-    @NonNull
-    public Range getExactMatchPosition() {
-        return new Range(mSnippetMatch.getExactMatchPosition(),
-                mSnippetMatch.getExactMatchPosition() + mSnippetMatch.getExactMatchBytes());
-    }
-
-    /**
-     * Gets the exact match corresponding to the given entry.
-     * <p>For class example 1 this returns "foo"
-     */
-    @NonNull
-    public CharSequence getExactMatch() {
-        return getSubstring(getExactMatchPosition());
-    }
-
-    /**
-     * Gets the snippet range corresponding to the given entry.
-     * <p>For class example 1 this returns [29, 41]
-     */
-    @NonNull
-    public Range getSnippetPosition() {
-        return new Range(mSnippetMatch.getWindowPosition(),
-                mSnippetMatch.getWindowPosition() + mSnippetMatch.getWindowBytes());
-    }
-
-    /**
-     * Gets the snippet corresponding to the given entry.
-     * <p>Snippet - Provides a subset of the content to display. The
-     * length of this content can be changed {@link SearchSpec.Builder#setMaxSnippetSize(int)}.
-     * Windowing is centered around the middle of the matched token with content on either side
-     * clipped to token boundaries.
-     * <p>For class example 1 this returns "foo. Another"
-     */
-    @NonNull
-    public CharSequence getSnippet() {
-        return getSubstring(getSnippetPosition());
-    }
-
-    private CharSequence getSubstring(Range range) {
-        return getFullText()
-                .substring((int) range.getLower(), (int) range.getUpper());
-    }
-
-    /** Utility method to convert double[] to String[] */
-    private String[] doubleToString(double[] values) {
-        //TODO(sidchhabra): Implement the method.
-        return null;
-    }
-
-    /** Utility method to convert long[] to String[] */
-    private String[] longToString(long[] values) {
-        //TODO(sidchhabra): Implement the method.
-        return null;
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/SearchResults.java b/apex/appsearch/framework/java/android/app/appsearch/SearchResults.java
deleted file mode 100644
index 7287fe6..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/SearchResults.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-
-import com.google.android.icing.proto.SearchResultProto;
-import com.google.android.icing.proto.SnippetMatchProto;
-import com.google.android.icing.proto.SnippetProto;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-/**
- * SearchResults are a list of results that are returned from a query. Each result from this
- * list contains a document and may contain other fields like snippets based on request.
- * This iterator class is not thread safe.
- * @hide
- */
-public final class SearchResults implements Iterator<SearchResults.Result> {
-
-    private final SearchResultProto mSearchResultProto;
-    private int mNextIdx;
-
-    /** @hide */
-    public SearchResults(SearchResultProto searchResultProto) {
-        mSearchResultProto = searchResultProto;
-    }
-
-    @Override
-    public boolean hasNext() {
-        return mNextIdx < mSearchResultProto.getResultsCount();
-    }
-
-    @NonNull
-    @Override
-    public Result next() {
-        if (!hasNext()) {
-            throw new NoSuchElementException();
-        }
-        Result result = new Result(mSearchResultProto.getResults(mNextIdx));
-        mNextIdx++;
-        return result;
-    }
-
-
-
-    /**
-     * This class represents the result obtained from the query. It will contain the document which
-     * which matched the specified query string and specifications.
-     * @hide
-     */
-    public static final class Result {
-        private final SearchResultProto.ResultProto mResultProto;
-
-        @Nullable
-        private AppSearchDocument mDocument;
-
-        private Result(SearchResultProto.ResultProto resultProto) {
-            mResultProto = resultProto;
-        }
-
-        /**
-         * Contains the matching {@link AppSearchDocument}.
-         * @return Document object which matched the query.
-         * @hide
-         */
-        @NonNull
-        public AppSearchDocument getDocument() {
-            if (mDocument == null) {
-                mDocument = new AppSearchDocument(mResultProto.getDocument());
-            }
-            return mDocument;
-        }
-
-        /**
-         * Contains a list of Snippets that matched the request. Only populated when requested in
-         * {@link SearchSpec.Builder#setMaxSnippetSize(int)}.
-         * @return  List of matches based on {@link SearchSpec}, if snippeting is disabled and this
-         * method is called it will return {@code null}. Users can also restrict snippet population
-         * using {@link SearchSpec.Builder#setNumToSnippet} and
-         * {@link SearchSpec.Builder#setNumMatchesPerProperty}, for all results after that value
-         * this method will return {@code null}.
-         * @hide
-         */
-        // TODO(sidchhabra): Replace Document with proper constructor.
-        @Nullable
-        public List<MatchInfo> getMatchInfo() {
-            if (!mResultProto.hasSnippet()) {
-                return null;
-            }
-            AppSearchDocument document = getDocument();
-            List<MatchInfo> matchList = new ArrayList<>();
-            for (Iterator entryProtoIterator = mResultProto.getSnippet()
-                    .getEntriesList().iterator(); entryProtoIterator.hasNext(); ) {
-                SnippetProto.EntryProto entry = (SnippetProto.EntryProto) entryProtoIterator.next();
-                for (Iterator snippetMatchProtoIterator = entry.getSnippetMatchesList().iterator();
-                        snippetMatchProtoIterator.hasNext(); ) {
-                    matchList.add(new MatchInfo(entry.getPropertyName(),
-                            (SnippetMatchProto) snippetMatchProtoIterator.next(), document));
-                }
-            }
-            return matchList;
-        }
-    }
-
-    @Override
-    public String toString() {
-        return mSearchResultProto.toString();
-    }
-}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/SearchSpec.java b/apex/appsearch/framework/java/android/app/appsearch/SearchSpec.java
deleted file mode 100644
index c276ae1..0000000
--- a/apex/appsearch/framework/java/android/app/appsearch/SearchSpec.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-
-import com.google.android.icing.proto.ResultSpecProto;
-import com.google.android.icing.proto.ScoringSpecProto;
-import com.google.android.icing.proto.SearchSpecProto;
-import com.google.android.icing.proto.TermMatchType;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-
-/**
- * This class represents the specification logic for AppSearch. It can be used to set the type of
- * search, like prefix or exact only or apply filters to search for a specific schema type only etc.
- * @hide
- */
-// TODO(sidchhabra) : AddResultSpec fields for Snippets etc.
-public final class SearchSpec {
-
-    private final SearchSpecProto mSearchSpecProto;
-    private final ResultSpecProto mResultSpecProto;
-    private final ScoringSpecProto mScoringSpecProto;
-
-    private SearchSpec(@NonNull SearchSpecProto searchSpecProto,
-            @NonNull ResultSpecProto resultSpecProto, @NonNull ScoringSpecProto scoringSpecProto) {
-        mSearchSpecProto = searchSpecProto;
-        mResultSpecProto = resultSpecProto;
-        mScoringSpecProto = scoringSpecProto;
-    }
-
-    /** Creates a new {@link SearchSpec.Builder}. */
-    @NonNull
-    public static SearchSpec.Builder newBuilder() {
-        return new SearchSpec.Builder();
-    }
-
-    /** @hide */
-    @NonNull
-    SearchSpecProto getSearchSpecProto() {
-        return mSearchSpecProto;
-    }
-
-    /** @hide */
-    @NonNull
-    ResultSpecProto getResultSpecProto() {
-        return mResultSpecProto;
-    }
-
-    /** @hide */
-    @NonNull
-    ScoringSpecProto getScoringSpecProto() {
-        return mScoringSpecProto;
-    }
-
-    /** Term Match Type for the query. */
-    // NOTE: The integer values of these constants must match the proto enum constants in
-    // {@link com.google.android.icing.proto.SearchSpecProto.termMatchType}
-    @IntDef(prefix = {"TERM_MATCH_TYPE_"}, value = {
-            TERM_MATCH_TYPE_EXACT_ONLY,
-            TERM_MATCH_TYPE_PREFIX
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface TermMatchTypeCode {}
-
-    /**
-     * Query terms will only match exact tokens in the index.
-     * <p>Ex. A query term "foo" will only match indexed token "foo", and not "foot" or "football".
-     */
-    public static final int TERM_MATCH_TYPE_EXACT_ONLY = 1;
-    /**
-     * Query terms will match indexed tokens when the query term is a prefix of the token.
-     * <p>Ex. A query term "foo" will match indexed tokens like "foo", "foot", and "football".
-     */
-    public static final int TERM_MATCH_TYPE_PREFIX = 2;
-
-    /** Ranking Strategy for query result.*/
-    // NOTE: The integer values of these constants must match the proto enum constants in
-    // {@link ScoringSpecProto.RankingStrategy.Code }
-    @IntDef(prefix = {"RANKING_STRATEGY_"}, value = {
-            RANKING_STRATEGY_NONE,
-            RANKING_STRATEGY_DOCUMENT_SCORE,
-            RANKING_STRATEGY_CREATION_TIMESTAMP
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface RankingStrategyCode {}
-
-    /** No Ranking, results are returned in arbitrary order.*/
-    public static final int RANKING_STRATEGY_NONE = 0;
-    /** Ranked by app-provided document scores. */
-    public static final int RANKING_STRATEGY_DOCUMENT_SCORE = 1;
-    /** Ranked by document creation timestamps. */
-    public static final int RANKING_STRATEGY_CREATION_TIMESTAMP = 2;
-
-    /** Order for query result.*/
-    // NOTE: The integer values of these constants must match the proto enum constants in
-    // {@link ScoringSpecProto.Order.Code }
-    @IntDef(prefix = {"ORDER_"}, value = {
-            ORDER_DESCENDING,
-            ORDER_ASCENDING
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface OrderCode {}
-
-    /** Search results will be returned in a descending order. */
-    public static final int ORDER_DESCENDING = 0;
-    /** Search results will be returned in an ascending order. */
-    public static final int ORDER_ASCENDING = 1;
-
-    /** Builder for {@link SearchSpec objects}. */
-    public static final class Builder {
-
-        private final SearchSpecProto.Builder mSearchSpecBuilder = SearchSpecProto.newBuilder();
-        private final ResultSpecProto.Builder mResultSpecBuilder = ResultSpecProto.newBuilder();
-        private final ScoringSpecProto.Builder mScoringSpecBuilder = ScoringSpecProto.newBuilder();
-        private final ResultSpecProto.SnippetSpecProto.Builder mSnippetSpecBuilder =
-                ResultSpecProto.SnippetSpecProto.newBuilder();
-
-        private Builder() {
-        }
-
-        /**
-         * Indicates how the query terms should match {@link TermMatchTypeCode} in the index.
-         */
-        @NonNull
-        public Builder setTermMatchType(@TermMatchTypeCode int termMatchTypeCode) {
-            TermMatchType.Code termMatchTypeCodeProto =
-                    TermMatchType.Code.forNumber(termMatchTypeCode);
-            if (termMatchTypeCodeProto == null) {
-                throw new IllegalArgumentException("Invalid term match type: "
-                        + termMatchTypeCode);
-            }
-            mSearchSpecBuilder.setTermMatchType(termMatchTypeCodeProto);
-            return this;
-        }
-
-        /**
-         * Adds a Schema type filter to {@link SearchSpec} Entry. Only search for documents that
-         * have the specified schema types.
-         * <p>If unset, the query will search over all schema types.
-         */
-        @NonNull
-        public Builder setSchemaTypes(@NonNull String... schemaTypes) {
-            for (String schemaType : schemaTypes) {
-                mSearchSpecBuilder.addSchemaTypeFilters(schemaType);
-            }
-            return this;
-        }
-
-        /** Sets the maximum number of results to retrieve from the query */
-        @NonNull
-        public SearchSpec.Builder setNumToRetrieve(int numToRetrieve) {
-            mResultSpecBuilder.setNumToRetrieve(numToRetrieve);
-            return this;
-        }
-
-        /** Sets ranking strategy for AppSearch results.*/
-        @NonNull
-        public Builder setRankingStrategy(@RankingStrategyCode int rankingStrategy) {
-            ScoringSpecProto.RankingStrategy.Code rankingStrategyCodeProto =
-                    ScoringSpecProto.RankingStrategy.Code.forNumber(rankingStrategy);
-            if (rankingStrategyCodeProto == null) {
-                throw new IllegalArgumentException("Invalid result ranking strategy: "
-                        + rankingStrategyCodeProto);
-            }
-            mScoringSpecBuilder.setRankBy(rankingStrategyCodeProto);
-            return this;
-        }
-
-        /**
-         * Indicates the order of returned search results, the default is DESC, meaning that results
-         * with higher scores come first.
-         * <p>This order field will be ignored if RankingStrategy = {@code RANKING_STRATEGY_NONE}.
-         */
-        @NonNull
-        public Builder setOrder(@OrderCode int order) {
-            ScoringSpecProto.Order.Code orderCodeProto =
-                    ScoringSpecProto.Order.Code.forNumber(order);
-            if (orderCodeProto == null) {
-                throw new IllegalArgumentException("Invalid result ranking order: "
-                        + orderCodeProto);
-            }
-            mScoringSpecBuilder.setOrderBy(orderCodeProto);
-            return this;
-        }
-
-        /**
-         * Only the first {@code numToSnippet} documents based on the ranking strategy
-         * will have snippet information provided.
-         * <p>If set to 0 (default), snippeting is disabled and
-         * {@link SearchResults.Result#getMatchInfo} will return {@code null} for that result.
-         */
-        @NonNull
-        public SearchSpec.Builder setNumToSnippet(int numToSnippet) {
-            mSnippetSpecBuilder.setNumToSnippet(numToSnippet);
-            return this;
-        }
-
-        /**
-         * Only the first {@code numMatchesPerProperty} matches for a every property of
-         * {@link AppSearchDocument} will contain snippet information.
-         * <p>If set to 0, snippeting is disabled and {@link SearchResults.Result#getMatchInfo}
-         * will return {@code null} for that result.
-         */
-        @NonNull
-        public SearchSpec.Builder setNumMatchesPerProperty(int numMatchesPerProperty) {
-            mSnippetSpecBuilder.setNumMatchesPerProperty(numMatchesPerProperty);
-            return this;
-        }
-
-        /**
-         * Sets {@code maxSnippetSize}, the maximum snippet size. Snippet windows start at
-         * {@code maxSnippetSize/2} bytes before the middle of the matching token and end at
-         * {@code maxSnippetSize/2} bytes after the middle of the matching token. It respects
-         * token boundaries, therefore the returned window may be smaller than requested.
-         * <p> Setting {@code maxSnippetSize} to 0 will disable windowing and an empty string will
-         * be returned. If matches enabled is also set to false, then snippeting is disabled.
-         * <p>Ex. {@code maxSnippetSize} = 16. "foo bar baz bat rat" with a query of "baz" will
-         * return a window of "bar baz bat" which is only 11 bytes long.
-         */
-        @NonNull
-        public SearchSpec.Builder setMaxSnippetSize(int maxSnippetSize) {
-            mSnippetSpecBuilder.setMaxWindowBytes(maxSnippetSize);
-            return this;
-        }
-
-        /**
-         * Constructs a new {@link SearchSpec} from the contents of this builder.
-         *
-         * <p>After calling this method, the builder must no longer be used.
-         */
-        @NonNull
-        public SearchSpec build() {
-            if (mSearchSpecBuilder.getTermMatchType() == TermMatchType.Code.UNKNOWN) {
-                throw new IllegalSearchSpecException("Missing termMatchType field.");
-            }
-            mResultSpecBuilder.setSnippetSpec(mSnippetSpecBuilder);
-            return new SearchSpec(mSearchSpecBuilder.build(), mResultSpecBuilder.build(),
-                    mScoringSpecBuilder.build());
-        }
-    }
-}
diff --git a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java
deleted file mode 100644
index 6293ee7..0000000
--- a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2020 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.appsearch;
-
-import android.annotation.NonNull;
-import android.app.appsearch.AppSearchBatchResult;
-import android.app.appsearch.IAppSearchManager;
-import android.content.Context;
-import android.os.Binder;
-import android.os.UserHandle;
-
-import com.android.internal.infra.AndroidFuture;
-import com.android.internal.util.Preconditions;
-import com.android.server.SystemService;
-import com.android.server.appsearch.impl.AppSearchImpl;
-import com.android.server.appsearch.impl.FakeIcing;
-import com.android.server.appsearch.impl.ImplInstanceManager;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.SchemaProto;
-import com.google.android.icing.proto.SearchResultProto;
-import com.google.android.icing.proto.SearchSpecProto;
-import com.google.android.icing.protobuf.InvalidProtocolBufferException;
-
-import java.util.List;
-
-/**
- * TODO(b/142567528): add comments when implement this class
- */
-public class AppSearchManagerService extends SystemService {
-
-    public AppSearchManagerService(Context context) {
-        super(context);
-        mFakeIcing = new FakeIcing();
-    }
-
-    private final FakeIcing mFakeIcing;
-
-    @Override
-    public void onStart() {
-        publishBinderService(Context.APP_SEARCH_SERVICE, new Stub());
-    }
-
-    private class Stub extends IAppSearchManager.Stub {
-        @Override
-        public void setSchema(byte[] schemaBytes, boolean forceOverride, AndroidFuture callback) {
-            Preconditions.checkNotNull(schemaBytes);
-            Preconditions.checkNotNull(callback);
-            int callingUid = Binder.getCallingUidOrThrow();
-            int callingUserId = UserHandle.getUserId(callingUid);
-            long callingIdentity = Binder.clearCallingIdentity();
-            try {
-                SchemaProto schema = SchemaProto.parseFrom(schemaBytes);
-                AppSearchImpl impl = ImplInstanceManager.getInstance(getContext(), callingUserId);
-                impl.setSchema(callingUid, schema, forceOverride);
-                callback.complete(null);
-            } catch (Throwable t) {
-                callback.completeExceptionally(t);
-            } finally {
-                Binder.restoreCallingIdentity(callingIdentity);
-            }
-        }
-
-        @Override
-        public void putDocuments(
-                List documentsBytes, AndroidFuture<AppSearchBatchResult> callback) {
-            Preconditions.checkNotNull(documentsBytes);
-            Preconditions.checkNotNull(callback);
-            int callingUid = Binder.getCallingUidOrThrow();
-            int callingUserId = UserHandle.getUserId(callingUid);
-            long callingIdentity = Binder.clearCallingIdentity();
-            try {
-                AppSearchImpl impl = ImplInstanceManager.getInstance(getContext(), callingUserId);
-                AppSearchBatchResult.Builder<String, Void> resultBuilder =
-                        AppSearchBatchResult.newBuilder();
-                for (int i = 0; i < documentsBytes.size(); i++) {
-                    byte[] documentBytes = (byte[]) documentsBytes.get(i);
-                    DocumentProto document = DocumentProto.parseFrom(documentBytes);
-                    try {
-                        impl.putDocument(callingUid, document);
-                        resultBuilder.setSuccess(document.getUri(), /*value=*/ null);
-                    } catch (Throwable t) {
-                        resultBuilder.setFailure(document.getUri(), t);
-                    }
-                }
-                callback.complete(resultBuilder.build());
-            } catch (Throwable t) {
-                callback.completeExceptionally(t);
-            } finally {
-                Binder.restoreCallingIdentity(callingIdentity);
-            }
-        }
-        // TODO(sidchhabra):Init FakeIcing properly.
-        // TODO(sidchhabra): Do this in a threadpool.
-        @Override
-        public void query(@NonNull byte[] searchSpec, @NonNull byte[] resultSpec,
-                @NonNull byte[] scoringSpec, AndroidFuture callback) {
-            Preconditions.checkNotNull(searchSpec);
-            Preconditions.checkNotNull(resultSpec);
-            Preconditions.checkNotNull(scoringSpec);
-            SearchSpecProto searchSpecProto = null;
-            try {
-                searchSpecProto = SearchSpecProto.parseFrom(searchSpec);
-            } catch (InvalidProtocolBufferException e) {
-                throw new RuntimeException(e);
-            }
-            SearchResultProto searchResults =
-                    mFakeIcing.query(searchSpecProto.getQuery());
-            callback.complete(searchResults.toByteArray());
-        }
-    }
-}
diff --git a/apex/appsearch/service/java/com/android/server/appsearch/TEST_MAPPING b/apex/appsearch/service/java/com/android/server/appsearch/TEST_MAPPING
deleted file mode 100644
index ca5b884..0000000
--- a/apex/appsearch/service/java/com/android/server/appsearch/TEST_MAPPING
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "presubmit": [
-    {
-      "name": "CtsAppSearchTestCases"
-    },
-    {
-      "name": "FrameworksServicesTests",
-      "options": [
-        {
-          "include-filter": "com.android.server.appsearch"
-        }
-      ]
-    },
-    {
-      "name": "FrameworksCoreTests",
-      "options": [
-        {
-           "include-filter": "android.app.appsearch"
-        }
-      ]
-    }
-  ]
-}
diff --git a/apex/appsearch/service/java/com/android/server/appsearch/impl/AppSearchImpl.java b/apex/appsearch/service/java/com/android/server/appsearch/impl/AppSearchImpl.java
deleted file mode 100644
index 04b4b14..0000000
--- a/apex/appsearch/service/java/com/android/server/appsearch/impl/AppSearchImpl.java
+++ /dev/null
@@ -1,168 +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.server.appsearch.impl;
-
-import android.annotation.NonNull;
-import android.annotation.UserIdInt;
-import android.content.Context;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.PropertyConfigProto;
-import com.google.android.icing.proto.PropertyProto;
-import com.google.android.icing.proto.SchemaProto;
-import com.google.android.icing.proto.SchemaTypeConfigProto;
-
-/**
- * Manages interaction with {@link FakeIcing} and other components to implement AppSearch
- * functionality.
- */
-public final class AppSearchImpl {
-    private final Context mContext;
-    private final @UserIdInt int mUserId;
-    private final FakeIcing mFakeIcing = new FakeIcing();
-
-    AppSearchImpl(@NonNull Context context, @UserIdInt int userId) {
-        mContext = context;
-        mUserId = userId;
-    }
-
-    /**
-     * Updates the AppSearch schema for this app.
-     *
-     * @param callingUid The uid of the app calling AppSearch.
-     * @param origSchema The schema to set for this app.
-     * @param forceOverride Whether to force-apply the schema even if it is incompatible. Documents
-     *     which do not comply with the new schema will be deleted.
-     */
-    public void setSchema(int callingUid, @NonNull SchemaProto origSchema, boolean forceOverride) {
-        // Rewrite schema type names to include the calling app's package and uid.
-        String typePrefix = getTypePrefix(callingUid);
-        SchemaProto.Builder schemaBuilder = origSchema.toBuilder();
-        rewriteSchemaTypes(typePrefix, schemaBuilder);
-
-        // TODO(b/145635424): Save in schema type map
-        // TODO(b/145635424): Apply the schema to Icing and report results
-    }
-
-    /**
-     * Rewrites all types mentioned in the given {@code schemaBuilder} to prepend
-     * {@code typePrefix}.
-     *
-     * @param typePrefix The prefix to add
-     * @param schemaBuilder The schema to mutate
-     */
-    @VisibleForTesting
-    void rewriteSchemaTypes(
-            @NonNull String typePrefix, @NonNull SchemaProto.Builder schemaBuilder) {
-        for (int typeIdx = 0; typeIdx < schemaBuilder.getTypesCount(); typeIdx++) {
-            SchemaTypeConfigProto.Builder typeConfigBuilder =
-                    schemaBuilder.getTypes(typeIdx).toBuilder();
-
-            // Rewrite SchemaProto.types.schema_type
-            String newSchemaType = typePrefix + typeConfigBuilder.getSchemaType();
-            typeConfigBuilder.setSchemaType(newSchemaType);
-
-            // Rewrite SchemaProto.types.properties.schema_type
-            for (int propertyIdx = 0;
-                    propertyIdx < typeConfigBuilder.getPropertiesCount();
-                    propertyIdx++) {
-                PropertyConfigProto.Builder propertyConfigBuilder =
-                        typeConfigBuilder.getProperties(propertyIdx).toBuilder();
-                if (!propertyConfigBuilder.getSchemaType().isEmpty()) {
-                    String newPropertySchemaType =
-                            typePrefix + propertyConfigBuilder.getSchemaType();
-                    propertyConfigBuilder.setSchemaType(newPropertySchemaType);
-                    typeConfigBuilder.setProperties(propertyIdx, propertyConfigBuilder);
-                }
-            }
-
-            schemaBuilder.setTypes(typeIdx, typeConfigBuilder);
-        }
-    }
-
-    /**
-     * Adds a document to the AppSearch index.
-     *
-     * @param callingUid The uid of the app calling AppSearch.
-     * @param origDocument The document to index.
-     */
-    public void putDocument(int callingUid, @NonNull DocumentProto origDocument) {
-        // Rewrite the type names to include the app's prefix
-        String typePrefix = getTypePrefix(callingUid);
-        DocumentProto.Builder documentBuilder = origDocument.toBuilder();
-        rewriteDocumentTypes(typePrefix, documentBuilder);
-        mFakeIcing.put(documentBuilder.build());
-    }
-
-    /**
-     * Rewrites all types mentioned anywhere in {@code documentBuilder} to prepend
-     * {@code typePrefix}.
-     *
-     * @param typePrefix The prefix to add
-     * @param documentBuilder The document to mutate
-     */
-    @VisibleForTesting
-    void rewriteDocumentTypes(
-            @NonNull String typePrefix,
-            @NonNull DocumentProto.Builder documentBuilder) {
-        // Rewrite the type name to include the app's prefix
-        String newSchema = typePrefix + documentBuilder.getSchema();
-        documentBuilder.setSchema(newSchema);
-
-        // Add namespace. If we ever allow users to set their own namespaces, this will have
-        // to change to prepend the prefix instead of setting the whole namespace. We will also have
-        // to store the namespaces in a map similar to the type map so we can rewrite queries with
-        // empty namespaces.
-        documentBuilder.setNamespace(typePrefix);
-
-        // Recurse into derived documents
-        for (int propertyIdx = 0;
-                propertyIdx < documentBuilder.getPropertiesCount();
-                propertyIdx++) {
-            int documentCount = documentBuilder.getProperties(propertyIdx).getDocumentValuesCount();
-            if (documentCount > 0) {
-                PropertyProto.Builder propertyBuilder =
-                        documentBuilder.getProperties(propertyIdx).toBuilder();
-                for (int documentIdx = 0; documentIdx < documentCount; documentIdx++) {
-                    DocumentProto.Builder derivedDocumentBuilder =
-                            propertyBuilder.getDocumentValues(documentIdx).toBuilder();
-                    rewriteDocumentTypes(typePrefix, derivedDocumentBuilder);
-                    propertyBuilder.setDocumentValues(documentIdx, derivedDocumentBuilder);
-                }
-                documentBuilder.setProperties(propertyIdx, propertyBuilder);
-            }
-        }
-    }
-
-   /**
-     * Returns a type prefix in a format like {@code com.example.package@1000/} or
-     * {@code com.example.sharedname:5678@1000/}.
-     */
-    @NonNull
-    private String getTypePrefix(int callingUid) {
-        // For regular apps, this call will return the package name. If callingUid is an
-        // android:sharedUserId, this value may be another type of name and have a :uid suffix.
-        String callingUidName = mContext.getPackageManager().getNameForUid(callingUid);
-        if (callingUidName == null) {
-            // Not sure how this is possible --- maybe app was uninstalled?
-            throw new IllegalStateException("Failed to look up package name for uid " + callingUid);
-        }
-        return callingUidName + "@" + mUserId + "/";
-    }
-}
diff --git a/apex/appsearch/service/java/com/android/server/appsearch/impl/FakeIcing.java b/apex/appsearch/service/java/com/android/server/appsearch/impl/FakeIcing.java
deleted file mode 100644
index d07ef4b..0000000
--- a/apex/appsearch/service/java/com/android/server/appsearch/impl/FakeIcing.java
+++ /dev/null
@@ -1,169 +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.server.appsearch.impl;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import android.util.SparseArray;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.PropertyProto;
-import com.google.android.icing.proto.SearchResultProto;
-import com.google.android.icing.proto.StatusProto;
-
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * Fake in-memory implementation of the Icing key-value store and reverse index.
- * <p>
- * Currently, only queries by single exact term are supported. There is no support for persistence,
- * namespaces, i18n tokenization, or schema.
- */
-public class FakeIcing {
-    private final AtomicInteger mNextDocId = new AtomicInteger();
-    private final Map<String, Integer> mUriToDocIdMap = new ArrayMap<>();
-    /** Array of Documents where index into the array is the docId. */
-    private final SparseArray<DocumentProto> mDocStore = new SparseArray<>();
-    /** Map of term to posting-list (the set of DocIds containing that term). */
-    private final Map<String, Set<Integer>> mIndex = new ArrayMap<>();
-
-    /**
-     * Inserts a document into the index.
-     *
-     * @param document The document to insert.
-     */
-    public void put(@NonNull DocumentProto document) {
-        String uri = document.getUri();
-
-        // Update mDocIdMap
-        Integer docId = mUriToDocIdMap.get(uri);
-        if (docId != null) {
-            // Delete the old doc
-            mDocStore.remove(docId);
-        }
-
-        // Allocate a new docId
-        docId = mNextDocId.getAndIncrement();
-        mUriToDocIdMap.put(uri, docId);
-
-        // Update mDocStore
-        mDocStore.put(docId, document);
-
-        // Update mIndex
-        indexDocument(docId, document);
-    }
-
-    /**
-     * Retrieves a document from the index.
-     *
-     * @param uri The URI of the document to retrieve.
-     * @return The body of the document, or {@code null} if no such document exists.
-     */
-    @Nullable
-    public DocumentProto get(@NonNull String uri) {
-        Integer docId = mUriToDocIdMap.get(uri);
-        if (docId == null) {
-            return null;
-        }
-        return mDocStore.get(docId);
-    }
-
-    /**
-     * Returns documents containing the given term.
-     *
-     * @param term A single exact term to look up in the index.
-     * @return A {@link SearchResultProto} containing the matching documents, which may have no
-     *   results if no documents match.
-     */
-    @NonNull
-    public SearchResultProto query(@NonNull String term) {
-        String normTerm = normalizeString(term);
-        Set<Integer> docIds = mIndex.get(normTerm);
-        SearchResultProto.Builder results = SearchResultProto.newBuilder()
-                .setStatus(StatusProto.newBuilder().setCode(StatusProto.Code.OK));
-        if (docIds == null || docIds.isEmpty()) {
-            return results.build();
-        }
-
-        for (int docId : docIds) {
-            DocumentProto document = mDocStore.get(docId);
-            if (document != null) {
-                results.addResults(
-                        SearchResultProto.ResultProto.newBuilder().setDocument(document));
-            }
-        }
-        return results.build();
-    }
-
-    /**
-     * Deletes a document by its URI.
-     *
-     * @param uri The URI of the document to be deleted.
-     */
-    public void delete(@NonNull String uri) {
-        // Update mDocIdMap
-        Integer docId = mUriToDocIdMap.get(uri);
-        if (docId != null) {
-            // Delete the old doc
-            mDocStore.remove(docId);
-            mUriToDocIdMap.remove(uri);
-        }
-    }
-
-    private void indexDocument(int docId, DocumentProto document) {
-        for (PropertyProto property : document.getPropertiesList()) {
-            for (String stringValue : property.getStringValuesList()) {
-                String[] words = normalizeString(stringValue).split("\\s+");
-                for (String word : words) {
-                    indexTerm(docId, word);
-                }
-            }
-            for (Long longValue : property.getInt64ValuesList()) {
-                indexTerm(docId, longValue.toString());
-            }
-            for (Double doubleValue : property.getDoubleValuesList()) {
-                indexTerm(docId, doubleValue.toString());
-            }
-            for (Boolean booleanValue : property.getBooleanValuesList()) {
-                indexTerm(docId, booleanValue.toString());
-            }
-            // Intentionally skipping bytes values
-            for (DocumentProto documentValue : property.getDocumentValuesList()) {
-                indexDocument(docId, documentValue);
-            }
-        }
-    }
-
-    private void indexTerm(int docId, String term) {
-        Set<Integer> postingList = mIndex.get(term);
-        if (postingList == null) {
-            postingList = new ArraySet<>();
-            mIndex.put(term, postingList);
-        }
-        postingList.add(docId);
-    }
-
-    /** Strips out punctuation and converts to lowercase. */
-    private static String normalizeString(String input) {
-        return input.replaceAll("\\p{P}", "").toLowerCase(Locale.getDefault());
-    }
-}
diff --git a/apex/appsearch/service/java/com/android/server/appsearch/impl/ImplInstanceManager.java b/apex/appsearch/service/java/com/android/server/appsearch/impl/ImplInstanceManager.java
deleted file mode 100644
index 395e30e..0000000
--- a/apex/appsearch/service/java/com/android/server/appsearch/impl/ImplInstanceManager.java
+++ /dev/null
@@ -1,56 +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.server.appsearch.impl;
-
-import android.annotation.NonNull;
-import android.annotation.UserIdInt;
-import android.content.Context;
-import android.util.SparseArray;
-
-/**
- * Manages the lifecycle of instances of {@link AppSearchImpl}.
- *
- * <p>These instances are managed per unique device-user.
- */
-public final class ImplInstanceManager {
-    private static final SparseArray<AppSearchImpl> sInstances = new SparseArray<>();
-
-    /**
-     * Gets an instance of AppSearchImpl for the given user.
-     *
-     * <p>If no AppSearchImpl instance exists for this user, Icing will be initialized and one will
-     * be created.
-     *
-     * @param context The Android context
-     * @param userId The multi-user userId of the device user calling AppSearch
-     * @return An initialized {@link AppSearchImpl} for this user
-     */
-    @NonNull
-    public static AppSearchImpl getInstance(@NonNull Context context, @UserIdInt int userId) {
-        AppSearchImpl instance = sInstances.get(userId);
-        if (instance == null) {
-            synchronized (ImplInstanceManager.class) {
-                instance = sInstances.get(userId);
-                if (instance == null) {
-                    instance = new AppSearchImpl(context, userId);
-                    sInstances.put(userId, instance);
-                }
-            }
-        }
-        return instance;
-    }
-}
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
index 91df1df..05c6611 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
@@ -74,6 +74,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.CollectionUtils;
 import com.android.internal.util.DumpUtils;
 import com.android.internal.util.FastXmlSerializer;
@@ -140,6 +141,7 @@
 
     private final Context mContext;
     private final Handler mHandler;
+    private final Handler mBackgroundHandler;
     private final Injector mInjector;
     private final SessionStateChangeListener mSessionStateChangeListener =
             new SessionStateChangeListener();
@@ -160,11 +162,12 @@
         mContext = context;
         mInjector = injector;
         mHandler = mInjector.initializeMessageHandler();
+        mBackgroundHandler = mInjector.getBackgroundHandler();
     }
 
     private static Handler initializeMessageHandler() {
         final HandlerThread handlerThread = new ServiceThread(TAG,
-                Process.THREAD_PRIORITY_BACKGROUND, true /* allowIo */);
+                Process.THREAD_PRIORITY_DEFAULT, true /* allowIo */);
         handlerThread.start();
         final Handler handler = new Handler(handlerThread.getLooper());
         Watchdog.getInstance().addThread(handler);
@@ -418,7 +421,7 @@
         public void onStateChanged(@NonNull BlobStoreSession session) {
             mHandler.post(PooledLambda.obtainRunnable(
                     BlobStoreManagerService::onStateChangedInternal,
-                    BlobStoreManagerService.this, session));
+                    BlobStoreManagerService.this, session).recycleOnUse());
         }
     }
 
@@ -437,7 +440,11 @@
                 }
                 break;
             case STATE_COMMITTED:
-                session.verifyBlobData();
+                mBackgroundHandler.post(() -> {
+                    session.computeDigest();
+                    mHandler.post(PooledLambda.obtainRunnable(
+                            BlobStoreSession::verifyBlobData, session).recycleOnUse());
+                });
                 break;
             case STATE_VERIFIED_VALID:
                 synchronized (mBlobsLock) {
@@ -1412,5 +1419,9 @@
         public Handler initializeMessageHandler() {
             return BlobStoreManagerService.initializeMessageHandler();
         }
+
+        public Handler getBackgroundHandler() {
+            return BackgroundThread.getHandler();
+        }
     }
 }
\ No newline at end of file
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java
index d33a09f..62701e5 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java
@@ -96,6 +96,10 @@
     @GuardedBy("mRevocableFds")
     private ArrayList<RevocableFileDescriptor> mRevocableFds = new ArrayList<>();
 
+    // This will be accessed from only one thread at any point of time, so no need to grab
+    // a lock for this.
+    private byte[] mDataDigest;
+
     @GuardedBy("mSessionLock")
     private int mState = STATE_CLOSED;
 
@@ -343,12 +347,12 @@
 
     @Override
     public void close() {
-        closeSession(STATE_CLOSED);
+        closeSession(STATE_CLOSED, false /* sendCallback */);
     }
 
     @Override
     public void abandon() {
-        closeSession(STATE_ABANDONED);
+        closeSession(STATE_ABANDONED, true /* sendCallback */);
     }
 
     @Override
@@ -356,11 +360,11 @@
         synchronized (mSessionLock) {
             mBlobCommitCallback = callback;
 
-            closeSession(STATE_COMMITTED);
+            closeSession(STATE_COMMITTED, true /* sendCallback */);
         }
     }
 
-    private void closeSession(int state) {
+    private void closeSession(int state, boolean sendCallback) {
         assertCallerIsOwner();
         synchronized (mSessionLock) {
             if (mState != STATE_OPENED) {
@@ -377,23 +381,27 @@
             mState = state;
             revokeAllFdsLocked();
 
-            mListener.onStateChanged(this);
+            if (sendCallback) {
+                mListener.onStateChanged(this);
+            }
         }
     }
 
-    void verifyBlobData() {
-        byte[] actualDigest = null;
+    void computeDigest() {
         try {
             Trace.traceBegin(TRACE_TAG_SYSTEM_SERVER,
                     "computeBlobDigest-i" + mSessionId + "-l" + getSessionFile().length());
-            actualDigest = FileUtils.digest(getSessionFile(), mBlobHandle.algorithm);
+            mDataDigest = FileUtils.digest(getSessionFile(), mBlobHandle.algorithm);
         } catch (IOException | NoSuchAlgorithmException e) {
             Slog.e(TAG, "Error computing the digest", e);
         } finally {
             Trace.traceEnd(TRACE_TAG_SYSTEM_SERVER);
         }
+    }
+
+    void verifyBlobData() {
         synchronized (mSessionLock) {
-            if (actualDigest != null && Arrays.equals(actualDigest, mBlobHandle.digest)) {
+            if (mDataDigest != null && Arrays.equals(mDataDigest, mBlobHandle.digest)) {
                 mState = STATE_VERIFIED_VALID;
                 // Commit callback will be sent once the data is persisted.
             } else {
@@ -451,6 +459,10 @@
                 return "<abandoned>";
             case STATE_COMMITTED:
                 return "<committed>";
+            case STATE_VERIFIED_VALID:
+                return "<verified_valid>";
+            case STATE_VERIFIED_INVALID:
+                return "<verified_invalid>";
             default:
                 Slog.wtf(TAG, "Unknown state: " + state);
                 return "<unknown>";
diff --git a/apex/extservices/Android.bp b/apex/extservices/Android.bp
index c89f694..021246c 100644
--- a/apex/extservices/Android.bp
+++ b/apex/extservices/Android.bp
@@ -20,6 +20,7 @@
 
 apex_defaults {
     name: "com.android.extservices-defaults",
+    updatable: true,
     key: "com.android.extservices.key",
     certificate: ":com.android.extservices.certificate",
     apps: ["ExtServices"],
diff --git a/apex/jobscheduler/framework/java/android/os/DeviceIdleManager.java b/apex/jobscheduler/framework/java/android/os/DeviceIdleManager.java
index 4c44334..f863718 100644
--- a/apex/jobscheduler/framework/java/android/os/DeviceIdleManager.java
+++ b/apex/jobscheduler/framework/java/android/os/DeviceIdleManager.java
@@ -53,8 +53,7 @@
         try {
             return mService.getSystemPowerWhitelistExceptIdle();
         } catch (RemoteException e) {
-            e.rethrowFromSystemServer();
-            return new String[0];
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -66,21 +65,7 @@
         try {
             return mService.getSystemPowerWhitelist();
         } catch (RemoteException e) {
-            e.rethrowFromSystemServer();
-            return new String[0];
-        }
-    }
-
-    /**
-     * Return whether a given package is in the power-save whitelist or not.
-     * @hide
-     */
-    public boolean isApplicationWhitelisted(@NonNull String packageName) {
-        try {
-            return mService.isPowerSaveWhitelistApp(packageName);
-        } catch (RemoteException e) {
-            e.rethrowFromSystemServer();
-            return false;
+            throw e.rethrowFromSystemServer();
         }
     }
 }
diff --git a/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java b/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java
index 4b4fb96..d54d857 100644
--- a/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java
+++ b/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java
@@ -95,7 +95,48 @@
         try {
             mService.addPowerSaveWhitelistApps(packageNames);
         } catch (RemoteException e) {
-            e.rethrowFromSystemServer();
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Get a list of app IDs of app that are whitelisted. This does not include temporarily
+     * whitelisted apps.
+     *
+     * @param includingIdle Set to true if the app should be whitelisted from device idle as well
+     *                      as other power save restrictions
+     * @hide
+     */
+    @NonNull
+    public int[] getWhitelistedAppIds(boolean includingIdle) {
+        try {
+            if (includingIdle) {
+                return mService.getAppIdWhitelist();
+            } else {
+                return mService.getAppIdWhitelistExceptIdle();
+            }
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Returns true if the app is whitelisted from power save restrictions. This does not include
+     * temporarily whitelisted apps.
+     *
+     * @param includingIdle Set to true if the app should be whitelisted from device
+     *                      idle as well as other power save restrictions
+     * @hide
+     */
+    public boolean isWhitelisted(@NonNull String packageName, boolean includingIdle) {
+        try {
+            if (includingIdle) {
+                return mService.isPowerSaveWhitelistApp(packageName);
+            } else {
+                return mService.isPowerSaveWhitelistExceptIdleApp(packageName);
+            }
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -112,7 +153,7 @@
             mService.addPowerSaveTempWhitelistApp(packageName, durationMs, mContext.getUserId(),
                     reason);
         } catch (RemoteException e) {
-            e.rethrowFromSystemServer();
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -142,8 +183,7 @@
                             packageName, mContext.getUserId(), reason);
             }
         } catch (RemoteException e) {
-            e.rethrowFromSystemServer();
-            return 0;
+            throw e.rethrowFromSystemServer();
         }
     }
 }
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
index b86aba6..fc29c9c 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
@@ -2833,6 +2833,13 @@
                 }
 
                 js.overrideState = (force) ? JobStatus.OVERRIDE_FULL : JobStatus.OVERRIDE_SOFT;
+
+                // Re-evaluate constraints after the override is set in case one of the overridden
+                // constraints was preventing another constraint from thinking it needed to update.
+                for (int c = mControllers.size() - 1; c >= 0; --c) {
+                    mControllers.get(c).reevaluateStateLocked(uid);
+                }
+
                 if (!js.isConstraintsSatisfied()) {
                     js.overrideState = 0;
                     return JobSchedulerShellCommand.CMD_ERR_CONSTRAINTS;
@@ -3034,7 +3041,7 @@
     }
 
     void resetExecutionQuota(@NonNull String pkgName, int userId) {
-        mQuotaController.clearAppStats(pkgName, userId);
+        mQuotaController.clearAppStats(userId, pkgName);
     }
 
     void resetScheduleQuota() {
diff --git a/apex/jobscheduler/service/java/com/android/server/job/TEST_MAPPING b/apex/jobscheduler/service/java/com/android/server/job/TEST_MAPPING
new file mode 100644
index 0000000..cdcd6598
--- /dev/null
+++ b/apex/jobscheduler/service/java/com/android/server/job/TEST_MAPPING
@@ -0,0 +1,35 @@
+{
+    "presubmit": [
+        {
+            "name": "FrameworksMockingServicesTests",
+            "options": [
+                {"include-filter": "com.android.server.job"},
+                {"exclude-annotation": "androidx.test.filters.FlakyTest"}
+            ]
+        },
+        {
+            "name": "FrameworksServicesTests",
+            "options": [
+                {"include-filter": "com.android.server.job"},
+                {"exclude-annotation": "androidx.test.filters.FlakyTest"}
+            ]
+        }
+    ],
+    "postsubmit": [
+        {
+            "name": "CtsJobSchedulerTestCases"
+        },
+        {
+            "name": "FrameworksMockingServicesTests",
+            "options": [
+                {"include-filter": "com.android.server.job"}
+            ]
+        },
+        {
+            "name": "FrameworksServicesTests",
+            "options": [
+                {"include-filter": "com.android.server.job"}
+            ]
+        }
+    ]
+}
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 4393a95..7256371 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
@@ -54,12 +54,14 @@
 import android.util.ArraySet;
 import android.util.KeyValueListParser;
 import android.util.Log;
+import android.util.Pair;
 import android.util.Slog;
 import android.util.SparseArrayMap;
 import android.util.SparseBooleanArray;
 import android.util.SparseSetArray;
 import android.util.proto.ProtoOutputStream;
 
+import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.IndentingPrintWriter;
@@ -74,6 +76,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.PriorityQueue;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
 
@@ -301,10 +304,10 @@
     private final SparseArrayMap<List<TimingSession>> mTimingSessions = new SparseArrayMap<>();
 
     /**
-     * List of alarm listeners for each package that listen for when each package comes back within
-     * quota.
+     * Listener to track and manage when each package comes back within quota.
      */
-    private final SparseArrayMap<QcAlarmListener> mInQuotaAlarmListeners = new SparseArrayMap<>();
+    @GuardedBy("mLock")
+    private final InQuotaAlarmListener mInQuotaAlarmListener = new InQuotaAlarmListener();
 
     /** Cached calculation results for each app, with the standby buckets as the array indices. */
     private final SparseArrayMap<ExecutionStats[]> mExecutionStatsCache = new SparseArrayMap<>();
@@ -579,7 +582,7 @@
             Slog.wtf(TAG, "Told app removed but given null package name.");
             return;
         }
-        clearAppStats(packageName, UserHandle.getUserId(uid));
+        clearAppStats(UserHandle.getUserId(uid), packageName);
         mForegroundUids.delete(uid);
         mUidToPackageCache.remove(uid);
     }
@@ -589,13 +592,13 @@
         mTrackedJobs.delete(userId);
         mPkgTimers.delete(userId);
         mTimingSessions.delete(userId);
-        mInQuotaAlarmListeners.delete(userId);
+        mInQuotaAlarmListener.removeAlarmsLocked(userId);
         mExecutionStatsCache.delete(userId);
         mUidToPackageCache.clear();
     }
 
     /** Drop all historical stats and stop tracking any active sessions for the specified app. */
-    public void clearAppStats(@NonNull String packageName, int userId) {
+    public void clearAppStats(int userId, @NonNull String packageName) {
         mTrackedJobs.delete(userId, packageName);
         Timer timer = mPkgTimers.get(userId, packageName);
         if (timer != null) {
@@ -606,11 +609,7 @@
             mPkgTimers.delete(userId, packageName);
         }
         mTimingSessions.delete(userId, packageName);
-        QcAlarmListener alarmListener = mInQuotaAlarmListeners.get(userId, packageName);
-        if (alarmListener != null) {
-            mAlarmManager.cancel(alarmListener);
-            mInQuotaAlarmListeners.delete(userId, packageName);
-        }
+        mInQuotaAlarmListener.removeAlarmLocked(userId, packageName);
         mExecutionStatsCache.delete(userId, packageName);
     }
 
@@ -1208,12 +1207,7 @@
             // exempted.
             maybeScheduleStartAlarmLocked(userId, packageName, realStandbyBucket);
         } else {
-            QcAlarmListener alarmListener = mInQuotaAlarmListeners.get(userId, packageName);
-            if (alarmListener != null && alarmListener.isWaiting()) {
-                mAlarmManager.cancel(alarmListener);
-                // Set the trigger time to 0 so that the alarm doesn't think it's still waiting.
-                alarmListener.setTriggerTime(0);
-            }
+            mInQuotaAlarmListener.removeAlarmLocked(userId, packageName);
         }
         return changed;
     }
@@ -1229,12 +1223,7 @@
             final String packageName = jobStatus.getSourcePackageName();
             final int realStandbyBucket = jobStatus.getStandbyBucket();
             if (isWithinQuotaLocked(userId, packageName, realStandbyBucket)) {
-                QcAlarmListener alarmListener = mInQuotaAlarmListeners.get(userId, packageName);
-                if (alarmListener != null && alarmListener.isWaiting()) {
-                    mAlarmManager.cancel(alarmListener);
-                    // Set the trigger time to 0 so that the alarm doesn't think it's still waiting.
-                    alarmListener.setTriggerTime(0);
-                }
+                mInQuotaAlarmListener.removeAlarmLocked(userId, packageName);
             } else {
                 mToScheduleStartAlarms.add(userId, packageName, realStandbyBucket);
             }
@@ -1285,7 +1274,6 @@
         final boolean isUnderTimingSessionCountQuota = isUnderSessionCountQuotaLocked(stats,
                 standbyBucket);
 
-        QcAlarmListener alarmListener = mInQuotaAlarmListeners.get(userId, packageName);
         if (stats.executionTimeInWindowMs < mAllowedTimePerPeriodMs
                 && stats.executionTimeInMaxPeriodMs < mMaxExecutionTimeMs
                 && isUnderJobCountQuota
@@ -1297,21 +1285,11 @@
                         + getRemainingExecutionTimeLocked(userId, packageName, standbyBucket)
                         + "ms in its quota.");
             }
-            if (alarmListener != null) {
-                // Cancel any pending alarm.
-                mAlarmManager.cancel(alarmListener);
-                // Set the trigger time to 0 so that the alarm doesn't think it's still waiting.
-                alarmListener.setTriggerTime(0);
-            }
+            mInQuotaAlarmListener.removeAlarmLocked(userId, packageName);
             mHandler.obtainMessage(MSG_CHECK_PACKAGE, userId, 0, packageName).sendToTarget();
             return;
         }
 
-        if (alarmListener == null) {
-            alarmListener = new QcAlarmListener(userId, packageName);
-            mInQuotaAlarmListeners.add(userId, packageName, alarmListener);
-        }
-
         // The time this app will have quota again.
         long inQuotaTimeElapsed = stats.inQuotaTimeElapsed;
         if (!isUnderJobCountQuota && stats.bgJobCountInWindow < stats.jobCountLimit) {
@@ -1325,27 +1303,7 @@
             inQuotaTimeElapsed = Math.max(inQuotaTimeElapsed,
                     stats.sessionRateLimitExpirationTimeElapsed);
         }
-        // Only schedule the alarm if:
-        // 1. There isn't one currently scheduled
-        // 2. The new alarm is significantly earlier than the previous alarm (which could be the
-        // case if the package moves into a higher standby bucket). If it's earlier but not
-        // significantly so, then we essentially delay the job a few extra minutes.
-        // 3. The alarm is after the current alarm by more than the quota buffer.
-        // TODO: this might be overengineering. Simplify if proven safe.
-        if (!alarmListener.isWaiting()
-                || inQuotaTimeElapsed < alarmListener.getTriggerTimeElapsed() - 3 * MINUTE_IN_MILLIS
-                || alarmListener.getTriggerTimeElapsed() < inQuotaTimeElapsed) {
-            if (DEBUG) {
-                Slog.d(TAG, "Scheduling start alarm for " + pkgString);
-            }
-            // If the next time this app will have quota is at least 3 minutes before the
-            // alarm is supposed to go off, reschedule the alarm.
-            mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, inQuotaTimeElapsed,
-                    ALARM_TAG_QUOTA_CHECK, alarmListener, mHandler);
-            alarmListener.setTriggerTime(inQuotaTimeElapsed);
-        } else if (DEBUG) {
-            Slog.d(TAG, "No need to schedule start alarm for " + pkgString);
-        }
+        mInQuotaAlarmListener.addAlarmLocked(userId, packageName, inQuotaTimeElapsed);
     }
 
     private boolean setConstraintSatisfied(@NonNull JobStatus jobStatus, boolean isWithinQuota) {
@@ -1875,32 +1833,161 @@
         }
     }
 
-    private class QcAlarmListener implements AlarmManager.OnAlarmListener {
-        private final int mUserId;
-        private final String mPackageName;
-        private volatile long mTriggerTimeElapsed;
-
-        QcAlarmListener(int userId, String packageName) {
-            mUserId = userId;
-            mPackageName = packageName;
+    static class AlarmQueue extends PriorityQueue<Pair<Package, Long>> {
+        AlarmQueue() {
+            super(1, (o1, o2) -> (int) (o1.second - o2.second));
         }
 
-        boolean isWaiting() {
-            return mTriggerTimeElapsed > 0;
+        /**
+         * Remove any instances of the Package from the queue.
+         *
+         * @return true if an instance was removed, false otherwise.
+         */
+        boolean remove(@NonNull Package pkg) {
+            boolean removed = false;
+            Pair[] alarms = toArray(new Pair[size()]);
+            for (int i = alarms.length - 1; i >= 0; --i) {
+                if (pkg.equals(alarms[i].first)) {
+                    remove(alarms[i]);
+                    removed = true;
+                }
+            }
+            return removed;
+        }
+    }
+
+    /** Track when UPTCs are expected to come back into quota. */
+    private class InQuotaAlarmListener implements AlarmManager.OnAlarmListener {
+        @GuardedBy("mLock")
+        private final AlarmQueue mAlarmQueue = new AlarmQueue();
+        /** The next time the alarm is set to go off, in the elapsed realtime timebase. */
+        @GuardedBy("mLock")
+        private long mTriggerTimeElapsed = 0;
+
+        @GuardedBy("mLock")
+        void addAlarmLocked(int userId, @NonNull String pkgName, long inQuotaTimeElapsed) {
+            final Package pkg = new Package(userId, pkgName);
+            mAlarmQueue.remove(pkg);
+            mAlarmQueue.offer(new Pair<>(pkg, inQuotaTimeElapsed));
+            setNextAlarmLocked();
         }
 
-        void setTriggerTime(long timeElapsed) {
-            mTriggerTimeElapsed = timeElapsed;
+        @GuardedBy("mLock")
+        void removeAlarmLocked(@NonNull Package pkg) {
+            if (mAlarmQueue.remove(pkg)) {
+                setNextAlarmLocked();
+            }
         }
 
-        long getTriggerTimeElapsed() {
-            return mTriggerTimeElapsed;
+        @GuardedBy("mLock")
+        void removeAlarmLocked(int userId, @NonNull String packageName) {
+            removeAlarmLocked(new Package(userId, packageName));
+        }
+
+        @GuardedBy("mLock")
+        void removeAlarmsLocked(int userId) {
+            boolean removed = false;
+            Pair[] alarms = mAlarmQueue.toArray(new Pair[mAlarmQueue.size()]);
+            for (int i = alarms.length - 1; i >= 0; --i) {
+                final Package pkg = (Package) alarms[i].first;
+                if (userId == pkg.userId) {
+                    mAlarmQueue.remove(alarms[i]);
+                    removed = true;
+                }
+            }
+            if (removed) {
+                setNextAlarmLocked();
+            }
+        }
+
+        @GuardedBy("mLock")
+        private void setNextAlarmLocked() {
+            if (mAlarmQueue.size() > 0) {
+                final long nextTriggerTimeElapsed = mAlarmQueue.peek().second;
+                // Only schedule the alarm if one of the following is true:
+                // 1. There isn't one currently scheduled
+                // 2. The new alarm is significantly earlier than the previous alarm. If it's
+                // earlier but not significantly so, then we essentially delay the job a few extra
+                // minutes.
+                // 3. The alarm is after the current alarm.
+                if (mTriggerTimeElapsed == 0
+                        || nextTriggerTimeElapsed < mTriggerTimeElapsed - 3 * MINUTE_IN_MILLIS
+                        || mTriggerTimeElapsed < nextTriggerTimeElapsed) {
+                    if (DEBUG) {
+                        Slog.d(TAG, "Scheduling start alarm at " + nextTriggerTimeElapsed);
+                    }
+                    mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, nextTriggerTimeElapsed,
+                            ALARM_TAG_QUOTA_CHECK, this, mHandler);
+                    mTriggerTimeElapsed = nextTriggerTimeElapsed;
+                }
+            } else {
+                mAlarmManager.cancel(this);
+                mTriggerTimeElapsed = 0;
+            }
         }
 
         @Override
         public void onAlarm() {
-            mHandler.obtainMessage(MSG_CHECK_PACKAGE, mUserId, 0, mPackageName).sendToTarget();
-            mTriggerTimeElapsed = 0;
+            synchronized (mLock) {
+                while (mAlarmQueue.size() > 0) {
+                    final Pair<Package, Long> alarm = mAlarmQueue.peek();
+                    if (alarm.second <= sElapsedRealtimeClock.millis()) {
+                        mHandler.obtainMessage(MSG_CHECK_PACKAGE, alarm.first.userId, 0,
+                                alarm.first.packageName).sendToTarget();
+                        mAlarmQueue.remove(alarm);
+                    } else {
+                        break;
+                    }
+                }
+                setNextAlarmLocked();
+            }
+        }
+
+        @GuardedBy("mLock")
+        void dumpLocked(IndentingPrintWriter pw) {
+            pw.println("In quota alarms:");
+            pw.increaseIndent();
+
+            if (mAlarmQueue.size() == 0) {
+                pw.println("NOT WAITING");
+            } else {
+                Pair[] alarms = mAlarmQueue.toArray(new Pair[mAlarmQueue.size()]);
+                for (int i = 0; i < alarms.length; ++i) {
+                    final Package pkg = (Package) alarms[i].first;
+                    pw.print(pkg);
+                    pw.print(": ");
+                    pw.print(alarms[i].second);
+                    pw.println();
+                }
+            }
+
+            pw.decreaseIndent();
+        }
+
+        @GuardedBy("mLock")
+        void dumpLocked(ProtoOutputStream proto, long fieldId) {
+            final long token = proto.start(fieldId);
+
+            proto.write(
+                    StateControllerProto.QuotaController.InQuotaAlarmListener.TRIGGER_TIME_ELAPSED,
+                    mTriggerTimeElapsed);
+
+            Pair[] alarms = mAlarmQueue.toArray(new Pair[mAlarmQueue.size()]);
+            for (int i = 0; i < alarms.length; ++i) {
+                final long aToken = proto.start(
+                        StateControllerProto.QuotaController.InQuotaAlarmListener.ALARMS);
+
+                final Package pkg = (Package) alarms[i].first;
+                pkg.dumpDebug(proto,
+                        StateControllerProto.QuotaController.InQuotaAlarmListener.Alarm.PKG);
+                proto.write(
+                        StateControllerProto.QuotaController.InQuotaAlarmListener.Alarm.IN_QUOTA_TIME_ELAPSED,
+                        (Long) alarms[i].second);
+
+                proto.end(aToken);
+            }
+
+            proto.end(token);
         }
     }
 
@@ -2618,23 +2705,7 @@
         pw.decreaseIndent();
 
         pw.println();
-        pw.println("In quota alarms:");
-        pw.increaseIndent();
-        for (int u = 0; u < mInQuotaAlarmListeners.numMaps(); ++u) {
-            final int userId = mInQuotaAlarmListeners.keyAt(u);
-            for (int p = 0; p < mInQuotaAlarmListeners.numElementsForKey(userId); ++p) {
-                final String pkgName = mInQuotaAlarmListeners.keyAt(u, p);
-                QcAlarmListener alarmListener = mInQuotaAlarmListeners.valueAt(u, p);
-
-                pw.print(string(userId, pkgName));
-                pw.print(": ");
-                if (alarmListener.isWaiting()) {
-                    pw.println(alarmListener.getTriggerTimeElapsed());
-                } else {
-                    pw.println("NOT WAITING");
-                }
-            }
-        }
+        mInQuotaAlarmListener.dumpLocked(pw);
         pw.decreaseIndent();
     }
 
@@ -2768,22 +2839,13 @@
                     }
                 }
 
-                QcAlarmListener alarmListener = mInQuotaAlarmListeners.get(userId, pkgName);
-                if (alarmListener != null) {
-                    final long alToken = proto.start(
-                            StateControllerProto.QuotaController.PackageStats.IN_QUOTA_ALARM_LISTENER);
-                    proto.write(StateControllerProto.QuotaController.AlarmListener.IS_WAITING,
-                            alarmListener.isWaiting());
-                    proto.write(
-                            StateControllerProto.QuotaController.AlarmListener.TRIGGER_TIME_ELAPSED,
-                            alarmListener.getTriggerTimeElapsed());
-                    proto.end(alToken);
-                }
-
                 proto.end(psToken);
             }
         }
 
+        mInQuotaAlarmListener.dumpLocked(proto,
+                StateControllerProto.QuotaController.IN_QUOTA_ALARM_LISTENER);
+
         proto.end(mToken);
         proto.end(token);
     }
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java b/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
index 932c25d..46d449a 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
+++ b/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
@@ -21,6 +21,7 @@
 import static android.app.usage.UsageStatsManager.REASON_MAIN_MASK;
 import static android.app.usage.UsageStatsManager.REASON_MAIN_PREDICTED;
 import static android.app.usage.UsageStatsManager.REASON_MAIN_USAGE;
+import static android.app.usage.UsageStatsManager.REASON_SUB_MASK;
 import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_USER_INTERACTION;
 import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_ACTIVE;
 import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_NEVER;
@@ -43,6 +44,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.CollectionUtils;
 import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.FrameworkStatsLog;
 import com.android.internal.util.IndentingPrintWriter;
 
 import libcore.io.IoUtils;
@@ -244,9 +246,9 @@
      * @param elapsedRealtime mark as used time if non-zero
      * @param timeout set the timeout of the specified bucket, if non-zero. Can only be used
      *                with bucket values of ACTIVE and WORKING_SET.
-     * @return
+     * @return {@code appUsageHistory}
      */
-    public AppUsageHistory reportUsage(AppUsageHistory appUsageHistory, String packageName,
+    AppUsageHistory reportUsage(AppUsageHistory appUsageHistory, String packageName, int userId,
             int newBucket, int usageReason, long elapsedRealtime, long timeout) {
         int bucketingReason = REASON_MAIN_USAGE | usageReason;
         final boolean isUserUsage = isUserUsage(bucketingReason);
@@ -284,11 +286,7 @@
 
         if (appUsageHistory.currentBucket > newBucket) {
             appUsageHistory.currentBucket = newBucket;
-            if (DEBUG) {
-                Slog.d(TAG, "Moved " + packageName + " to bucket=" + appUsageHistory
-                        .currentBucket
-                        + ", reason=0x0" + Integer.toHexString(appUsageHistory.bucketingReason));
-            }
+            logAppStandbyBucketChanged(packageName, userId, newBucket, bucketingReason);
         }
         appUsageHistory.bucketingReason = bucketingReason;
 
@@ -313,7 +311,8 @@
             int usageReason, long nowElapsed, long timeout) {
         ArrayMap<String, AppUsageHistory> userHistory = getUserHistory(userId);
         AppUsageHistory history = getPackageHistory(userHistory, packageName, nowElapsed, true);
-        return reportUsage(history, packageName, newBucket, usageReason, nowElapsed, timeout);
+        return reportUsage(history, packageName, userId, newBucket, usageReason, nowElapsed,
+                timeout);
     }
 
     private ArrayMap<String, AppUsageHistory> getUserHistory(int userId) {
@@ -372,6 +371,7 @@
         ArrayMap<String, AppUsageHistory> userHistory = getUserHistory(userId);
         AppUsageHistory appUsageHistory =
                 getPackageHistory(userHistory, packageName, elapsedRealtime, true);
+        final boolean changed = appUsageHistory.currentBucket != bucket;
         appUsageHistory.currentBucket = bucket;
         appUsageHistory.bucketingReason = reason;
 
@@ -385,9 +385,8 @@
             appUsageHistory.bucketActiveTimeoutTime = elapsed;
             appUsageHistory.bucketWorkingSetTimeoutTime = elapsed;
         }
-        if (DEBUG) {
-            Slog.d(TAG, "Moved " + packageName + " to bucket=" + appUsageHistory.currentBucket
-                    + ", reason=0x0" + Integer.toHexString(appUsageHistory.bucketingReason));
+        if (changed) {
+            logAppStandbyBucketChanged(packageName, userId, bucket, reason);
         }
     }
 
@@ -485,18 +484,19 @@
 
     /* Returns the new standby bucket the app is assigned to */
     public int setIdle(String packageName, int userId, boolean idle, long elapsedRealtime) {
-        ArrayMap<String, AppUsageHistory> userHistory = getUserHistory(userId);
-        AppUsageHistory appUsageHistory = getPackageHistory(userHistory, packageName,
-                elapsedRealtime, true);
+        final int newBucket;
+        final int reason;
         if (idle) {
-            appUsageHistory.currentBucket = STANDBY_BUCKET_RARE;
-            appUsageHistory.bucketingReason = REASON_MAIN_FORCED_BY_USER;
+            newBucket = STANDBY_BUCKET_RARE;
+            reason = REASON_MAIN_FORCED_BY_USER;
         } else {
-            appUsageHistory.currentBucket = STANDBY_BUCKET_ACTIVE;
+            newBucket = STANDBY_BUCKET_ACTIVE;
             // This is to pretend that the app was just used, don't freeze the state anymore.
-            appUsageHistory.bucketingReason = REASON_MAIN_USAGE | REASON_SUB_USAGE_USER_INTERACTION;
+            reason = REASON_MAIN_USAGE | REASON_SUB_USAGE_USER_INTERACTION;
         }
-        return appUsageHistory.currentBucket;
+        setAppStandbyBucket(packageName, userId, elapsedRealtime, newBucket, reason, false);
+
+        return newBucket;
     }
 
     public void clearUsage(String packageName, int userId) {
@@ -551,13 +551,27 @@
         return 0;
     }
 
+    /**
+     * Log a standby bucket change to statsd, and also logcat if debug logging is enabled.
+     */
+    private void logAppStandbyBucketChanged(String packageName, int userId, int bucket,
+            int reason) {
+        FrameworkStatsLog.write(
+                FrameworkStatsLog.APP_STANDBY_BUCKET_CHANGED,
+                packageName, userId, bucket,
+                (reason & REASON_MAIN_MASK), (reason & REASON_SUB_MASK));
+        if (DEBUG) {
+            Slog.d(TAG, "Moved " + packageName + " to bucket=" + bucket
+                    + ", reason=0x0" + Integer.toHexString(reason));
+        }
+    }
+
     @VisibleForTesting
     File getUserFile(int userId) {
         return new File(new File(new File(mStorageDir, "users"),
                 Integer.toString(userId)), APP_IDLE_FILENAME);
     }
 
-
     /**
      * Check if App Idle File exists on disk
      * @param userId
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
index 7a1b4f2..249bc52 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
+++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
@@ -79,10 +79,10 @@
 import android.os.Build;
 import android.os.Environment;
 import android.os.Handler;
-import android.os.IDeviceIdleController;
 import android.os.Looper;
 import android.os.Message;
 import android.os.PowerManager;
+import android.os.PowerWhitelistManager;
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -130,7 +130,8 @@
 public class AppStandbyController implements AppStandbyInternal {
 
     private static final String TAG = "AppStandbyController";
-    static final boolean DEBUG = true;
+    // Do not submit with true.
+    static final boolean DEBUG = false;
 
     static final boolean COMPRESS_TIME = false;
     private static final long ONE_MINUTE = 60 * 1000;
@@ -831,24 +832,24 @@
         if (eventType == UsageEvents.Event.NOTIFICATION_SEEN
                 || eventType == UsageEvents.Event.SLICE_PINNED) {
             // Mild usage elevates to WORKING_SET but doesn't change usage time.
-            mAppIdleHistory.reportUsage(appHistory, pkg,
+            mAppIdleHistory.reportUsage(appHistory, pkg, userId,
                     STANDBY_BUCKET_WORKING_SET, subReason,
                     0, elapsedRealtime + mNotificationSeenTimeoutMillis);
             nextCheckDelay = mNotificationSeenTimeoutMillis;
         } else if (eventType == UsageEvents.Event.SYSTEM_INTERACTION) {
-            mAppIdleHistory.reportUsage(appHistory, pkg,
+            mAppIdleHistory.reportUsage(appHistory, pkg, userId,
                     STANDBY_BUCKET_ACTIVE, subReason,
                     0, elapsedRealtime + mSystemInteractionTimeoutMillis);
             nextCheckDelay = mSystemInteractionTimeoutMillis;
         } else if (eventType == UsageEvents.Event.FOREGROUND_SERVICE_START) {
             // Only elevate bucket if this is the first usage of the app
             if (prevBucket != STANDBY_BUCKET_NEVER) return;
-            mAppIdleHistory.reportUsage(appHistory, pkg,
+            mAppIdleHistory.reportUsage(appHistory, pkg, userId,
                     STANDBY_BUCKET_ACTIVE, subReason,
                     0, elapsedRealtime + mInitialForegroundServiceStartTimeoutMillis);
             nextCheckDelay = mInitialForegroundServiceStartTimeoutMillis;
         } else {
-            mAppIdleHistory.reportUsage(appHistory, pkg,
+            mAppIdleHistory.reportUsage(appHistory, pkg, userId,
                     STANDBY_BUCKET_ACTIVE, subReason,
                     elapsedRealtime, elapsedRealtime + mStrongUsageTimeoutMillis);
             nextCheckDelay = mStrongUsageTimeoutMillis;
@@ -1009,7 +1010,7 @@
                 // We allow all whitelisted apps, including those that don't want to be whitelisted
                 // for idle mode, because app idle (aka app standby) is really not as big an issue
                 // for controlling who participates vs. doze mode.
-                if (mInjector.isPowerSaveWhitelistExceptIdleApp(packageName)) {
+                if (mInjector.isNonIdleWhitelisted(packageName)) {
                     return true;
                 }
             } catch (RemoteException re) {
@@ -1636,12 +1637,12 @@
 
         private final Context mContext;
         private final Looper mLooper;
-        private IDeviceIdleController mDeviceIdleController;
         private IBatteryStats mBatteryStats;
         private BatteryManager mBatteryManager;
         private PackageManagerInternal mPackageManagerInternal;
         private DisplayManager mDisplayManager;
         private PowerManager mPowerManager;
+        private PowerWhitelistManager mPowerWhitelistManager;
         private CrossProfileAppsInternal mCrossProfileAppsInternal;
         int mBootPhase;
         /**
@@ -1665,8 +1666,7 @@
 
         void onBootPhase(int phase) {
             if (phase == PHASE_SYSTEM_SERVICES_READY) {
-                mDeviceIdleController = IDeviceIdleController.Stub.asInterface(
-                        ServiceManager.getService(Context.DEVICE_IDLE_CONTROLLER));
+                mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class);
                 mBatteryStats = IBatteryStats.Stub.asInterface(
                         ServiceManager.getService(BatteryStats.SERVICE_NAME));
                 mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class);
@@ -1717,8 +1717,8 @@
             return mBatteryManager.isCharging();
         }
 
-        boolean isPowerSaveWhitelistExceptIdleApp(String packageName) throws RemoteException {
-            return mDeviceIdleController.isPowerSaveWhitelistExceptIdleApp(packageName);
+        boolean isNonIdleWhitelisted(String packageName) throws RemoteException {
+            return mPowerWhitelistManager.isWhitelisted(packageName, false);
         }
 
         File getDataSystemDirectory() {
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING b/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING
index cf70878..ba7572a 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING
+++ b/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING
@@ -1,6 +1,13 @@
 {
   "presubmit": [
     {
+      "name": "CtsUsageStatsTestCases",
+      "options": [
+        {"include-filter": "android.app.usage.cts.UsageStatsTest"},
+        {"exclude-annotation": "androidx.test.filters.FlakyTest"}
+      ]
+    },
+    {
       "name": "FrameworksServicesTests",
       "options": [
         {"include-filter": "com.android.server.usage"},
@@ -10,6 +17,9 @@
   ],
   "postsubmit": [
     {
+      "name": "CtsUsageStatsTestCases"
+    },
+    {
       "name": "FrameworksServicesTests",
       "options": [
         {"include-filter": "com.android.server.usage"}
diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java
index 566f4cd..b219fd41 100644
--- a/apex/media/framework/java/android/media/MediaParser.java
+++ b/apex/media/framework/java/android/media/MediaParser.java
@@ -54,6 +54,7 @@
 
 import java.io.EOFException;
 import java.io.IOException;
+import java.io.InterruptedIOException;
 import java.nio.ByteBuffer;
 import java.util.Collections;
 import java.util.HashMap;
@@ -94,61 +95,84 @@
  * which extracts and publishes all video samples:
  *
  * <pre>
- *
  * class VideoOutputConsumer implements MediaParser.OutputConsumer {
  *
- *     private static final int MAXIMUM_SAMPLE_SIZE = ...;
- *     private byte[] sampleDataBuffer = new byte[MAXIMUM_SAMPLE_SIZE];
+ *     private byte[] sampleDataBuffer = new byte[4096];
+ *     private byte[] discardedDataBuffer = new byte[4096];
  *     private int videoTrackIndex = -1;
  *     private int bytesWrittenCount = 0;
  *
- *     \@Override
- *     public void onSeekMap(int i, @NonNull MediaFormat mediaFormat) { \/* Do nothing. *\/ }
+ *     &#64;Override
+ *     public void onSeekMap(int i, &#64;NonNull MediaFormat mediaFormat) {
+ *       // Do nothing.
+ *     }
  *
- *     \@Override
- *     public void onTrackData(int i, @NonNull TrackData trackData) {
+ *     &#64;Override
+ *     public void onTrackData(int i, &#64;NonNull TrackData trackData) {
  *       MediaFormat mediaFormat = trackData.mediaFormat;
- *       if (videoTrackIndex == -1 && mediaFormat
- *           .getString(MediaFormat.KEY_MIME, \/* defaultValue= *\/ "").startsWith("video/")) {
+ *       if (videoTrackIndex == -1 &&
+ *           mediaFormat
+ *               .getString(MediaFormat.KEY_MIME, &#47;* defaultValue= *&#47; "")
+ *               .startsWith("video/")) {
  *         videoTrackIndex = i;
  *       }
  *     }
  *
- *     \@Override
- *     public void onSampleData(int trackIndex, @NonNull InputReader inputReader)
- *         throws IOException, InterruptedException {
+ *     &#64;Override
+ *     public void onSampleData(int trackIndex, &#64;NonNull InputReader inputReader)
+ *         throws IOException {
  *       int numberOfBytesToRead = (int) inputReader.getLength();
  *       if (videoTrackIndex != trackIndex) {
  *         // Discard contents.
- *         inputReader.read(\/* bytes= *\/ null, \/* offset= *\/ 0, numberOfBytesToRead);
+ *         inputReader.read(
+ *             discardedDataBuffer,
+ *             &#47;* offset= *&#47; 0,
+ *             Math.min(discardDataBuffer.length, numberOfBytesToRead));
+ *       } else {
+ *         ensureSpaceInBuffer(numberOfBytesToRead);
+ *         int bytesRead = inputReader.read(
+ *             sampleDataBuffer, bytesWrittenCount, numberOfBytesToRead);
+ *         bytesWrittenCount += bytesRead;
  *       }
- *       int bytesRead = inputReader.read(sampleDataBuffer, bytesWrittenCount, numberOfBytesToRead);
- *       bytesWrittenCount += bytesRead;
  *     }
  *
- *     \@Override
+ *     &#64;Override
  *     public void onSampleCompleted(
  *         int trackIndex,
  *         long timeUs,
  *         int flags,
  *         int size,
  *         int offset,
- *         \@Nullable CryptoInfo cryptoData) {
+ *         &#64;Nullable CryptoInfo cryptoData) {
  *       if (videoTrackIndex != trackIndex) {
  *         return; // It's not the video track. Ignore.
  *       }
  *       byte[] sampleData = new byte[size];
- *       System.arraycopy(sampleDataBuffer, bytesWrittenCount - size - offset, sampleData, \/*
- *       destPos= *\/ 0, size);
+ *       int sampleStartOffset = bytesWrittenCount - size - offset;
+ *       System.arraycopy(
+ *           sampleDataBuffer,
+ *           sampleStartOffset,
+ *           sampleData,
+ *           &#47;* destPos= *&#47; 0,
+ *           size);
  *       // Place trailing bytes at the start of the buffer.
  *       System.arraycopy(
  *           sampleDataBuffer,
  *           bytesWrittenCount - offset,
  *           sampleDataBuffer,
- *           \/* destPos= *\/ 0,
- *           \/* size= *\/ offset);
+ *           &#47;* destPos= *&#47; 0,
+ *           &#47;* size= *&#47; offset);
+ *       bytesWrittenCount = bytesWrittenCount - offset;
  *       publishSample(sampleData, timeUs, flags);
  *     }
+ *
+ *    private void ensureSpaceInBuffer(int numberOfBytesToRead) {
+ *      int requiredLength = bytesWrittenCount + numberOfBytesToRead;
+ *      if (requiredLength > sampleDataBuffer.length) {
+ *        sampleDataBuffer = Arrays.copyOf(sampleDataBuffer, requiredLength);
+ *      }
+ *    }
+ *
  *   }
  *
  * </pre>
@@ -287,8 +311,7 @@
          *     of the input has been reached.
          * @throws java.io.IOException If an error occurs reading from the source.
          */
-        int read(@NonNull byte[] buffer, int offset, int readLength)
-                throws IOException, InterruptedException;
+        int read(@NonNull byte[] buffer, int offset, int readLength) throws IOException;
 
         /** Returns the current read position (byte offset) in the stream. */
         long getPosition();
@@ -342,14 +365,16 @@
         /**
          * Called to write sample data to the output.
          *
-         * <p>Implementers must attempt to consume the entirety of the input, but should surface any
-         * thrown {@link IOException} caused by reading from {@code input}.
+         * <p>If the invocation of this method returns before the entire {@code inputReader} {@link
+         * InputReader#getLength() length} is consumed, the method will be called again for the
+         * implementer to read the remaining data. Implementers should surface any thrown {@link
+         * IOException} caused by reading from {@code input}.
          *
          * @param trackIndex The index of the track to which the sample data corresponds.
          * @param inputReader The {@link InputReader} from which to read the data.
+         * @throws IOException If an exception occurs while reading from {@code inputReader}.
          */
-        void onSampleData(int trackIndex, @NonNull InputReader inputReader)
-                throws IOException, InterruptedException;
+        void onSampleData(int trackIndex, @NonNull InputReader inputReader) throws IOException;
 
         /**
          * Called once all the data of a sample has been passed to {@link #onSampleData}.
@@ -361,8 +386,9 @@
          * @param flags Flags associated with the sample. See {@link MediaCodec
          *     MediaCodec.BUFFER_FLAG_*}.
          * @param size The size of the sample data, in bytes.
-         * @param offset The number of bytes that have been passed to {@link #onSampleData} since
-         *     the last byte belonging to the sample whose metadata is being passed.
+         * @param offset The number of bytes that have been consumed by {@code onSampleData(int,
+         *     MediaParser.InputReader)} for the specified track, since the last byte belonging to
+         *     the sample whose metadata is being passed.
          * @param cryptoData Encryption data required to decrypt the sample. May be null for
          *     unencrypted samples.
          */
@@ -684,10 +710,11 @@
      *     container data.
      * @return Whether there is any data left to extract. Returns false if the end of input has been
      *     reached.
-     * @throws UnrecognizedInputFormatException
+     * @throws IOException If an error occurs while reading from the {@link SeekableInputReader}.
+     * @throws UnrecognizedInputFormatException If the format cannot be recognized by any of the
+     *     underlying parser implementations.
      */
-    public boolean advance(@NonNull SeekableInputReader seekableInputReader)
-            throws IOException, InterruptedException {
+    public boolean advance(@NonNull SeekableInputReader seekableInputReader) throws IOException {
         if (mExtractorInput == null) {
             // TODO: For efficiency, the same implementation should be used, by providing a
             // clearBuffers() method, or similar.
@@ -700,30 +727,36 @@
         mDataSource.mInputReader = seekableInputReader;
 
         // TODO: Apply parameters when creating extractor instances.
-        if (mExtractorName != null) {
-            mExtractor = EXTRACTOR_FACTORIES_BY_NAME.get(mExtractorName).createInstance();
-        } else if (mExtractor == null) {
-            for (String parserName : mParserNamesPool) {
-                Extractor extractor = EXTRACTOR_FACTORIES_BY_NAME.get(parserName).createInstance();
-                try {
-                    if (extractor.sniff(mExtractorInput)) {
-                        mExtractorName = parserName;
-                        mExtractor = extractor;
-                        mExtractor.init(new ExtractorOutputAdapter());
-                        break;
+        if (mExtractor == null) {
+            if (mExtractorName != null) {
+                mExtractor = EXTRACTOR_FACTORIES_BY_NAME.get(mExtractorName).createInstance();
+                mExtractor.init(new ExtractorOutputAdapter());
+            } else {
+                for (String parserName : mParserNamesPool) {
+                    Extractor extractor =
+                            EXTRACTOR_FACTORIES_BY_NAME.get(parserName).createInstance();
+                    try {
+                        if (extractor.sniff(mExtractorInput)) {
+                            mExtractorName = parserName;
+                            mExtractor = extractor;
+                            mExtractor.init(new ExtractorOutputAdapter());
+                            break;
+                        }
+                    } catch (EOFException e) {
+                        // Do nothing.
+                    } catch (InterruptedException e) {
+                        // TODO: Remove this exception replacement once we update the ExoPlayer
+                        // version.
+                        throw new InterruptedIOException();
+                    } finally {
+                        mExtractorInput.resetPeekPosition();
                     }
-                } catch (EOFException e) {
-                    // Do nothing.
-                } catch (IOException | InterruptedException e) {
-                    throw new IllegalStateException(e);
-                } finally {
-                    mExtractorInput.resetPeekPosition();
                 }
+                if (mExtractor == null) {
+                    throw UnrecognizedInputFormatException.createForExtractors(mParserNamesPool);
+                }
+                return true;
             }
-            if (mExtractor == null) {
-                throw UnrecognizedInputFormatException.createForExtractors(mParserNamesPool);
-            }
-            return true;
         }
 
         if (isPendingSeek()) {
@@ -732,7 +765,13 @@
         }
 
         mPositionHolder.position = seekableInputReader.getPosition();
-        int result = mExtractor.read(mExtractorInput, mPositionHolder);
+        int result = 0;
+        try {
+            result = mExtractor.read(mExtractorInput, mPositionHolder);
+        } catch (InterruptedException e) {
+            // TODO: Remove this exception replacement once we update the ExoPlayer version.
+            throw new InterruptedIOException();
+        }
         if (result == Extractor.RESULT_END_OF_INPUT) {
             return false;
         }
@@ -818,13 +857,7 @@
 
         @Override
         public int read(byte[] buffer, int offset, int readLength) throws IOException {
-            // TODO: Reevaluate interruption in Input.
-            try {
-                return mInputReader.read(buffer, offset, readLength);
-            } catch (InterruptedException e) {
-                // TODO: Remove.
-                throw new RuntimeException();
-            }
+            return mInputReader.read(buffer, offset, readLength);
         }
 
         @Override
@@ -891,7 +924,7 @@
 
         @Override
         public int sampleData(ExtractorInput input, int length, boolean allowEndOfInput)
-                throws IOException, InterruptedException {
+                throws IOException {
             mScratchExtractorInputAdapter.setExtractorInput(input, length);
             long positionBeforeReading = mScratchExtractorInputAdapter.getPosition();
             mOutputConsumer.onSampleData(mTrackIndex, mScratchExtractorInputAdapter);
@@ -903,7 +936,7 @@
             mScratchParsableByteArrayAdapter.resetWithByteArray(data, length);
             try {
                 mOutputConsumer.onSampleData(mTrackIndex, mScratchParsableByteArrayAdapter);
-            } catch (IOException | InterruptedException e) {
+            } catch (IOException e) {
                 // Unexpected.
                 throw new RuntimeException(e);
             }
@@ -932,9 +965,14 @@
         // Input implementation.
 
         @Override
-        public int read(byte[] buffer, int offset, int readLength)
-                throws IOException, InterruptedException {
-            int readBytes = mExtractorInput.read(buffer, offset, readLength);
+        public int read(byte[] buffer, int offset, int readLength) throws IOException {
+            int readBytes = 0;
+            try {
+                readBytes = mExtractorInput.read(buffer, offset, readLength);
+            } catch (InterruptedException e) {
+                // TODO: Remove this exception replacement once we update the ExoPlayer version.
+                throw new InterruptedIOException();
+            }
             mCurrentPosition += readBytes;
             return readBytes;
         }
diff --git a/apex/permission/Android.bp b/apex/permission/Android.bp
index d746ea6..0171b0d 100644
--- a/apex/permission/Android.bp
+++ b/apex/permission/Android.bp
@@ -20,6 +20,7 @@
 
 apex_defaults {
     name: "com.android.permission-defaults",
+    updatable: true,
     key: "com.android.permission.key",
     certificate: ":com.android.permission.certificate",
     java_libs: [
diff --git a/apex/sdkextensions/Android.bp b/apex/sdkextensions/Android.bp
index 25765af..322d5e1 100644
--- a/apex/sdkextensions/Android.bp
+++ b/apex/sdkextensions/Android.bp
@@ -26,6 +26,7 @@
 
 apex_defaults {
     name: "com.android.sdkext-defaults",
+    updatable: true,
     java_libs: [ "framework-sdkextensions" ],
     prebuilts: [
         "derive_sdk.rc",
diff --git a/apex/statsd/Android.bp b/apex/statsd/Android.bp
index 4c96263..2df3eea 100644
--- a/apex/statsd/Android.bp
+++ b/apex/statsd/Android.bp
@@ -32,6 +32,7 @@
     compile_multilib: "both",
     prebuilts: ["com.android.os.statsd.init.rc"],
     name: "com.android.os.statsd-defaults",
+    updatable: true,
     key: "com.android.os.statsd.key",
     certificate: ":com.android.os.statsd.certificate",
 }
diff --git a/apex/statsd/aidl/Android.bp b/apex/statsd/aidl/Android.bp
index 487c8e1..404c632 100644
--- a/apex/statsd/aidl/Android.bp
+++ b/apex/statsd/aidl/Android.bp
@@ -31,7 +31,7 @@
     ],
     backend: {
         java: {
-            enabled: false, // the platform uses statsd_java_aidl
+            enabled: false, // framework-statsd and service-statsd use framework-statsd-aidl-sources
         },
         cpp: {
             enabled: false,
diff --git a/apex/statsd/tests/libstatspull/Android.bp b/apex/statsd/tests/libstatspull/Android.bp
index e813964..2d64f19 100644
--- a/apex/statsd/tests/libstatspull/Android.bp
+++ b/apex/statsd/tests/libstatspull/Android.bp
@@ -48,9 +48,13 @@
         "-Werror",
     ],
     shared_libs: [
-        "libbinder",
-        "libutils",
-        "libstatspull",
-        "libstatssocket",
+        "libbinder_ndk",
+        "statsd-aidl-ndk_platform",
     ],
-}
\ No newline at end of file
+    static_libs: [
+        "libstatspull_private",
+        "libstatssocket_private",
+        "libutils",
+        "libcutils",
+    ],
+}
diff --git a/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp b/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
index 22daa8e..eb97f65 100644
--- a/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
+++ b/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include <binder/ProcessState.h>
+#include <android/binder_process.h>
 #include <jni.h>
 #include <log/log.h>
 #include <stats_event.h>
@@ -24,7 +24,6 @@
 #include <thread>
 
 using std::this_thread::sleep_for;
-using namespace android;
 
 namespace {
 static int32_t sAtomTag;
@@ -39,10 +38,8 @@
     if (!initialized) {
         initialized = true;
         // Set up the binder
-        sp<ProcessState> ps(ProcessState::self());
-        ps->setThreadPoolMaxThreadCount(9);
-        ps->startThreadPool();
-        ps->giveThreadPoolName();
+        ABinderProcess_setThreadPoolMaxThreadCount(9);
+        ABinderProcess_startThreadPool();
     }
 }
 
diff --git a/api/current.txt b/api/current.txt
index 4e07681..563665f 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -4572,14 +4572,17 @@
     field public static final int REASON_ANR = 6; // 0x6
     field public static final int REASON_CRASH = 4; // 0x4
     field public static final int REASON_CRASH_NATIVE = 5; // 0x5
+    field public static final int REASON_DEPENDENCY_DIED = 12; // 0xc
     field public static final int REASON_EXCESSIVE_RESOURCE_USAGE = 9; // 0x9
     field public static final int REASON_EXIT_SELF = 1; // 0x1
     field public static final int REASON_INITIALIZATION_FAILURE = 7; // 0x7
     field public static final int REASON_LOW_MEMORY = 3; // 0x3
-    field public static final int REASON_OTHER = 10; // 0xa
+    field public static final int REASON_OTHER = 13; // 0xd
     field public static final int REASON_PERMISSION_CHANGE = 8; // 0x8
     field public static final int REASON_SIGNALED = 2; // 0x2
     field public static final int REASON_UNKNOWN = 0; // 0x0
+    field public static final int REASON_USER_REQUESTED = 10; // 0xa
+    field public static final int REASON_USER_STOPPED = 11; // 0xb
   }
 
   public final class AsyncNotedAppOp implements android.os.Parcelable {
@@ -10119,7 +10122,6 @@
     method public abstract void sendOrderedBroadcast(@RequiresPermission android.content.Intent, @Nullable String);
     method public abstract void sendOrderedBroadcast(@NonNull @RequiresPermission android.content.Intent, @Nullable String, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
     method public void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable String, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
-    method public void sendOrderedBroadcast(@NonNull @RequiresPermission android.content.Intent, @Nullable String, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
     method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS") public abstract void sendOrderedBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
     method @Deprecated @RequiresPermission(android.Manifest.permission.BROADCAST_STICKY) public abstract void sendStickyBroadcast(@RequiresPermission android.content.Intent);
     method @Deprecated @RequiresPermission(allOf={"android.permission.INTERACT_ACROSS_USERS", android.Manifest.permission.BROADCAST_STICKY}) public abstract void sendStickyBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle);
@@ -10327,6 +10329,7 @@
     method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, String);
     method public void sendOrderedBroadcast(android.content.Intent, String);
     method public void sendOrderedBroadcast(android.content.Intent, String, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
+    method public void sendOrderedBroadcast(@NonNull @RequiresPermission android.content.Intent, int, @Nullable String, @Nullable String, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, @Nullable String, @Nullable android.os.Bundle, @Nullable android.os.Bundle);
     method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, String, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
     method @Deprecated public void sendStickyBroadcast(android.content.Intent);
     method @Deprecated public void sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
@@ -11368,6 +11371,7 @@
     field public static final int FLAG_IMMERSIVE = 2048; // 0x800
     field public static final int FLAG_MULTIPROCESS = 1; // 0x1
     field public static final int FLAG_NO_HISTORY = 128; // 0x80
+    field public static final int FLAG_PREFER_MINIMAL_POST_PROCESSING = 33554432; // 0x2000000
     field public static final int FLAG_RELINQUISH_TASK_IDENTITY = 4096; // 0x1000
     field public static final int FLAG_RESUME_WHILE_PAUSING = 16384; // 0x4000
     field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
@@ -11405,7 +11409,6 @@
     field public String parentActivityName;
     field public String permission;
     field public int persistableMode;
-    field public boolean preferMinimalPostProcessing;
     field public int screenOrientation;
     field public int softInputMode;
     field public String targetActivity;
@@ -12079,7 +12082,6 @@
     field public static final String FEATURE_COMPANION_DEVICE_SETUP = "android.software.companion_device_setup";
     field public static final String FEATURE_CONNECTION_SERVICE = "android.software.connectionservice";
     field public static final String FEATURE_CONSUMER_IR = "android.hardware.consumerir";
-    field public static final String FEATURE_CONTEXT_HUB = "android.hardware.context_hub";
     field public static final String FEATURE_DEVICE_ADMIN = "android.software.device_admin";
     field public static final String FEATURE_EMBEDDED = "android.hardware.type.embedded";
     field public static final String FEATURE_ETHERNET = "android.hardware.ethernet";
@@ -26404,7 +26406,7 @@
   }
 
   public final class MediaParser {
-    method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException, java.lang.InterruptedException;
+    method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException;
     method @NonNull public static android.media.MediaParser create(@NonNull android.media.MediaParser.OutputConsumer, @NonNull java.lang.String...);
     method @NonNull public static android.media.MediaParser createByName(@NonNull String, @NonNull android.media.MediaParser.OutputConsumer);
     method @Nullable public String getParserName();
@@ -26436,12 +26438,12 @@
   public static interface MediaParser.InputReader {
     method public long getLength();
     method public long getPosition();
-    method public int read(@NonNull byte[], int, int) throws java.io.IOException, java.lang.InterruptedException;
+    method public int read(@NonNull byte[], int, int) throws java.io.IOException;
   }
 
   public static interface MediaParser.OutputConsumer {
     method public void onSampleCompleted(int, long, int, int, int, @Nullable android.media.MediaCodec.CryptoInfo);
-    method public void onSampleData(int, @NonNull android.media.MediaParser.InputReader) throws java.io.IOException, java.lang.InterruptedException;
+    method public void onSampleData(int, @NonNull android.media.MediaParser.InputReader) throws java.io.IOException;
     method public void onSeekMap(@NonNull android.media.MediaParser.SeekMap);
     method public void onTrackData(int, @NonNull android.media.MediaParser.TrackData);
     method public void onTracksFound(int);
@@ -27059,7 +27061,7 @@
     method public void unregisterTransferCallback(@NonNull android.media.MediaRouter2.TransferCallback);
   }
 
-  public static class MediaRouter2.ControllerCallback {
+  public abstract static class MediaRouter2.ControllerCallback {
     ctor public MediaRouter2.ControllerCallback();
     method public void onControllerUpdated(@NonNull android.media.MediaRouter2.RoutingController);
   }
@@ -27068,7 +27070,7 @@
     method @Nullable public android.os.Bundle onGetControllerHints(@NonNull android.media.MediaRoute2Info);
   }
 
-  public static class MediaRouter2.RouteCallback {
+  public abstract static class MediaRouter2.RouteCallback {
     ctor public MediaRouter2.RouteCallback();
     method public void onRoutesAdded(@NonNull java.util.List<android.media.MediaRoute2Info>);
     method public void onRoutesChanged(@NonNull java.util.List<android.media.MediaRoute2Info>);
@@ -27091,7 +27093,7 @@
     method public void setVolume(int);
   }
 
-  public static class MediaRouter2.TransferCallback {
+  public abstract static class MediaRouter2.TransferCallback {
     ctor public MediaRouter2.TransferCallback();
     method public void onTransferFailed(@NonNull android.media.MediaRoute2Info);
     method public void onTransferred(@NonNull android.media.MediaRouter2.RoutingController, @Nullable android.media.MediaRouter2.RoutingController);
@@ -27477,6 +27479,7 @@
     method @Nullable public android.os.Bundle getControlHints();
     method @NonNull public java.util.List<java.lang.String> getDeselectableRoutes();
     method @NonNull public String getId();
+    method @Nullable public CharSequence getName();
     method @NonNull public java.util.List<java.lang.String> getSelectableRoutes();
     method @NonNull public java.util.List<java.lang.String> getSelectedRoutes();
     method @NonNull public java.util.List<java.lang.String> getTransferableRoutes();
@@ -27504,6 +27507,7 @@
     method @NonNull public android.media.RoutingSessionInfo.Builder removeSelectedRoute(@NonNull String);
     method @NonNull public android.media.RoutingSessionInfo.Builder removeTransferableRoute(@NonNull String);
     method @NonNull public android.media.RoutingSessionInfo.Builder setControlHints(@Nullable android.os.Bundle);
+    method @NonNull public android.media.RoutingSessionInfo.Builder setName(@Nullable CharSequence);
     method @NonNull public android.media.RoutingSessionInfo.Builder setVolume(int);
     method @NonNull public android.media.RoutingSessionInfo.Builder setVolumeHandling(int);
     method @NonNull public android.media.RoutingSessionInfo.Builder setVolumeMax(int);
@@ -40253,7 +40257,7 @@
     field public static final String _ID = "_id";
   }
 
-  public static interface MediaStore.Audio.PlaylistsColumns {
+  public static interface MediaStore.Audio.PlaylistsColumns extends android.provider.MediaStore.MediaColumns {
     field @Deprecated public static final String DATA = "_data";
     field public static final String DATE_ADDED = "date_added";
     field public static final String DATE_MODIFIED = "date_modified";
@@ -43448,12 +43452,12 @@
 
   public abstract class ControlsProviderService extends android.app.Service {
     ctor public ControlsProviderService();
-    method @Deprecated public void loadAvailableControls(@NonNull java.util.function.Consumer<java.util.List<android.service.controls.Control>>);
+    method @NonNull public abstract java.util.concurrent.Flow.Publisher<android.service.controls.Control> createPublisherFor(@NonNull java.util.List<java.lang.String>);
+    method @NonNull public abstract java.util.concurrent.Flow.Publisher<android.service.controls.Control> createPublisherForAllAvailable();
+    method @Nullable public java.util.concurrent.Flow.Publisher<android.service.controls.Control> createPublisherForSuggested();
     method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
+    method public final boolean onUnbind(@NonNull android.content.Intent);
     method public abstract void performControlAction(@NonNull String, @NonNull android.service.controls.actions.ControlAction, @NonNull java.util.function.Consumer<java.lang.Integer>);
-    method @NonNull public abstract java.util.concurrent.Flow.Publisher<android.service.controls.Control> publisherFor(@NonNull java.util.List<java.lang.String>);
-    method @Nullable public java.util.concurrent.Flow.Publisher<android.service.controls.Control> publisherForAllAvailable();
-    method @Nullable public java.util.concurrent.Flow.Publisher<android.service.controls.Control> publisherForSuggested();
     method public static void requestAddControl(@NonNull android.content.Context, @NonNull android.content.ComponentName, @NonNull android.service.controls.Control);
     field public static final String SERVICE_CONTROLS = "android.service.controls.ControlsProviderService";
     field @NonNull public static final String TAG = "ControlsProviderService";
@@ -46857,7 +46861,7 @@
 
   public static final class CarrierConfigManager.Ims {
     field public static final String KEY_PREFIX = "ims.";
-    field public static final String KEY_WIFI_OFF_DEFERRING_TIME_INT = "ims.wifi_off_deferring_time_int";
+    field public static final String KEY_WIFI_OFF_DEFERRING_TIME_MILLIS_INT = "ims.wifi_off_deferring_time_millis_int";
   }
 
   public abstract class CellIdentity implements android.os.Parcelable {
@@ -46896,7 +46900,7 @@
 
   public final class CellIdentityLte extends android.telephony.CellIdentity {
     method @NonNull public java.util.Set<java.lang.String> getAdditionalPlmns();
-    method @NonNull public java.util.List<java.lang.Integer> getBands();
+    method @NonNull public int[] getBands();
     method public int getBandwidth();
     method public int getCi();
     method @Nullable public android.telephony.ClosedSubscriberGroupInfo getClosedSubscriberGroupInfo();
@@ -46914,7 +46918,7 @@
 
   public final class CellIdentityNr extends android.telephony.CellIdentity {
     method @NonNull public java.util.Set<java.lang.String> getAdditionalPlmns();
-    method @NonNull public java.util.List<java.lang.Integer> getBands();
+    method @NonNull public int[] getBands();
     method @Nullable public String getMccString();
     method @Nullable public String getMncString();
     method public long getNci();
@@ -47776,7 +47780,9 @@
     method public boolean getIsManualSelection();
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoList();
     method public String getOperatorAlphaLong();
+    method @Nullable public String getOperatorAlphaLongRaw();
     method public String getOperatorAlphaShort();
+    method @Nullable public String getOperatorAlphaShortRaw();
     method public String getOperatorNumeric();
     method public boolean getRoaming();
     method public int getState();
@@ -48237,6 +48243,7 @@
     method public boolean setLine1NumberForDisplay(String, String);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setNetworkSelectionModeAutomatic();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setNetworkSelectionModeManual(String, boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setNetworkSelectionModeManual(@NonNull String, boolean, int);
     method public boolean setOperatorBrandOverride(String);
     method public boolean setPreferredNetworkTypeToGlobal();
     method public void setPreferredOpportunisticDataSubscription(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>);
@@ -48281,6 +48288,7 @@
     field public static final int DATA_DISCONNECTING = 4; // 0x4
     field public static final int DATA_SUSPENDED = 3; // 0x3
     field public static final int DATA_UNKNOWN = -1; // 0xffffffff
+    field public static final String EXTRA_ACTIVE_SIM_SUPPORTED_COUNT = "android.telephony.extra.ACTIVE_SIM_SUPPORTED_COUNT";
     field public static final String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT";
     field public static final String EXTRA_CARRIER_ID = "android.telephony.extra.CARRIER_ID";
     field public static final String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME";
@@ -48290,7 +48298,6 @@
     field public static final String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT";
     field public static final String EXTRA_NETWORK_COUNTRY = "android.telephony.extra.NETWORK_COUNTRY";
     field public static final String EXTRA_NOTIFICATION_COUNT = "android.telephony.extra.NOTIFICATION_COUNT";
-    field public static final String EXTRA_NUM_OF_ACTIVE_SIM_SUPPORTED = "android.telephony.extra.NUM_OF_ACTIVE_SIM_SUPPORTED";
     field public static final String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telephony.extra.PHONE_ACCOUNT_HANDLE";
     field public static final String EXTRA_SPECIFIC_CARRIER_ID = "android.telephony.extra.SPECIFIC_CARRIER_ID";
     field public static final String EXTRA_SPECIFIC_CARRIER_NAME = "android.telephony.extra.SPECIFIC_CARRIER_NAME";
@@ -48764,6 +48771,7 @@
 
   public class ImsManager {
     method @NonNull public android.telephony.ims.ImsMmTelManager getImsMmTelManager(int);
+    method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int);
     field public static final String ACTION_WFC_IMS_REGISTRATION_ERROR = "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR";
     field public static final String EXTRA_WFC_REGISTRATION_FAILURE_MESSAGE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_MESSAGE";
     field public static final String EXTRA_WFC_REGISTRATION_FAILURE_TITLE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_TITLE";
@@ -48792,6 +48800,15 @@
     method public void onCapabilitiesStatusChanged(@NonNull android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
   }
 
+  public class ImsRcsManager implements android.telephony.ims.RegistrationManager {
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @NonNull public android.telephony.ims.RcsUceAdapter getUceAdapter();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException;
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback);
+    field public static final String ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN = "android.telephony.ims.action.SHOW_CAPABILITY_DISCOVERY_OPT_IN";
+  }
+
   public final class ImsReasonInfo implements android.os.Parcelable {
     ctor public ImsReasonInfo(int, int, @Nullable String);
     method public int describeContents();
@@ -48975,6 +48992,10 @@
     field public static final int EXTRA_CODE_CALL_RETRY_SILENT_REDIAL = 2; // 0x2
   }
 
+  public class RcsUceAdapter {
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isUceSettingEnabled() throws android.telephony.ims.ImsException;
+  }
+
   public interface RegistrationManager {
     method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
@@ -55483,6 +55504,7 @@
     method public boolean hasInsets();
     method @Deprecated public boolean hasStableInsets();
     method @Deprecated public boolean hasSystemWindowInsets();
+    method @NonNull public android.view.WindowInsets inset(@NonNull android.graphics.Insets);
     method @NonNull public android.view.WindowInsets inset(@IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int);
     method public boolean isConsumed();
     method public boolean isRound();
@@ -55517,6 +55539,7 @@
 
   public static final class WindowInsets.Type {
     method public static int captionBar();
+    method public static int displayCutout();
     method public static int ime();
     method public static int mandatorySystemGestures();
     method public static int navigationBars();
@@ -55724,7 +55747,7 @@
     field public static final int TYPE_PRIVATE_PRESENTATION = 2030; // 0x7ee
     field public static final int TYPE_SEARCH_BAR = 2001; // 0x7d1
     field public static final int TYPE_STATUS_BAR = 2000; // 0x7d0
-    field public static final int TYPE_STATUS_BAR_PANEL = 2014; // 0x7de
+    field @Deprecated public static final int TYPE_STATUS_BAR_PANEL = 2014; // 0x7de
     field @Deprecated public static final int TYPE_SYSTEM_ALERT = 2003; // 0x7d3
     field public static final int TYPE_SYSTEM_DIALOG = 2008; // 0x7d8
     field @Deprecated public static final int TYPE_SYSTEM_ERROR = 2010; // 0x7da
@@ -56035,7 +56058,7 @@
     field public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
     field public static final String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
     field public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
-    field public static final String ACTION_ARGUMENT_PRESS_HOLD_DURATION_MILLIS_INT = "android.view.accessibility.action.ARGUMENT_PRESS_HOLD_DURATION_MILLIS_INT";
+    field public static final String ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT = "android.view.accessibility.action.ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT";
     field public static final String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
     field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
     field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
@@ -57542,7 +57565,7 @@
 
   public final class TextClassificationSessionId implements android.os.Parcelable {
     method public int describeContents();
-    method @NonNull public String flattenToString();
+    method @NonNull public String getValue();
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassificationSessionId> CREATOR;
   }
diff --git a/api/system-current.txt b/api/system-current.txt
index 9a1aacd..3334dd0 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -921,14 +921,6 @@
 
 }
 
-package android.app.appsearch {
-
-  public class AppSearchManagerFrameworkInitializer {
-    method public static void initialize();
-  }
-
-}
-
 package android.app.assist {
 
   public static class AssistStructure.ViewNode {
@@ -1170,8 +1162,8 @@
 
   public final class CompatChanges {
     method public static boolean isChangeEnabled(long);
-    method public static boolean isChangeEnabled(long, @NonNull String, @NonNull android.os.UserHandle);
-    method public static boolean isChangeEnabled(long, int);
+    method @RequiresPermission(allOf={"android.permission.READ_COMPAT_CHANGE_CONFIG", "android.permission.LOG_COMPAT_CHANGE"}) public static boolean isChangeEnabled(long, @NonNull String, @NonNull android.os.UserHandle);
+    method @RequiresPermission(allOf={"android.permission.READ_COMPAT_CHANGE_CONFIG", "android.permission.LOG_COMPAT_CHANGE"}) public static boolean isChangeEnabled(long, int);
   }
 
 }
@@ -1469,16 +1461,16 @@
 package android.bluetooth {
 
   public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void disableOptionalCodecs(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void enableOptionalCodecs(@Nullable android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void disableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void enableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice);
     method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothDevice getActiveDevice();
-    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothCodecStatus getCodecStatus(@Nullable android.bluetooth.BluetoothDevice);
+    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothCodecStatus getCodecStatus(@NonNull android.bluetooth.BluetoothDevice);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int getOptionalCodecsEnabled(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setCodecConfigPreference(@Nullable android.bluetooth.BluetoothDevice, @Nullable android.bluetooth.BluetoothCodecConfig);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int isOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int isOptionalCodecsSupported(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setCodecConfigPreference(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothCodecConfig);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setOptionalCodecsEnabled(@Nullable android.bluetooth.BluetoothDevice, int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int supportsOptionalCodecs(@Nullable android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice, int);
     field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0
     field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0
     field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1
@@ -1569,23 +1561,23 @@
   }
 
   public final class BluetoothDevice implements android.os.Parcelable {
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean cancelBondProcess();
-    method public boolean cancelPairing();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getBatteryLevel();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getMessageAccessPermission();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelPairing();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getBatteryLevel();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMessageAccessPermission();
     method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getPhonebookAccessPermission();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getSimAccessPermission();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isBondingInitiatedLocally();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getPhonebookAccessPermission();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getSimAccessPermission();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isBondingInitiatedLocally();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean removeBond();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeBond();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setAlias(@NonNull String);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMessageAccessPermission(int);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPin(@Nullable String);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPin(@NonNull String);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSilenceMode(boolean);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSimAccessPermission(int);
     field public static final int ACCESS_ALLOWED = 1; // 0x1
@@ -1633,15 +1625,17 @@
   }
 
   public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile {
-    method @NonNull public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
-    method public int getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
+    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED";
   }
 
-  public final class BluetoothMap implements android.bluetooth.BluetoothProfile {
-    method @NonNull public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
+  public final class BluetoothMap implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile {
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void close();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) protected void finalize();
+    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
     field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED";
@@ -1893,30 +1887,13 @@
     field public static final String EXTRA_PERMISSION_GROUP_NAME = "android.intent.extra.PERMISSION_GROUP_NAME";
     field public static final String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME";
     field public static final String EXTRA_REASON = "android.intent.extra.REASON";
-    field @Deprecated public static final String EXTRA_REBROADCAST_ON_UNLOCK = "rebroadcastOnUnlock";
     field public static final String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK";
     field public static final String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED";
     field public static final String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";
-    field @Deprecated public static final String EXTRA_SIM_LOCKED_REASON = "reason";
-    field @Deprecated public static final String EXTRA_SIM_STATE = "ss";
     field public static final String EXTRA_UNKNOWN_INSTANT_APP = "android.intent.extra.UNKNOWN_INSTANT_APP";
     field public static final String EXTRA_VERIFICATION_BUNDLE = "android.intent.extra.VERIFICATION_BUNDLE";
     field public static final int FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT = 67108864; // 0x4000000
     field public static final String METADATA_SETUP_VERSION = "android.SETUP_VERSION";
-    field @Deprecated public static final String SIM_ABSENT_ON_PERM_DISABLED = "PERM_DISABLED";
-    field @Deprecated public static final String SIM_LOCKED_NETWORK = "NETWORK";
-    field @Deprecated public static final String SIM_LOCKED_ON_PIN = "PIN";
-    field @Deprecated public static final String SIM_LOCKED_ON_PUK = "PUK";
-    field @Deprecated public static final String SIM_STATE_ABSENT = "ABSENT";
-    field @Deprecated public static final String SIM_STATE_CARD_IO_ERROR = "CARD_IO_ERROR";
-    field @Deprecated public static final String SIM_STATE_CARD_RESTRICTED = "CARD_RESTRICTED";
-    field @Deprecated public static final String SIM_STATE_IMSI = "IMSI";
-    field @Deprecated public static final String SIM_STATE_LOADED = "LOADED";
-    field @Deprecated public static final String SIM_STATE_LOCKED = "LOCKED";
-    field @Deprecated public static final String SIM_STATE_NOT_READY = "NOT_READY";
-    field @Deprecated public static final String SIM_STATE_PRESENT = "PRESENT";
-    field @Deprecated public static final String SIM_STATE_READY = "READY";
-    field @Deprecated public static final String SIM_STATE_UNKNOWN = "UNKNOWN";
   }
 
   public class IntentFilter implements android.os.Parcelable {
@@ -2033,16 +2010,13 @@
     method @NonNull public final int getType();
   }
 
-  public final class InstallationFile implements android.os.Parcelable {
+  public final class InstallationFile {
     ctor public InstallationFile(int, @NonNull String, long, @Nullable byte[], @Nullable byte[]);
-    method public int describeContents();
     method public long getLengthBytes();
     method public int getLocation();
     method @Nullable public byte[] getMetadata();
     method @NonNull public String getName();
     method @Nullable public byte[] getSignature();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstallationFile> CREATOR;
   }
 
   public final class InstantAppInfo implements android.os.Parcelable {
@@ -2233,6 +2207,7 @@
     field public static final String EXTRA_REQUEST_PERMISSIONS_NAMES = "android.content.pm.extra.REQUEST_PERMISSIONS_NAMES";
     field public static final String EXTRA_REQUEST_PERMISSIONS_RESULTS = "android.content.pm.extra.REQUEST_PERMISSIONS_RESULTS";
     field public static final String FEATURE_BROADCAST_RADIO = "android.hardware.broadcastradio";
+    field public static final String FEATURE_CONTEXT_HUB = "android.hardware.context_hub";
     field public static final String FEATURE_INCREMENTAL_DELIVERY = "android.software.incremental_delivery";
     field public static final String FEATURE_REBOOT_ESCROW = "android.hardware.reboot_escrow";
     field public static final String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock";
@@ -4747,7 +4722,7 @@
 
   public final class TvInputManager {
     method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public android.media.tv.TvInputManager.Hardware acquireTvInputHardware(int, @NonNull android.media.tv.TvInputInfo, @NonNull android.media.tv.TvInputManager.HardwareCallback);
-    method @Nullable @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public android.media.tv.TvInputManager.Hardware acquireTvInputHardware(int, @NonNull android.media.tv.TvInputInfo, @NonNull android.media.tv.TvInputManager.HardwareCallback, @Nullable String, int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public android.media.tv.TvInputManager.Hardware acquireTvInputHardware(int, @NonNull android.media.tv.TvInputInfo, @Nullable String, int, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.TvInputManager.HardwareCallback);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating);
     method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig);
     method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(String);
@@ -6296,7 +6271,7 @@
   }
 
   public abstract class NetworkAgent {
-    ctor public NetworkAgent(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, @NonNull android.net.NetworkScore, @NonNull android.net.NetworkAgentConfig, @Nullable android.net.NetworkProvider);
+    ctor public NetworkAgent(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, int, @NonNull android.net.NetworkAgentConfig, @Nullable android.net.NetworkProvider);
     method @Nullable public android.net.Network getNetwork();
     method public void onAddKeepalivePacketFilter(int, @NonNull android.net.KeepalivePacketData);
     method public void onAutomaticReconnectDisabled();
@@ -6311,7 +6286,7 @@
     method @NonNull public android.net.Network register();
     method public void sendLinkProperties(@NonNull android.net.LinkProperties);
     method public void sendNetworkCapabilities(@NonNull android.net.NetworkCapabilities);
-    method public void sendNetworkScore(@NonNull android.net.NetworkScore);
+    method public void sendNetworkScore(int);
     method public void sendSocketKeepaliveEvent(int, int);
     method public void setConnected();
     method @Deprecated public void setLegacyExtraInfo(@Nullable String);
@@ -6418,55 +6393,6 @@
     method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP) public android.net.NetworkRequest.Builder setSignalStrength(int);
   }
 
-  public final class NetworkScore implements android.os.Parcelable {
-    method public int describeContents();
-    method @NonNull public android.net.NetworkScore.Metrics getEndToEndMetrics();
-    method @NonNull public android.net.NetworkScore.Metrics getLinkLayerMetrics();
-    method public int getRange();
-    method @IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) public int getSignalStrength();
-    method public boolean hasPolicy(int);
-    method public boolean isExiting();
-    method @NonNull public android.net.NetworkScore withExiting(boolean);
-    method @NonNull public android.net.NetworkScore withSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH) int);
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkScore> CREATOR;
-    field public static final int MAX_SIGNAL_STRENGTH = 1000; // 0x3e8
-    field public static final int MIN_SIGNAL_STRENGTH = 0; // 0x0
-    field public static final int POLICY_DEFAULT_SUBSCRIPTION = 8; // 0x8
-    field public static final int POLICY_IGNORE_ON_WIFI = 4; // 0x4
-    field public static final int POLICY_LOCKDOWN_VPN = 1; // 0x1
-    field public static final int POLICY_VPN = 2; // 0x2
-    field public static final int RANGE_CLOSE = 1; // 0x1
-    field public static final int RANGE_LONG = 4; // 0x4
-    field public static final int RANGE_MEDIUM = 3; // 0x3
-    field public static final int RANGE_SHORT = 2; // 0x2
-    field public static final int RANGE_UNKNOWN = 0; // 0x0
-    field public static final int UNKNOWN_SIGNAL_STRENGTH = -1; // 0xffffffff
-  }
-
-  public static class NetworkScore.Builder {
-    ctor public NetworkScore.Builder();
-    method @NonNull public android.net.NetworkScore.Builder addPolicy(int);
-    method @NonNull public android.net.NetworkScore build();
-    method @NonNull public android.net.NetworkScore.Builder clearPolicy(int);
-    method @NonNull public android.net.NetworkScore.Builder setEndToEndMetrics(@NonNull android.net.NetworkScore.Metrics);
-    method @NonNull public android.net.NetworkScore.Builder setExiting(boolean);
-    method @NonNull public android.net.NetworkScore.Builder setLegacyScore(int);
-    method @NonNull public android.net.NetworkScore.Builder setLinkLayerMetrics(@NonNull android.net.NetworkScore.Metrics);
-    method @NonNull public android.net.NetworkScore.Builder setRange(int);
-    method @NonNull public android.net.NetworkScore.Builder setSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) int);
-  }
-
-  public static class NetworkScore.Metrics {
-    ctor public NetworkScore.Metrics(@IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int);
-    field public static final int BANDWIDTH_UNKNOWN = -1; // 0xffffffff
-    field @NonNull public static final android.net.NetworkScore.Metrics EMPTY;
-    field public static final int LATENCY_UNKNOWN = -1; // 0xffffffff
-    field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int downlinkBandwidthKBps;
-    field @IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) public final int latencyMs;
-    field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int uplinkBandwidthKBps;
-  }
-
   public class NetworkScoreManager {
     method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean clearScores() throws java.lang.SecurityException;
     method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public void disableScoring() throws java.lang.SecurityException;
@@ -7423,7 +7349,7 @@
     method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setAutoWakeupEnabled(boolean);
     method @RequiresPermission(android.Manifest.permission.WIFI_SET_DEVICE_MOBILITY_STATE) public void setDeviceMobilityState(int);
     method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMacRandomizationSettingPasspointEnabled(@NonNull String, boolean);
-    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMeteredOverridePasspoint(@NonNull String, int);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setPasspointMeteredOverride(@NonNull String, int);
     method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setScanAlwaysAvailable(boolean);
     method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setScanThrottleEnabled(boolean);
     method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public boolean setSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration);
@@ -8857,9 +8783,9 @@
     method public long getNumPacketsTx();
     method public long getRxTimeMillis();
     method public long getSleepTimeMillis();
-    method @NonNull public long[] getTimeInRatMicros();
-    method @NonNull public long[] getTimeInRxSignalStrengthLevelMicros();
-    method @NonNull public long[] getTxTimeMillis();
+    method @NonNull public long getTimeInRatMicros(int);
+    method @NonNull public long getTimeInRxSignalStrengthLevelMicros(@IntRange(from=android.telephony.CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN, to=android.telephony.CellSignalStrength.SIGNAL_STRENGTH_GREAT) int);
+    method @NonNull public long getTxTimeMillis(@IntRange(from=android.telephony.ModemActivityInfo.TX_POWER_LEVEL_0, to=android.telephony.ModemActivityInfo.TX_POWER_LEVEL_4) int);
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.os.connectivity.CellularBatteryStats> CREATOR;
   }
@@ -10401,7 +10327,7 @@
     ctor public ExternalStorageService();
     method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
     method public abstract void onEndSession(@NonNull String) throws java.io.IOException;
-    method public abstract void onStartSession(@NonNull String, int, @NonNull android.os.ParcelFileDescriptor, @NonNull String, @NonNull String) throws java.io.IOException;
+    method public abstract void onStartSession(@NonNull String, int, @NonNull android.os.ParcelFileDescriptor, @NonNull java.io.File, @NonNull java.io.File) throws java.io.IOException;
     field public static final int FLAG_SESSION_ATTRIBUTE_INDEXABLE = 2; // 0x2
     field public static final int FLAG_SESSION_TYPE_FUSE = 1; // 0x1
     field public static final String SERVICE_INTERFACE = "android.service.storage.ExternalStorageService";
@@ -11176,6 +11102,11 @@
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ModemActivityInfo> CREATOR;
     field public static final int TX_POWER_LEVELS = 5; // 0x5
+    field public static final int TX_POWER_LEVEL_0 = 0; // 0x0
+    field public static final int TX_POWER_LEVEL_1 = 1; // 0x1
+    field public static final int TX_POWER_LEVEL_2 = 2; // 0x2
+    field public static final int TX_POWER_LEVEL_3 = 3; // 0x3
+    field public static final int TX_POWER_LEVEL_4 = 4; // 0x4
   }
 
   public class ModemActivityInfo.TransmitPower {
@@ -11422,7 +11353,6 @@
   }
 
   public class ServiceState implements android.os.Parcelable {
-    method @NonNull public android.telephony.ServiceState createLocationInfoSanitizedCopy(boolean);
     method public void fillInNotifierBundle(@NonNull android.os.Bundle);
     method public int getDataNetworkType();
     method public int getDataRegistrationState();
@@ -11431,8 +11361,6 @@
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForDomain(int);
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForTransportType(int);
     method public int getNrFrequencyRange();
-    method @Nullable public String getOperatorAlphaLongRaw();
-    method @Nullable public String getOperatorAlphaShortRaw();
     method @NonNull public static android.telephony.ServiceState newFromBundle(@NonNull android.os.Bundle);
     field public static final int ROAMING_TYPE_DOMESTIC = 2; // 0x2
     field public static final int ROAMING_TYPE_INTERNATIONAL = 3; // 0x3
@@ -11587,7 +11515,7 @@
   public class SmsMessage {
     method @Nullable public static android.telephony.SmsMessage createFromNativeSmsSubmitPdu(@NonNull byte[], boolean);
     method @Nullable public static android.telephony.SmsMessage.SubmitPdu getSmsPdu(int, int, @Nullable String, @NonNull String, @NonNull String, long);
-    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static byte[] getSubmitPduEncodedMessage(boolean, @NonNull String, @NonNull String, int, int, int, int, int, int);
+    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static byte[] getSubmitPduEncodedMessage(boolean, @NonNull String, @NonNull String, int, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0, to=255) int, @IntRange(from=1, to=255) int, @IntRange(from=1, to=255) int);
   }
 
   public class SubscriptionInfo implements android.os.Parcelable {
@@ -11599,7 +11527,7 @@
 
   public class SubscriptionManager {
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean canDisablePhysicalSubscription();
-    method public boolean canManageSubscription(@Nullable android.telephony.SubscriptionInfo, @Nullable String);
+    method public boolean canManageSubscription(@NonNull android.telephony.SubscriptionInfo, @NonNull String);
     method @NonNull public int[] getActiveAndHiddenSubscriptionIdList();
     method @NonNull public int[] getActiveSubscriptionIdList();
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.SubscriptionInfo getActiveSubscriptionInfoForIcc(@NonNull String);
@@ -11616,7 +11544,7 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setIconTint(@ColorInt int, int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSubscriptionEnabled(int, boolean);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUiccApplicationsEnabled(boolean, int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUiccApplicationsEnabled(int, boolean);
     field @RequiresPermission(android.Manifest.permission.MANAGE_SUBSCRIPTION_PLANS) public static final String ACTION_SUBSCRIPTION_PLANS_CHANGED = "android.telephony.action.SUBSCRIPTION_PLANS_CHANGED";
     field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI;
     field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
@@ -11736,10 +11664,10 @@
     method public boolean isDataConnectivityPossible();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled();
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isGlobalModeEnabled();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean isIccLockEnabled();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isInEmergencySmsMode();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isLteCdmaEvdoGsmWcdmaEnabled();
     method public boolean isModemEnabledForSlot(int);
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled();
@@ -11778,7 +11706,6 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setIccLockEnabled(boolean, @NonNull String);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setNetworkSelectionModeManual(@NonNull String, int, boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmask(long);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean);
@@ -11786,7 +11713,8 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadioPower(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerState(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerStateForSlot(int, int);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Boolean>);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>);
     method @Deprecated public void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoiceActivationState(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void shutdownAllRadios();
@@ -12472,7 +12400,6 @@
   }
 
   public class ImsManager {
-    method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int);
     field public static final String ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION = "com.android.internal.intent.action.ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION";
   }
 
@@ -12500,10 +12427,6 @@
     ctor @Deprecated public ImsMmTelManager.RegistrationCallback();
   }
 
-  public class ImsRcsManager implements android.telephony.ims.RegistrationManager {
-    method @NonNull public android.telephony.ims.RcsUceAdapter getUceAdapter();
-  }
-
   public final class ImsReasonInfo implements android.os.Parcelable {
     field public static final String EXTRA_MSG_SERVICE_NOT_AUTHORIZED = "Forbidden. Not Authorized for Service";
   }
@@ -12880,7 +12803,6 @@
   }
 
   public class RcsUceAdapter {
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isUceSettingEnabled() throws android.telephony.ims.ImsException;
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUceSettingEnabled(boolean) throws android.telephony.ims.ImsException;
   }
 
diff --git a/api/test-current.txt b/api/test-current.txt
index f25f108..a42710d 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -48,6 +48,10 @@
     ctor public AccessibilityGestureEvent(int, int);
   }
 
+  public abstract class AccessibilityService extends android.app.Service {
+    field public static final int ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS = 1000; // 0x3e8
+  }
+
 }
 
 package android.animation {
@@ -1799,55 +1803,6 @@
     field public static final int TRANSPORT_TEST = 7; // 0x7
   }
 
-  public final class NetworkScore implements android.os.Parcelable {
-    method public int describeContents();
-    method @NonNull public android.net.NetworkScore.Metrics getEndToEndMetrics();
-    method @NonNull public android.net.NetworkScore.Metrics getLinkLayerMetrics();
-    method public int getRange();
-    method @IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) public int getSignalStrength();
-    method public boolean hasPolicy(int);
-    method public boolean isExiting();
-    method @NonNull public android.net.NetworkScore withExiting(boolean);
-    method @NonNull public android.net.NetworkScore withSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH) int);
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkScore> CREATOR;
-    field public static final int MAX_SIGNAL_STRENGTH = 1000; // 0x3e8
-    field public static final int MIN_SIGNAL_STRENGTH = 0; // 0x0
-    field public static final int POLICY_DEFAULT_SUBSCRIPTION = 8; // 0x8
-    field public static final int POLICY_IGNORE_ON_WIFI = 4; // 0x4
-    field public static final int POLICY_LOCKDOWN_VPN = 1; // 0x1
-    field public static final int POLICY_VPN = 2; // 0x2
-    field public static final int RANGE_CLOSE = 1; // 0x1
-    field public static final int RANGE_LONG = 4; // 0x4
-    field public static final int RANGE_MEDIUM = 3; // 0x3
-    field public static final int RANGE_SHORT = 2; // 0x2
-    field public static final int RANGE_UNKNOWN = 0; // 0x0
-    field public static final int UNKNOWN_SIGNAL_STRENGTH = -1; // 0xffffffff
-  }
-
-  public static class NetworkScore.Builder {
-    ctor public NetworkScore.Builder();
-    method @NonNull public android.net.NetworkScore.Builder addPolicy(int);
-    method @NonNull public android.net.NetworkScore build();
-    method @NonNull public android.net.NetworkScore.Builder clearPolicy(int);
-    method @NonNull public android.net.NetworkScore.Builder setEndToEndMetrics(@NonNull android.net.NetworkScore.Metrics);
-    method @NonNull public android.net.NetworkScore.Builder setExiting(boolean);
-    method @NonNull public android.net.NetworkScore.Builder setLegacyScore(int);
-    method @NonNull public android.net.NetworkScore.Builder setLinkLayerMetrics(@NonNull android.net.NetworkScore.Metrics);
-    method @NonNull public android.net.NetworkScore.Builder setRange(int);
-    method @NonNull public android.net.NetworkScore.Builder setSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) int);
-  }
-
-  public static class NetworkScore.Metrics {
-    ctor public NetworkScore.Metrics(@IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int);
-    field public static final int BANDWIDTH_UNKNOWN = -1; // 0xffffffff
-    field @NonNull public static final android.net.NetworkScore.Metrics EMPTY;
-    field public static final int LATENCY_UNKNOWN = -1; // 0xffffffff
-    field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int downlinkBandwidthKBps;
-    field @IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) public final int latencyMs;
-    field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int uplinkBandwidthKBps;
-  }
-
   public class NetworkStack {
     field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK";
   }
@@ -3775,7 +3730,8 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void refreshUiccProfile();
     method @Deprecated public void setCarrierTestOverride(String, String, String, String, String, String, String);
     method public void setCarrierTestOverride(String, String, String, String, String, String, String, String, String);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Boolean>);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>);
     method @RequiresPermission("android.permission.READ_ACTIVE_EMERGENCY_SESSION") public void updateTestOtaEmergencyNumberDbFilePath(@NonNull String);
     field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
     field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
@@ -4041,7 +3997,6 @@
   }
 
   public class ImsManager {
-    method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int);
     field public static final String ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION = "com.android.internal.intent.action.ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION";
   }
 
@@ -4069,10 +4024,6 @@
     ctor @Deprecated public ImsMmTelManager.RegistrationCallback();
   }
 
-  public class ImsRcsManager implements android.telephony.ims.RegistrationManager {
-    method @NonNull public android.telephony.ims.RcsUceAdapter getUceAdapter();
-  }
-
   public class ImsService extends android.app.Service {
     ctor public ImsService();
     method public android.telephony.ims.feature.MmTelFeature createMmTelFeature(int);
@@ -4445,7 +4396,6 @@
   }
 
   public class RcsUceAdapter {
-    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isUceSettingEnabled() throws android.telephony.ims.ImsException;
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUceSettingEnabled(boolean) throws android.telephony.ims.ImsException;
   }
 
diff --git a/cmds/incident/main.cpp b/cmds/incident/main.cpp
index eb2b98a..d6c6c39 100644
--- a/cmds/incident/main.cpp
+++ b/cmds/incident/main.cpp
@@ -52,9 +52,13 @@
     virtual Status onReportServiceStatus(const String16& service, int32_t status);
     virtual Status onReportFinished();
     virtual Status onReportFailed();
+
+    int getExitCodeOrElse(int defaultCode);
+ private:
+    int mExitCode;
 };
 
-StatusListener::StatusListener()
+StatusListener::StatusListener(): mExitCode(-1)
 {
 }
 
@@ -89,7 +93,7 @@
 {
     fprintf(stderr, "done\n");
     ALOGD("done\n");
-    exit(0);
+    mExitCode = 0;
     return Status::ok();
 }
 
@@ -98,10 +102,15 @@
 {
     fprintf(stderr, "failed\n");
     ALOGD("failed\n");
-    exit(1);
+    mExitCode = 1;
     return Status::ok();
 }
 
+int
+StatusListener::getExitCodeOrElse(int defaultCode) {
+    return mExitCode == -1 ? defaultCode : mExitCode;
+}
+
 // ================================================================================
 static void section_list(FILE* out) {
     IncidentSection sections[INCIDENT_SECTION_COUNT];
@@ -201,20 +210,13 @@
 static int
 stream_output(const int read_fd, const int write_fd) {
     while (true) {
-        uint8_t buf[4096];
-        ssize_t amt = TEMP_FAILURE_RETRY(read(read_fd, buf, sizeof(buf)));
+        int amt = splice(read_fd, NULL, write_fd, NULL, 4096, 0);
         if (amt < 0) {
-            break;
-        } else if (amt == 0) {
-            break;
-        }
-
-        ssize_t wamt = TEMP_FAILURE_RETRY(write(write_fd, buf, amt));
-        if (wamt != amt) {
             return errno;
+        } else if (amt == 0) {
+            return 0;
         }
     }
-    return 0;
 }
 
 // ================================================================================
@@ -384,7 +386,7 @@
 
         // Wait for the result and print out the data they send.
         //IPCThreadState::self()->joinThreadPool();
-        return stream_output(fds[0], STDOUT_FILENO);
+        return listener->getExitCodeOrElse(stream_output(fds[0], STDOUT_FILENO));
     } else if (destination == DEST_DUMPSTATE) {
         // Call into the service
         sp<StatusListener> listener(new StatusListener());
@@ -393,7 +395,7 @@
             fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().string());
             return 1;
         }
-        return stream_output(fds[0], STDOUT_FILENO);
+        return listener->getExitCodeOrElse(stream_output(fds[0], STDOUT_FILENO));
     } else {
         status = service->reportIncident(args);
         if (!status.isOk()) {
diff --git a/cmds/incident_helper/src/ih_util.cpp b/cmds/incident_helper/src/ih_util.cpp
index 9439e1d..557fe9f 100644
--- a/cmds/incident_helper/src/ih_util.cpp
+++ b/cmds/incident_helper/src/ih_util.cpp
@@ -244,7 +244,7 @@
 Reader::~Reader()
 {
     if (mFile != nullptr) fclose(mFile);
-    free(mBuffer);
+    delete[] mBuffer;
 }
 
 bool Reader::readLine(std::string* line) {
diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp
index 73a8f66..0c3a49a 100644
--- a/cmds/statsd/Android.bp
+++ b/cmds/statsd/Android.bp
@@ -302,11 +302,7 @@
     static_libs: [
         "libgmock",
         "libplatformprotos",
-
-        // TODO(b/149842105): Make libstatssocket shared and remove libcutils once statsd_test is
-        // moved to the apex.
-        "libstatssocket",
-        "libcutils",
+        "libstatssocket_private",
     ],
 
     proto: {
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 5535b66..e58e7bc 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -380,8 +380,8 @@
         BootTimeEventErrorCode boot_time_event_error_code_reported = 242 [(module) = "framework"];
         UserspaceRebootReported userspace_reboot_reported = 243 [(module) = "framework"];
         NotificationReported notification_reported = 244 [(module) = "framework"];
-        NotificationPanelReported notification_panel_reported = 245;
-        NotificationChannelModified notification_channel_modified = 246;
+        NotificationPanelReported notification_panel_reported = 245 [(module) = "sysui"];
+        NotificationChannelModified notification_channel_modified = 246 [(module) = "framework"];
         IntegrityCheckResultReported integrity_check_result_reported = 247 [(module) = "framework"];
         IntegrityRulesPushed integrity_rules_pushed = 248 [(module) = "framework"];
         CellBroadcastMessageReported cb_message_reported =
@@ -396,6 +396,7 @@
         ForegroundServiceAppOpSessionEnded foreground_service_app_op_session_ended =
             256  [(module) = "framework"];
         DisplayJankReported display_jank_reported = 257;
+        AppStandbyBucketChanged app_standby_bucket_changed = 258 [(module) = "framework"];
         SdkExtensionStatus sdk_extension_status = 354;
     }
 
@@ -1227,18 +1228,8 @@
     // Name of source package (for historical reasons, since BatteryStats tracked it).
     optional string package_name = 3;
 
-    // These enum values match the STANDBY_BUCKET_XXX constants defined in UsageStatsManager.java.
-    enum Bucket {
-        UNKNOWN = 0;
-        EXEMPTED = 5;
-        ACTIVE = 10;
-        WORKING_SET = 20;
-        FREQUENT = 30;
-        RARE = 40;
-        NEVER = 50;
-    }
     // The App Standby bucket of the app that scheduled the alarm at the time the alarm fired.
-    optional Bucket app_standby_bucket = 4;
+    optional AppStandbyBucketChanged.Bucket app_standby_bucket = 4;
 }
 
 /**
@@ -3646,8 +3637,8 @@
     // The notifying app's uid and package.
     optional int32 uid = 2 [(is_uid) = true];
     optional string package_name = 3;
-    // App-assigned notification channel ID or channel-group ID
-    optional string channel_id = 4;
+    // Hash of app-assigned notification channel ID or channel-group ID
+    optional int32 channel_id_hash = 4;
     // Previous importance setting, if applicable
     optional android.stats.sysui.NotificationImportance old_importance = 5;
     // New importance setting
@@ -8724,3 +8715,45 @@
     // Total number of L5 sv status messages reports, where sv is used in fix since boot
     optional int64 l5_sv_status_reports_used_in_fix = 14;
 }
+
+/**
+ * Logs when an app is moved to a different standby bucket.
+ *
+ * Logged from:
+ *   frameworks/base/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
+ */
+message AppStandbyBucketChanged {
+    optional string package_name = 1;
+
+    // Should be 0, 10, 11, 12, etc. where 0 is the owner. See UserHandle for more documentation.
+    optional int32 user_id = 2;
+
+    // These enum values match the constants defined in UsageStatsManager.java.
+    enum Bucket {
+        BUCKET_UNKNOWN = 0;
+        BUCKET_EXEMPTED = 5;
+        BUCKET_ACTIVE = 10;
+        BUCKET_WORKING_SET = 20;
+        BUCKET_FREQUENT = 30;
+        BUCKET_RARE = 40;
+        BUCKET_RESTRICTED = 45;
+        BUCKET_NEVER = 50;
+    }
+    optional Bucket bucket = 3;
+
+    enum MainReason {
+        MAIN_UNKNOWN = 0;
+        MAIN_DEFAULT = 0x0100;
+        MAIN_TIMEOUT = 0x0200;
+        MAIN_USAGE = 0x0300;
+        MAIN_FORCED_BY_USER = 0x0400;
+        MAIN_PREDICTED = 0x0500;
+        MAIN_FORCED_BY_SYSTEM = 0x0600;
+    }
+    optional MainReason main_reason = 4;
+
+    // A more detailed reason for the standby bucket change. The sub reason name is dependent on
+    // the main reason. Values are one of the REASON_SUB_XXX constants defined in
+    // UsageStatsManager.java.
+    optional int32 sub_reason = 5;
+}
diff --git a/cmds/statsd/tests/condition/SimpleConditionTracker_test.cpp b/cmds/statsd/tests/condition/SimpleConditionTracker_test.cpp
index 8701e17..4b78e30 100644
--- a/cmds/statsd/tests/condition/SimpleConditionTracker_test.cpp
+++ b/cmds/statsd/tests/condition/SimpleConditionTracker_test.cpp
@@ -297,7 +297,7 @@
         std::vector<int> uids = {111, 222, 333};
 
         LogEvent event(/*uid=*/-1, /*pid=*/-1);
-        makeWakeLockEvent(&event, /*atomId=*/ 1, /*timestamp=*/ 0, uids, "wl1", /*acquire=*/ 1);
+        makeWakeLockEvent(&event, /*atomId=*/1, /*timestamp=*/0, uids, "wl1", /*acquire=*/1);
 
         // one matched start
         vector<MatchingState> matcherState;
@@ -334,7 +334,7 @@
 
         // another wake lock acquired by this uid
         LogEvent event2(/*uid=*/-1, /*pid=*/-1);
-        makeWakeLockEvent(&event2, /*atomId=*/ 1, /*timestamp=*/ 0, uids, "wl2", /*acquire=*/ 1);
+        makeWakeLockEvent(&event2, /*atomId=*/1, /*timestamp=*/0, uids, "wl2", /*acquire=*/1);
         matcherState.clear();
         matcherState.push_back(MatchingState::kMatched);
         matcherState.push_back(MatchingState::kNotMatched);
@@ -373,7 +373,7 @@
         EXPECT_TRUE(conditionTracker.getChangedToFalseDimensions(allConditions)->empty());
 
         LogEvent event4(/*uid=*/-1, /*pid=*/-1);
-        makeWakeLockEvent(&event, /*atomId=*/1, /*timestamp=*/ 0, uids, "wl2", /*acquire=*/0);
+        makeWakeLockEvent(&event4, /*atomId=*/1, /*timestamp=*/0, uids, "wl2", /*acquire=*/0);
         matcherState.clear();
         matcherState.push_back(MatchingState::kNotMatched);
         matcherState.push_back(MatchingState::kMatched);
diff --git a/cmds/statsd/tests/log_event/LogEventQueue_test.cpp b/cmds/statsd/tests/log_event/LogEventQueue_test.cpp
index f27d129..c4407f4 100644
--- a/cmds/statsd/tests/log_event/LogEventQueue_test.cpp
+++ b/cmds/statsd/tests/log_event/LogEventQueue_test.cpp
@@ -16,9 +16,11 @@
 
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
+#include <stdio.h>
+
 #include <thread>
 
-#include <stdio.h>
+#include "stats_event.h"
 
 namespace android {
 namespace os {
@@ -29,6 +31,25 @@
 
 using std::unique_ptr;
 
+namespace {
+
+std::unique_ptr<LogEvent> makeLogEvent(uint64_t timestampNs) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, 10);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/-1, /*pid=*/-1);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
+}
+
+} // anonymous namespace
+
 #ifdef __ANDROID__
 TEST(LogEventQueue_test, TestGoodConsumer) {
     LogEventQueue queue(50);
@@ -36,8 +57,7 @@
     std::thread writer([&queue, timeBaseNs] {
         for (int i = 0; i < 100; i++) {
             int64_t oldestEventNs;
-            bool success = queue.push(std::make_unique<LogEvent>(10, timeBaseNs + i * 1000),
-                                      &oldestEventNs);
+            bool success = queue.push(makeLogEvent(timeBaseNs + i * 1000), &oldestEventNs);
             EXPECT_TRUE(success);
             std::this_thread::sleep_for(std::chrono::milliseconds(1));
         }
@@ -63,8 +83,7 @@
         int failure_count = 0;
         int64_t oldestEventNs;
         for (int i = 0; i < 100; i++) {
-            bool success = queue.push(std::make_unique<LogEvent>(10, timeBaseNs + i * 1000),
-                                      &oldestEventNs);
+            bool success = queue.push(makeLogEvent(timeBaseNs + i * 1000), &oldestEventNs);
             if (!success) failure_count++;
             std::this_thread::sleep_for(std::chrono::milliseconds(1));
         }
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index 9f885aa..1d693e3 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -43,10 +43,6 @@
 HSPLandroid/accounts/AccountManager$AmsTask;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Landroid/os/Bundle;
 HSPLandroid/accounts/AccountManager$AmsTask;->set(Landroid/os/Bundle;)V
 HSPLandroid/accounts/AccountManager$AmsTask;->start()Landroid/accounts/AccountManagerFuture;
-HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;->onResult(Landroid/os/Bundle;)V
-HSPLandroid/accounts/AccountManager$BaseFutureTask;->startTask()V
-HSPLandroid/accounts/AccountManager$Future2Task;->done()V
-HSPLandroid/accounts/AccountManager$Future2Task;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLandroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
 HSPLandroid/accounts/AccountManager;->access$000(Landroid/accounts/AccountManager;)Landroid/accounts/IAccountManager;
 HSPLandroid/accounts/AccountManager;->access$200(Landroid/accounts/AccountManager;)Ljava/util/HashMap;
@@ -114,6 +110,7 @@
 HSPLandroid/animation/AnimatorInflater;->getPVH(Landroid/content/res/TypedArray;IIILjava/lang/String;)Landroid/animation/PropertyValuesHolder;
 HSPLandroid/animation/AnimatorInflater;->inferValueTypeFromValues(Landroid/content/res/TypedArray;II)I
 HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator;
+HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/animation/Animator;
 HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;IF)Landroid/animation/Animator;
 HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;Landroid/animation/ValueAnimator;F)Landroid/animation/ValueAnimator;
 HSPLandroid/animation/AnimatorInflater;->loadObjectAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;F)Landroid/animation/ObjectAnimator;
@@ -177,6 +174,7 @@
 HSPLandroid/animation/AnimatorSet;->isStarted()Z
 HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
 HSPLandroid/animation/AnimatorSet;->playSequentially([Landroid/animation/Animator;)V
+HSPLandroid/animation/AnimatorSet;->playTogether(Ljava/util/Collection;)V
 HSPLandroid/animation/AnimatorSet;->playTogether([Landroid/animation/Animator;)V
 HSPLandroid/animation/AnimatorSet;->pulseAnimationFrame(J)Z
 HSPLandroid/animation/AnimatorSet;->pulseFrame(Landroid/animation/AnimatorSet$Node;J)V
@@ -184,6 +182,7 @@
 HSPLandroid/animation/AnimatorSet;->removeDummyListener()V
 HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/AnimatorSet;
 HSPLandroid/animation/AnimatorSet;->setInterpolator(Landroid/animation/TimeInterpolator;)V
+HSPLandroid/animation/AnimatorSet;->setStartDelay(J)V
 HSPLandroid/animation/AnimatorSet;->setTarget(Ljava/lang/Object;)V
 HSPLandroid/animation/AnimatorSet;->shouldPlayTogether()Z
 HSPLandroid/animation/AnimatorSet;->sortAnimationEvents()V
@@ -195,6 +194,7 @@
 HSPLandroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V
 HSPLandroid/animation/ArgbEvaluator;-><init>()V
 HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/animation/ArgbEvaluator;->getInstance()Landroid/animation/ArgbEvaluator;
 HSPLandroid/animation/FloatKeyframeSet;-><init>([Landroid/animation/Keyframe$FloatKeyframe;)V
 HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/FloatKeyframeSet;
 HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/Keyframes;
@@ -214,8 +214,11 @@
 HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe$IntKeyframe;
 HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe$IntKeyframe;->getIntValue()I
+HSPLandroid/animation/Keyframe$IntKeyframe;->getValue()Ljava/lang/Object;
 HSPLandroid/animation/Keyframe$IntKeyframe;->setValue(Ljava/lang/Object;)V
 HSPLandroid/animation/Keyframe$ObjectKeyframe;-><init>(FLjava/lang/Object;)V
+HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe$ObjectKeyframe;
+HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe$ObjectKeyframe;->getValue()Ljava/lang/Object;
 HSPLandroid/animation/Keyframe;-><init>()V
 HSPLandroid/animation/Keyframe;->getFraction()F
@@ -229,6 +232,8 @@
 HSPLandroid/animation/Keyframe;->setValueWasSetOnStart(Z)V
 HSPLandroid/animation/Keyframe;->valueWasSetOnStart()Z
 HSPLandroid/animation/KeyframeSet;-><init>([Landroid/animation/Keyframe;)V
+HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/KeyframeSet;
+HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/Keyframes;
 HSPLandroid/animation/KeyframeSet;->getKeyframes()Ljava/util/List;
 HSPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;
 HSPLandroid/animation/KeyframeSet;->ofFloat([F)Landroid/animation/KeyframeSet;
@@ -236,6 +241,10 @@
 HSPLandroid/animation/KeyframeSet;->ofObject([Ljava/lang/Object;)Landroid/animation/KeyframeSet;
 HSPLandroid/animation/KeyframeSet;->ofPath(Landroid/graphics/Path;F)Landroid/animation/PathKeyframes;
 HSPLandroid/animation/KeyframeSet;->setEvaluator(Landroid/animation/TypeEvaluator;)V
+HSPLandroid/animation/LayoutTransition$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V
+HSPLandroid/animation/LayoutTransition$CleanupCallback;->cleanup()V
+HSPLandroid/animation/LayoutTransition$CleanupCallback;->onPreDraw()Z
 HSPLandroid/animation/LayoutTransition;-><init>()V
 HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;)V
 HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
@@ -243,6 +252,9 @@
 HSPLandroid/animation/LayoutTransition;->cancel(I)V
 HSPLandroid/animation/LayoutTransition;->isChangingLayout()Z
 HSPLandroid/animation/LayoutTransition;->layoutChange(Landroid/view/ViewGroup;)V
+HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
+HSPLandroid/animation/LayoutTransition;->runChangeTransition(Landroid/view/ViewGroup;Landroid/view/View;I)V
+HSPLandroid/animation/LayoutTransition;->setupChangeAnimation(Landroid/view/ViewGroup;ILandroid/animation/Animator;JLandroid/view/View;)V
 HSPLandroid/animation/ObjectAnimator;-><init>()V
 HSPLandroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Landroid/util/Property;)V
 HSPLandroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Ljava/lang/String;)V
@@ -266,6 +278,8 @@
 HSPLandroid/animation/ObjectAnimator;->setProperty(Landroid/util/Property;)V
 HSPLandroid/animation/ObjectAnimator;->setPropertyName(Ljava/lang/String;)V
 HSPLandroid/animation/ObjectAnimator;->setTarget(Ljava/lang/Object;)V
+HSPLandroid/animation/ObjectAnimator;->setupEndValues()V
+HSPLandroid/animation/ObjectAnimator;->setupStartValues()V
 HSPLandroid/animation/ObjectAnimator;->shouldAutoCancel(Landroid/animation/AnimationHandler$AnimationFrameCallback;)Z
 HSPLandroid/animation/ObjectAnimator;->start()V
 HSPLandroid/animation/PathKeyframes$1;-><init>(Landroid/animation/PathKeyframes;)V
@@ -324,10 +338,14 @@
 HSPLandroid/animation/PropertyValuesHolder;->setFloatValues([F)V
 HSPLandroid/animation/PropertyValuesHolder;->setIntValues([I)V
 HSPLandroid/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V
+HSPLandroid/animation/PropertyValuesHolder;->setProperty(Landroid/util/Property;)V
 HSPLandroid/animation/PropertyValuesHolder;->setPropertyName(Ljava/lang/String;)V
+HSPLandroid/animation/PropertyValuesHolder;->setupEndValue(Ljava/lang/Object;)V
 HSPLandroid/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V
 HSPLandroid/animation/PropertyValuesHolder;->setupSetterAndGetter(Ljava/lang/Object;)V
 HSPLandroid/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
+HSPLandroid/animation/PropertyValuesHolder;->setupStartValue(Ljava/lang/Object;)V
+HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landroid/animation/Keyframe;)V
 HSPLandroid/animation/StateListAnimator$1;-><init>(Landroid/animation/StateListAnimator;)V
 HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V
 HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;-><init>(Landroid/animation/StateListAnimator;)V
@@ -428,6 +446,8 @@
 HSPLandroid/app/-$$Lambda$SharedPreferencesImpl$EditorImpl$3CAjkhzA131V3V-sLfP2uy0FWZ0;->run()V
 HSPLandroid/app/-$$Lambda$oslF4K8Uk6v-6nTRoaEpCmfAptE;-><init>(Landroid/app/Dialog;)V
 HSPLandroid/app/Activity$1;-><init>(Landroid/app/Activity;)V
+HSPLandroid/app/Activity$1;->isTaskRoot()Z
+HSPLandroid/app/Activity$1;->updateStatusBarColor(I)V
 HSPLandroid/app/Activity$HostCallbacks;-><init>(Landroid/app/Activity;)V
 HSPLandroid/app/Activity$HostCallbacks;->onAttachFragment(Landroid/app/Fragment;)V
 HSPLandroid/app/Activity$HostCallbacks;->onGetLayoutInflater()Landroid/view/LayoutInflater;
@@ -475,6 +495,7 @@
 HSPLandroid/app/Activity;->getComponentName()Landroid/content/ComponentName;
 HSPLandroid/app/Activity;->getContentCaptureManager()Landroid/view/contentcapture/ContentCaptureManager;
 HSPLandroid/app/Activity;->getContentCaptureTypeAsString(I)Ljava/lang/String;
+HSPLandroid/app/Activity;->getCurrentFocus()Landroid/view/View;
 HSPLandroid/app/Activity;->getFragmentManager()Landroid/app/FragmentManager;
 HSPLandroid/app/Activity;->getIntent()Landroid/content/Intent;
 HSPLandroid/app/Activity;->getLastNonConfigurationInstance()Ljava/lang/Object;
@@ -485,10 +506,12 @@
 HSPLandroid/app/Activity;->getTitleColor()I
 HSPLandroid/app/Activity;->getWindow()Landroid/view/Window;
 HSPLandroid/app/Activity;->getWindowManager()Landroid/view/WindowManager;
+HSPLandroid/app/Activity;->initWindowDecorActionBar()V
 HSPLandroid/app/Activity;->isChangingConfigurations()Z
 HSPLandroid/app/Activity;->isChild()Z
 HSPLandroid/app/Activity;->isDestroyed()Z
 HSPLandroid/app/Activity;->isFinishing()Z
+HSPLandroid/app/Activity;->isTaskRoot()Z
 HSPLandroid/app/Activity;->makeVisible()V
 HSPLandroid/app/Activity;->notifyContentCaptureManagerIfNeeded(I)V
 HSPLandroid/app/Activity;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V
@@ -496,6 +519,7 @@
 HSPLandroid/app/Activity;->onAttachedToWindow()V
 HSPLandroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->onCreateDescription()Ljava/lang/CharSequence;
+HSPLandroid/app/Activity;->onCreateOptionsMenu(Landroid/view/Menu;)Z
 HSPLandroid/app/Activity;->onCreatePanelMenu(ILandroid/view/Menu;)Z
 HSPLandroid/app/Activity;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
 HSPLandroid/app/Activity;->onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
@@ -518,6 +542,7 @@
 HSPLandroid/app/Activity;->onStop()V
 HSPLandroid/app/Activity;->onTitleChanged(Ljava/lang/CharSequence;I)V
 HSPLandroid/app/Activity;->onTopResumedActivityChanged(Z)V
+HSPLandroid/app/Activity;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/app/Activity;->onTrimMemory(I)V
 HSPLandroid/app/Activity;->onUserInteraction()V
 HSPLandroid/app/Activity;->onUserLeaveHint()V
@@ -536,7 +561,9 @@
 HSPLandroid/app/Activity;->performUserLeaving()V
 HSPLandroid/app/Activity;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
 HSPLandroid/app/Activity;->restoreHasCurrentPermissionRequest(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->runOnUiThread(Ljava/lang/Runnable;)V
 HSPLandroid/app/Activity;->saveManagedDialogs(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->setRequestedOrientation(I)V
 HSPLandroid/app/Activity;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V
 HSPLandroid/app/Activity;->setTheme(I)V
 HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;)V
@@ -561,8 +588,6 @@
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningServiceInfo;
 HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/ActivityManager$RunningServiceInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/ActivityManager$RunningServiceInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
 HSPLandroid/app/ActivityManager$RunningServiceInfo;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$TaskDescription;
 HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -570,6 +595,8 @@
 HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
 HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;ILjava/lang/String;IIIIZZIII)V
+HSPLandroid/app/ActivityManager$TaskDescription;->copyFromPreserveHiddenFields(Landroid/app/ActivityManager$TaskDescription;)V
+HSPLandroid/app/ActivityManager$TaskDescription;->getIcon()Landroid/graphics/Bitmap;
 HSPLandroid/app/ActivityManager$TaskDescription;->getIconFilename()Ljava/lang/String;
 HSPLandroid/app/ActivityManager$TaskDescription;->getPrimaryColor()I
 HSPLandroid/app/ActivityManager$TaskDescription;->loadTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
@@ -581,18 +608,6 @@
 HSPLandroid/app/ActivityManager$TaskDescription;->setPrimaryColor(I)V
 HSPLandroid/app/ActivityManager$TaskDescription;->setStatusBarColor(I)V
 HSPLandroid/app/ActivityManager$TaskDescription;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getColorSpace()Landroid/graphics/ColorSpace;
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getContentInsets()Landroid/graphics/Rect;
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getId()J
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getOrientation()I
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getScale()F
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getSnapshot()Landroid/graphics/GraphicBuffer;
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getSystemUiVisibility()I
-HSPLandroid/app/ActivityManager$TaskSnapshot;->getWindowingMode()I
-HSPLandroid/app/ActivityManager$TaskSnapshot;->isRealSnapshot()Z
-HSPLandroid/app/ActivityManager$TaskSnapshot;->isReducedResolution()Z
-HSPLandroid/app/ActivityManager$TaskSnapshot;->isTranslucent()Z
-HSPLandroid/app/ActivityManager$UidObserver;-><init>(Landroid/app/ActivityManager$OnUidImportanceListener;Landroid/content/Context;)V
 HSPLandroid/app/ActivityManager$UidObserver;->onUidGone(IZ)V
 HSPLandroid/app/ActivityManager$UidObserver;->onUidStateChanged(IIJI)V
 HSPLandroid/app/ActivityManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
@@ -646,15 +661,19 @@
 HSPLandroid/app/ActivityThread$ApplicationThread;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/AutofillOptions;Landroid/content/ContentCaptureOptions;[J)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->clearDnsCache()V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZZ[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZZZ)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Ljava/io/PrintWriter;Landroid/os/Debug$MemoryInfo;ZZZZZ)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfoProto(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZ[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->lambda$scheduleTrimMemory$0(Ljava/lang/Object;I)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;II)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
 PLandroid/app/ActivityThread$ApplicationThread;->scheduleLowMemory()V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
@@ -670,6 +689,7 @@
 HSPLandroid/app/ActivityThread$CreateBackupAgentData;-><init>()V
 HSPLandroid/app/ActivityThread$CreateServiceData;-><init>()V
 HSPLandroid/app/ActivityThread$CreateServiceData;->toString()Ljava/lang/String;
+HSPLandroid/app/ActivityThread$DumpComponentInfo;-><init>()V
 HSPLandroid/app/ActivityThread$GcIdler;-><init>(Landroid/app/ActivityThread;)V
 HSPLandroid/app/ActivityThread$GcIdler;->queueIdle()Z
 HSPLandroid/app/ActivityThread$H;-><init>(Landroid/app/ActivityThread;)V
@@ -703,7 +723,6 @@
 HSPLandroid/app/ActivityThread;->access$2500(Landroid/app/ActivityThread;Landroid/os/Bundle;)V
 HSPLandroid/app/ActivityThread;->access$2600(Landroid/app/ActivityThread;Landroid/os/Bundle;)V
 HSPLandroid/app/ActivityThread;->access$2700(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread;->access$2800(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
 HSPLandroid/app/ActivityThread;->access$300(Landroid/app/ActivityThread;ILjava/lang/Object;I)V
 HSPLandroid/app/ActivityThread;->access$3200(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor;
 HSPLandroid/app/ActivityThread;->access$3300(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor;
@@ -729,9 +748,11 @@
 HSPLandroid/app/ActivityThread;->currentApplication()Landroid/app/Application;
 HSPLandroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String;
 HSPLandroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
-HSPLandroid/app/ActivityThread;->currentProcessName()Ljava/lang/String;
 HSPLandroid/app/ActivityThread;->doGcIfNeeded()V
 HSPLandroid/app/ActivityThread;->doGcIfNeeded(Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread;->dumpMemInfoTable(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZJJJJJJ)V
+HSPLandroid/app/ActivityThread;->dumpMemInfoTable(Ljava/io/PrintWriter;Landroid/os/Debug$MemoryInfo;ZZZZILjava/lang/String;JJJJJJ)V
+HSPLandroid/app/ActivityThread;->dumpMemoryInfo(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;IIIIIIZIII)V
 HSPLandroid/app/ActivityThread;->freeTextLayoutCachesIfNeeded(I)V
 HSPLandroid/app/ActivityThread;->getActivitiesToBeDestroyed()Ljava/util/Map;
 HSPLandroid/app/ActivityThread;->getActivityClient(Landroid/os/IBinder;)Landroid/app/ActivityThread$ActivityClientRecord;
@@ -764,8 +785,8 @@
 HSPLandroid/app/ActivityThread;->handleDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)V
 HSPLandroid/app/ActivityThread;->handleDestroyBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
 HSPLandroid/app/ActivityThread;->handleDispatchPackageBroadcast(I[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread;->handleDumpService(Landroid/app/ActivityThread$DumpComponentInfo;)V
 HSPLandroid/app/ActivityThread;->handleEnterAnimationComplete(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread;->handleInstallProvider(Landroid/content/pm/ProviderInfo;)V
 HSPLandroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;Landroid/content/Intent;)Landroid/app/Activity;
 HPLandroid/app/ActivityThread;->handleLowMemory()V
 HSPLandroid/app/ActivityThread;->handlePauseActivity(Landroid/os/IBinder;ZZILandroid/app/servertransaction/PendingTransactionActions;Ljava/lang/String;)V
@@ -793,6 +814,7 @@
 HSPLandroid/app/ActivityThread;->peekPackageInfo(Ljava/lang/String;Z)Landroid/app/LoadedApk;
 HSPLandroid/app/ActivityThread;->performActivityConfigurationChanged(Landroid/app/Activity;Landroid/content/res/Configuration;Landroid/content/res/Configuration;IZ)Landroid/content/res/Configuration;
 HSPLandroid/app/ActivityThread;->performConfigurationChanged(Landroid/content/ComponentCallbacks2;Landroid/content/res/Configuration;)V
+HSPLandroid/app/ActivityThread;->performConfigurationChangedForActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;)V
 HSPLandroid/app/ActivityThread;->performConfigurationChangedForActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;IZ)Landroid/content/res/Configuration;
 HSPLandroid/app/ActivityThread;->performDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)Landroid/app/ActivityThread$ActivityClientRecord;
 HSPLandroid/app/ActivityThread;->performLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/Intent;)Landroid/app/Activity;
@@ -802,6 +824,7 @@
 HSPLandroid/app/ActivityThread;->performResumeActivity(Landroid/os/IBinder;ZLjava/lang/String;)Landroid/app/ActivityThread$ActivityClientRecord;
 HSPLandroid/app/ActivityThread;->performStopActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions$StopInfo;ZZLjava/lang/String;)V
 HSPLandroid/app/ActivityThread;->performUserLeavingActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V
+HSPLandroid/app/ActivityThread;->printRow(Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/Object;)V
 HSPLandroid/app/ActivityThread;->purgePendingResources()V
 HSPLandroid/app/ActivityThread;->releaseProvider(Landroid/content/IContentProvider;Z)Z
 HSPLandroid/app/ActivityThread;->reportSizeConfigurations(Landroid/app/ActivityThread$ActivityClientRecord;)V
@@ -848,7 +871,6 @@
 HSPLandroid/app/AlarmManager;->set(IJLandroid/app/PendingIntent;)V
 HSPLandroid/app/AlarmManager;->set(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
 HSPLandroid/app/AlarmManager;->setExact(IJLandroid/app/PendingIntent;)V
-HSPLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
 HSPLandroid/app/AlarmManager;->setExactAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V
 HSPLandroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Landroid/os/Handler;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
 HSPLandroid/app/AlarmManager;->setInexactRepeating(IJJLandroid/app/PendingIntent;)V
@@ -866,9 +888,7 @@
 HSPLandroid/app/AppGlobals;->getInitialApplication()Landroid/app/Application;
 HSPLandroid/app/AppGlobals;->getIntCoreSetting(Ljava/lang/String;I)I
 HSPLandroid/app/AppGlobals;->getPackageManager()Landroid/content/pm/IPackageManager;
-HSPLandroid/app/AppOpsManager$PackageOps;->getOps()Ljava/util/List;
 HSPLandroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
-HSPLandroid/app/AppOpsManager;->access$200()[Ljava/lang/String;
 HSPLandroid/app/AppOpsManager;->checkOp(IILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
@@ -879,7 +899,6 @@
 HSPLandroid/app/AppOpsManager;->getPackagesForOps([I)Ljava/util/List;
 HSPLandroid/app/AppOpsManager;->isCollectingNotedAppOps()Z
 HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
@@ -891,7 +910,6 @@
 HSPLandroid/app/AppOpsManager;->resumeNotedAppOpsCollection(Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;)V
 HSPLandroid/app/AppOpsManager;->strOpToOp(Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->unsafeCheckOp(Ljava/lang/String;ILjava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
 HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
 HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostDestroyed(Landroid/app/Activity;)V
 HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostPaused(Landroid/app/Activity;)V
@@ -942,7 +960,6 @@
 HSPLandroid/app/Application;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
 HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>(Ljava/lang/Throwable;)V
 HSPLandroid/app/ApplicationErrorReport$CrashInfo;->sanitizeString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/ApplicationErrorReport$CrashInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>(Ljava/lang/Throwable;)V
 HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>()V
 HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>(Landroid/app/ApplicationLoaders$1;)V
@@ -950,7 +967,6 @@
 HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoader(Landroid/content/pm/SharedLibraryInfo;)V
 HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoaders([Landroid/content/pm/SharedLibraryInfo;)V
 HSPLandroid/app/ApplicationLoaders;->getCachedNonBootclasspathSystemLib(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
-HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/ClassLoader;
 HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
 HSPLandroid/app/ApplicationLoaders;->getClassLoaderWithSharedLibraries(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
 HSPLandroid/app/ApplicationLoaders;->getDefault()Landroid/app/ApplicationLoaders;
@@ -1014,7 +1030,6 @@
 HSPLandroid/app/ApplicationPackageManager;->hasUserBadge(I)Z
 HSPLandroid/app/ApplicationPackageManager;->isInstantApp()Z
 HSPLandroid/app/ApplicationPackageManager;->isInstantApp(Ljava/lang/String;)Z
-HSPLandroid/app/ApplicationPackageManager;->isSafeMode()Z
 HSPLandroid/app/ApplicationPackageManager;->loadItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->loadUnbadgedItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->maybeAdjustApplicationInfo(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
@@ -1067,6 +1082,7 @@
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;->resolveUserIdFromAuthority(Ljava/lang/String;)I
 HSPLandroid/app/ContextImpl;-><init>(Landroid/app/ContextImpl;Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Landroid/os/UserHandle;ILjava/lang/ClassLoader;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z
 HSPLandroid/app/ContextImpl;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
 HSPLandroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
 HSPLandroid/app/ContextImpl;->bindServiceCommon(Landroid/content/Intent;Landroid/content/ServiceConnection;ILjava/lang/String;Landroid/os/Handler;Ljava/util/concurrent/Executor;Landroid/os/UserHandle;)Z
@@ -1083,7 +1099,6 @@
 HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;)Landroid/app/ContextImpl;
 HSPLandroid/app/ContextImpl;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;
-HSPLandroid/app/ContextImpl;->createContextAsUser(Landroid/os/UserHandle;I)Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createDeviceProtectedStorageContext()Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createDisplayContext(Landroid/view/Display;)Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createFeatureContext(Ljava/lang/String;)Landroid/content/Context;
@@ -1099,6 +1114,7 @@
 HSPLandroid/app/ContextImpl;->enforce(Ljava/lang/String;IZILjava/lang/String;)V
 HSPLandroid/app/ContextImpl;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/ContextImpl;->ensureExternalDirsExistOrFilter([Ljava/io/File;)[Ljava/io/File;
+HSPLandroid/app/ContextImpl;->ensureExternalDirsExistOrFilter([Ljava/io/File;Z)[Ljava/io/File;
 HSPLandroid/app/ContextImpl;->ensurePrivateCacheDirExists(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;)Ljava/io/File;
 HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;IILjava/lang/String;)Ljava/io/File;
@@ -1172,7 +1188,6 @@
 HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V
 HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;I)V
-HSPLandroid/app/ContextImpl;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 HSPLandroid/app/ContextImpl;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
 HSPLandroid/app/ContextImpl;->setAutofillOptions(Landroid/content/AutofillOptions;)V
 HSPLandroid/app/ContextImpl;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V
@@ -1206,6 +1221,7 @@
 HSPLandroid/app/Dialog;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/app/Dialog;->getContext()Landroid/content/Context;
 HSPLandroid/app/Dialog;->getWindow()Landroid/view/Window;
+HSPLandroid/app/Dialog;->hide()V
 HSPLandroid/app/Dialog;->onAttachedToWindow()V
 HSPLandroid/app/Dialog;->onContentChanged()V
 HSPLandroid/app/Dialog;->onCreate(Landroid/os/Bundle;)V
@@ -1218,6 +1234,8 @@
 HSPLandroid/app/Dialog;->sendShowMessage()V
 HSPLandroid/app/Dialog;->setCancelable(Z)V
 HSPLandroid/app/Dialog;->setCanceledOnTouchOutside(Z)V
+HSPLandroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V
+HSPLandroid/app/Dialog;->setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V
 HSPLandroid/app/Dialog;->show()V
 HSPLandroid/app/DownloadManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/app/EventLogTags;->writeWmOnCreateCalled(ILjava/lang/String;Ljava/lang/String;)V
@@ -1231,6 +1249,7 @@
 HSPLandroid/app/EventLogTags;->writeWmOnTopResumedLostCalled(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/Fragment$1;-><init>(Landroid/app/Fragment;)V
 HSPLandroid/app/Fragment;-><init>()V
+HSPLandroid/app/Fragment;->getActivity()Landroid/app/Activity;
 HSPLandroid/app/Fragment;->getAnimatingAway()Landroid/animation/Animator;
 HSPLandroid/app/Fragment;->getChildFragmentManager()Landroid/app/FragmentManager;
 HSPLandroid/app/Fragment;->getContext()Landroid/content/Context;
@@ -1390,6 +1409,7 @@
 HSPLandroid/app/IActivityManager$Stub$Proxy;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermissionWithToken(Ljava/lang/String;IILandroid/os/IBinder;)I
+HSPLandroid/app/IActivityManager$Stub$Proxy;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUser()Landroid/content/pm/UserInfo;
@@ -1399,6 +1419,7 @@
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getRunningAppProcesses()Ljava/util/List;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getServices(II)Ljava/util/List;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->isUserAMonkey()Z
 HSPLandroid/app/IActivityManager$Stub$Proxy;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
@@ -1426,6 +1447,7 @@
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDisplayId(Landroid/os/IBinder;)I
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;[I[I[I)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->setRequestedOrientation(Landroid/os/IBinder;I)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
 HSPLandroid/app/IActivityTaskManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityTaskManager;
@@ -1457,16 +1479,13 @@
 HSPLandroid/app/IServiceConnection$Stub;-><init>()V
 HSPLandroid/app/IServiceConnection$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/app/IServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/app/ITaskStackListener$Stub;-><init>()V
 HSPLandroid/app/IUiAutomationConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiAutomationConnection;
 HSPLandroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I
 HSPLandroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
-HSPLandroid/app/IUidObserver$Stub;-><init>()V
 HSPLandroid/app/IUidObserver$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/app/IUriGrantsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUriGrantsManager;
 HSPLandroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager;
-HSPLandroid/app/IWallpaperManagerCallback$Stub;-><init>()V
 HSPLandroid/app/Instrumentation;-><init>()V
 HSPLandroid/app/Instrumentation;->basicInit(Landroid/app/ActivityThread;)V
 HSPLandroid/app/Instrumentation;->callActivityOnCreate(Landroid/app/Activity;Landroid/os/Bundle;)V
@@ -1491,13 +1510,18 @@
 HSPLandroid/app/Instrumentation;->postPerformCreate(Landroid/app/Activity;)V
 HSPLandroid/app/Instrumentation;->prePerformCreate(Landroid/app/Activity;)V
 HSPLandroid/app/IntentReceiverLeaked;-><init>(Ljava/lang/String;)V
+HSPLandroid/app/IntentService$ServiceHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/app/IntentService;-><init>(Ljava/lang/String;)V
+HSPLandroid/app/IntentService;->onCreate()V
+HSPLandroid/app/IntentService;->onDestroy()V
+HSPLandroid/app/IntentService;->onStart(Landroid/content/Intent;I)V
+HSPLandroid/app/IntentService;->onStartCommand(Landroid/content/Intent;II)I
 HSPLandroid/app/JobSchedulerImpl;-><init>(Landroid/app/job/IJobScheduler;)V
 HSPLandroid/app/JobSchedulerImpl;->cancel(I)V
 HSPLandroid/app/JobSchedulerImpl;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
 HSPLandroid/app/JobSchedulerImpl;->getAllPendingJobs()Ljava/util/List;
 HSPLandroid/app/JobSchedulerImpl;->getPendingJob(I)Landroid/app/job/JobInfo;
 HSPLandroid/app/JobSchedulerImpl;->schedule(Landroid/app/job/JobInfo;)I
-HSPLandroid/app/JobSchedulerImpl;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
 HSPLandroid/app/KeyguardManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/app/KeyguardManager;->inKeyguardRestrictedInputMode()Z
 HSPLandroid/app/KeyguardManager;->isDeviceLocked(I)Z
@@ -1522,6 +1546,7 @@
 HSPLandroid/app/LoadedApk$ServiceDispatcher$RunConnection;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;IZ)V
 HSPLandroid/app/LoadedApk$ServiceDispatcher$RunConnection;->run()V
 HSPLandroid/app/LoadedApk$ServiceDispatcher;-><init>(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)V
+HSPLandroid/app/LoadedApk$ServiceDispatcher;-><init>(Landroid/content/ServiceConnection;Landroid/content/Context;Ljava/util/concurrent/Executor;I)V
 HSPLandroid/app/LoadedApk$ServiceDispatcher;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
 HSPLandroid/app/LoadedApk$ServiceDispatcher;->death(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HSPLandroid/app/LoadedApk$ServiceDispatcher;->doConnected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
@@ -1584,6 +1609,7 @@
 HSPLandroid/app/Notification$Action$Builder;->build()Landroid/app/Notification$Action;
 HSPLandroid/app/Notification$Action$Builder;->checkContextualActionNullFields()V
 HSPLandroid/app/Notification$Action$Builder;->setAllowGeneratedReplies(Z)Landroid/app/Notification$Action$Builder;
+HSPLandroid/app/Notification$Action$Builder;->setContextual(Z)Landroid/app/Notification$Action$Builder;
 HSPLandroid/app/Notification$Action$Builder;->setSemanticAction(I)Landroid/app/Notification$Action$Builder;
 HSPLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZ)V
 HSPLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZLandroid/app/Notification$1;)V
@@ -1686,7 +1712,6 @@
 HSPLandroid/app/Notification;->getLargeIcon()Landroid/graphics/drawable/Icon;
 HSPLandroid/app/Notification;->getNotificationStyle()Ljava/lang/Class;
 HSPLandroid/app/Notification;->getNotificationStyleClass(Ljava/lang/String;)Ljava/lang/Class;
-HSPLandroid/app/Notification;->getShortcutId()Ljava/lang/String;
 HSPLandroid/app/Notification;->getSmallIcon()Landroid/graphics/drawable/Icon;
 HSPLandroid/app/Notification;->getSortKey()Ljava/lang/String;
 HSPLandroid/app/Notification;->lambda$writeToParcel$0$Notification(Landroid/os/Parcel;Landroid/app/PendingIntent;Landroid/os/Parcel;I)V
@@ -1707,13 +1732,12 @@
 HSPLandroid/app/NotificationChannel;->getGroup()Ljava/lang/String;
 HSPLandroid/app/NotificationChannel;->getId()Ljava/lang/String;
 HSPLandroid/app/NotificationChannel;->getImportance()I
-HSPLandroid/app/NotificationChannel;->getLockscreenVisibility()I
 HSPLandroid/app/NotificationChannel;->getName()Ljava/lang/CharSequence;
 HSPLandroid/app/NotificationChannel;->getSound()Landroid/net/Uri;
 HSPLandroid/app/NotificationChannel;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/NotificationChannel;->setBlockableSystem(Z)V
 HSPLandroid/app/NotificationChannel;->setDescription(Ljava/lang/String;)V
 HSPLandroid/app/NotificationChannel;->setGroup(Ljava/lang/String;)V
+HSPLandroid/app/NotificationChannel;->setLockscreenVisibility(I)V
 HSPLandroid/app/NotificationChannel;->setShowBadge(Z)V
 HSPLandroid/app/NotificationChannel;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)V
 HSPLandroid/app/NotificationChannel;->writeToParcel(Landroid/os/Parcel;I)V
@@ -1743,6 +1767,7 @@
 HSPLandroid/app/NotificationManager;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;
 HSPLandroid/app/NotificationManager;->getNotificationChannels()Ljava/util/List;
 HSPLandroid/app/NotificationManager;->getService()Landroid/app/INotificationManager;
+HSPLandroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
 HSPLandroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Notification;)V
 HSPLandroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V
 HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I
@@ -1751,6 +1776,7 @@
 HSPLandroid/app/PendingIntent;-><init>(Landroid/content/IIntentSender;)V
 HSPLandroid/app/PendingIntent;-><init>(Landroid/os/IBinder;Ljava/lang/Object;)V
 HSPLandroid/app/PendingIntent;->buildServicePendingIntent(Landroid/content/Context;ILandroid/content/Intent;II)Landroid/app/PendingIntent;
+HSPLandroid/app/PendingIntent;->cancel()V
 HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z
 HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;
@@ -1766,6 +1792,7 @@
 HSPLandroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Person;
 HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/Person$Builder;->build()Landroid/app/Person;
 HSPLandroid/app/Person;-><init>(Landroid/app/Person$Builder;)V
 HSPLandroid/app/Person;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/Person;-><init>(Landroid/os/Parcel;Landroid/app/Person$1;)V
@@ -1809,6 +1836,7 @@
 HSPLandroid/app/ResourcesManager;->cleanupReferences(Landroid/os/IBinder;)V
 HSPLandroid/app/ResourcesManager;->createAssetManager(Landroid/content/res/ResourcesKey;)Landroid/content/res/AssetManager;
 HSPLandroid/app/ResourcesManager;->createBaseActivityResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
+HSPLandroid/app/ResourcesManager;->createBaseActivityResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;Ljava/util/List;)Landroid/content/res/Resources;
 HSPLandroid/app/ResourcesManager;->createResources(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
 HSPLandroid/app/ResourcesManager;->createResourcesForActivityLocked(Landroid/os/IBinder;Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
 HSPLandroid/app/ResourcesManager;->createResourcesImpl(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
@@ -1851,6 +1879,7 @@
 HSPLandroid/app/Service;->stopForeground(Z)V
 HSPLandroid/app/Service;->stopSelf()V
 HSPLandroid/app/Service;->stopSelf(I)V
+HSPLandroid/app/Service;->stopSelfResult(I)Z
 HSPLandroid/app/ServiceConnectionLeaked;-><init>(Ljava/lang/String;)V
 HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ServiceStartArgs;
 HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -1914,21 +1943,15 @@
 HSPLandroid/app/SharedPreferencesImpl;->startReloadIfChangedUnexpectedly()V
 HSPLandroid/app/SharedPreferencesImpl;->unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V
 HSPLandroid/app/SharedPreferencesImpl;->writeToFile(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V
-HSPLandroid/app/StatusBarManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/app/SystemServiceRegistry$102;->createService(Landroid/app/ContextImpl;)Landroid/app/slice/SliceManager;
 HSPLandroid/app/SystemServiceRegistry$102;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$105;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)Landroid/app/role/RoleManager;
 HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Landroid/bluetooth/BluetoothManager;
 HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$112;->createService()Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$114;->createService()Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$115;->createService()Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$115;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$117;->createService()Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$117;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$118;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
@@ -1944,9 +1967,7 @@
 HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager;
 HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager;
-HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager;
 HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Landroid/app/DownloadManager;
 HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
@@ -1968,18 +1989,17 @@
 HSPLandroid/app/SystemServiceRegistry$31;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$31;->getService(Landroid/app/ContextImpl;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/app/SystemServiceRegistry$31;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Landroid/view/LayoutInflater;
+HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Landroid/view/textservice/TextServicesManager;
 HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Landroid/app/KeyguardManager;
 HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager;
 HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager;
 HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Landroid/view/LayoutInflater;
 HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager;
 HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager;
 HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Landroid/os/PowerManager;
+HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkPolicyManager;
 HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager;
 HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Landroid/os/PowerManager;
@@ -1988,12 +2008,8 @@
 HSPLandroid/app/SystemServiceRegistry$39;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Landroid/accounts/AccountManager;
 HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager;
-HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager;
 HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
-HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
 HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
@@ -2008,14 +2024,12 @@
 HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$50;->createService(Landroid/app/ContextImpl;)Landroid/telecom/TelecomManager;
 HSPLandroid/app/SystemServiceRegistry$50;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$51;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Landroid/app/UiModeManager;
 HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$53;->createService(Landroid/app/ContextImpl;)Landroid/hardware/usb/UsbManager;
 HSPLandroid/app/SystemServiceRegistry$53;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Landroid/os/Vibrator;
 HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager;
 HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Landroid/os/UserManager;
 HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
@@ -2039,6 +2053,7 @@
 HSPLandroid/app/SystemServiceRegistry$70;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$75;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/UsageStatsManager;
 HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$79;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/NetworkStatsManager;
 HSPLandroid/app/SystemServiceRegistry$79;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
@@ -2050,8 +2065,8 @@
 HSPLandroid/app/SystemServiceRegistry$88;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Landroid/media/AudioManager;
 HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Landroid/os/health/SystemHealthManager;
 HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$94;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager;
 HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Landroid/view/contentcapture/ContentCaptureManager;
@@ -2066,19 +2081,14 @@
 HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
 HSPLandroid/app/TaskInfo;-><init>()V
 HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/app/TaskStackListener;-><init>()V
 HSPLandroid/app/UiModeManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/app/UiModeManager;->getCurrentModeType()I
 HSPLandroid/app/UriGrantsManager$1;->create()Landroid/app/IUriGrantsManager;
 HSPLandroid/app/UriGrantsManager$1;->create()Ljava/lang/Object;
 HSPLandroid/app/UriGrantsManager;->getService()Landroid/app/IUriGrantsManager;
-HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperColors;
-HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/WallpaperColors;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/WallpaperColors;->getColorHints()I
 HSPLandroid/app/WallpaperColors;->getMainColors()Ljava/util/List;
 HSPLandroid/app/WallpaperManager$ColorManagementProxy;-><init>(Landroid/content/Context;)V
-HSPLandroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
 HSPLandroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V
 HSPLandroid/app/WallpaperManager;-><init>(Landroid/app/IWallpaperManager;Landroid/content/Context;Landroid/os/Handler;)V
 HSPLandroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
@@ -2129,6 +2139,21 @@
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwner(I)Landroid/content/ComponentName;
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
 HSPLandroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
+HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
+HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->pushViewStackEntry(Landroid/app/assist/AssistStructure$ViewNode;I)V
+HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeNextEntryToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;Landroid/os/PooledStringWriter;)Z
+HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
+HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcelInner(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)Z
+HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeView(Landroid/app/assist/AssistStructure$ViewNode;Landroid/os/Parcel;Landroid/os/PooledStringWriter;I)V
+HSPLandroid/app/assist/AssistStructure$SendChannel;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/assist/AssistStructure$ViewNode;-><init>()V
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getChildCount()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[F)I
+HSPLandroid/app/assist/AssistStructure$ViewNodeText;->writeToParcel(Landroid/os/Parcel;ZZ)V
+HSPLandroid/app/assist/AssistStructure$WindowNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;[F)V
+HSPLandroid/app/assist/AssistStructure;->access$500(Landroid/app/assist/AssistStructure;)Ljava/util/ArrayList;
+HSPLandroid/app/assist/AssistStructure;->waitForReady()Z
+HSPLandroid/app/assist/AssistStructure;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;)V
 HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;Landroid/app/backup/BackupAgent$1;)V
 HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JLandroid/app/backup/IBackupCallback;I)V
@@ -2270,7 +2295,6 @@
 HSPLandroid/app/job/JobParameters;->getTriggeredContentUris()[Landroid/net/Uri;
 HSPLandroid/app/job/JobScheduler;-><init>()V
 HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/os/IBinder;)Landroid/app/job/JobScheduler;
-HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;Landroid/os/IBinder;)Landroid/os/DeviceIdleManager;
 HSPLandroid/app/job/JobService$1;-><init>(Landroid/app/job/JobService;Landroid/app/Service;)V
 HSPLandroid/app/job/JobService$1;->onStartJob(Landroid/app/job/JobParameters;)Z
 HSPLandroid/app/job/JobService$1;->onStopJob(Landroid/app/job/JobParameters;)Z
@@ -2418,21 +2442,16 @@
 HSPLandroid/app/usage/StorageStats;->getDataBytes()J
 HSPLandroid/app/usage/StorageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IStorageStatsManager;)V
 HSPLandroid/app/usage/StorageStatsManager;->queryStatsForPackage(Ljava/util/UUID;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
-HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageEvents;
-HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/usage/UsageEvents$Event;-><init>()V
-HSPLandroid/app/usage/UsageEvents$Event;->getClassName()Ljava/lang/String;
 HSPLandroid/app/usage/UsageEvents$Event;->getEventType()I
 HSPLandroid/app/usage/UsageEvents$Event;->getPackageName()Ljava/lang/String;
-HSPLandroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/usage/UsageEvents$Event;->getTimeStamp()J
 HSPLandroid/app/usage/UsageEvents;->getNextEvent(Landroid/app/usage/UsageEvents$Event;)Z
 HSPLandroid/app/usage/UsageEvents;->hasNextEvent()Z
-HSPLandroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V
 HSPLandroid/app/usage/UsageStats;-><init>()V
 HSPLandroid/app/usage/UsageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IUsageStatsManager;)V
 HSPLandroid/appwidget/AppWidgetManager;-><init>(Landroid/content/Context;Lcom/android/internal/appwidget/IAppWidgetService;)V
 HSPLandroid/appwidget/AppWidgetManager;->getInstance(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager;
-HSPLandroid/bluetooth/-$$Lambda$BluetoothAdapter$2$INSd_aND-SGWhhPZUtIqya_Uxw4;-><init>(Landroid/bluetooth/BluetoothAdapter$2;)V
 HSPLandroid/bluetooth/BluetoothA2dp$1;-><init>(Landroid/bluetooth/BluetoothA2dp;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
 HSPLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
@@ -2455,14 +2474,17 @@
 HSPLandroid/bluetooth/BluetoothAdapter;->getProfileProxy(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;I)Z
 HSPLandroid/bluetooth/BluetoothAdapter;->getState()I
 HSPLandroid/bluetooth/BluetoothAdapter;->isEnabled()Z
-HSPLandroid/bluetooth/BluetoothAdapter;->isHearingAidProfileSupported()Z
 HSPLandroid/bluetooth/BluetoothAdapter;->setContext(Landroid/content/Context;)V
 HSPLandroid/bluetooth/BluetoothAdapter;->toDeviceSet([Landroid/bluetooth/BluetoothDevice;)Ljava/util/Set;
 HSPLandroid/bluetooth/BluetoothDevice$2;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothDevice;
 HSPLandroid/bluetooth/BluetoothDevice$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Landroid/bluetooth/BluetoothDevice;
+HSPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/bluetooth/BluetoothDevice;-><init>(Ljava/lang/String;)V
 HSPLandroid/bluetooth/BluetoothDevice;->getAddress()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothDevice;->getName()Ljava/lang/String;
 HSPLandroid/bluetooth/BluetoothDevice;->getService()Landroid/bluetooth/IBluetooth;
+HSPLandroid/bluetooth/BluetoothDevice;->hashCode()I
 HSPLandroid/bluetooth/BluetoothDevice;->toString()Ljava/lang/String;
 HSPLandroid/bluetooth/BluetoothDevice;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/bluetooth/BluetoothHeadset$1;-><init>(Landroid/bluetooth/BluetoothHeadset;)V
@@ -2475,7 +2497,6 @@
 HSPLandroid/bluetooth/BluetoothHeadset;->access$300(Landroid/bluetooth/BluetoothHeadset;)Landroid/os/Handler;
 HSPLandroid/bluetooth/BluetoothHeadset;->access$400(Landroid/bluetooth/BluetoothHeadset;)Landroid/bluetooth/BluetoothProfile$ServiceListener;
 HSPLandroid/bluetooth/BluetoothHeadset;->doBind()Z
-HSPLandroid/bluetooth/BluetoothHeadset;->isEnabled()Z
 HSPLandroid/bluetooth/BluetoothManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/bluetooth/BluetoothManager;->getAdapter()Landroid/bluetooth/BluetoothAdapter;
 HSPLandroid/bluetooth/BluetoothProfileConnector$1;-><init>(Landroid/bluetooth/BluetoothProfileConnector;)V
@@ -2492,6 +2513,8 @@
 HSPLandroid/bluetooth/BluetoothProfileConnector;->getService()Ljava/lang/Object;
 HSPLandroid/bluetooth/BluetoothProfileConnector;->logDebug(Ljava/lang/String;)V
 HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getBondedDevices()[Landroid/bluetooth/BluetoothDevice;
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteName(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
 HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getState()I
 HSPLandroid/bluetooth/IBluetooth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetooth;
 HSPLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -2509,7 +2532,6 @@
 HSPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;-><init>()V
 HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/bluetooth/le/ScanFilter$Builder;-><init>()V
 HSPLandroid/bluetooth/le/ScanFilter$Builder;->build()Landroid/bluetooth/le/ScanFilter;
 HSPLandroid/compat/Compatibility$Callbacks;-><init>()V
 HSPLandroid/compat/Compatibility;->isChangeEnabled(J)Z
@@ -2524,12 +2546,12 @@
 HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Context;ZZ)V
 HSPLandroid/content/AbstractThreadedSyncAdapter;->getContext()Landroid/content/Context;
 HSPLandroid/content/AbstractThreadedSyncAdapter;->getSyncAdapterBinder()Landroid/os/IBinder;
-HSPLandroid/content/AsyncQueryHandler$WorkerHandler;-><init>(Landroid/content/AsyncQueryHandler;Landroid/os/Looper;)V
 HSPLandroid/content/AsyncQueryHandler;-><init>(Landroid/content/ContentResolver;)V
 HSPLandroid/content/AsyncQueryHandler;->createHandler(Landroid/os/Looper;)Landroid/os/Handler;
 HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AutofillOptions;
 HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/AutofillOptions;-><init>(IZ)V
+HSPLandroid/content/AutofillOptions;->isAugmentedAutofillEnabled(Landroid/content/Context;)Z
 HSPLandroid/content/BroadcastReceiver$PendingResult$1;-><init>(Landroid/content/BroadcastReceiver$PendingResult;Landroid/app/IActivityManager;)V
 HSPLandroid/content/BroadcastReceiver$PendingResult$1;->run()V
 HSPLandroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V
@@ -2602,7 +2624,6 @@
 HSPLandroid/content/ContentProvider;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentProvider;->checkPermissionAndAppOp(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
 HSPLandroid/content/ContentProvider;->checkUser(IILandroid/content/Context;)Z
-HSPLandroid/content/ContentProvider;->coerceToLocalContentProvider(Landroid/content/IContentProvider;)Landroid/content/ContentProvider;
 HSPLandroid/content/ContentProvider;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I
 HSPLandroid/content/ContentProvider;->enforceReadPermissionInner(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
 HSPLandroid/content/ContentProvider;->enforceWritePermissionInner(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
@@ -2623,6 +2644,7 @@
 HSPLandroid/content/ContentProvider;->maybeGetUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri;
 HSPLandroid/content/ContentProvider;->onCallingPackageChanged()V
 HSPLandroid/content/ContentProvider;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLandroid/content/ContentProvider;->onLowMemory()V
 HSPLandroid/content/ContentProvider;->onTrimMemory(I)V
 HSPLandroid/content/ContentProvider;->openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentProvider;->openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;
@@ -2659,6 +2681,9 @@
 HSPLandroid/content/ContentProviderNative;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/ContentProviderNative;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentProvider;
 HSPLandroid/content/ContentProviderNative;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/ContentProviderOperation$Builder;->assertValuesAllowed()V
+HSPLandroid/content/ContentProviderOperation$Builder;->build()Landroid/content/ContentProviderOperation;
+HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation$Builder;)V
 HSPLandroid/content/ContentProviderOperation;->getUri()Landroid/net/Uri;
 HSPLandroid/content/ContentProviderProxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder;
@@ -2732,7 +2757,6 @@
 HSPLandroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer;
 HSPLandroid/content/ContentValues;->getAsLong(Ljava/lang/String;)Ljava/lang/Long;
 HSPLandroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/ContentValues;->getValues()Landroid/util/ArrayMap;
 HSPLandroid/content/ContentValues;->isEmpty()Z
 HSPLandroid/content/ContentValues;->keySet()Ljava/util/Set;
 HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Boolean;)V
@@ -2763,6 +2787,7 @@
 HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
 HSPLandroid/content/ContextWrapper;-><init>(Landroid/content/Context;)V
 HSPLandroid/content/ContextWrapper;->attachBaseContext(Landroid/content/Context;)V
+HSPLandroid/content/ContextWrapper;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z
 HSPLandroid/content/ContextWrapper;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
 HSPLandroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
 HSPLandroid/content/ContextWrapper;->canLoadUnsafeResources()Z
@@ -2829,7 +2854,6 @@
 HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
 HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V
-HSPLandroid/content/ContextWrapper;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 HSPLandroid/content/ContextWrapper;->setAutofillOptions(Landroid/content/AutofillOptions;)V
 HSPLandroid/content/ContextWrapper;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V
 HSPLandroid/content/ContextWrapper;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName;
@@ -2921,6 +2945,7 @@
 HSPLandroid/content/Intent;->putStringArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/content/Intent;->removeCategory(Ljava/lang/String;)V
+HSPLandroid/content/Intent;->removeExtra(Ljava/lang/String;)V
 HSPLandroid/content/Intent;->replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;
 HSPLandroid/content/Intent;->resolveSystemService(Landroid/content/pm/PackageManager;I)Landroid/content/ComponentName;
@@ -2949,7 +2974,6 @@
 HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/IntentFilter;
 HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/IntentFilter$AuthorityEntry;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/IntentFilter$AuthorityEntry;->writeToParcel(Landroid/os/Parcel;)V
 HSPLandroid/content/IntentFilter;-><init>()V
 HSPLandroid/content/IntentFilter;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
@@ -2966,7 +2990,6 @@
 HSPLandroid/content/IntentFilter;->countActions()I
 HSPLandroid/content/IntentFilter;->getAction(I)Ljava/lang/String;
 HSPLandroid/content/IntentFilter;->getAutoVerify()Z
-HSPLandroid/content/IntentFilter;->getPriority()I
 HSPLandroid/content/IntentFilter;->hasAction(Ljava/lang/String;)Z
 HSPLandroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
 HSPLandroid/content/IntentFilter;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I
@@ -2992,6 +3015,7 @@
 HSPLandroid/content/UndoManager;->forgetRedos([Landroid/content/UndoOwner;I)I
 HSPLandroid/content/UndoManager;->forgetUndos([Landroid/content/UndoOwner;I)I
 HSPLandroid/content/UndoManager;->getOwner(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/UndoOwner;
+HSPLandroid/content/UndoManager;->saveInstanceState(Landroid/os/Parcel;)V
 HSPLandroid/content/UndoOwner;-><init>(Ljava/lang/String;Landroid/content/UndoManager;)V
 HSPLandroid/content/UriMatcher;-><init>(I)V
 HSPLandroid/content/UriMatcher;-><init>(ILjava/lang/String;)V
@@ -3045,12 +3069,10 @@
 HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ConfigurationInfo$1;)V
+HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/FeatureInfo;
+HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/ILauncherApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ILauncherApps;
 HSPLandroid/content/pm/IOnAppsChangedListener$Stub;-><init>()V
-HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/content/pm/IPackageInstaller$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstaller;
-HSPLandroid/content/pm/IPackageInstallerCallback$Stub;-><init>()V
-HSPLandroid/content/pm/IPackageInstallerCallback$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting(Ljava/lang/String;I)I
@@ -3091,8 +3113,6 @@
 HSPLandroid/content/pm/PackageInfo;->composeLongVersionCode(II)J
 HSPLandroid/content/pm/PackageInfo;->getLongVersionCode()J
 HSPLandroid/content/pm/PackageInfo;->propagateApplicationInfo(Landroid/content/pm/ApplicationInfo;[Landroid/content/pm/ComponentInfo;)V
-HSPLandroid/content/pm/PackageInstaller$SessionCallback;-><init>()V
-HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;-><init>(Landroid/content/pm/PackageInstaller$SessionCallback;Ljava/util/concurrent/Executor;)V
 HSPLandroid/content/pm/PackageInstaller;-><init>(Landroid/content/pm/IPackageInstaller;Ljava/lang/String;I)V
 HSPLandroid/content/pm/PackageItemInfo;-><init>()V
 HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/content/pm/PackageItemInfo;)V
@@ -3104,7 +3124,6 @@
 HSPLandroid/content/pm/PackageItemInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/PackageManager$NameNotFoundException;-><init>(Ljava/lang/String;)V
 HSPLandroid/content/pm/PackageManager;-><init>()V
-HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
 HSPLandroid/content/pm/PackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
 HSPLandroid/content/pm/PackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
 HSPLandroid/content/pm/PackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
@@ -3165,15 +3184,17 @@
 HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ShortcutInfo;
 HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ShortcutInfo$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+HSPLandroid/content/pm/ShortcutInfo$Builder;->build()Landroid/content/pm/ShortcutInfo;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo$Builder;)V
 HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ShortcutInfo$1;)V
 HSPLandroid/content/pm/ShortcutInfo;->cloneCategories(Ljava/util/Set;)Landroid/util/ArraySet;
 HSPLandroid/content/pm/ShortcutInfo;->cloneIntents([Landroid/content/Intent;)[Landroid/content/Intent;
 HSPLandroid/content/pm/ShortcutInfo;->clonePersons([Landroid/app/Person;)[Landroid/app/Person;
 HSPLandroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V
-HSPLandroid/content/pm/ShortcutInfo;->getDisabledReason()I
 HSPLandroid/content/pm/ShortcutInfo;->getId()Ljava/lang/String;
-HSPLandroid/content/pm/ShortcutInfo;->getPackage()Ljava/lang/String;
 HSPLandroid/content/pm/ShortcutInfo;->hasFlags(I)Z
 HSPLandroid/content/pm/ShortcutInfo;->hasKeyFieldsOnly()Z
 HSPLandroid/content/pm/ShortcutInfo;->validateIcon(Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
@@ -3186,7 +3207,6 @@
 HSPLandroid/content/pm/Signature$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;Landroid/content/pm/Signature$1;)V
-HSPLandroid/content/pm/Signature;-><init>([B)V
 HSPLandroid/content/pm/Signature;->equals(Ljava/lang/Object;)Z
 HSPLandroid/content/pm/Signature;->hashCode()I
 HSPLandroid/content/pm/Signature;->toByteArray()[B
@@ -3195,13 +3215,8 @@
 HSPLandroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/UserInfo$1;)V
 HSPLandroid/content/pm/UserInfo;->getUserHandle()Landroid/os/UserHandle;
-HSPLandroid/content/pm/UserInfo;->isEphemeral()Z
 HSPLandroid/content/pm/UserInfo;->isGuest()Z
 HSPLandroid/content/pm/UserInfo;->isManagedProfile()Z
-HSPLandroid/content/pm/UserInfo;->isProfile()Z
-HSPLandroid/content/pm/UserInfo;->isRestricted()Z
-HSPLandroid/content/pm/UserInfo;->supportsSwitchTo()Z
-HSPLandroid/content/pm/UserInfo;->supportsSwitchToByUser()Z
 HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/VersionedPackage;
 HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V
@@ -3209,11 +3224,7 @@
 HSPLandroid/content/pm/VersionedPackage;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/dex/ArtManager;->getCurrentProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
 HSPLandroid/content/pm/dex/ArtManager;->getProfileName(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;-><init>()V
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><clinit>()V
 HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><init>(Ljava/lang/String;Ljava/util/List;I)V
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getSplitPermission()Ljava/lang/String;
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getTargetSdk()I
 HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->onConstructed()V
 HSPLandroid/content/res/-$$Lambda$Resources$4msWUw7LKsgLexLZjIfWa4oguq4;->test(Ljava/lang/Object;)Z
 HSPLandroid/content/res/-$$Lambda$ResourcesImpl$99dm2ENnzo9b0SIUjUj2Kl3pi90;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
@@ -3311,6 +3322,7 @@
 HSPLandroid/content/res/AssetManager;->open(Ljava/lang/String;I)Ljava/io/InputStream;
 HSPLandroid/content/res/AssetManager;->openNonAsset(ILjava/lang/String;I)Ljava/io/InputStream;
 HSPLandroid/content/res/AssetManager;->openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor;
+HSPLandroid/content/res/AssetManager;->openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/res/AssetManager;->openXmlBlockAsset(ILjava/lang/String;)Landroid/content/res/XmlBlock;
 HSPLandroid/content/res/AssetManager;->releaseTheme(J)V
 HSPLandroid/content/res/AssetManager;->resolveAttrs(JII[I[I[I[I)Z
@@ -3804,7 +3816,9 @@
 HSPLandroid/database/CursorWrapper;->getCount()I
 HSPLandroid/database/CursorWrapper;->getInt(I)I
 HSPLandroid/database/CursorWrapper;->getLong(I)J
+HSPLandroid/database/CursorWrapper;->getPosition()I
 HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String;
+HSPLandroid/database/CursorWrapper;->getType(I)I
 HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor;
 HSPLandroid/database/CursorWrapper;->isAfterLast()Z
 HSPLandroid/database/CursorWrapper;->isNull(I)Z
@@ -3894,6 +3908,7 @@
 HSPLandroid/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteConnection;->checkDatabaseWiped()V
 HSPLandroid/database/sqlite/SQLiteConnection;->close()V
+HSPLandroid/database/sqlite/SQLiteConnection;->collectDbStats(Ljava/util/ArrayList;)V
 HSPLandroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
 HSPLandroid/database/sqlite/SQLiteConnection;->dispose(Z)V
 HSPLandroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
@@ -3905,6 +3920,7 @@
 HSPLandroid/database/sqlite/SQLiteConnection;->finalize()V
 HSPLandroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
 HSPLandroid/database/sqlite/SQLiteConnection;->getConnectionId()I
+HSPLandroid/database/sqlite/SQLiteConnection;->getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats;
 HSPLandroid/database/sqlite/SQLiteConnection;->isCacheable(I)Z
 HSPLandroid/database/sqlite/SQLiteConnection;->isPreparedStatementInCache(Ljava/lang/String;)Z
 HSPLandroid/database/sqlite/SQLiteConnection;->isPrimaryConnection()Z
@@ -3946,6 +3962,7 @@
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableNonPrimaryConnectionsAndLogExceptionsLocked()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeConnectionAndLogExceptionsLocked(Landroid/database/sqlite/SQLiteConnection;)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeExcessConnectionsAndLogExceptionsLocked()V
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->collectDbStats(Ljava/util/ArrayList;)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLocked()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->finalize()V
@@ -3970,6 +3987,7 @@
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection;
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V
+HSPLandroid/database/sqlite/SQLiteConstraintException;-><init>(Ljava/lang/String;)V
 HSPLandroid/database/sqlite/SQLiteCursor;-><init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V
 HSPLandroid/database/sqlite/SQLiteCursor;->close()V
 HSPLandroid/database/sqlite/SQLiteCursor;->fillWindow(I)V
@@ -4004,11 +4022,13 @@
 HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V
 HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionNonExclusive()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionWithListener(Landroid/database/sqlite/SQLiteTransactionListener;)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->collectDbStats(Ljava/util/ArrayList;)V
 HSPLandroid/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;
 HSPLandroid/database/sqlite/SQLiteDatabase;->createSession()Landroid/database/sqlite/SQLiteSession;
 HSPLandroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
 HSPLandroid/database/sqlite/SQLiteDatabase;->disableWriteAheadLogging()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->dispose(Z)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->dumpAll(Landroid/util/Printer;ZZ)V
 HSPLandroid/database/sqlite/SQLiteDatabase;->enableWriteAheadLogging()Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->endTransaction()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
@@ -4044,6 +4064,7 @@
 HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteDatabase;->releaseMemory()I
 HSPLandroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
 HSPLandroid/database/sqlite/SQLiteDatabase;->replaceOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
 HSPLandroid/database/sqlite/SQLiteDatabase;->setForeignKeyConstraintsEnabled(Z)V
@@ -4059,6 +4080,7 @@
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isLegacyCompatibilityWalEnabled()Z
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
+HSPLandroid/database/sqlite/SQLiteDebug$DbStats;-><init>(Ljava/lang/String;JJIIII)V
 HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;-><clinit>()V
 HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;->access$000()Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteDebug$PagerStats;-><init>()V
@@ -4077,6 +4099,7 @@
 HSPLandroid/database/sqlite/SQLiteGlobal;->getWALConnectionPoolSize()I
 HSPLandroid/database/sqlite/SQLiteGlobal;->getWALSyncMode()Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteGlobal;->getWALTruncateSize()J
+HSPLandroid/database/sqlite/SQLiteGlobal;->releaseMemory()I
 HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;IILandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V
 HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
 HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;IILandroid/database/DatabaseErrorHandler;)V
@@ -4122,7 +4145,6 @@
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrict()Z
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictColumns()Z
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictGrammar()Z
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->maybeWithOperator(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
@@ -4160,17 +4182,12 @@
 HSPLandroid/database/sqlite/SQLiteStatementInfo;-><init>()V
 HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/ddm/DdmHandleAppName$1;)V
-HSPLandroid/ddm/DdmHandleAppName$Names;->getAppName()Ljava/lang/String;
-HSPLandroid/ddm/DdmHandleAppName$Names;->getPkgName()Ljava/lang/String;
-HSPLandroid/ddm/DdmHandleAppName;->getNames()Landroid/ddm/DdmHandleAppName$Names;
 HSPLandroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;I)V
 HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLandroid/ddm/DdmHandleExit;->connected()V
 HSPLandroid/ddm/DdmHandleHeap;->connected()V
 HSPLandroid/ddm/DdmHandleHeap;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/ddm/DdmHandleHeap;->handleHPIF(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/ddm/DdmHandleHeap;->handleREAQ(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleHello;->connected()V
 HSPLandroid/ddm/DdmHandleHello;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleHello;->handleFEAT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
@@ -4178,7 +4195,6 @@
 HSPLandroid/ddm/DdmHandleNativeHeap;->connected()V
 HSPLandroid/ddm/DdmHandleProfiling;->connected()V
 HSPLandroid/ddm/DdmHandleProfiling;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/ddm/DdmHandleProfiling;->handleMPRQ(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleThread;->connected()V
 HSPLandroid/ddm/DdmHandleViewDebug;->connected()V
 HSPLandroid/graphics/BaseCanvas;-><init>()V
@@ -4199,9 +4215,12 @@
 HSPLandroid/graphics/BaseCanvas;->throwIfHasHwBitmapInSwMode(Landroid/graphics/Shader;)V
 HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/BaseRecordingCanvas;-><init>(J)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
@@ -4214,6 +4233,7 @@
 HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/graphics/Bitmap$Config;->nativeToConfig(I)Landroid/graphics/Bitmap$Config;
@@ -4265,8 +4285,6 @@
 HSPLandroid/graphics/Bitmap;->setHasAlpha(Z)V
 HSPLandroid/graphics/Bitmap;->setHasMipMap(Z)V
 HSPLandroid/graphics/Bitmap;->setPremultiplied(Z)V
-HSPLandroid/graphics/Bitmap;->wrapHardwareBuffer(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
-HSPLandroid/graphics/Bitmap;->wrapHardwareBuffer(Landroid/hardware/HardwareBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/graphics/BitmapFactory$Options;-><init>()V
 HSPLandroid/graphics/BitmapFactory$Options;->nativeColorSpace(Landroid/graphics/BitmapFactory$Options;)J
@@ -4296,6 +4314,7 @@
 HSPLandroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/Canvas;->checkValidClipOp(Landroid/graphics/Region$Op;)V
 HSPLandroid/graphics/Canvas;->checkValidSaveFlags(I)V
+HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;)Z
 HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z
 HSPLandroid/graphics/Canvas;->clipRect(FFFF)Z
 HSPLandroid/graphics/Canvas;->clipRect(IIII)Z
@@ -4307,12 +4326,15 @@
 HSPLandroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawColor(I)V
 HSPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/graphics/Canvas;->drawOval(FFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
 PLandroid/graphics/Canvas;->freeCaches()V
 HSPLandroid/graphics/Canvas;->freeTextLayoutCaches()V
 HSPLandroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z
@@ -4374,7 +4396,6 @@
 HSPLandroid/graphics/ColorSpace;->get(I)Landroid/graphics/ColorSpace;
 HSPLandroid/graphics/ColorSpace;->get(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace;
 HSPLandroid/graphics/ColorSpace;->hashCode()I
-HSPLandroid/graphics/DrawFilter;-><init>()V
 HSPLandroid/graphics/FrameInfo;-><init>()V
 HSPLandroid/graphics/FrameInfo;->addFlags(J)V
 HSPLandroid/graphics/FrameInfo;->markAnimationsStart()V
@@ -4383,12 +4404,11 @@
 HSPLandroid/graphics/FrameInfo;->markPerformTraversalsStart()V
 HSPLandroid/graphics/FrameInfo;->setVsync(JJ)V
 HSPLandroid/graphics/FrameInfo;->updateInputEventTime(JJ)V
-HSPLandroid/graphics/GraphicBuffer;-><init>(IIIIJ)V
-HSPLandroid/graphics/GraphicBuffer;->finalize()V
 HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;-><init>(J)V
 HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;->run()V
 HSPLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;)V
 HSPLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;Landroid/graphics/HardwareRenderer$1;)V
+HSPLandroid/graphics/HardwareRenderer$ProcessInitializer$1;->onRotateGraphicsStatsBuffer()V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->init(J)V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initGraphicsStats()V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initSched(J)V
@@ -4500,8 +4520,10 @@
 HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;)Z
 HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z
 HSPLandroid/graphics/Matrix;->postScale(FF)Z
+HSPLandroid/graphics/Matrix;->postScale(FFFF)Z
 HSPLandroid/graphics/Matrix;->postTranslate(FF)Z
 HSPLandroid/graphics/Matrix;->preConcat(Landroid/graphics/Matrix;)Z
+HSPLandroid/graphics/Matrix;->preRotate(F)Z
 HSPLandroid/graphics/Matrix;->preTranslate(FF)Z
 HSPLandroid/graphics/Matrix;->rectStaysRect()Z
 HSPLandroid/graphics/Matrix;->reset()V
@@ -4527,6 +4549,8 @@
 HSPLandroid/graphics/Outline;->setConvexPath(Landroid/graphics/Path;)V
 HSPLandroid/graphics/Outline;->setEmpty()V
 HSPLandroid/graphics/Outline;->setOval(IIII)V
+HSPLandroid/graphics/Outline;->setOval(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/Outline;->setPath(Landroid/graphics/Path;)V
 HSPLandroid/graphics/Outline;->setRect(IIII)V
 HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/Outline;->setRoundRect(IIIIF)V
@@ -4536,21 +4560,30 @@
 HSPLandroid/graphics/Paint;-><init>()V
 HSPLandroid/graphics/Paint;-><init>(I)V
 HSPLandroid/graphics/Paint;-><init>(Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Paint;->ascent()F
+HSPLandroid/graphics/Paint;->descent()F
 HSPLandroid/graphics/Paint;->getAlpha()I
 HSPLandroid/graphics/Paint;->getColor()I
 HSPLandroid/graphics/Paint;->getColorFilter()Landroid/graphics/ColorFilter;
 HSPLandroid/graphics/Paint;->getEndHyphenEdit()I
 HSPLandroid/graphics/Paint;->getFlags()I
 HSPLandroid/graphics/Paint;->getFontFeatureSettings()Ljava/lang/String;
+HSPLandroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
 HSPLandroid/graphics/Paint;->getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F
 HSPLandroid/graphics/Paint;->getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt;
 HSPLandroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I
+HSPLandroid/graphics/Paint;->getFontVariationSettings()Ljava/lang/String;
+HSPLandroid/graphics/Paint;->getHinting()I
 HSPLandroid/graphics/Paint;->getLetterSpacing()F
 HSPLandroid/graphics/Paint;->getMaskFilter()Landroid/graphics/MaskFilter;
 HSPLandroid/graphics/Paint;->getNativeInstance()J
 HSPLandroid/graphics/Paint;->getRunAdvance(Ljava/lang/CharSequence;IIIIZI)F
 HSPLandroid/graphics/Paint;->getRunAdvance([CIIIIZI)F
 HSPLandroid/graphics/Paint;->getShader()Landroid/graphics/Shader;
+HSPLandroid/graphics/Paint;->getShadowLayerColor()I
+HSPLandroid/graphics/Paint;->getShadowLayerDx()F
+HSPLandroid/graphics/Paint;->getShadowLayerDy()F
+HSPLandroid/graphics/Paint;->getShadowLayerRadius()F
 HSPLandroid/graphics/Paint;->getStartHyphenEdit()I
 HSPLandroid/graphics/Paint;->getStrokeWidth()F
 HSPLandroid/graphics/Paint;->getStyle()Landroid/graphics/Paint$Style;
@@ -4560,12 +4593,16 @@
 HSPLandroid/graphics/Paint;->getTextLocale()Ljava/util/Locale;
 HSPLandroid/graphics/Paint;->getTextLocales()Landroid/os/LocaleList;
 HSPLandroid/graphics/Paint;->getTextRunAdvances([CIIIIZ[FI)F
+HSPLandroid/graphics/Paint;->getTextScaleX()F
 HSPLandroid/graphics/Paint;->getTextSize()F
 HSPLandroid/graphics/Paint;->getTypeface()Landroid/graphics/Typeface;
+HSPLandroid/graphics/Paint;->getUnderlinePosition()F
+HSPLandroid/graphics/Paint;->getUnderlineThickness()F
 HSPLandroid/graphics/Paint;->getXfermode()Landroid/graphics/Xfermode;
 HSPLandroid/graphics/Paint;->installXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
 HSPLandroid/graphics/Paint;->isAntiAlias()Z
 HSPLandroid/graphics/Paint;->isDither()Z
+HSPLandroid/graphics/Paint;->isElegantTextHeight()Z
 HSPLandroid/graphics/Paint;->isFilterBitmap()Z
 HSPLandroid/graphics/Paint;->isStrikeThruText()Z
 HSPLandroid/graphics/Paint;->isUnderlineText()Z
@@ -4600,11 +4637,10 @@
 HSPLandroid/graphics/Paint;->setTextSize(F)V
 HSPLandroid/graphics/Paint;->setTextSkewX(F)V
 HSPLandroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Paint;->setUnderlineText(Z)V
 HSPLandroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
 HSPLandroid/graphics/Paint;->syncTextLocalesWithMinikin()V
 HSPLandroid/graphics/PaintFlagsDrawFilter;-><init>(II)V
-HSPLandroid/graphics/Path$Op;-><clinit>()V
-HSPLandroid/graphics/Path$Op;-><init>(Ljava/lang/String;I)V
 HSPLandroid/graphics/Path;-><init>()V
 HSPLandroid/graphics/Path;-><init>(Landroid/graphics/Path;)V
 HSPLandroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V
@@ -4613,6 +4649,7 @@
 HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V
 HSPLandroid/graphics/Path;->approximate(F)[F
 HSPLandroid/graphics/Path;->arcTo(FFFFFFZ)V
+HSPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V
 HSPLandroid/graphics/Path;->close()V
 HSPLandroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V
 HSPLandroid/graphics/Path;->cubicTo(FFFFFF)V
@@ -4643,9 +4680,12 @@
 HSPLandroid/graphics/PointF;->set(FF)V
 HSPLandroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V
 HSPLandroid/graphics/PorterDuffColorFilter;->createNativeInstance()J
+HSPLandroid/graphics/PorterDuffColorFilter;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/PorterDuffColorFilter;->getColor()I
 HSPLandroid/graphics/PorterDuffColorFilter;->getMode()Landroid/graphics/PorterDuff$Mode;
 HSPLandroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/graphics/RadialGradient;-><init>(FFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V
+HSPLandroid/graphics/RadialGradient;->createNativeInstance(J)J
 HSPLandroid/graphics/RecordingCanvas;-><init>(Landroid/graphics/RenderNode;II)V
 HSPLandroid/graphics/RecordingCanvas;->disableZ()V
 HSPLandroid/graphics/RecordingCanvas;->drawCircle(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
@@ -4665,10 +4705,12 @@
 HSPLandroid/graphics/Rect;->centerX()I
 HSPLandroid/graphics/Rect;->centerY()I
 HSPLandroid/graphics/Rect;->contains(II)Z
+HSPLandroid/graphics/Rect;->contains(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/Rect;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/Rect;->exactCenterX()F
 HSPLandroid/graphics/Rect;->exactCenterY()F
 HSPLandroid/graphics/Rect;->height()I
+HSPLandroid/graphics/Rect;->inset(II)V
 HSPLandroid/graphics/Rect;->intersect(IIII)Z
 HSPLandroid/graphics/Rect;->isEmpty()Z
 HSPLandroid/graphics/Rect;->offset(II)V
@@ -4698,15 +4740,14 @@
 HSPLandroid/graphics/RectF;->set(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/RectF;->set(Landroid/graphics/RectF;)V
 HSPLandroid/graphics/RectF;->setEmpty()V
+HSPLandroid/graphics/RectF;->union(FFFF)V
+HSPLandroid/graphics/RectF;->union(Landroid/graphics/RectF;)V
 HSPLandroid/graphics/RectF;->width()F
-HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Region;
-HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/graphics/Region;-><init>()V
 HSPLandroid/graphics/Region;-><init>(J)V
 HSPLandroid/graphics/Region;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/Region;->finalize()V
 HSPLandroid/graphics/Region;->op(IIIILandroid/graphics/Region$Op;)Z
-HSPLandroid/graphics/Region;->op(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z
 HSPLandroid/graphics/Region;->set(IIII)Z
 HSPLandroid/graphics/Region;->set(Landroid/graphics/Region;)Z
 HSPLandroid/graphics/Region;->setEmpty()V
@@ -4744,6 +4785,7 @@
 HSPLandroid/graphics/RenderNode;->offsetTopAndBottom(I)Z
 HSPLandroid/graphics/RenderNode;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
 HSPLandroid/graphics/RenderNode;->setAlpha(F)Z
+HSPLandroid/graphics/RenderNode;->setAnimationMatrix(Landroid/graphics/Matrix;)Z
 HSPLandroid/graphics/RenderNode;->setClipToBounds(Z)Z
 HSPLandroid/graphics/RenderNode;->setClipToOutline(Z)Z
 HSPLandroid/graphics/RenderNode;->setElevation(F)Z
@@ -4787,6 +4829,7 @@
 HSPLandroid/graphics/Typeface;->access$700([JII)J
 HSPLandroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
 HSPLandroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
 HSPLandroid/graphics/Typeface;->findFromCache(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
 HSPLandroid/graphics/Typeface;->getStyle()I
 HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface;
@@ -4815,6 +4858,8 @@
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicHeight()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicWidth()I
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
@@ -4929,8 +4974,11 @@
 HSPLandroid/graphics/drawable/AnimationDrawable;-><init>()V
 HSPLandroid/graphics/drawable/AnimationDrawable;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/AnimationDrawable;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimationDrawable$1;)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimationDrawable$AnimationState;
+HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
 HSPLandroid/graphics/drawable/AnimationDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/AnimationDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AnimationDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
 HSPLandroid/graphics/drawable/AnimationDrawable;->setFrame(IZZ)V
 HSPLandroid/graphics/drawable/AnimationDrawable;->setVisible(ZZ)Z
@@ -4946,7 +4994,9 @@
 HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;Landroid/graphics/drawable/BitmapDrawable$1;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/BitmapDrawable;->clearMutated()V
 HSPLandroid/graphics/drawable/BitmapDrawable;->computeBitmapSize()V
 HSPLandroid/graphics/drawable/BitmapDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
@@ -5062,6 +5112,7 @@
 HSPLandroid/graphics/drawable/Drawable;->setSrcDensityOverride(I)V
 HSPLandroid/graphics/drawable/Drawable;->setState([I)Z
 HSPLandroid/graphics/drawable/Drawable;->setTint(I)V
+HSPLandroid/graphics/drawable/Drawable;->setTintMode(Landroid/graphics/PorterDuff$Mode;)V
 HSPLandroid/graphics/drawable/Drawable;->setVisible(ZZ)Z
 HSPLandroid/graphics/drawable/Drawable;->unscheduleSelf(Ljava/lang/Runnable;)V
 HSPLandroid/graphics/drawable/Drawable;->updateBlendModeFilter(Landroid/graphics/BlendModeColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;
@@ -5339,6 +5390,8 @@
 HSPLandroid/graphics/drawable/LayerDrawable;->resumeChildInvalidation()V
 HSPLandroid/graphics/drawable/LayerDrawable;->setAutoMirrored(Z)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setDither(Z)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setHotspot(FF)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setPaddingMode(I)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setVisible(ZZ)Z
 HSPLandroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V
@@ -5405,6 +5458,7 @@
 HSPLandroid/graphics/drawable/RippleDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/RippleDrawable;->drawBackgroundAndRipples(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/RippleDrawable;->drawContent(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/RippleDrawable;->drawMask(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/RippleDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/RippleDrawable;->getDirtyBounds()Landroid/graphics/Rect;
 HSPLandroid/graphics/drawable/RippleDrawable;->getMaskType()I
@@ -5494,6 +5548,7 @@
 HSPLandroid/graphics/drawable/RotateDrawable;-><init>()V
 HSPLandroid/graphics/drawable/RotateDrawable;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/RotateDrawable;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;Landroid/graphics/drawable/RotateDrawable$1;)V
+HSPLandroid/graphics/drawable/RotateDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/RotateDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/RotateDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/RotateDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
@@ -5527,6 +5582,7 @@
 HSPLandroid/graphics/drawable/ShapeDrawable;->modulateAlpha(II)I
 HSPLandroid/graphics/drawable/ShapeDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/ShapeDrawable;->onDraw(Landroid/graphics/drawable/shapes/Shape;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setAlpha(I)V
 HSPLandroid/graphics/drawable/ShapeDrawable;->updateLocalState()V
 HSPLandroid/graphics/drawable/ShapeDrawable;->updateShape()V
 HSPLandroid/graphics/drawable/StateListDrawable$StateListState;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/graphics/drawable/StateListDrawable;Landroid/content/res/Resources;)V
@@ -5553,6 +5609,7 @@
 HSPLandroid/graphics/drawable/StateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/graphics/drawable/TransitionDrawable;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/TransitionDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState;
+HSPLandroid/graphics/drawable/TransitionDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>()V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VFullPath;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->applyTheme(Landroid/content/res/Resources$Theme;)V
@@ -5660,7 +5717,10 @@
 HSPLandroid/graphics/drawable/VectorDrawable;->updateLocalState(Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/VectorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/shapes/OvalShape;-><init>()V
+HSPLandroid/graphics/drawable/shapes/OvalShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/shapes/OvalShape;->getOutline(Landroid/graphics/Outline;)V
 HSPLandroid/graphics/drawable/shapes/RectShape;-><init>()V
+HSPLandroid/graphics/drawable/shapes/RectShape;->onResize(FF)V
 HSPLandroid/graphics/drawable/shapes/RectShape;->rect()Landroid/graphics/RectF;
 HSPLandroid/graphics/drawable/shapes/Shape;-><init>()V
 HSPLandroid/graphics/drawable/shapes/Shape;->resize(FF)V
@@ -5744,12 +5804,6 @@
 HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Landroid/hardware/CameraStatus;
 HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/hardware/HardwareBuffer;-><init>(J)V
-HSPLandroid/hardware/HardwareBuffer;->close()V
-HSPLandroid/hardware/HardwareBuffer;->createFromGraphicBuffer(Landroid/graphics/GraphicBuffer;)Landroid/hardware/HardwareBuffer;
-HSPLandroid/hardware/HardwareBuffer;->finalize()V
-HSPLandroid/hardware/HardwareBuffer;->getFormat()I
-HSPLandroid/hardware/HardwareBuffer;->getUsage()J
-HSPLandroid/hardware/HardwareBuffer;->isClosed()Z
 HSPLandroid/hardware/ICameraService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/hardware/ICameraService$Stub$Proxy;->addListener(Landroid/hardware/ICameraServiceListener;)[Landroid/hardware/CameraStatus;
 HSPLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService;
@@ -5799,21 +5853,12 @@
 HSPLandroid/hardware/biometrics/IAuthService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IAuthService;
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->asBinder()Landroid/os/IBinder;
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->get()Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onCameraAccessPrioritiesChanged()V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChangedLocked(ILjava/lang/String;)V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChanged(ILjava/lang/String;)V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChangedLocked(ILjava/lang/String;)V
 HSPLandroid/hardware/camera2/CameraManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDescriptor()V
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;-><init>(Landroid/content/Context;)V
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayAvailable()Z
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayComponent()Ljava/lang/String;
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSetting(Ljava/lang/String;II)Z
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSettingDefaultOn(Ljava/lang/String;I)Z
-HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getInstance()Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;
-HSPLandroid/hardware/display/ColorDisplayManager;-><init>()V
-HSPLandroid/hardware/display/ColorDisplayManager;->isNightDisplayAvailable(Landroid/content/Context;)Z
 HSPLandroid/hardware/display/DisplayManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/hardware/display/DisplayManager;->addAllDisplaysLocked(Ljava/util/ArrayList;[I)V
 HSPLandroid/hardware/display/DisplayManager;->addPresentationDisplaysLocked(Ljava/util/ArrayList;[II)V
@@ -5863,10 +5908,9 @@
 HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/WifiDisplayStatus;
 HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/hardware/display/WifiDisplayStatus;-><init>(IIILandroid/hardware/display/WifiDisplay;[Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplaySessionInfo;)V
-HSPLandroid/hardware/display/WifiDisplayStatus;->getActiveDisplay()Landroid/hardware/display/WifiDisplay;
-HSPLandroid/hardware/display/WifiDisplayStatus;->getFeatureState()I
 HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;-><init>()V
 HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/hardware/input/IInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDevice(I)Landroid/view/InputDevice;
 HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDeviceIds()[I
@@ -5876,11 +5920,15 @@
 HSPLandroid/hardware/input/InputManager$InputDeviceListenerDelegate;-><init>(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
 HSPLandroid/hardware/input/InputManager$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManager;)V
 HSPLandroid/hardware/input/InputManager$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManager;Landroid/hardware/input/InputManager$1;)V
+HSPLandroid/hardware/input/InputManager$InputDevicesChangedListener;->onInputDevicesChanged([I)V
 HSPLandroid/hardware/input/InputManager;-><init>(Landroid/hardware/input/IInputManager;)V
+HSPLandroid/hardware/input/InputManager;->access$200(Landroid/hardware/input/InputManager;[I)V
+HSPLandroid/hardware/input/InputManager;->containsDeviceId([II)Z
 HSPLandroid/hardware/input/InputManager;->findInputDeviceListenerLocked(Landroid/hardware/input/InputManager$InputDeviceListener;)I
 HSPLandroid/hardware/input/InputManager;->getInputDevice(I)Landroid/view/InputDevice;
 HSPLandroid/hardware/input/InputManager;->getInputDeviceIds()[I
 HSPLandroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager;
+HSPLandroid/hardware/input/InputManager;->onInputDevicesChanged([I)V
 HSPLandroid/hardware/input/InputManager;->populateInputDevicesLocked()V
 HSPLandroid/hardware/input/InputManager;->registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
 HSPLandroid/hardware/location/ContextHubInfo;->getId()I
@@ -5900,18 +5948,12 @@
 HSPLandroid/hardware/location/NanoAppMessage;->createMessageToNanoApp(JI[B)Landroid/hardware/location/NanoAppMessage;
 HSPLandroid/hardware/location/NanoAppMessage;->getMessageBody()[B
 HSPLandroid/hardware/location/NanoAppMessage;->getMessageType()I
-HSPLandroid/hardware/location/NanoAppMessage;->getNanoAppId()J
 HSPLandroid/hardware/location/NanoAppMessage;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V
 HSPLandroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager;
-HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZ)V
-HSPLandroid/hardware/usb/ParcelableUsbPort;->getUsbPort(Landroid/hardware/usb/UsbManager;)Landroid/hardware/usb/UsbPort;
 HSPLandroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V
 HSPLandroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap;
-HSPLandroid/hardware/usb/UsbPort;-><init>(Landroid/hardware/usb/UsbManager;Ljava/lang/String;IIZZ)V
-HSPLandroid/hardware/usb/UsbPort;->getId()Ljava/lang/String;
-HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIII)V
-HSPLandroid/hardware/usb/UsbPortStatus;->isConnected()Z
 HSPLandroid/icu/impl/BMPSet;-><init>([II)V
 HSPLandroid/icu/impl/BMPSet;->contains(I)Z
 HSPLandroid/icu/impl/BMPSet;->containsSlow(III)Z
@@ -5924,16 +5966,26 @@
 HSPLandroid/icu/impl/CacheValue$NullValue;->isNull()Z
 HSPLandroid/icu/impl/CacheValue$SoftValue;-><init>(Ljava/lang/Object;)V
 HSPLandroid/icu/impl/CacheValue$SoftValue;->get()Ljava/lang/Object;
+HSPLandroid/icu/impl/CacheValue$StrongValue;->get()Ljava/lang/Object;
 HSPLandroid/icu/impl/CacheValue;-><init>()V
 HSPLandroid/icu/impl/CacheValue;->futureInstancesWillBeStrong()Z
 HSPLandroid/icu/impl/CacheValue;->getInstance(Ljava/lang/Object;)Landroid/icu/impl/CacheValue;
 HSPLandroid/icu/impl/CacheValue;->isNull()Z
 HSPLandroid/icu/impl/CacheValue;->setStrength(Landroid/icu/impl/CacheValue$Strength;)V
+HSPLandroid/icu/impl/CalType;-><clinit>()V
+HSPLandroid/icu/impl/CalType;-><init>(Ljava/lang/String;ILjava/lang/String;)V
 HSPLandroid/icu/impl/CalType;->getId()Ljava/lang/String;
 HSPLandroid/icu/impl/CalType;->values()[Landroid/icu/impl/CalType;
+HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;-><clinit>()V
+HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;-><init>()V
 HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->access$000()Landroid/icu/impl/CalendarUtil$CalendarPreferences;
 HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->getCalendarTypeForRegion(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
 HSPLandroid/icu/impl/CalendarUtil;->getCalendarType(Landroid/icu/util/ULocale;)Ljava/lang/String;
+HSPLandroid/icu/impl/CaseMapImpl;-><clinit>()V
+HSPLandroid/icu/impl/CaseMapImpl;->appendUnchanged(Ljava/lang/CharSequence;IILjava/lang/Appendable;ILandroid/icu/text/Edits;)V
+HSPLandroid/icu/impl/CaseMapImpl;->internalToUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)V
+HSPLandroid/icu/impl/CaseMapImpl;->toUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
 HSPLandroid/icu/impl/CharTrie;-><clinit>()V
 HSPLandroid/icu/impl/CharTrie;-><init>(Ljava/nio/ByteBuffer;Landroid/icu/impl/Trie$DataManipulate;)V
 HSPLandroid/icu/impl/CharTrie;->unserialize(Ljava/nio/ByteBuffer;)V
@@ -5948,6 +6000,7 @@
 HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->getAfterSymbols()[Ljava/lang/String;
 HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->getBeforeSymbols()[Ljava/lang/String;
 HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->setSymbolIfNull(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType;Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern;Ljava/lang/String;)V
+HSPLandroid/icu/impl/DateNumberFormat;-><clinit>()V
 HSPLandroid/icu/impl/DateNumberFormat;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/icu/impl/DateNumberFormat;->getDigits()[C
 HSPLandroid/icu/impl/DateNumberFormat;->initialize(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V
@@ -5982,8 +6035,6 @@
 HSPLandroid/icu/impl/Grego;->floorDivide(JJ)J
 HSPLandroid/icu/impl/Grego;->floorDivide(JJ[J)J
 HSPLandroid/icu/impl/Grego;->isLeapYear(I)Z
-HSPLandroid/icu/impl/Grego;->monthLength(II)I
-HSPLandroid/icu/impl/Grego;->previousMonthLength(II)I
 HSPLandroid/icu/impl/Grego;->timeToFields(J[I)[I
 HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseName(Ljava/nio/ByteBuffer;ILjava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/util/Set;)Z
 HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseNamesInFolder(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
@@ -5999,8 +6050,10 @@
 HSPLandroid/icu/impl/ICUBinary;->getChars(Ljava/nio/ByteBuffer;II)[C
 HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer;
 HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Z)Ljava/nio/ByteBuffer;
+HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
 HSPLandroid/icu/impl/ICUBinary;->getDataFromFile(Ljava/lang/String;)Ljava/nio/ByteBuffer;
 HSPLandroid/icu/impl/ICUBinary;->getInts(Ljava/nio/ByteBuffer;II)[I
+HSPLandroid/icu/impl/ICUBinary;->getLongs(Ljava/nio/ByteBuffer;II)[J
 HSPLandroid/icu/impl/ICUBinary;->getRequiredData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
 HSPLandroid/icu/impl/ICUBinary;->getShorts(Ljava/nio/ByteBuffer;II)[S
 HSPLandroid/icu/impl/ICUBinary;->getString(Ljava/nio/ByteBuffer;II)Ljava/lang/String;
@@ -6026,6 +6079,7 @@
 HSPLandroid/icu/impl/ICUData;->checkStreamForBinaryData(Ljava/io/InputStream;Ljava/lang/String;)V
 HSPLandroid/icu/impl/ICUData;->getStream(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/io/InputStream;
 HSPLandroid/icu/impl/ICUDebug;->enabled(Ljava/lang/String;)Z
+HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;-><init>()V
 HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;->getSupportedIDs()Ljava/util/Set;
 HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;->loader()Ljava/lang/ClassLoader;
@@ -6035,6 +6089,7 @@
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentID()Ljava/lang/String;
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentLocale()Landroid/icu/util/ULocale;
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->kind()I
+HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->prefix()Ljava/lang/String;
 HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;-><init>(Z)V
 HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;->create(Landroid/icu/impl/ICUService$Key;Landroid/icu/impl/ICUService;)Ljava/lang/Object;
 HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;->handlesKey(Landroid/icu/impl/ICUService$Key;)Z
@@ -6042,6 +6097,7 @@
 HSPLandroid/icu/impl/ICULocaleService;->createKey(Landroid/icu/util/ULocale;I)Landroid/icu/impl/ICUService$Key;
 HSPLandroid/icu/impl/ICULocaleService;->get(Landroid/icu/util/ULocale;I[Landroid/icu/util/ULocale;)Ljava/lang/Object;
 HSPLandroid/icu/impl/ICULocaleService;->get(Landroid/icu/util/ULocale;[Landroid/icu/util/ULocale;)Ljava/lang/Object;
+HSPLandroid/icu/impl/ICULocaleService;->validateFallbackLocale()Ljava/lang/String;
 HSPLandroid/icu/impl/ICUNotifier;-><init>()V
 HSPLandroid/icu/impl/ICUNotifier;->notifyChanged()V
 HSPLandroid/icu/impl/ICURWLock;-><init>()V
@@ -6059,6 +6115,7 @@
 HSPLandroid/icu/impl/ICUResourceBundle$3;->createInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle$AvailEntry;
 HSPLandroid/icu/impl/ICUResourceBundle$4;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;Ljava/lang/String;)V
 HSPLandroid/icu/impl/ICUResourceBundle$4;->load()Landroid/icu/impl/ICUResourceBundle;
+HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;-><clinit>()V
 HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V
 HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set;
 HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>()V
@@ -6160,6 +6217,7 @@
 HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getString()Ljava/lang/String;
 HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray()[Ljava/lang/String;
 HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray(Landroid/icu/impl/ICUResourceBundleReader$Array;)[Ljava/lang/String;
+HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArrayOrStringAsArray()[Ljava/lang/String;
 HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getTable()Landroid/icu/impl/UResource$Table;
 HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getType()I
 HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;-><init>(II)V
@@ -6230,6 +6288,7 @@
 HSPLandroid/icu/impl/ICUService$Key;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/impl/ICUService;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/impl/ICUService;->clearCaches()V
+HSPLandroid/icu/impl/ICUService;->clearServiceCache()V
 HSPLandroid/icu/impl/ICUService;->getKey(Landroid/icu/impl/ICUService$Key;[Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/icu/impl/ICUService;->getKey(Landroid/icu/impl/ICUService$Key;[Ljava/lang/String;Landroid/icu/impl/ICUService$Factory;)Ljava/lang/Object;
 HSPLandroid/icu/impl/ICUService;->isDefault()Z
@@ -6241,6 +6300,7 @@
 HSPLandroid/icu/impl/IDNA2003;->getSeparatorIndex([CII)I
 HSPLandroid/icu/impl/IDNA2003;->isLDHChar(I)Z
 HSPLandroid/icu/impl/IDNA2003;->isLabelSeparator(I)Z
+HSPLandroid/icu/impl/JavaTimeZone;-><clinit>()V
 HSPLandroid/icu/impl/JavaTimeZone;-><init>(Ljava/util/TimeZone;Ljava/lang/String;)V
 HSPLandroid/icu/impl/JavaTimeZone;->clone()Ljava/lang/Object;
 HSPLandroid/icu/impl/JavaTimeZone;->freeze()Landroid/icu/util/TimeZone;
@@ -6252,6 +6312,7 @@
 HSPLandroid/icu/impl/LocaleIDParser;->addSeparator()V
 HSPLandroid/icu/impl/LocaleIDParser;->append(C)V
 HSPLandroid/icu/impl/LocaleIDParser;->atTerminator()Z
+HSPLandroid/icu/impl/LocaleIDParser;->getBaseName()Ljava/lang/String;
 HSPLandroid/icu/impl/LocaleIDParser;->getCountry()Ljava/lang/String;
 HSPLandroid/icu/impl/LocaleIDParser;->getKeywordMap()Ljava/util/Map;
 HSPLandroid/icu/impl/LocaleIDParser;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String;
@@ -6278,6 +6339,7 @@
 HSPLandroid/icu/impl/LocaleIDParser;->skipLanguage()V
 HSPLandroid/icu/impl/LocaleIDParser;->skipScript()V
 HSPLandroid/icu/impl/LocaleIDParser;->skipUntilTerminatorOrIDSeparator()V
+HSPLandroid/icu/impl/LocaleIDs;-><clinit>()V
 HSPLandroid/icu/impl/LocaleIDs;->findIndex([Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/icu/impl/LocaleIDs;->threeToTwoLetterLanguage(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/impl/Norm2AllModes$1;-><init>()V
@@ -6285,6 +6347,7 @@
 HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
 HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I
 HSPLandroid/icu/impl/Norm2AllModes$FCDNormalizer2;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
+HSPLandroid/icu/impl/Norm2AllModes$NFCSingleton;-><clinit>()V
 HSPLandroid/icu/impl/Norm2AllModes$NFCSingleton;->access$200()Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;
 HSPLandroid/icu/impl/Norm2AllModes$NFKCSingleton;-><clinit>()V
 HSPLandroid/icu/impl/Norm2AllModes$NFKCSingleton;->access$300()Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;
@@ -6309,8 +6372,12 @@
 HSPLandroid/icu/impl/Normalizer2Impl$UTF16Plus;->isLeadSurrogate(I)Z
 HSPLandroid/icu/impl/Normalizer2Impl;-><clinit>()V
 HSPLandroid/icu/impl/Normalizer2Impl;-><init>()V
+HSPLandroid/icu/impl/Normalizer2Impl;->addLcccChars(Landroid/icu/text/UnicodeSet;)V
 HSPLandroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
 HSPLandroid/icu/impl/Normalizer2Impl;->decompose(Ljava/lang/CharSequence;IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I
+HSPLandroid/icu/impl/Normalizer2Impl;->getFCD16(I)I
+HSPLandroid/icu/impl/Normalizer2Impl;->getFCD16FromNormData(I)I
+HSPLandroid/icu/impl/Normalizer2Impl;->getNorm16(I)I
 HSPLandroid/icu/impl/Normalizer2Impl;->hangulLVT()I
 HSPLandroid/icu/impl/Normalizer2Impl;->isDecompYes(I)Z
 HSPLandroid/icu/impl/Normalizer2Impl;->isHangulLV(I)Z
@@ -6318,6 +6385,7 @@
 HSPLandroid/icu/impl/Normalizer2Impl;->isMostDecompYesAndZeroCC(I)Z
 HSPLandroid/icu/impl/Normalizer2Impl;->load(Ljava/lang/String;)Landroid/icu/impl/Normalizer2Impl;
 HSPLandroid/icu/impl/Normalizer2Impl;->load(Ljava/nio/ByteBuffer;)Landroid/icu/impl/Normalizer2Impl;
+HSPLandroid/icu/impl/Normalizer2Impl;->singleLeadMightHaveNonZeroFCD16(I)Z
 HSPLandroid/icu/impl/OlsonTimeZone;-><clinit>()V
 HSPLandroid/icu/impl/OlsonTimeZone;-><init>(Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;Ljava/lang/String;)V
 HSPLandroid/icu/impl/OlsonTimeZone;->clone()Ljava/lang/Object;
@@ -6337,6 +6405,7 @@
 HSPLandroid/icu/impl/PatternProps;-><clinit>()V
 HSPLandroid/icu/impl/PatternProps;->isWhiteSpace(I)Z
 HSPLandroid/icu/impl/PatternProps;->skipWhiteSpace(Ljava/lang/CharSequence;I)I
+HSPLandroid/icu/impl/PatternTokenizer;-><clinit>()V
 HSPLandroid/icu/impl/PatternTokenizer;-><init>()V
 HSPLandroid/icu/impl/PatternTokenizer;->next(Ljava/lang/StringBuffer;)I
 HSPLandroid/icu/impl/PatternTokenizer;->quoteLiteral(Ljava/lang/String;)Ljava/lang/String;
@@ -6344,6 +6413,8 @@
 HSPLandroid/icu/impl/PatternTokenizer;->setPattern(Ljava/lang/String;)Landroid/icu/impl/PatternTokenizer;
 HSPLandroid/icu/impl/PatternTokenizer;->setSyntaxCharacters(Landroid/icu/text/UnicodeSet;)Landroid/icu/impl/PatternTokenizer;
 HSPLandroid/icu/impl/PatternTokenizer;->setUsingQuote(Z)Landroid/icu/impl/PatternTokenizer;
+HSPLandroid/icu/impl/PluralRulesLoader;-><clinit>()V
+HSPLandroid/icu/impl/PluralRulesLoader;-><init>()V
 HSPLandroid/icu/impl/PluralRulesLoader;->checkBuildRulesIdMaps()V
 HSPLandroid/icu/impl/PluralRulesLoader;->forLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Landroid/icu/text/PluralRules;
 HSPLandroid/icu/impl/PluralRulesLoader;->getLocaleIdToRulesIdMap(Landroid/icu/text/PluralRules$PluralType;)Ljava/util/Map;
@@ -6377,6 +6448,7 @@
 HSPLandroid/icu/impl/SimpleCache;-><init>()V
 HSPLandroid/icu/impl/SimpleCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/impl/SimpleCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/icu/impl/SimpleFormatterImpl;-><clinit>()V
 HSPLandroid/icu/impl/SimpleFormatterImpl;->compileToStringMinMaxArguments(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;II)Ljava/lang/String;
 HSPLandroid/icu/impl/SimpleFormatterImpl;->format(Ljava/lang/String;[Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Ljava/lang/String;Z[I)Ljava/lang/StringBuilder;
 HSPLandroid/icu/impl/SimpleFormatterImpl;->formatAndAppend(Ljava/lang/String;Ljava/lang/StringBuilder;[I[Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
@@ -6424,19 +6496,30 @@
 HSPLandroid/icu/impl/TextTrieMap$Node;-><init>(Landroid/icu/impl/TextTrieMap;)V
 HSPLandroid/icu/impl/TextTrieMap$Node;-><init>(Landroid/icu/impl/TextTrieMap;Landroid/icu/impl/TextTrieMap$1;)V
 HSPLandroid/icu/impl/TextTrieMap;-><init>(Z)V
+HSPLandroid/icu/impl/TimeZoneNamesFactoryImpl;-><init>()V
 HSPLandroid/icu/impl/TimeZoneNamesFactoryImpl;->getTimeZoneNames(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
+HSPLandroid/icu/impl/TimeZoneNamesImpl$1;-><clinit>()V
+HSPLandroid/icu/impl/TimeZoneNamesImpl$MZ2TZsCache;-><init>()V
+HSPLandroid/icu/impl/TimeZoneNamesImpl$MZ2TZsCache;-><init>(Landroid/icu/impl/TimeZoneNamesImpl$1;)V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;-><init>(Ljava/lang/String;JJ)V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->from()J
 HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->mzID()Ljava/lang/String;
 HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->to()J
+HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;-><init>()V
+HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;-><init>(Landroid/icu/impl/TimeZoneNamesImpl$1;)V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
 HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->parseDate(Ljava/lang/String;)J
+HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;-><clinit>()V
+HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;->values()[Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;
+HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;-><clinit>()V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;-><init>([Ljava/lang/String;)V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->createMetaZoneAndPutInCache(Ljava/util/Map;[Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->createTimeZoneAndPutInCache(Ljava/util/Map;[Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->getName(Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String;
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->getNameTypeIndex(Landroid/icu/text/TimeZoneNames$NameType;)I
+HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;-><clinit>()V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;-><init>()V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;-><init>(Landroid/icu/impl/TimeZoneNamesImpl$1;)V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->access$600(Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;)[Ljava/lang/String;
@@ -6447,8 +6530,12 @@
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->nameTypeIndexFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
 HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->setNameIfEmpty(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+HSPLandroid/icu/impl/TimeZoneNamesImpl;-><clinit>()V
 HSPLandroid/icu/impl/TimeZoneNamesImpl;-><init>(Landroid/icu/util/ULocale;)V
+HSPLandroid/icu/impl/TimeZoneNamesImpl;->_getAvailableMetaZoneIDs(Ljava/lang/String;)Ljava/util/Set;
+HSPLandroid/icu/impl/TimeZoneNamesImpl;->_getMetaZoneID(Ljava/lang/String;J)Ljava/lang/String;
 HSPLandroid/icu/impl/TimeZoneNamesImpl;->getAvailableMetaZoneIDs(Ljava/lang/String;)Ljava/util/Set;
+HSPLandroid/icu/impl/TimeZoneNamesImpl;->getDefaultExemplarLocationName(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/impl/TimeZoneNamesImpl;->getMetaZoneDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String;
 HSPLandroid/icu/impl/TimeZoneNamesImpl;->getMetaZoneID(Ljava/lang/String;J)Ljava/lang/String;
 HSPLandroid/icu/impl/TimeZoneNamesImpl;->getTimeZoneDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String;
@@ -6476,8 +6563,11 @@
 HSPLandroid/icu/impl/Trie2_16;->getFromU16SingleLead(C)I
 HSPLandroid/icu/impl/Trie2_16;->getSerializedLength()I
 HSPLandroid/icu/impl/Trie2_16;->rangeEnd(III)I
+HSPLandroid/icu/impl/Trie2_32;-><init>()V
+HSPLandroid/icu/impl/Trie2_32;->createFromSerialized(Ljava/nio/ByteBuffer;)Landroid/icu/impl/Trie2_32;
 HSPLandroid/icu/impl/Trie2_32;->get(I)I
 HSPLandroid/icu/impl/Trie2_32;->getFromU16SingleLead(C)I
+HSPLandroid/icu/impl/Trie2_32;->getSerializedLength()I
 HSPLandroid/icu/impl/Trie;-><clinit>()V
 HSPLandroid/icu/impl/Trie;-><init>(Ljava/nio/ByteBuffer;Landroid/icu/impl/Trie$DataManipulate;)V
 HSPLandroid/icu/impl/Trie;->checkHeader(I)Z
@@ -6491,27 +6581,33 @@
 HSPLandroid/icu/impl/UCaseProps$IsAcceptable;-><init>()V
 HSPLandroid/icu/impl/UCaseProps$IsAcceptable;-><init>(Landroid/icu/impl/UCaseProps$1;)V
 HSPLandroid/icu/impl/UCaseProps$IsAcceptable;->isDataVersionAcceptable([B)Z
+HSPLandroid/icu/impl/UCaseProps$LatinCase;-><clinit>()V
 HSPLandroid/icu/impl/UCaseProps;-><clinit>()V
 HSPLandroid/icu/impl/UCaseProps;-><init>()V
 HSPLandroid/icu/impl/UCaseProps;->fold(II)I
+HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/lang/String;)I
 HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/util/Locale;)I
 HSPLandroid/icu/impl/UCaseProps;->getDelta(I)I
+HSPLandroid/icu/impl/UCaseProps;->getTrie()Landroid/icu/impl/Trie2_16;
 HSPLandroid/icu/impl/UCaseProps;->isUpperOrTitleFromProps(I)Z
 HSPLandroid/icu/impl/UCaseProps;->propsHasException(I)Z
 HSPLandroid/icu/impl/UCaseProps;->readData(Ljava/nio/ByteBuffer;)V
 HSPLandroid/icu/impl/UCharacterProperty$1;->contains(I)Z
+HSPLandroid/icu/impl/UCharacterProperty$20;->getValue(I)I
 HSPLandroid/icu/impl/UCharacterProperty$BinaryProperty;->contains(I)Z
 HSPLandroid/icu/impl/UCharacterProperty$BinaryProperty;->getSource()I
 HSPLandroid/icu/impl/UCharacterProperty$IntProperty;->getSource()I
 HSPLandroid/icu/impl/UCharacterProperty;->addPropertyStarts(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
 HSPLandroid/icu/impl/UCharacterProperty;->digit(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->getAdditional(II)I
+HSPLandroid/icu/impl/UCharacterProperty;->getEuropeanDigit(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->getIntPropertyValue(II)I
 HSPLandroid/icu/impl/UCharacterProperty;->getNumericTypeValue(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->getProperty(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->getSource(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->getType(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->hasBinaryProperty(II)Z
+HSPLandroid/icu/impl/UCharacterProperty;->mergeScriptCodeOrIndex(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->upropsvec_addPropertyStarts(Landroid/icu/text/UnicodeSet;)V
 HSPLandroid/icu/impl/UPropertyAliases$IsAcceptable;-><init>()V
 HSPLandroid/icu/impl/UPropertyAliases$IsAcceptable;-><init>(Landroid/icu/impl/UPropertyAliases$1;)V
@@ -6539,6 +6635,10 @@
 HSPLandroid/icu/impl/UResource$Sink;-><init>()V
 HSPLandroid/icu/impl/UResource$Value;-><init>()V
 HSPLandroid/icu/impl/UResource$Value;->toString()Ljava/lang/String;
+HSPLandroid/icu/impl/USerializedSet;-><init>()V
+HSPLandroid/icu/impl/USerializedSet;->countRanges()I
+HSPLandroid/icu/impl/USerializedSet;->getRange(I[I)Z
+HSPLandroid/icu/impl/USerializedSet;->getSet([CI)Z
 HSPLandroid/icu/impl/UnicodeSetStringSpan$OffsetList;-><clinit>()V
 HSPLandroid/icu/impl/UnicodeSetStringSpan$OffsetList;-><init>()V
 HSPLandroid/icu/impl/UnicodeSetStringSpan;-><init>(Landroid/icu/text/UnicodeSet;Ljava/util/ArrayList;I)V
@@ -6562,8 +6662,18 @@
 HSPLandroid/icu/impl/coll/Collation;->indexFromCE32(I)I
 HSPLandroid/icu/impl/coll/Collation;->isSpecialCE32(I)Z
 HSPLandroid/icu/impl/coll/Collation;->tagFromCE32(I)I
+HSPLandroid/icu/impl/coll/CollationData;-><clinit>()V
+HSPLandroid/icu/impl/coll/CollationData;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
 HSPLandroid/icu/impl/coll/CollationData;->getCE32(I)I
+HSPLandroid/icu/impl/coll/CollationData;->getLastPrimaryForGroup(I)J
+HSPLandroid/icu/impl/coll/CollationData;->getScriptIndex(I)I
 HSPLandroid/icu/impl/coll/CollationData;->isUnsafeBackward(IZ)Z
+HSPLandroid/icu/impl/coll/CollationDataReader$IsAcceptable;-><init>()V
+HSPLandroid/icu/impl/coll/CollationDataReader$IsAcceptable;-><init>(Landroid/icu/impl/coll/CollationDataReader$1;)V
+HSPLandroid/icu/impl/coll/CollationDataReader$IsAcceptable;->isDataVersionAcceptable([B)Z
+HSPLandroid/icu/impl/coll/CollationDataReader;-><clinit>()V
+HSPLandroid/icu/impl/coll/CollationDataReader;->read(Landroid/icu/impl/coll/CollationTailoring;Ljava/nio/ByteBuffer;Landroid/icu/impl/coll/CollationTailoring;)V
+HSPLandroid/icu/impl/coll/CollationFastLatin;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationFastLatin;->compareUTF16([C[CILjava/lang/CharSequence;Ljava/lang/CharSequence;I)I
 HSPLandroid/icu/impl/coll/CollationFastLatin;->getOptions(Landroid/icu/impl/coll/CollationData;Landroid/icu/impl/coll/CollationSettings;[C)I
 HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;-><init>()V
@@ -6580,26 +6690,36 @@
 HSPLandroid/icu/impl/coll/CollationIterator;->nextCEFromCE32(Landroid/icu/impl/coll/CollationData;II)J
 HSPLandroid/icu/impl/coll/CollationIterator;->reset()V
 HSPLandroid/icu/impl/coll/CollationIterator;->reset(Z)V
+HSPLandroid/icu/impl/coll/CollationLoader;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationLoader;->findWithFallback(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
 HSPLandroid/icu/impl/coll/CollationLoader;->loadTailoring(Landroid/icu/util/ULocale;Landroid/icu/util/Output;)Landroid/icu/impl/coll/CollationTailoring;
+HSPLandroid/icu/impl/coll/CollationRoot;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationRoot;->getRoot()Landroid/icu/impl/coll/CollationTailoring;
+HSPLandroid/icu/impl/coll/CollationSettings;-><clinit>()V
+HSPLandroid/icu/impl/coll/CollationSettings;-><init>()V
 HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/CollationSettings;
 HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/SharedObject;
 HSPLandroid/icu/impl/coll/CollationSettings;->dontCheckFCD()Z
+HSPLandroid/icu/impl/coll/CollationSettings;->getFlag(I)Z
+HSPLandroid/icu/impl/coll/CollationSettings;->getMaxVariable()I
 HSPLandroid/icu/impl/coll/CollationSettings;->getStrength()I
 HSPLandroid/icu/impl/coll/CollationSettings;->getStrength(I)I
 HSPLandroid/icu/impl/coll/CollationSettings;->hasReordering()Z
 HSPLandroid/icu/impl/coll/CollationSettings;->isNumeric()Z
 HSPLandroid/icu/impl/coll/CollationSettings;->setFlag(IZ)V
 HSPLandroid/icu/impl/coll/CollationSettings;->setStrength(I)V
+HSPLandroid/icu/impl/coll/CollationTailoring;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationTailoring;-><init>(Landroid/icu/impl/coll/SharedObject$Reference;)V
+HSPLandroid/icu/impl/coll/CollationTailoring;->ensureOwnedData()V
 HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><clinit>()V
 HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V
+HSPLandroid/icu/impl/coll/SharedObject$Reference;-><init>(Landroid/icu/impl/coll/SharedObject;)V
 HSPLandroid/icu/impl/coll/SharedObject$Reference;->clear()V
 HSPLandroid/icu/impl/coll/SharedObject$Reference;->clone()Landroid/icu/impl/coll/SharedObject$Reference;
 HSPLandroid/icu/impl/coll/SharedObject$Reference;->copyOnWrite()Landroid/icu/impl/coll/SharedObject;
 HSPLandroid/icu/impl/coll/SharedObject$Reference;->finalize()V
 HSPLandroid/icu/impl/coll/SharedObject$Reference;->readOnly()Landroid/icu/impl/coll/SharedObject;
+HSPLandroid/icu/impl/coll/SharedObject;-><init>()V
 HSPLandroid/icu/impl/coll/SharedObject;->addRef()V
 HSPLandroid/icu/impl/coll/SharedObject;->clone()Landroid/icu/impl/coll/SharedObject;
 HSPLandroid/icu/impl/coll/SharedObject;->getRefCount()I
@@ -6953,7 +7073,12 @@
 HSPLandroid/icu/lang/UScript$ScriptMetadata;-><clinit>()V
 HSPLandroid/icu/lang/UScript$ScriptMetadata;->access$000(I)I
 HSPLandroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I
+HSPLandroid/icu/lang/UScript$ScriptUsage;-><clinit>()V
+HSPLandroid/icu/lang/UScript$ScriptUsage;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/lang/UScript$ScriptUsage;->values()[Landroid/icu/lang/UScript$ScriptUsage;
+HSPLandroid/icu/lang/UScript;-><clinit>()V
 HSPLandroid/icu/lang/UScript;->getCodeFromName(Ljava/lang/String;)I
+HSPLandroid/icu/lang/UScript;->getScript(I)I
 HSPLandroid/icu/lang/UScript;->isRightToLeft(I)Z
 HSPLandroid/icu/number/FormattedNumber;-><init>(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/number/DecimalQuantity;)V
 HSPLandroid/icu/number/FormattedNumber;->appendTo(Ljava/lang/Appendable;)Ljava/lang/Appendable;
@@ -6974,6 +7099,7 @@
 HSPLandroid/icu/number/NumberFormatter;->fromDecimalFormat(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter;
 HSPLandroid/icu/number/NumberFormatter;->with()Landroid/icu/number/UnlocalizedNumberFormatter;
 HSPLandroid/icu/number/NumberFormatterImpl;-><clinit>()V
+HSPLandroid/icu/number/NumberFormatterImpl;-><init>(Landroid/icu/impl/number/MacroProps;)V
 HSPLandroid/icu/number/NumberFormatterImpl;->format(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)I
 HSPLandroid/icu/number/NumberFormatterImpl;->formatStatic(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)I
 HSPLandroid/icu/number/NumberFormatterImpl;->getPrefixSuffix(BLandroid/icu/impl/StandardPlural;Landroid/icu/impl/FormattedStringBuilder;)I
@@ -7015,7 +7141,9 @@
 HSPLandroid/icu/number/UnlocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/NumberFormatterSettings;
 HSPLandroid/icu/number/UnlocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/UnlocalizedNumberFormatter;
 HSPLandroid/icu/number/UnlocalizedNumberFormatter;->locale(Landroid/icu/util/ULocale;)Landroid/icu/number/LocalizedNumberFormatter;
+HSPLandroid/icu/text/Bidi$ImpTabPair;-><init>([[B[[B[S[S)V
 HSPLandroid/icu/text/Bidi$InsertPoints;-><init>()V
+HSPLandroid/icu/text/Bidi;-><clinit>()V
 HSPLandroid/icu/text/Bidi;-><init>(II)V
 HSPLandroid/icu/text/Bidi;->DirPropFlag(B)I
 HSPLandroid/icu/text/Bidi;->DirPropFlagLR(B)I
@@ -7034,6 +7162,7 @@
 HSPLandroid/icu/text/Bidi;->getMemory(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;ZI)Ljava/lang/Object;
 HSPLandroid/icu/text/Bidi;->getParaLevel()B
 HSPLandroid/icu/text/Bidi;->resolveExplicitLevels()B
+HSPLandroid/icu/text/Bidi;->setCustomClassifier(Landroid/icu/text/BidiClassifier;)V
 HSPLandroid/icu/text/Bidi;->setPara([CB[B)V
 HSPLandroid/icu/text/Bidi;->setParaSuccess()V
 HSPLandroid/icu/text/Bidi;->verifyRange(III)V
@@ -7051,21 +7180,32 @@
 HSPLandroid/icu/text/BreakIterator;->getSentenceInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/BreakIterator;
 HSPLandroid/icu/text/BreakIterator;->getShim()Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
 HSPLandroid/icu/text/BreakIterator;->getWordInstance(Ljava/util/Locale;)Landroid/icu/text/BreakIterator;
+HSPLandroid/icu/text/BreakIterator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
+HSPLandroid/icu/text/BreakIterator;->setText(Ljava/lang/String;)V
 HSPLandroid/icu/text/BreakIteratorFactory;-><init>()V
+HSPLandroid/icu/text/BreakIteratorFactory;->createBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
 HSPLandroid/icu/text/BreakIteratorFactory;->createBreakIterator(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
+HSPLandroid/icu/text/CaseMap$Upper;-><clinit>()V
+HSPLandroid/icu/text/CaseMap$Upper;-><init>(I)V
 HSPLandroid/icu/text/CaseMap$Upper;->access$100()Landroid/icu/text/CaseMap$Upper;
 HSPLandroid/icu/text/CaseMap$Upper;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
+HSPLandroid/icu/text/CaseMap;-><init>(I)V
+HSPLandroid/icu/text/CaseMap;-><init>(ILandroid/icu/text/CaseMap$1;)V
 HSPLandroid/icu/text/CaseMap;->access$500(Ljava/util/Locale;)I
 HSPLandroid/icu/text/CaseMap;->getCaseLocale(Ljava/util/Locale;)I
 HSPLandroid/icu/text/CaseMap;->toUpper()Landroid/icu/text/CaseMap$Upper;
 HSPLandroid/icu/text/Collator$ServiceShim;-><init>()V
+HSPLandroid/icu/text/Collator;-><clinit>()V
 HSPLandroid/icu/text/Collator;-><init>()V
 HSPLandroid/icu/text/Collator;->clone()Ljava/lang/Object;
 HSPLandroid/icu/text/Collator;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
 HSPLandroid/icu/text/Collator;->getInstance(Ljava/util/Locale;)Landroid/icu/text/Collator;
 HSPLandroid/icu/text/Collator;->getShim()Landroid/icu/text/Collator$ServiceShim;
+HSPLandroid/icu/text/CollatorServiceShim$CService$1CollatorFactory;-><init>(Landroid/icu/text/CollatorServiceShim$CService;)V
 HSPLandroid/icu/text/CollatorServiceShim$CService$1CollatorFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object;
+HSPLandroid/icu/text/CollatorServiceShim$CService;-><init>()V
 HSPLandroid/icu/text/CollatorServiceShim$CService;->validateFallbackLocale()Ljava/lang/String;
+HSPLandroid/icu/text/CollatorServiceShim;-><clinit>()V
 HSPLandroid/icu/text/CollatorServiceShim;-><init>()V
 HSPLandroid/icu/text/CollatorServiceShim;->access$000(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
 HSPLandroid/icu/text/CollatorServiceShim;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
@@ -7084,7 +7224,12 @@
 HSPLandroid/icu/text/ConstrainedFieldPosition;->setState(Ljava/text/Format$Field;Ljava/lang/Object;II)V
 HSPLandroid/icu/text/CurrencyDisplayNames;-><init>()V
 HSPLandroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames;
+HSPLandroid/icu/text/DateFormat$BooleanAttribute;-><clinit>()V
+HSPLandroid/icu/text/DateFormat$BooleanAttribute;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/text/DateFormat$BooleanAttribute;->values()[Landroid/icu/text/DateFormat$BooleanAttribute;
+HSPLandroid/icu/text/DateFormat$Field;-><clinit>()V
+HSPLandroid/icu/text/DateFormat$Field;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/DateFormat;-><clinit>()V
 HSPLandroid/icu/text/DateFormat;-><init>()V
 HSPLandroid/icu/text/DateFormat;->get(IILandroid/icu/util/ULocale;Landroid/icu/util/Calendar;)Landroid/icu/text/DateFormat;
 HSPLandroid/icu/text/DateFormat;->getCalendar()Landroid/icu/util/Calendar;
@@ -7093,14 +7238,21 @@
 HSPLandroid/icu/text/DateFormat;->getTimeInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
 HSPLandroid/icu/text/DateFormat;->setCalendar(Landroid/icu/util/Calendar;)V
 HSPLandroid/icu/text/DateFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V
+HSPLandroid/icu/text/DateFormatSymbols$1;-><init>()V
 HSPLandroid/icu/text/DateFormatSymbols$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/text/DateFormatSymbols$1;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormatSymbols;
+HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;-><clinit>()V
+HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;-><clinit>()V
 HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;-><init>()V
 HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->preEnumerate(Ljava/lang/String;)V
 HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->processAliasFromValue(Ljava/lang/String;Landroid/icu/impl/UResource$Value;)Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
 HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->processResource(Ljava/lang/String;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
 HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
+HSPLandroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;-><clinit>()V
+HSPLandroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->values()[Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+HSPLandroid/icu/text/DateFormatSymbols;-><clinit>()V
 HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
@@ -7129,6 +7281,9 @@
 HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->setIntervalPatternIfAbsent(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/UResource$Value;)V
 HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->validateAndProcessPatternLetter(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/icu/text/DateIntervalInfo$PatternInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
+HSPLandroid/icu/text/DateIntervalInfo$PatternInfo;->firstDateInPtnIsLaterDate()Z
+HSPLandroid/icu/text/DateIntervalInfo$PatternInfo;->getFirstPart()Ljava/lang/String;
+HSPLandroid/icu/text/DateIntervalInfo$PatternInfo;->getSecondPart()Ljava/lang/String;
 HSPLandroid/icu/text/DateIntervalInfo;-><init>(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateIntervalInfo;->access$000()Ljava/lang/String;
 HSPLandroid/icu/text/DateIntervalInfo;->access$200(Landroid/icu/text/DateIntervalInfo;)Ljava/util/Map;
@@ -7145,6 +7300,7 @@
 HSPLandroid/icu/text/DateIntervalInfo;->setIntervalPatternInternally(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/DateIntervalInfo$PatternInfo;
 HSPLandroid/icu/text/DateIntervalInfo;->setup(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateIntervalInfo;->splitPatternInto2Part(Ljava/lang/String;)I
+HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><clinit>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;Landroid/icu/text/DateTimePatternGenerator$1;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
@@ -7153,6 +7309,8 @@
 HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
 HSPLandroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
+HSPLandroid/icu/text/DateTimePatternGenerator$DTPGflags;-><clinit>()V
+HSPLandroid/icu/text/DateTimePatternGenerator$DTPGflags;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/text/DateTimePatternGenerator$DTPGflags;->values()[Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
 HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;-><init>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;-><init>(Landroid/icu/text/DateTimePatternGenerator$1;)V
@@ -7166,13 +7324,22 @@
 HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I
 HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getFieldMask()I
 HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
+HSPLandroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;-><init>(Ljava/util/HashMap;)V
+HSPLandroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;-><init>(Ljava/util/HashMap;Landroid/icu/text/DateTimePatternGenerator$1;)V
+HSPLandroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
+HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;-><clinit>()V
+HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;-><init>(Ljava/lang/String;ILjava/lang/String;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->access$100()I
+HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->access$1100(Landroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String;
+HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String;
+HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->values()[Landroid/icu/text/DateTimePatternGenerator$DisplayWidth;
 HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;-><init>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;-><init>(Landroid/icu/text/DateTimePatternGenerator$1;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V
 HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addMissing(I)V
 HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->clear()V
 HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->setTo(Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;)V
+HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;-><clinit>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;-><init>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->access$1000(Landroid/icu/text/DateTimePatternGenerator$FormatParser;)Ljava/util/List;
 HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->addVariable(Ljava/lang/StringBuffer;Z)V
@@ -7180,8 +7347,10 @@
 HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->quoteLiteral(Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$FormatParser;
 HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;Z)Landroid/icu/text/DateTimePatternGenerator$FormatParser;
+HSPLandroid/icu/text/DateTimePatternGenerator$PatternInfo;-><init>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;-><init>(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;-><init>(Ljava/lang/String;Z)V
+HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;-><clinit>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;-><init>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;-><init>(Landroid/icu/text/DateTimePatternGenerator$1;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendFieldTo(ILjava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
@@ -7200,6 +7369,7 @@
 HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->getType()I
 HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->isNumeric()Z
 HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->toString()Ljava/lang/String;
+HSPLandroid/icu/text/DateTimePatternGenerator;-><clinit>()V
 HSPLandroid/icu/text/DateTimePatternGenerator;-><init>()V
 HSPLandroid/icu/text/DateTimePatternGenerator;->access$000(Landroid/icu/impl/UResource$Key;)I
 HSPLandroid/icu/text/DateTimePatternGenerator;->access$1400(Ljava/lang/String;Z)I
@@ -7209,6 +7379,7 @@
 HSPLandroid/icu/text/DateTimePatternGenerator;->access$400(Landroid/icu/text/DateTimePatternGenerator;Ljava/lang/String;)Z
 HSPLandroid/icu/text/DateTimePatternGenerator;->access$500(Landroid/icu/text/DateTimePatternGenerator;Ljava/lang/String;)V
 HSPLandroid/icu/text/DateTimePatternGenerator;->addCLDRData(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
+HSPLandroid/icu/text/DateTimePatternGenerator;->addCanonicalItems()V
 HSPLandroid/icu/text/DateTimePatternGenerator;->addICUPatterns(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateTimePatternGenerator;->addPattern(Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator;
 HSPLandroid/icu/text/DateTimePatternGenerator;->addPatternWithSkeleton(Ljava/lang/String;Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator;
@@ -7218,6 +7389,7 @@
 HSPLandroid/icu/text/DateTimePatternGenerator;->cloneAsThawed()Landroid/icu/text/DateTimePatternGenerator;
 HSPLandroid/icu/text/DateTimePatternGenerator;->consumeShortTimePattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V
 HSPLandroid/icu/text/DateTimePatternGenerator;->fillInMissing()V
+HSPLandroid/icu/text/DateTimePatternGenerator;->freeze()Landroid/icu/text/DateTimePatternGenerator;
 HSPLandroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormats(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormatsLangCountry(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/icu/text/DateTimePatternGenerator;->getAppendFormatNumber(Landroid/icu/impl/UResource$Key;)I
@@ -7226,17 +7398,28 @@
 HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;I)Ljava/lang/String;
 HSPLandroid/icu/text/DateTimePatternGenerator;->getBestRaw(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;
+HSPLandroid/icu/text/DateTimePatternGenerator;->getCLDRFieldAndWidthNumber(Landroid/icu/impl/UResource$Key;)I
 HSPLandroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String;
+HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I
 HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat()Ljava/lang/String;
 HSPLandroid/icu/text/DateTimePatternGenerator;->getFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String;
+HSPLandroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String;
+HSPLandroid/icu/text/DateTimePatternGenerator;->getFrozenInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator;
+HSPLandroid/icu/text/DateTimePatternGenerator;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator;
 HSPLandroid/icu/text/DateTimePatternGenerator;->hackTimes(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Ljava/lang/String;)V
+HSPLandroid/icu/text/DateTimePatternGenerator;->initData(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateTimePatternGenerator;->isAvailableFormatSet(Ljava/lang/String;)Z
 HSPLandroid/icu/text/DateTimePatternGenerator;->isFrozen()Z
 HSPLandroid/icu/text/DateTimePatternGenerator;->mapSkeletonMetacharacters(Ljava/lang/String;Ljava/util/EnumSet;)Ljava/lang/String;
 HSPLandroid/icu/text/DateTimePatternGenerator;->setAppendItemFormat(ILjava/lang/String;)V
 HSPLandroid/icu/text/DateTimePatternGenerator;->setAvailableFormat(Ljava/lang/String;)V
+HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFormat(Ljava/lang/String;)V
+HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFromCalendar(Landroid/icu/util/ULocale;)V
+HSPLandroid/icu/text/DateTimePatternGenerator;->setDecimal(Ljava/lang/String;)V
+HSPLandroid/icu/text/DateTimePatternGenerator;->setDecimalSymbols(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateTimePatternGenerator;->setFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;Ljava/lang/String;)V
 HSPLandroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V
+HSPLandroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;I)V
 HSPLandroid/icu/text/DecimalFormat;->clone()Ljava/lang/Object;
 HSPLandroid/icu/text/DecimalFormat;->fieldPositionHelper(Landroid/icu/number/FormattedNumber;Ljava/text/FieldPosition;I)V
 HSPLandroid/icu/text/DecimalFormat;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
@@ -7340,6 +7523,7 @@
 HSPLandroid/icu/text/Edits;->append(I)V
 HSPLandroid/icu/text/Edits;->hasChanges()Z
 HSPLandroid/icu/text/Edits;->lastUnit()I
+HSPLandroid/icu/text/Edits;->reset()V
 HSPLandroid/icu/text/Edits;->setLastUnit(I)V
 HSPLandroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
 HSPLandroid/icu/text/Normalizer$ModeImpl;-><init>(Landroid/icu/text/Normalizer2;)V
@@ -7357,7 +7541,17 @@
 HSPLandroid/icu/text/NumberFormat$Field;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/text/NumberFormat;-><init>()V
 HSPLandroid/icu/text/NumberFormat;->clone()Ljava/lang/Object;
+HSPLandroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
+HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberFormat;
+HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
+HSPLandroid/icu/text/NumberFormat;->getPattern(Landroid/icu/util/ULocale;I)Ljava/lang/String;
+HSPLandroid/icu/text/NumberFormat;->getPatternForStyle(Landroid/icu/util/ULocale;I)Ljava/lang/String;
 HSPLandroid/icu/text/NumberFormat;->getPatternForStyleAndNumberingSystem(Landroid/icu/util/ULocale;Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/icu/text/NumberFormat;->getShim()Landroid/icu/text/NumberFormat$NumberFormatShim;
+HSPLandroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory;-><init>(Landroid/icu/text/NumberFormatServiceShim$NFService;)V
+HSPLandroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object;
+HSPLandroid/icu/text/NumberFormatServiceShim$NFService;-><init>()V
+HSPLandroid/icu/text/NumberFormatServiceShim;-><clinit>()V
 HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/String;Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem;
 HSPLandroid/icu/text/NumberingSystem$LocaleLookupData;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V
@@ -7370,10 +7564,19 @@
 HSPLandroid/icu/text/NumberingSystem;->isAlgorithmic()Z
 HSPLandroid/icu/text/NumberingSystem;->isValidDigitString(Ljava/lang/String;)Z
 HSPLandroid/icu/text/NumberingSystem;->lookupInstanceByLocale(Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem;
+HSPLandroid/icu/text/PluralRanges$Matrix;-><init>()V
+HSPLandroid/icu/text/PluralRanges$Matrix;->setIfNew(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
+HSPLandroid/icu/text/PluralRanges;-><init>()V
+HSPLandroid/icu/text/PluralRanges;->add(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
+HSPLandroid/icu/text/PluralRanges;->freeze()Landroid/icu/text/PluralRanges;
+HSPLandroid/icu/text/PluralRules$1;-><init>()V
 HSPLandroid/icu/text/PluralRules$1;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
+HSPLandroid/icu/text/PluralRules$2;-><clinit>()V
 HSPLandroid/icu/text/PluralRules$AndConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
 HSPLandroid/icu/text/PluralRules$AndConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
 HSPLandroid/icu/text/PluralRules$BinaryConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
+HSPLandroid/icu/text/PluralRules$Factory;-><init>()V
+HSPLandroid/icu/text/PluralRules$Factory;->getDefaultFactory()Landroid/icu/impl/PluralRulesLoader;
 HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(D)V
 HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DI)V
 HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJ)V
@@ -7390,20 +7593,41 @@
 HSPLandroid/icu/text/PluralRules$FixedDecimalSamples;-><init>(Landroid/icu/text/PluralRules$SampleType;Ljava/util/Set;Z)V
 HSPLandroid/icu/text/PluralRules$FixedDecimalSamples;->checkDecimal(Landroid/icu/text/PluralRules$SampleType;Landroid/icu/text/PluralRules$FixedDecimal;)V
 HSPLandroid/icu/text/PluralRules$FixedDecimalSamples;->parse(Ljava/lang/String;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
+HSPLandroid/icu/text/PluralRules$Operand;-><clinit>()V
+HSPLandroid/icu/text/PluralRules$Operand;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/text/PluralRules$Operand;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand;
 HSPLandroid/icu/text/PluralRules$Operand;->values()[Landroid/icu/text/PluralRules$Operand;
+HSPLandroid/icu/text/PluralRules$PluralType;-><clinit>()V
+HSPLandroid/icu/text/PluralRules$PluralType;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/text/PluralRules$RangeConstraint;-><init>(IZLandroid/icu/text/PluralRules$Operand;ZDD[J)V
 HSPLandroid/icu/text/PluralRules$RangeConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
+HSPLandroid/icu/text/PluralRules$Rule;-><init>(Ljava/lang/String;Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$FixedDecimalSamples;Landroid/icu/text/PluralRules$FixedDecimalSamples;)V
+HSPLandroid/icu/text/PluralRules$Rule;->access$300(Landroid/icu/text/PluralRules$Rule;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
 HSPLandroid/icu/text/PluralRules$Rule;->appliesTo(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
 HSPLandroid/icu/text/PluralRules$Rule;->getKeyword()Ljava/lang/String;
+HSPLandroid/icu/text/PluralRules$RuleList;-><init>()V
+HSPLandroid/icu/text/PluralRules$RuleList;-><init>(Landroid/icu/text/PluralRules$1;)V
+HSPLandroid/icu/text/PluralRules$RuleList;->access$276(Landroid/icu/text/PluralRules$RuleList;I)Z
 HSPLandroid/icu/text/PluralRules$RuleList;->addRule(Landroid/icu/text/PluralRules$Rule;)Landroid/icu/text/PluralRules$RuleList;
 HSPLandroid/icu/text/PluralRules$RuleList;->finish()Landroid/icu/text/PluralRules$RuleList;
 HSPLandroid/icu/text/PluralRules$RuleList;->getKeywords()Ljava/util/Set;
 HSPLandroid/icu/text/PluralRules$RuleList;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
 HSPLandroid/icu/text/PluralRules$RuleList;->selectRule(Landroid/icu/text/PluralRules$IFixedDecimal;)Landroid/icu/text/PluralRules$Rule;
+HSPLandroid/icu/text/PluralRules$SampleType;-><clinit>()V
+HSPLandroid/icu/text/PluralRules$SampleType;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/PluralRules$SampleType;->values()[Landroid/icu/text/PluralRules$SampleType;
+HSPLandroid/icu/text/PluralRules$SimpleTokenizer;-><clinit>()V
 HSPLandroid/icu/text/PluralRules$SimpleTokenizer;->split(Ljava/lang/String;)[Ljava/lang/String;
+HSPLandroid/icu/text/PluralRules;-><clinit>()V
 HSPLandroid/icu/text/PluralRules;-><init>(Landroid/icu/text/PluralRules$RuleList;)V
+HSPLandroid/icu/text/PluralRules;->forLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/PluralRules;
+HSPLandroid/icu/text/PluralRules;->forLocale(Ljava/util/Locale;)Landroid/icu/text/PluralRules;
+HSPLandroid/icu/text/PluralRules;->isValidKeyword(Ljava/lang/String;)Z
+HSPLandroid/icu/text/PluralRules;->nextToken([Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+HSPLandroid/icu/text/PluralRules;->parseConstraint(Ljava/lang/String;)Landroid/icu/text/PluralRules$Constraint;
 HSPLandroid/icu/text/PluralRules;->parseDescription(Ljava/lang/String;)Landroid/icu/text/PluralRules;
+HSPLandroid/icu/text/PluralRules;->parseRule(Ljava/lang/String;)Landroid/icu/text/PluralRules$Rule;
+HSPLandroid/icu/text/PluralRules;->parseRuleChain(Ljava/lang/String;)Landroid/icu/text/PluralRules$RuleList;
 HSPLandroid/icu/text/PluralRules;->select(D)Ljava/lang/String;
 HSPLandroid/icu/text/ReplaceableString;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/text/ReplaceableString;->charAt(I)C
@@ -7435,13 +7659,16 @@
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$800(Landroid/icu/text/RuleBasedBreakIterator;)I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->clone()Ljava/lang/Object;
 HSPLandroid/icu/text/RuleBasedBreakIterator;->first()I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/nio/ByteBuffer;)Landroid/icu/text/RuleBasedBreakIterator;
 HSPLandroid/icu/text/RuleBasedBreakIterator;->handleNext()I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->next()I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->setText(Ljava/text/CharacterIterator;)V
 HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;)V
 HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;Landroid/icu/text/RuleBasedCollator$1;)V
 HSPLandroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;-><init>()V
 HSPLandroid/icu/text/RuleBasedCollator$NFDIterator;-><init>()V
 HSPLandroid/icu/text/RuleBasedCollator$UTF16NFDIterator;-><init>()V
+HSPLandroid/icu/text/RuleBasedCollator;-><clinit>()V
 HSPLandroid/icu/text/RuleBasedCollator;-><init>(Landroid/icu/impl/coll/CollationTailoring;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/RuleBasedCollator;->checkNotFrozen()V
 HSPLandroid/icu/text/RuleBasedCollator;->clone()Ljava/lang/Object;
@@ -7453,15 +7680,19 @@
 HSPLandroid/icu/text/RuleBasedCollator;->getStrength()I
 HSPLandroid/icu/text/RuleBasedCollator;->isFrozen()Z
 HSPLandroid/icu/text/RuleBasedCollator;->releaseCollationBuffer(Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
+HSPLandroid/icu/text/RuleBasedCollator;->setDecomposition(I)V
 HSPLandroid/icu/text/RuleBasedCollator;->setFastLatinOptions(Landroid/icu/impl/coll/CollationSettings;)V
 HSPLandroid/icu/text/RuleBasedCollator;->setStrength(I)V
 HSPLandroid/icu/text/SimpleDateFormat$PatternItem;-><init>(CI)V
+HSPLandroid/icu/text/SimpleDateFormat;-><clinit>()V
 HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/text/NumberFormat;Landroid/icu/util/ULocale;ZLjava/lang/String;)V
 HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/SimpleDateFormat;->access$000(CI)Z
 HSPLandroid/icu/text/SimpleDateFormat;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V
 HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/text/DisplayContext;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
 HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
+HSPLandroid/icu/text/SimpleDateFormat;->getIndexFromChar(C)I
+HSPLandroid/icu/text/SimpleDateFormat;->getInstance(Landroid/icu/util/Calendar$FormatConfiguration;)Landroid/icu/text/SimpleDateFormat;
 HSPLandroid/icu/text/SimpleDateFormat;->getLocale()Landroid/icu/util/ULocale;
 HSPLandroid/icu/text/SimpleDateFormat;->getNumberFormat(C)Landroid/icu/text/NumberFormat;
 HSPLandroid/icu/text/SimpleDateFormat;->getPatternItems()[Ljava/lang/Object;
@@ -7470,6 +7701,7 @@
 HSPLandroid/icu/text/SimpleDateFormat;->isNumeric(CI)Z
 HSPLandroid/icu/text/SimpleDateFormat;->isSyntaxChar(C)Z
 HSPLandroid/icu/text/SimpleDateFormat;->parsePattern()V
+HSPLandroid/icu/text/SimpleDateFormat;->safeAppendWithMonthPattern([Ljava/lang/String;ILjava/lang/StringBuffer;Ljava/lang/String;)V
 HSPLandroid/icu/text/SimpleDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)V
 HSPLandroid/icu/text/SimpleDateFormat;->toPattern()Ljava/lang/String;
 HSPLandroid/icu/text/SimpleDateFormat;->zeroPaddingNumber(Landroid/icu/text/NumberFormat;Ljava/lang/StringBuffer;III)V
@@ -7478,11 +7710,18 @@
 HSPLandroid/icu/text/StringPrep;->getInstance(I)Landroid/icu/text/StringPrep;
 HSPLandroid/icu/text/StringPrep;->getVersionInfo(I)Landroid/icu/util/VersionInfo;
 HSPLandroid/icu/text/StringPrep;->getVersionInfo([B)Landroid/icu/util/VersionInfo;
+HSPLandroid/icu/text/TimeZoneNames$Cache;-><init>()V
+HSPLandroid/icu/text/TimeZoneNames$Cache;-><init>(Landroid/icu/text/TimeZoneNames$1;)V
 HSPLandroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
+HSPLandroid/icu/text/TimeZoneNames$Factory;-><init>()V
+HSPLandroid/icu/text/TimeZoneNames$NameType;->values()[Landroid/icu/text/TimeZoneNames$NameType;
+HSPLandroid/icu/text/TimeZoneNames;-><clinit>()V
 HSPLandroid/icu/text/TimeZoneNames;-><init>()V
 HSPLandroid/icu/text/TimeZoneNames;->access$100()Landroid/icu/text/TimeZoneNames$Factory;
 HSPLandroid/icu/text/TimeZoneNames;->getDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;J)Ljava/lang/String;
+HSPLandroid/icu/text/TimeZoneNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
+HSPLandroid/icu/text/TimeZoneNames;->getInstance(Ljava/util/Locale;)Landroid/icu/text/TimeZoneNames;
 HSPLandroid/icu/text/UCharacterIterator;-><init>()V
 HSPLandroid/icu/text/UCharacterIterator;->getInstance(Ljava/lang/String;)Landroid/icu/text/UCharacterIterator;
 HSPLandroid/icu/text/UCharacterIterator;->getText()Ljava/lang/String;
@@ -7499,6 +7738,7 @@
 HSPLandroid/icu/text/UTF16;->getCharCount(I)I
 HSPLandroid/icu/text/UTF16;->isLeadSurrogate(C)Z
 HSPLandroid/icu/text/UTF16;->isSurrogate(C)Z
+HSPLandroid/icu/text/UTF16;->isTrailSurrogate(C)Z
 HSPLandroid/icu/text/UnicodeFilter;-><init>()V
 HSPLandroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;-><init>(I)V
 HSPLandroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;->contains(I)Z
@@ -7510,6 +7750,7 @@
 HSPLandroid/icu/text/UnicodeSet;-><init>(II)V
 HSPLandroid/icu/text/UnicodeSet;-><init>(Landroid/icu/text/UnicodeSet;)V
 HSPLandroid/icu/text/UnicodeSet;-><init>(Ljava/lang/String;)V
+HSPLandroid/icu/text/UnicodeSet;-><init>([I)V
 HSPLandroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IZ)Ljava/lang/Appendable;
 HSPLandroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;Ljava/lang/String;Z)Ljava/lang/Appendable;
 HSPLandroid/icu/text/UnicodeSet;->add(I)Landroid/icu/text/UnicodeSet;
@@ -7539,6 +7780,7 @@
 HSPLandroid/icu/text/UnicodeSet;->contains(I)Z
 HSPLandroid/icu/text/UnicodeSet;->contains(Ljava/lang/CharSequence;)Z
 HSPLandroid/icu/text/UnicodeSet;->containsAll(Ljava/lang/String;)Z
+HSPLandroid/icu/text/UnicodeSet;->containsNone(II)Z
 HSPLandroid/icu/text/UnicodeSet;->ensureBufferCapacity(I)V
 HSPLandroid/icu/text/UnicodeSet;->ensureCapacity(I)V
 HSPLandroid/icu/text/UnicodeSet;->findCodePoint(I)I
@@ -7549,6 +7791,7 @@
 HSPLandroid/icu/text/UnicodeSet;->getSingleCP(Ljava/lang/CharSequence;)I
 HSPLandroid/icu/text/UnicodeSet;->hasStrings()Z
 HSPLandroid/icu/text/UnicodeSet;->isFrozen()Z
+HSPLandroid/icu/text/UnicodeSet;->max(II)I
 HSPLandroid/icu/text/UnicodeSet;->nextCapacity(I)I
 HSPLandroid/icu/text/UnicodeSet;->range(II)[I
 HSPLandroid/icu/text/UnicodeSet;->resemblesPropertyPattern(Landroid/icu/impl/RuleCharacterIterator;I)Z
@@ -7582,6 +7825,7 @@
 HSPLandroid/icu/util/BytesTrie;->skipValue(II)I
 HSPLandroid/icu/util/BytesTrie;->skipValue([BI)I
 HSPLandroid/icu/util/BytesTrie;->stop()V
+HSPLandroid/icu/util/Calendar$1;-><clinit>()V
 HSPLandroid/icu/util/Calendar$FormatConfiguration;-><init>()V
 HSPLandroid/icu/util/Calendar$FormatConfiguration;-><init>(Landroid/icu/util/Calendar$1;)V
 HSPLandroid/icu/util/Calendar$FormatConfiguration;->access$102(Landroid/icu/util/Calendar$FormatConfiguration;Ljava/lang/String;)Ljava/lang/String;
@@ -7596,13 +7840,22 @@
 HSPLandroid/icu/util/Calendar$FormatConfiguration;->getPatternString()Ljava/lang/String;
 HSPLandroid/icu/util/Calendar$PatternData;-><init>([Ljava/lang/String;[Ljava/lang/String;)V
 HSPLandroid/icu/util/Calendar$PatternData;->access$600(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$PatternData;
+HSPLandroid/icu/util/Calendar$PatternData;->access$700(Landroid/icu/util/Calendar$PatternData;I)Ljava/lang/String;
 HSPLandroid/icu/util/Calendar$PatternData;->access$800(Landroid/icu/util/Calendar$PatternData;)[Ljava/lang/String;
 HSPLandroid/icu/util/Calendar$PatternData;->access$900(Landroid/icu/util/Calendar$PatternData;)[Ljava/lang/String;
+HSPLandroid/icu/util/Calendar$PatternData;->getDateTimePattern(I)Ljava/lang/String;
 HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$PatternData;
 HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
+HSPLandroid/icu/util/Calendar$WeekData;-><init>(IIIIII)V
+HSPLandroid/icu/util/Calendar$WeekDataCache;-><init>()V
+HSPLandroid/icu/util/Calendar$WeekDataCache;-><init>(Landroid/icu/util/Calendar$1;)V
+HSPLandroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
+HSPLandroid/icu/util/Calendar;-><clinit>()V
 HSPLandroid/icu/util/Calendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/util/Calendar;->access$1100()Landroid/icu/impl/ICUCache;
 HSPLandroid/icu/util/Calendar;->access$1200(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
+HSPLandroid/icu/util/Calendar;->access$1400(Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
 HSPLandroid/icu/util/Calendar;->clone()Ljava/lang/Object;
 HSPLandroid/icu/util/Calendar;->complete()V
 HSPLandroid/icu/util/Calendar;->computeFields()V
@@ -7617,6 +7870,8 @@
 HSPLandroid/icu/util/Calendar;->get(I)I
 HSPLandroid/icu/util/Calendar;->getCalendarTypeForLocale(Landroid/icu/util/ULocale;)Landroid/icu/impl/CalType;
 HSPLandroid/icu/util/Calendar;->getDateTimeFormat(IILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
+HSPLandroid/icu/util/Calendar;->getDateTimePattern(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;I)Ljava/lang/String;
+HSPLandroid/icu/util/Calendar;->getFieldCount()I
 HSPLandroid/icu/util/Calendar;->getFirstDayOfWeek()I
 HSPLandroid/icu/util/Calendar;->getGregorianDayOfMonth()I
 HSPLandroid/icu/util/Calendar;->getGregorianDayOfYear()I
@@ -7633,6 +7888,7 @@
 HSPLandroid/icu/util/Calendar;->getSkippedWallTimeOption()I
 HSPLandroid/icu/util/Calendar;->getTimeInMillis()J
 HSPLandroid/icu/util/Calendar;->getTimeZone()Landroid/icu/util/TimeZone;
+HSPLandroid/icu/util/Calendar;->getWeekDataForRegionInternal(Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
 HSPLandroid/icu/util/Calendar;->handleCreateFields()[I
 HSPLandroid/icu/util/Calendar;->handleGetDateFormat(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
 HSPLandroid/icu/util/Calendar;->initInternal()V
@@ -7650,8 +7906,18 @@
 HSPLandroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V
 HSPLandroid/icu/util/Calendar;->weekNumber(II)I
 HSPLandroid/icu/util/Calendar;->weekNumber(III)I
+HSPLandroid/icu/util/CodePointMap$Range;-><init>()V
+HSPLandroid/icu/util/CodePointMap$Range;->access$000(Landroid/icu/util/CodePointMap$Range;)I
+HSPLandroid/icu/util/CodePointMap$Range;->access$100(Landroid/icu/util/CodePointMap$Range;)I
+HSPLandroid/icu/util/CodePointMap$Range;->access$202(Landroid/icu/util/CodePointMap$Range;I)I
+HSPLandroid/icu/util/CodePointMap$Range;->getEnd()I
+HSPLandroid/icu/util/CodePointMap$Range;->getValue()I
+HSPLandroid/icu/util/CodePointMap$Range;->set(III)V
+HSPLandroid/icu/util/CodePointMap$RangeOption;-><clinit>()V
+HSPLandroid/icu/util/CodePointMap$RangeOption;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/util/CodePointMap;-><clinit>()V
 HSPLandroid/icu/util/CodePointMap;-><init>()V
+HSPLandroid/icu/util/CodePointMap;->getRange(ILandroid/icu/util/CodePointMap$RangeOption;ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z
 HSPLandroid/icu/util/CodePointTrie$1;-><clinit>()V
 HSPLandroid/icu/util/CodePointTrie$Data16;-><init>([C)V
 HSPLandroid/icu/util/CodePointTrie$Data16;->getDataLength()I
@@ -7662,8 +7928,11 @@
 HSPLandroid/icu/util/CodePointTrie$Fast16;-><init>([C[CIII)V
 HSPLandroid/icu/util/CodePointTrie$Fast16;->bmpGet(I)I
 HSPLandroid/icu/util/CodePointTrie$Fast16;->fromBinary(Ljava/nio/ByteBuffer;)Landroid/icu/util/CodePointTrie$Fast16;
+HSPLandroid/icu/util/CodePointTrie$Fast16;->get(I)I
 HSPLandroid/icu/util/CodePointTrie$Fast;-><init>([CLandroid/icu/util/CodePointTrie$Data;III)V
 HSPLandroid/icu/util/CodePointTrie$Fast;-><init>([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie$1;)V
+HSPLandroid/icu/util/CodePointTrie$Fast;->cpIndex(I)I
+HSPLandroid/icu/util/CodePointTrie$Fast;->getType()Landroid/icu/util/CodePointTrie$Type;
 HSPLandroid/icu/util/CodePointTrie$Type;-><clinit>()V
 HSPLandroid/icu/util/CodePointTrie$Type;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/util/CodePointTrie$ValueWidth;-><clinit>()V
@@ -7674,6 +7943,8 @@
 HSPLandroid/icu/util/CodePointTrie;-><init>([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie$1;)V
 HSPLandroid/icu/util/CodePointTrie;->fastIndex(I)I
 HSPLandroid/icu/util/CodePointTrie;->fromBinary(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;Ljava/nio/ByteBuffer;)Landroid/icu/util/CodePointTrie;
+HSPLandroid/icu/util/CodePointTrie;->getRange(ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z
+HSPLandroid/icu/util/CodePointTrie;->maybeFilterValue(IIILandroid/icu/util/CodePointMap$ValueFilter;)I
 HSPLandroid/icu/util/Currency;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency;->getCurrencyCode()Ljava/lang/String;
@@ -7684,6 +7955,7 @@
 HSPLandroid/icu/util/Currency;->getSymbol(Landroid/icu/util/ULocale;)Ljava/lang/String;
 HSPLandroid/icu/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;
 HSPLandroid/icu/util/Currency;->isAlpha3Code(Ljava/lang/String;)Z
+HSPLandroid/icu/util/DateTimeRule;-><clinit>()V
 HSPLandroid/icu/util/DateTimeRule;-><init>(IIIZII)V
 HSPLandroid/icu/util/DateTimeRule;->getDateRuleType()I
 HSPLandroid/icu/util/DateTimeRule;->getRuleDayOfMonth()I
@@ -7691,6 +7963,8 @@
 HSPLandroid/icu/util/DateTimeRule;->getRuleMillisInDay()I
 HSPLandroid/icu/util/DateTimeRule;->getRuleMonth()I
 HSPLandroid/icu/util/DateTimeRule;->getTimeRuleType()I
+HSPLandroid/icu/util/GregorianCalendar;-><clinit>()V
+HSPLandroid/icu/util/GregorianCalendar;-><init>()V
 HSPLandroid/icu/util/GregorianCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/util/GregorianCalendar;->getType()Ljava/lang/String;
 HSPLandroid/icu/util/GregorianCalendar;->handleComputeFields(I)V
@@ -7709,16 +7983,12 @@
 HSPLandroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIIIII)V
 HSPLandroid/icu/util/SimpleTimeZone;->clone()Ljava/lang/Object;
 HSPLandroid/icu/util/SimpleTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I
 HSPLandroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V
 HSPLandroid/icu/util/SimpleTimeZone;->decodeEndRule()V
 HSPLandroid/icu/util/SimpleTimeZone;->decodeRules()V
 HSPLandroid/icu/util/SimpleTimeZone;->decodeStartRule()V
 HSPLandroid/icu/util/SimpleTimeZone;->getDSTSavings()I
 HSPLandroid/icu/util/SimpleTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIII)I
-HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I
-HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I
 HSPLandroid/icu/util/SimpleTimeZone;->getRawOffset()I
 HSPLandroid/icu/util/SimpleTimeZone;->getSTZInfo()Landroid/icu/util/STZInfo;
 HSPLandroid/icu/util/SimpleTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
@@ -7737,7 +8007,6 @@
 HSPLandroid/icu/util/TimeZone;->getFrozenICUTimeZone(Ljava/lang/String;Z)Landroid/icu/util/BasicTimeZone;
 HSPLandroid/icu/util/TimeZone;->getFrozenTimeZone(Ljava/lang/String;)Landroid/icu/util/TimeZone;
 HSPLandroid/icu/util/TimeZone;->getID()Ljava/lang/String;
-HSPLandroid/icu/util/TimeZone;->getOffset(JZ[I)V
 HSPLandroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone;
 HSPLandroid/icu/util/TimeZone;->hashCode()I
 HSPLandroid/icu/util/TimeZone;->setICUDefault(Landroid/icu/util/TimeZone;)V
@@ -7754,6 +8023,8 @@
 HSPLandroid/icu/util/ULocale$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale$2;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/util/ULocale$2;->createInstance(Ljava/util/Locale;Ljava/lang/Void;)Landroid/icu/util/ULocale;
+HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->getDefault(Landroid/icu/util/ULocale$Category;)Ljava/util/Locale;
+HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->hasLocaleCategories()Z
 HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->toULocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
@@ -7761,6 +8032,7 @@
 HSPLandroid/icu/util/ULocale;->addLikelySubtags(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/ULocale;->appendTag(Ljava/lang/String;Ljava/lang/StringBuilder;)V
 HSPLandroid/icu/util/ULocale;->base()Landroid/icu/impl/locale/BaseLocale;
+HSPLandroid/icu/util/ULocale;->canonicalize(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->createCanonical(Ljava/lang/String;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/ULocale;->createLikelySubtagsString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -7771,6 +8043,7 @@
 HSPLandroid/icu/util/ULocale;->getBaseName(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->getCountry()Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->getDefault()Landroid/icu/util/ULocale;
+HSPLandroid/icu/util/ULocale;->getDefault(Landroid/icu/util/ULocale$Category;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/ULocale;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->getKeywordValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->getKeywords()Ljava/util/Iterator;
@@ -7817,6 +8090,7 @@
 HSPLandroid/location/ILocationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/location/ILocationManager$Stub$Proxy;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
 HSPLandroid/location/ILocationManager$Stub$Proxy;->isLocationEnabledForUser(I)Z
+HSPLandroid/location/ILocationManager$Stub$Proxy;->isProviderEnabledForUser(Ljava/lang/String;I)Z
 HSPLandroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
 HSPLandroid/location/Location$2;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Location;
 HSPLandroid/location/Location$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -7860,6 +8134,7 @@
 HSPLandroid/location/LocationManager$GnssStatusListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
 HSPLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;)V
 HSPLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;Landroid/location/LocationManager$1;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->locationCallbackFinished()V
 HSPLandroid/location/LocationManager$LocationListenerTransport;->register(Ljava/util/concurrent/Executor;)V
 HSPLandroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
 HSPLandroid/location/LocationManager;->access$600(Landroid/location/LocationManager;)Landroid/location/ILocationManager;
@@ -7868,7 +8143,6 @@
 HSPLandroid/location/LocationManager;->isLocationEnabledForUser(Landroid/os/UserHandle;)Z
 HSPLandroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
 HSPLandroid/location/LocationManager;->isProviderEnabledForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
-HSPLandroid/location/LocationManager;->removeUpdates(Landroid/location/LocationListener;)V
 HSPLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/LocationListener;Landroid/os/Looper;)V
 HSPLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Ljava/util/concurrent/Executor;Landroid/location/LocationListener;)V
 HSPLandroid/location/LocationRequest;-><init>()V
@@ -7934,6 +8208,8 @@
 HSPLandroid/media/AudioFormat;-><init>(IIIII)V
 HSPLandroid/media/AudioFormat;->getBytesPerSample(I)I
 HSPLandroid/media/AudioFormat;->getChannelMask()I
+HSPLandroid/media/AudioFormat;->getEncoding()I
+HSPLandroid/media/AudioFormat;->getSampleRate()I
 HSPLandroid/media/AudioHandle;-><init>(I)V
 HSPLandroid/media/AudioHandle;->equals(Ljava/lang/Object;)Z
 HSPLandroid/media/AudioHandle;->id()I
@@ -7957,16 +8233,14 @@
 HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;)V
 HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;->getHandler()Landroid/os/Handler;
 HSPLandroid/media/AudioManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/media/AudioManager;->access$1000(Landroid/media/AudioManager;)Landroid/util/ArrayMap;
-HSPLandroid/media/AudioManager;->access$1100(Landroid/media/AudioManager;Landroid/os/Handler;)V
 HSPLandroid/media/AudioManager;->broadcastDeviceListChange_sync(Landroid/os/Handler;)V
 HSPLandroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 HSPLandroid/media/AudioManager;->getContext()Landroid/content/Context;
-HSPLandroid/media/AudioManager;->getRingerModeInternal()I
 HSPLandroid/media/AudioManager;->getService()Landroid/media/IAudioService;
 HSPLandroid/media/AudioManager;->getStreamMaxVolume(I)I
 HSPLandroid/media/AudioManager;->getStreamVolume(I)I
 HSPLandroid/media/AudioManager;->hasPlaybackCallback_sync(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
+HSPLandroid/media/AudioManager;->infoListFromPortList(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
 HSPLandroid/media/AudioManager;->isInputDevice(I)Z
 HSPLandroid/media/AudioManager;->isVolumeFixed()Z
 HSPLandroid/media/AudioManager;->isWiredHeadsetOn()Z
@@ -7978,7 +8252,8 @@
 HSPLandroid/media/AudioManager;->registerAudioPlaybackCallback(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
 HSPLandroid/media/AudioManager;->registerAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
 HSPLandroid/media/AudioManager;->setContext(Landroid/content/Context;)V
-HSPLandroid/media/AudioManager;->setParameters(Ljava/lang/String;)V
+HSPLandroid/media/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
+HSPLandroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
 HSPLandroid/media/AudioMixPort;-><init>(Landroid/media/AudioHandle;IILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V
 HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioMixPortConfig;
 HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;
@@ -8030,7 +8305,6 @@
 HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/media/IPlayer$Stub;-><init>()V
 HSPLandroid/media/IPlayer$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer;
 HSPLandroid/media/IRecordingConfigDispatcher$Stub;-><init>()V
 HSPLandroid/media/IRemoteVolumeObserver$Stub;-><init>()V
 HSPLandroid/media/MediaCodecInfo$AudioCapabilities;-><init>()V
@@ -8096,6 +8370,9 @@
 HSPLandroid/media/MediaCodecInfo;->makeRegular()Landroid/media/MediaCodecInfo;
 HSPLandroid/media/MediaCodecList;-><init>(I)V
 HSPLandroid/media/MediaCodecList;->getCodecInfos()[Landroid/media/MediaCodecInfo;
+HSPLandroid/media/MediaCodecList;->getGlobalSettings()Ljava/util/Map;
+HSPLandroid/media/MediaCodecList;->getNewCodecInfoAt(I)Landroid/media/MediaCodecInfo;
+HSPLandroid/media/MediaCodecList;->initCodecList()V
 HSPLandroid/media/MediaFormat;-><init>()V
 HSPLandroid/media/MediaFormat;-><init>(Ljava/util/Map;)V
 HSPLandroid/media/MediaFormat;->containsKey(Ljava/lang/String;)Z
@@ -8105,6 +8382,10 @@
 HSPLandroid/media/MediaFormat;->setString(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaMetadata;
 HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/MediaPlayer$TimeProvider;-><init>(Landroid/media/MediaPlayer;)V
+HSPLandroid/media/MediaPlayer$TimeProvider;->getCurrentTimeUs(ZZ)J
+HSPLandroid/media/MediaPlayer;-><init>()V
+HSPLandroid/media/MediaPlayer;->stayAwake(Z)V
 HSPLandroid/media/MediaRouter$Callback;-><init>()V
 HSPLandroid/media/MediaRouter$CallbackInfo;-><init>(Landroid/media/MediaRouter$Callback;IILandroid/media/MediaRouter;)V
 HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(I)Z
@@ -8140,7 +8421,6 @@
 HSPLandroid/media/MediaRouter$RouteInfo;->resolveStatusCode()Z
 HSPLandroid/media/MediaRouter$RouteInfo;->toString()Ljava/lang/String;
 HSPLandroid/media/MediaRouter$RouteInfo;->updatePresentationDisplay()Z
-HSPLandroid/media/MediaRouter$SimpleCallback;-><init>()V
 HSPLandroid/media/MediaRouter$Static$1;-><init>(Landroid/media/MediaRouter$Static;)V
 HSPLandroid/media/MediaRouter$Static$Client;-><init>(Landroid/media/MediaRouter$Static;)V
 HSPLandroid/media/MediaRouter$Static;-><init>(Landroid/content/Context;)V
@@ -8167,6 +8447,7 @@
 HSPLandroid/media/MediaRouter;->createRouteCategory(Ljava/lang/CharSequence;Z)Landroid/media/MediaRouter$RouteCategory;
 HSPLandroid/media/MediaRouter;->dispatchRouteAdded(Landroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I
 HSPLandroid/media/MediaRouter;->getDefaultRoute()Landroid/media/MediaRouter$RouteInfo;
 HSPLandroid/media/MediaRouter;->getRouteAt(I)Landroid/media/MediaRouter$RouteInfo;
@@ -8183,14 +8464,15 @@
 HSPLandroid/media/PlayerBase;-><init>(Landroid/media/AudioAttributes;I)V
 HSPLandroid/media/PlayerBase;->baseRegisterPlayer()V
 HSPLandroid/media/PlayerBase;->baseRelease()V
+HSPLandroid/media/PlayerBase;->baseStart()V
 HSPLandroid/media/PlayerBase;->getService()Landroid/media/IAudioService;
 HSPLandroid/media/PlayerBase;->isRestricted_sync()Z
+HSPLandroid/media/PlayerBase;->updateState(I)V
 HSPLandroid/media/SoundPool$Builder;-><init>()V
 HSPLandroid/media/SoundPool$Builder;->build()Landroid/media/SoundPool;
 HSPLandroid/media/SoundPool$Builder;->setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/SoundPool$Builder;
 HSPLandroid/media/SoundPool$Builder;->setMaxStreams(I)Landroid/media/SoundPool$Builder;
 HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;)V
-HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;Landroid/media/SoundPool$1;)V
 HSPLandroid/media/Utils$1;-><init>()V
 HSPLandroid/media/Utils$1;->compare(Landroid/util/Range;Landroid/util/Range;)I
 HSPLandroid/media/Utils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
@@ -8224,9 +8506,9 @@
 HSPLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;-><init>()V
 HSPLandroid/media/session/ISessionCallback$Stub;-><init>()V
 HSPLandroid/media/session/ISessionCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/media/session/ISessionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionController;
 HSPLandroid/media/session/ISessionControllerCallback$Stub;-><init>()V
-HSPLandroid/media/session/ISessionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
 HSPLandroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V
 HSPLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;)V
@@ -8252,6 +8534,12 @@
 HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;Landroid/media/session/MediaSessionManager$1;)V
 HSPLandroid/media/session/MediaSessionManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/media/session/MediaSessionManager;->createSession(Landroid/media/session/MediaSession$CallbackStub;Ljava/lang/String;Landroid/os/Bundle;)Landroid/media/session/ISession;
+HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState;
+HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/session/PlaybackState$Builder;->build()Landroid/media/session/PlaybackState;
+HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V
+HSPLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/session/PlaybackState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/metrics/LogMaker;-><init>(I)V
 HSPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker;
 HSPLandroid/metrics/LogMaker;->getEntries()Landroid/util/SparseArray;
@@ -8275,13 +8563,13 @@
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onBlockedStatusChanged(Landroid/net/Network;Z)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V
+HSPLandroid/net/ConnectivityManager$NetworkCallback;->onLosing(Landroid/net/Network;I)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onNetworkResumed(Landroid/net/Network;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onNetworkSuspended(Landroid/net/Network;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onPreCheck(Landroid/net/Network;)V
 HSPLandroid/net/ConnectivityManager;-><init>(Landroid/content/Context;Landroid/net/IConnectivityManager;)V
 HSPLandroid/net/ConnectivityManager;->access$800()Ljava/util/HashMap;
 HSPLandroid/net/ConnectivityManager;->checkCallbackNotNull(Landroid/net/ConnectivityManager$NetworkCallback;)V
-HSPLandroid/net/ConnectivityManager;->from(Landroid/content/Context;)Landroid/net/ConnectivityManager;
 HSPLandroid/net/ConnectivityManager;->getActiveNetwork()Landroid/net/Network;
 HSPLandroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
 HSPLandroid/net/ConnectivityManager;->getAllNetworks()[Landroid/net/Network;
@@ -8330,16 +8618,15 @@
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->isActiveNetworkMetered()Z
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/NetworkRequest;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->releaseNetworkRequest(Landroid/net/NetworkRequest;)V
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;ILjava/lang/String;)Landroid/net/NetworkRequest;
 HSPLandroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
 HSPLandroid/net/INetworkPolicyListener$Stub;-><init>()V
 HSPLandroid/net/INetworkPolicyListener$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackgroundByCaller()I
 HSPLandroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyManager;
-HSPLandroid/net/INetworkScoreCache$Stub;-><init>()V
-HSPLandroid/net/INetworkScoreCache$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService;
 HSPLandroid/net/INetworkStatsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;
@@ -8359,23 +8646,18 @@
 HSPLandroid/net/IpPrefix;->getAddress()Ljava/net/InetAddress;
 HSPLandroid/net/IpPrefix;->getPrefixLength()I
 HSPLandroid/net/IpPrefix;->toString()Ljava/lang/String;
-HSPLandroid/net/IpPrefix;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/LinkAddress$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/LinkAddress;
 HSPLandroid/net/LinkAddress$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/LinkAddress;-><init>(Ljava/lang/String;II)V
 HSPLandroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;III)V
 HSPLandroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;IIIJJ)V
 HSPLandroid/net/LinkAddress;->getAddress()Ljava/net/InetAddress;
 HSPLandroid/net/LinkAddress;->init(Ljava/net/InetAddress;III)V
 HSPLandroid/net/LinkAddress;->init(Ljava/net/InetAddress;IIIJJ)V
 HSPLandroid/net/LinkAddress;->isSameAddressAs(Landroid/net/LinkAddress;)Z
-HSPLandroid/net/LinkAddress;->scopeForUnicastAddress(Ljava/net/InetAddress;)I
 HSPLandroid/net/LinkAddress;->toString()Ljava/lang/String;
-HSPLandroid/net/LinkAddress;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/LinkProperties$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/LinkProperties;
 HSPLandroid/net/LinkProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/LinkProperties;-><init>()V
-HSPLandroid/net/LinkProperties;-><init>(Landroid/net/LinkProperties;)V
 HSPLandroid/net/LinkProperties;->access$000(Landroid/os/Parcel;)Ljava/net/InetAddress;
 HSPLandroid/net/LinkProperties;->addDnsServer(Ljava/net/InetAddress;)Z
 HSPLandroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z
@@ -8383,42 +8665,17 @@
 HSPLandroid/net/LinkProperties;->addRoute(Landroid/net/RouteInfo;)Z
 HSPLandroid/net/LinkProperties;->addStackedLink(Landroid/net/LinkProperties;)Z
 HSPLandroid/net/LinkProperties;->addValidatedPrivateDnsServer(Ljava/net/InetAddress;)Z
-HSPLandroid/net/LinkProperties;->equals(Ljava/lang/Object;)Z
 HSPLandroid/net/LinkProperties;->findLinkAddressIndex(Landroid/net/LinkAddress;)I
-HSPLandroid/net/LinkProperties;->getAddresses()Ljava/util/List;
-HSPLandroid/net/LinkProperties;->getDhcpServerAddress()Ljava/net/Inet4Address;
 HSPLandroid/net/LinkProperties;->getDnsServers()Ljava/util/List;
-HSPLandroid/net/LinkProperties;->getDomains()Ljava/lang/String;
-HSPLandroid/net/LinkProperties;->getHttpProxy()Landroid/net/ProxyInfo;
 HSPLandroid/net/LinkProperties;->getInterfaceName()Ljava/lang/String;
 HSPLandroid/net/LinkProperties;->getLinkAddresses()Ljava/util/List;
-HSPLandroid/net/LinkProperties;->getMtu()I
-HSPLandroid/net/LinkProperties;->getPcscfServers()Ljava/util/List;
 HSPLandroid/net/LinkProperties;->getPrivateDnsServerName()Ljava/lang/String;
 HSPLandroid/net/LinkProperties;->getRoutes()Ljava/util/List;
-HSPLandroid/net/LinkProperties;->getValidatedPrivateDnsServers()Ljava/util/List;
-HSPLandroid/net/LinkProperties;->hasGlobalIpv6Address()Z
-HSPLandroid/net/LinkProperties;->isIdenticalAddresses(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalDhcpServerAddress(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalDnses(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalHttpProxy(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalInterfaceName(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalMtu(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalNat64Prefix(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalPcscfs(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalPrivateDns(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalRoutes(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalStackedLinks(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalTcpBufferSizes(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalValidatedPrivateDnses(Landroid/net/LinkProperties;)Z
-HSPLandroid/net/LinkProperties;->isIdenticalWakeOnLan(Landroid/net/LinkProperties;)Z
 HSPLandroid/net/LinkProperties;->isPrivateDnsActive()Z
-HSPLandroid/net/LinkProperties;->isWakeOnLanSupported()Z
 HSPLandroid/net/LinkProperties;->readAddress(Landroid/os/Parcel;)Ljava/net/InetAddress;
 HSPLandroid/net/LinkProperties;->routeWithInterface(Landroid/net/RouteInfo;)Landroid/net/RouteInfo;
 HSPLandroid/net/LinkProperties;->setCaptivePortalApiUrl(Landroid/net/Uri;)V
 HSPLandroid/net/LinkProperties;->setCaptivePortalData(Landroid/net/CaptivePortalData;)V
-HSPLandroid/net/LinkProperties;->setDhcpServerAddress(Ljava/net/Inet4Address;)V
 HSPLandroid/net/LinkProperties;->setDomains(Ljava/lang/String;)V
 HSPLandroid/net/LinkProperties;->setInterfaceName(Ljava/lang/String;)V
 HSPLandroid/net/LinkProperties;->setMtu(I)V
@@ -8428,9 +8685,6 @@
 HSPLandroid/net/LinkProperties;->setUsePrivateDns(Z)V
 HSPLandroid/net/LinkProperties;->setWakeOnLanSupported(Z)V
 HSPLandroid/net/LinkProperties;->toString()Ljava/lang/String;
-HSPLandroid/net/LinkProperties;->writeAddress(Landroid/os/Parcel;Ljava/net/InetAddress;)V
-HSPLandroid/net/LinkProperties;->writeAddresses(Landroid/os/Parcel;Ljava/util/List;)V
-HSPLandroid/net/LinkProperties;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/LocalServerSocket;-><init>(Ljava/io/FileDescriptor;)V
 HSPLandroid/net/LocalServerSocket;->accept()Landroid/net/LocalSocket;
 HSPLandroid/net/LocalServerSocket;->close()V
@@ -8561,19 +8815,14 @@
 HSPLandroid/net/NetworkInfo;->getSubtypeName()Ljava/lang/String;
 HSPLandroid/net/NetworkInfo;->getType()I
 HSPLandroid/net/NetworkInfo;->getTypeName()Ljava/lang/String;
+HSPLandroid/net/NetworkInfo;->isAvailable()Z
 HSPLandroid/net/NetworkInfo;->isConnected()Z
 HSPLandroid/net/NetworkInfo;->isConnectedOrConnecting()Z
 HSPLandroid/net/NetworkInfo;->isRoaming()Z
 HSPLandroid/net/NetworkInfo;->setDetailedState(Landroid/net/NetworkInfo$DetailedState;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/net/NetworkInfo;->toString()Ljava/lang/String;
-HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkKey;
-HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/NetworkKey;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/net/NetworkKey;-><init>(Landroid/os/Parcel;Landroid/net/NetworkKey$1;)V
 HSPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/NetworkPolicyManager$Listener;-><init>()V
-HSPLandroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V
-HSPLandroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V
 HSPLandroid/net/NetworkPolicyManager;-><init>(Landroid/content/Context;Landroid/net/INetworkPolicyManager;)V
 HSPLandroid/net/NetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V
 HSPLandroid/net/NetworkRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkRequest;
@@ -8591,19 +8840,16 @@
 HSPLandroid/net/NetworkRequest;->hashCode()I
 HSPLandroid/net/NetworkRequest;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/NetworkScoreManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/net/NetworkScoreManager;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
 HSPLandroid/net/NetworkSpecifier;-><init>()V
 HSPLandroid/net/NetworkStats$Entry;-><init>()V
 HSPLandroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIIIIJJJJJ)V
 HSPLandroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIJJJJJ)V
 HSPLandroid/net/NetworkStats;-><init>(JI)V
-HSPLandroid/net/NetworkTemplate$1;-><init>()V
-HSPLandroid/net/NetworkTemplate;-><clinit>()V
 HSPLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;III)V
-HSPLandroid/net/NetworkTemplate;->buildTemplateWifiWildcard()Landroid/net/NetworkTemplate;
 HSPLandroid/net/NetworkTemplate;->isKnownMatchRule(I)Z
+HSPLandroid/net/NetworkTemplate;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/NetworkUtils;->maskRawAddress([BI)V
 HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Landroid/net/ProxyInfo;)V
 HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
@@ -8619,15 +8865,14 @@
 HSPLandroid/net/RouteInfo;->isDefaultRoute()Z
 HSPLandroid/net/RouteInfo;->isHost()Z
 HSPLandroid/net/RouteInfo;->toString()Ljava/lang/String;
-HSPLandroid/net/RouteInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/StringNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/StringNetworkSpecifier;
 HSPLandroid/net/StringNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/StringNetworkSpecifier;-><init>(Ljava/lang/String;)V
 HSPLandroid/net/TelephonyNetworkSpecifier$1;-><init>()V
 HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/TelephonyNetworkSpecifier;
 HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/TelephonyNetworkSpecifier;-><clinit>()V
 HSPLandroid/net/TelephonyNetworkSpecifier;-><init>(I)V
+HSPLandroid/net/TelephonyNetworkSpecifier;->toString()Ljava/lang/String;
 HSPLandroid/net/TrafficStats;->clearThreadStatsTag()V
 HSPLandroid/net/TrafficStats;->getStatsService()Landroid/net/INetworkStatsService;
 HSPLandroid/net/TrafficStats;->getUidRxBytes(I)J
@@ -8667,6 +8912,7 @@
 HSPLandroid/net/Uri$Builder;->clearQuery()Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->encodedAuthority(Ljava/lang/String;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder;
+HSPLandroid/net/Uri$Builder;->encodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->fragment(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->fragment(Ljava/lang/String;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->hasSchemeOrAuthority()Z
@@ -8784,10 +9030,6 @@
 HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V
 HSPLandroid/net/UriCodec;->getNextCharacter(Ljava/lang/String;IILjava/lang/String;)C
 HSPLandroid/net/UriCodec;->hexCharToValue(C)I
-HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/WifiKey;
-HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/WifiKey;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/net/WifiKey;-><init>(Landroid/os/Parcel;Landroid/net/WifiKey$1;)V
 HSPLandroid/net/WifiKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/http/X509TrustManagerExtensions;-><init>(Ljavax/net/ssl/X509TrustManager;)V
@@ -8800,13 +9042,15 @@
 HSPLandroid/nfc/NfcAdapter;-><init>(Landroid/content/Context;)V
 HSPLandroid/nfc/NfcAdapter;->getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
 HSPLandroid/nfc/NfcAdapter;->getNfcAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
-HSPLandroid/nfc/NfcAdapter;->getServiceInterface()Landroid/nfc/INfcAdapter;
 HSPLandroid/nfc/NfcAdapter;->hasBeamFeature()Z
 HSPLandroid/nfc/NfcAdapter;->hasNfcFeature()Z
 HSPLandroid/nfc/NfcAdapter;->hasNfcHceFeature()Z
 HSPLandroid/nfc/NfcManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/opengl/EGLConfig;-><init>(J)V
 HSPLandroid/opengl/EGLContext;-><init>(J)V
+HSPLandroid/opengl/EGLDisplay;-><init>(J)V
 HSPLandroid/opengl/EGLObjectHandle;-><init>(J)V
+HSPLandroid/opengl/EGLObjectHandle;->getNativeHandle()J
 HSPLandroid/os/-$$Lambda$Build$WrC6eL7oW2Zm9UDTcXXKr0DnOMw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/os/-$$Lambda$StrictMode$1yH8AK0bTwVwZOb9x8HoiSBdzr0;->log(Landroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I;-><init>(Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/view/IWindowManager;Ljava/util/ArrayList;)V
@@ -8867,7 +9111,6 @@
 HSPLandroid/os/BaseBundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;)J
 HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;J)J
-HSPLandroid/os/BaseBundle;->getMap()Landroid/util/ArrayMap;
 HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
 HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -8933,8 +9176,6 @@
 HSPLandroid/os/BinderProxy;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
 HSPLandroid/os/BinderProxy;->sendDeathNotice(Landroid/os/IBinder$DeathRecipient;Landroid/os/IBinder;)V
 HSPLandroid/os/BinderProxy;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/os/Build;->getRadioVersion()Ljava/lang/String;
-HSPLandroid/os/Build;->lambda$joinListOrElse$0(Ljava/lang/Object;)Ljava/lang/String;
 HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Bundle;
 HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/Bundle;-><init>()V
@@ -8956,6 +9197,7 @@
 HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable;
 HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
+HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray;
 HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLandroid/os/Bundle;->maybePrefillHasFds()V
 HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V
@@ -9044,17 +9286,14 @@
 HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappedOutPss()I
 HSPLandroid/os/Debug$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/os/Debug;->countInstancesOfClass(Ljava/lang/Class;)J
-HSPLandroid/os/Debug;->getMethodTracingMode()I
-HSPLandroid/os/Debug;->getVmFeatureList()[Ljava/lang/String;
 HSPLandroid/os/Debug;->isDebuggerConnected()Z
 HSPLandroid/os/Debug;->waitingForDebugger()Z
-HSPLandroid/os/DeviceIdleManager;-><init>(Landroid/content/Context;Landroid/os/IDeviceIdleController;)V
-HSPLandroid/os/DropBoxManager;-><init>(Landroid/content/Context;Lcom/android/internal/os/IDropBoxManagerService;)V
 HSPLandroid/os/Environment$UserEnvironment;-><init>(I)V
 HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment$UserEnvironment;->buildExternalStoragePublicDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment$UserEnvironment;->getExternalDirs()[Ljava/io/File;
+HSPLandroid/os/Environment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/os/Environment;->buildPaths([Ljava/io/File;[Ljava/lang/String;)[Ljava/io/File;
@@ -9063,14 +9302,12 @@
 HSPLandroid/os/Environment;->getDataProfilesDePackageDirectory(ILjava/lang/String;)Ljava/io/File;
 HSPLandroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
 HSPLandroid/os/Environment;->getExternalStorageState()Ljava/lang/String;
-HSPLandroid/os/Environment;->getExternalStorageState(Ljava/io/File;)Ljava/lang/String;
 HSPLandroid/os/Environment;->getUserConfigDirectory(I)Ljava/io/File;
 HSPLandroid/os/Environment;->initForCurrentUser()V
 HSPLandroid/os/Environment;->isExternalStorageEmulated()Z
 HSPLandroid/os/Environment;->isExternalStorageEmulated(Ljava/io/File;)Z
 HSPLandroid/os/Environment;->throwIfUserRequired()V
 HSPLandroid/os/EventLogTags;->writeServiceManagerSlow(ILjava/lang/String;)V
-HSPLandroid/os/EventLogTags;->writeServiceManagerStats(III)V
 HSPLandroid/os/FactoryTest;->getMode()I
 HSPLandroid/os/FileObserver$ObserverThread;-><init>()V
 HSPLandroid/os/FileObserver$ObserverThread;->onEvent(IILjava/lang/String;)V
@@ -9083,12 +9320,10 @@
 HSPLandroid/os/FileObserver;->startWatching()V
 HSPLandroid/os/FileUtils;->contains(Ljava/io/File;Ljava/io/File;)Z
 HSPLandroid/os/FileUtils;->contains(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLandroid/os/FileUtils;->listOrEmpty(Ljava/io/File;)[Ljava/lang/String;
 HSPLandroid/os/FileUtils;->newFileOrNull(Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
 HSPLandroid/os/FileUtils;->sync(Ljava/io/FileOutputStream;)Z
 HSPLandroid/os/FileUtils;->translateModePfdToPosix(I)I
-HSPLandroid/os/FileUtils;->trimFilename(Ljava/lang/StringBuilder;I)V
 HSPLandroid/os/GraphicsEnvironment;->checkAngleWhitelist(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Z
 HSPLandroid/os/GraphicsEnvironment;->chooseDriver(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Z
 HSPLandroid/os/GraphicsEnvironment;->chooseDriverInternal(Landroid/os/Bundle;Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
@@ -9160,7 +9395,6 @@
 HSPLandroid/os/HandlerThread;->quitSafely()Z
 HSPLandroid/os/HandlerThread;->run()V
 HSPLandroid/os/HwBinder;-><init>()V
-HSPLandroid/os/HwBinder;->getService(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IHwBinder;
 HSPLandroid/os/HwBlob;-><init>(I)V
 HSPLandroid/os/HwBlob;->wrapArray([B)[Ljava/lang/Byte;
 HSPLandroid/os/HwParcel;-><init>()V
@@ -9178,8 +9412,6 @@
 HSPLandroid/os/ICancellationSignal$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/ICancellationSignal$Stub;-><init>()V
 HSPLandroid/os/ICancellationSignal$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ICancellationSignal;
-HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService;
-HSPLandroid/os/IDeviceIdleController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController;
 HSPLandroid/os/IMessenger$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IMessenger$Stub$Proxy;->asBinder()Landroid/os/IBinder;
@@ -9201,24 +9433,26 @@
 HSPLandroid/os/IRemoteCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IRemoteCallback$Stub$Proxy;->sendResult(Landroid/os/Bundle;)V
 HSPLandroid/os/IRemoteCallback$Stub;-><init>()V
+HSPLandroid/os/IRemoteCallback$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRemoteCallback;
+HSPLandroid/os/IRemoteCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/IServiceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IServiceManager$Stub$Proxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
 HSPLandroid/os/IServiceManager$Stub$Proxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLandroid/os/IServiceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
-HSPLandroid/os/IStatsManagerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStatsManagerService;
 HSPLandroid/os/IThermalService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalService;
 HSPLandroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
 HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileIds(IZ)[I
+HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileParent(I)Landroid/content/pm/UserInfo;
 HSPLandroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo;
 HSPLandroid/os/IUserManager$Stub$Proxy;->getUserSerialNumber(I)I
 HSPLandroid/os/IUserManager$Stub$Proxy;->getUsers(ZZZ)Ljava/util/List;
 HSPLandroid/os/IUserManager$Stub$Proxy;->hasUserRestriction(Ljava/lang/String;I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isDemoUser(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isManagedProfile(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isProfile(I)Z
-HSPLandroid/os/IUserManager$Stub$Proxy;->isUserRunning(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlocked(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlockingOrUnlocked(I)Z
 HSPLandroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
@@ -9296,15 +9530,14 @@
 HSPLandroid/os/Message;->setAsynchronous(Z)V
 HSPLandroid/os/Message;->setCallback(Ljava/lang/Runnable;)Landroid/os/Message;
 HSPLandroid/os/Message;->setData(Landroid/os/Bundle;)V
+HSPLandroid/os/Message;->setWhat(I)Landroid/os/Message;
 HSPLandroid/os/Message;->toString()Ljava/lang/String;
 HSPLandroid/os/Message;->toString(J)Ljava/lang/String;
 HSPLandroid/os/Message;->updateCheckRecycle(I)V
 HSPLandroid/os/Message;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/MessageQueue$FileDescriptorRecord;-><init>(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
 HSPLandroid/os/MessageQueue;-><init>(Z)V
 HSPLandroid/os/MessageQueue;->addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V
 HSPLandroid/os/MessageQueue;->addOnFileDescriptorEventListener(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
-HSPLandroid/os/MessageQueue;->dispatchEvents(II)I
 HSPLandroid/os/MessageQueue;->dispose()V
 HSPLandroid/os/MessageQueue;->enqueueMessage(Landroid/os/Message;J)Z
 HSPLandroid/os/MessageQueue;->finalize()V
@@ -9389,7 +9622,6 @@
 HSPLandroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readLong()J
-HSPLandroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
 HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable;
@@ -9452,7 +9684,6 @@
 HSPLandroid/os/Parcel;->writeStringArray([Ljava/lang/String;)V
 HSPLandroid/os/Parcel;->writeStringList(Ljava/util/List;)V
 HSPLandroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V
-HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V
 HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V
 HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;)V
 HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V
@@ -9469,6 +9700,7 @@
 HSPLandroid/os/ParcelFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;)V
 HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;)V
 HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
+HSPLandroid/os/ParcelFileDescriptor;->adoptFd(I)Landroid/os/ParcelFileDescriptor;
 HSPLandroid/os/ParcelFileDescriptor;->canDetectErrors()Z
 HSPLandroid/os/ParcelFileDescriptor;->close()V
 HSPLandroid/os/ParcelFileDescriptor;->closeWithStatus(ILjava/lang/String;)V
@@ -9495,6 +9727,9 @@
 HSPLandroid/os/ParcelUuid;->hashCode()I
 HSPLandroid/os/ParcelUuid;->toString()Ljava/lang/String;
 HSPLandroid/os/ParcelUuid;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/ParcelableParcel;-><init>(Ljava/lang/ClassLoader;)V
+HSPLandroid/os/ParcelableParcel;->getParcel()Landroid/os/Parcel;
+HSPLandroid/os/ParcelableParcel;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PatternMatcher;
 HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/PatternMatcher$1;->newArray(I)[Landroid/os/PatternMatcher;
@@ -9505,14 +9740,13 @@
 HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PersistableBundle;
 HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/PersistableBundle;-><init>()V
-HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Bundle;)V
 HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V
-HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;)V
 HSPLandroid/os/PersistableBundle;-><init>(Landroid/util/ArrayMap;)V
 HSPLandroid/os/PersistableBundle;-><init>(Z)V
 HSPLandroid/os/PersistableBundle;->deepCopy()Landroid/os/PersistableBundle;
 HSPLandroid/os/PersistableBundle;->isValidType(Ljava/lang/Object;)Z
 HSPLandroid/os/PersistableBundle;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/PooledStringWriter;->writeString(Ljava/lang/String;)V
 HSPLandroid/os/PowerManager$WakeLock$1;-><init>(Landroid/os/PowerManager$WakeLock;)V
 HSPLandroid/os/PowerManager$WakeLock$1;->run()V
 HSPLandroid/os/PowerManager$WakeLock;-><init>(Landroid/os/PowerManager;ILjava/lang/String;Ljava/lang/String;)V
@@ -9524,10 +9758,7 @@
 HSPLandroid/os/PowerManager$WakeLock;->release()V
 HSPLandroid/os/PowerManager$WakeLock;->release(I)V
 HSPLandroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V
-HSPLandroid/os/PowerManager$WakeLock;->setWorkSource(Landroid/os/WorkSource;)V
 HSPLandroid/os/PowerManager;-><init>(Landroid/content/Context;Landroid/os/IPowerManager;Landroid/os/Handler;)V
-HSPLandroid/os/PowerManager;->getMaximumScreenBrightnessSetting()I
-HSPLandroid/os/PowerManager;->getMinimumScreenBrightnessSetting()I
 HSPLandroid/os/PowerManager;->isDeviceIdleMode()Z
 HSPLandroid/os/PowerManager;->isInteractive()Z
 HSPLandroid/os/PowerManager;->isLightDeviceIdleMode()Z
@@ -9546,9 +9777,13 @@
 HSPLandroid/os/Process;->myUserHandle()Landroid/os/UserHandle;
 HSPLandroid/os/Process;->setStartTimes(JJ)V
 HSPLandroid/os/RemoteCallback$1;-><init>(Landroid/os/RemoteCallback;)V
+HSPLandroid/os/RemoteCallback$1;->sendResult(Landroid/os/Bundle;)V
+HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Landroid/os/RemoteCallback;
+HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;)V
 HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;Landroid/os/Handler;)V
 HSPLandroid/os/RemoteCallback;->sendResult(Landroid/os/Bundle;)V
+HSPLandroid/os/RemoteCallback;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/RemoteCallbackList$Callback;-><init>(Landroid/os/RemoteCallbackList;Landroid/os/IInterface;Ljava/lang/Object;)V
 HSPLandroid/os/RemoteCallbackList;-><init>()V
 HSPLandroid/os/RemoteCallbackList;->beginBroadcast()I
@@ -9569,8 +9804,6 @@
 HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/ResultReceiver;->send(ILandroid/os/Bundle;)V
 HSPLandroid/os/ResultReceiver;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
-HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
 HSPLandroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager;
 HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder;
@@ -9672,8 +9905,6 @@
 HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$1;)V
 HSPLandroid/os/StrictMode;->access$100()Ljava/util/HashMap;
 HSPLandroid/os/StrictMode;->access$1000()Ljava/lang/ThreadLocal;
-HSPLandroid/os/StrictMode;->access$1100()Landroid/os/StrictMode$ViolationLogger;
-HSPLandroid/os/StrictMode;->access$1400(ILandroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/StrictMode;->access$1500()Ljava/lang/ThreadLocal;
 HSPLandroid/os/StrictMode;->access$1600()Ljava/lang/ThreadLocal;
 HSPLandroid/os/StrictMode;->access$1700(Ljava/lang/String;I)V
@@ -9701,7 +9932,6 @@
 HSPLandroid/os/StrictMode;->onBinderStrictModePolicyChange(I)V
 HSPLandroid/os/StrictMode;->onCredentialProtectedPathAccess(Ljava/lang/String;I)V
 HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;)V
-HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;Z)V
 HSPLandroid/os/StrictMode;->readAndHandleBinderCallViolations(Landroid/os/Parcel;)V
 HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V
 HSPLandroid/os/StrictMode;->setBlockGuardVmPolicy(I)V
@@ -9718,6 +9948,7 @@
 HSPLandroid/os/StrictMode;->vmRegistrationLeaksEnabled()Z
 HSPLandroid/os/StrictMode;->vmSqliteObjectLeaksEnabled()Z
 HSPLandroid/os/StrictMode;->vmUntaggedSocketEnabled()Z
+HSPLandroid/os/StrictMode;->writeGatheredViolationsToParcel(Landroid/os/Parcel;)V
 HSPLandroid/os/SystemClock;->sleep(J)V
 HSPLandroid/os/SystemProperties$Handle;-><init>(J)V
 HSPLandroid/os/SystemProperties$Handle;-><init>(JLandroid/os/SystemProperties$1;)V
@@ -9785,12 +10016,15 @@
 HSPLandroid/os/UserHandle;->toString()Ljava/lang/String;
 HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/UserHandle;Landroid/os/Parcel;)V
+HSPLandroid/os/UserManager$1;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V
+HSPLandroid/os/UserManager$1;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean;
+HSPLandroid/os/UserManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
+HSPLandroid/os/UserManager;->access$000(Landroid/os/UserManager;)Landroid/os/IUserManager;
 HSPLandroid/os/UserManager;->get(Landroid/content/Context;)Landroid/os/UserManager;
 HSPLandroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
 HSPLandroid/os/UserManager;->getMaxSupportedUsers()I
 HSPLandroid/os/UserManager;->getProfileIds(IZ)[I
-HSPLandroid/os/UserManager;->getProfileIdsWithDisabled(I)[I
 HSPLandroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo;
 HSPLandroid/os/UserManager;->getProfiles(I)Ljava/util/List;
 HSPLandroid/os/UserManager;->getSerialNumberForUser(Landroid/os/UserHandle;)J
@@ -9808,8 +10042,6 @@
 HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z
 HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
 HSPLandroid/os/UserManager;->isDemoUser()Z
-HSPLandroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z
-HSPLandroid/os/UserManager;->isHeadlessSystemUserMode()Z
 HSPLandroid/os/UserManager;->isManagedProfile()Z
 HSPLandroid/os/UserManager;->isManagedProfile(I)Z
 HSPLandroid/os/UserManager;->isProfile(I)Z
@@ -9818,49 +10050,49 @@
 HSPLandroid/os/UserManager;->isUserRunning(Landroid/os/UserHandle;)Z
 HSPLandroid/os/UserManager;->isUserTypeGuest(Ljava/lang/String;)Z
 HSPLandroid/os/UserManager;->isUserTypeManagedProfile(Ljava/lang/String;)Z
-HSPLandroid/os/UserManager;->isUserTypeRestricted(Ljava/lang/String;)Z
 HSPLandroid/os/UserManager;->isUserUnlocked()Z
 HSPLandroid/os/UserManager;->isUserUnlocked(I)Z
 HSPLandroid/os/UserManager;->isUserUnlocked(Landroid/os/UserHandle;)Z
 HSPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z
 HSPLandroid/os/UserManager;->supportsMultipleUsers()Z
-HSPLandroid/os/VibrationAttributes$1;-><init>()V
-HSPLandroid/os/VibrationAttributes$Builder;->build()Landroid/os/VibrationAttributes;
-HSPLandroid/os/VibrationAttributes;-><clinit>()V
-HSPLandroid/os/VibrationAttributes;-><init>(IILandroid/media/AudioAttributes;)V
-HSPLandroid/os/VibrationAttributes;-><init>(IILandroid/media/AudioAttributes;Landroid/os/VibrationAttributes$1;)V
 HSPLandroid/os/VibrationEffect;-><init>()V
 HSPLandroid/os/Vibrator;-><init>(Landroid/content/Context;)V
 HSPLandroid/os/Vibrator;->loadDefaultIntensity(Landroid/content/Context;I)I
 HSPLandroid/os/Vibrator;->loadVibrationIntensities(Landroid/content/Context;)V
 HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource;
 HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/WorkSource;-><init>()V
-HSPLandroid/os/WorkSource;-><init>(ILjava/lang/String;)V
 HSPLandroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/os/WorkSource;-><init>(Landroid/os/WorkSource;)V
-HSPLandroid/os/WorkSource;->add(Landroid/os/WorkSource;)Z
 HSPLandroid/os/WorkSource;->getPackageName(I)Ljava/lang/String;
 HSPLandroid/os/WorkSource;->getUid(I)I
-HSPLandroid/os/WorkSource;->insert(IILjava/lang/String;)V
-HSPLandroid/os/WorkSource;->isEmpty()Z
 HSPLandroid/os/WorkSource;->size()I
-HSPLandroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z
-HSPLandroid/os/WorkSource;->updateUidsAndNamesLocked(Landroid/os/WorkSource;ZZ)Z
 HSPLandroid/os/WorkSource;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/health/HealthStats;->getMeasurement(I)J
+HSPLandroid/os/health/HealthStats;->getStats(I)Ljava/util/Map;
+HSPLandroid/os/health/HealthStats;->getTimer(I)Landroid/os/health/TimerStat;
+HSPLandroid/os/health/HealthStats;->getTimers(I)Ljava/util/Map;
+HSPLandroid/os/health/HealthStats;->hasMeasurement(I)Z
+HSPLandroid/os/health/HealthStats;->hasStats(I)Z
+HSPLandroid/os/health/HealthStats;->hasTimer(I)Z
+HSPLandroid/os/health/HealthStats;->hasTimers(I)Z
+HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/HealthStatsParceler;
+HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/health/HealthStatsParceler;->getHealthStats()Landroid/os/health/HealthStats;
+HSPLandroid/os/health/SystemHealthManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V
+HSPLandroid/os/health/SystemHealthManager;->takeMyUidSnapshot()Landroid/os/health/HealthStats;
+HSPLandroid/os/health/SystemHealthManager;->takeUidSnapshot(I)Landroid/os/health/HealthStats;
+HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/TimerStat;
+HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/health/TimerStat;-><init>(IJ)V
+HSPLandroid/os/health/TimerStat;->getCount()I
+HSPLandroid/os/health/TimerStat;->getTime()J
 HSPLandroid/os/storage/IObbActionListener$Stub;-><init>()V
-HSPLandroid/os/storage/IStorageEventListener$Stub;-><init>()V
-HSPLandroid/os/storage/IStorageEventListener$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
 HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->isUserKeyUnlocked(I)Z
 HSPLandroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
-HSPLandroid/os/storage/StorageEventListener;-><init>()V
 HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;)V
 HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;Landroid/os/storage/StorageManager$1;)V
-HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;-><init>(Landroid/os/storage/StorageManager;Ljava/util/concurrent/Executor;Landroid/os/storage/StorageEventListener;Landroid/os/storage/StorageManager$StorageVolumeCallback;)V
-HSPLandroid/os/storage/StorageManager$StorageVolumeCallback;-><init>()V
 HSPLandroid/os/storage/StorageManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 HSPLandroid/os/storage/StorageManager;->convert(Ljava/util/UUID;)Ljava/lang/String;
 HSPLandroid/os/storage/StorageManager;->getStorageVolume(Ljava/io/File;I)Landroid/os/storage/StorageVolume;
@@ -9868,7 +10100,6 @@
 HSPLandroid/os/storage/StorageManager;->getStorageVolumes()Ljava/util/List;
 HSPLandroid/os/storage/StorageManager;->getUuidForPath(Ljava/io/File;)Ljava/util/UUID;
 HSPLandroid/os/storage/StorageManager;->getVolumeList(II)[Landroid/os/storage/StorageVolume;
-HSPLandroid/os/storage/StorageManager;->getVolumes()Ljava/util/List;
 HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/StorageVolume;
 HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/storage/StorageVolume$1;->newArray(I)[Landroid/os/storage/StorageVolume;
@@ -9881,9 +10112,7 @@
 HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/VolumeInfo;
 HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/storage/VolumeInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/os/storage/VolumeInfo;->getType()I
 HSPLandroid/os/strictmode/DiskReadViolation;-><init>()V
-HSPLandroid/os/strictmode/LeakedClosableViolation;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 HSPLandroid/os/strictmode/Violation;-><init>(Ljava/lang/String;)V
 HSPLandroid/permission/IPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/permission/IPermissionManager$Stub$Proxy;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
@@ -9901,12 +10130,12 @@
 HSPLandroid/provider/ContactsContract$CommonDataKinds$Phone;->getTypeLabelResource(I)I
 HSPLandroid/provider/DeviceConfig$1;-><init>(Landroid/os/Handler;)V
 PLandroid/provider/DeviceConfig$1;->onChange(ZLandroid/net/Uri;)V
-HPLandroid/provider/DeviceConfig$Properties$Builder;-><init>(Ljava/lang/String;)V
-HPLandroid/provider/DeviceConfig$Properties$Builder;->build()Landroid/provider/DeviceConfig$Properties;
-HPLandroid/provider/DeviceConfig$Properties$Builder;->setString(Ljava/lang/String;Ljava/lang/String;)Landroid/provider/DeviceConfig$Properties$Builder;
+HSPLandroid/provider/DeviceConfig$Properties$Builder;-><init>(Ljava/lang/String;)V
+HSPLandroid/provider/DeviceConfig$Properties$Builder;->build()Landroid/provider/DeviceConfig$Properties;
+HSPLandroid/provider/DeviceConfig$Properties$Builder;->setString(Ljava/lang/String;Ljava/lang/String;)Landroid/provider/DeviceConfig$Properties$Builder;
 HSPLandroid/provider/DeviceConfig$Properties;-><init>(Ljava/lang/String;Ljava/util/Map;)V
 HSPLandroid/provider/DeviceConfig$Properties;->getKeyset()Ljava/util/Set;
-HPLandroid/provider/DeviceConfig$Properties;->getNamespace()Ljava/lang/String;
+HSPLandroid/provider/DeviceConfig$Properties;->getNamespace()Ljava/lang/String;
 HSPLandroid/provider/DeviceConfig$Properties;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HPLandroid/provider/DeviceConfig;->access$100(Landroid/net/Uri;)V
 HSPLandroid/provider/DeviceConfig;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
@@ -9927,7 +10156,7 @@
 HSPLandroid/provider/FontRequest;->getProviderAuthority()Ljava/lang/String;
 HSPLandroid/provider/FontRequest;->getProviderPackage()Ljava/lang/String;
 HSPLandroid/provider/FontRequest;->getQuery()Ljava/lang/String;
-PLandroid/provider/FontsContract$1;->run()V
+HSPLandroid/provider/FontsContract$1;->run()V
 HSPLandroid/provider/FontsContract$FontFamilyResult;-><init>(I[Landroid/provider/FontsContract$FontInfo;)V
 HSPLandroid/provider/FontsContract$FontFamilyResult;->getFonts()[Landroid/provider/FontsContract$FontInfo;
 HSPLandroid/provider/FontsContract$FontFamilyResult;->getStatusCode()I
@@ -9938,10 +10167,10 @@
 HSPLandroid/provider/FontsContract$FontInfo;->getUri()Landroid/net/Uri;
 HSPLandroid/provider/FontsContract$FontInfo;->getWeight()I
 HSPLandroid/provider/FontsContract$FontInfo;->isItalic()Z
-PLandroid/provider/FontsContract;->access$000()Ljava/lang/Object;
-PLandroid/provider/FontsContract;->access$100()Landroid/os/HandlerThread;
-PLandroid/provider/FontsContract;->access$102(Landroid/os/HandlerThread;)Landroid/os/HandlerThread;
-PLandroid/provider/FontsContract;->access$202(Landroid/os/Handler;)Landroid/os/Handler;
+HSPLandroid/provider/FontsContract;->access$000()Ljava/lang/Object;
+HSPLandroid/provider/FontsContract;->access$100()Landroid/os/HandlerThread;
+HSPLandroid/provider/FontsContract;->access$102(Landroid/os/HandlerThread;)Landroid/os/HandlerThread;
+HSPLandroid/provider/FontsContract;->access$202(Landroid/os/Handler;)Landroid/os/Handler;
 HSPLandroid/provider/FontsContract;->buildTypeface(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/provider/FontsContract$FontInfo;)Landroid/graphics/Typeface;
 HSPLandroid/provider/FontsContract;->fetchFonts(Landroid/content/Context;Landroid/os/CancellationSignal;Landroid/provider/FontRequest;)Landroid/provider/FontsContract$FontFamilyResult;
 HSPLandroid/provider/FontsContract;->getFontFromProvider(Landroid/content/Context;Landroid/provider/FontRequest;Ljava/lang/String;Landroid/os/CancellationSignal;)[Landroid/provider/FontsContract$FontInfo;
@@ -9978,6 +10207,7 @@
 HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/util/ArrayMap;
 HSPLandroid/provider/Settings$NameValueCache;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z
 HSPLandroid/provider/Settings$NameValueTable;->getUriFor(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$Secure;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F
 HSPLandroid/provider/Settings$Secure;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F
 HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
 HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
@@ -9990,7 +10220,6 @@
 HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
 HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I
 HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
-HSPLandroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
 HSPLandroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
 HSPLandroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
@@ -10062,6 +10291,23 @@
 HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/OperationResult;
 HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/security/keymaster/OperationResult;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;->finish([B[B[B)Landroid/security/keymaster/OperationResult;
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;->doFinal([BII[B[B)[B
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;->finalize()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->getAdditionalEntropyAmountForBegin()I
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->getAdditionalEntropyAmountForFinish()I
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters(Ljava/security/spec/AlgorithmParameterSpec;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetWhilePreservingInitState()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->getIv()[B
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->initKey(ILjava/security/Key;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->setIv([B)V
 HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;-><init>()V
 HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putAsymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putMacImpl(Ljava/lang/String;Ljava/lang/String;)V
@@ -10135,12 +10381,14 @@
 HSPLandroid/security/net/config/ApplicationConfig;->getConfigForHostname(Ljava/lang/String;)Landroid/security/net/config/NetworkSecurityConfig;
 HSPLandroid/security/net/config/ApplicationConfig;->getDefaultInstance()Landroid/security/net/config/ApplicationConfig;
 HSPLandroid/security/net/config/ApplicationConfig;->getTrustManager()Ljavax/net/ssl/X509TrustManager;
+HSPLandroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
 HSPLandroid/security/net/config/ApplicationConfig;->setDefaultInstance(Landroid/security/net/config/ApplicationConfig;)V
 HSPLandroid/security/net/config/CertificatesEntryRef;-><init>(Landroid/security/net/config/CertificateSource;Z)V
 HSPLandroid/security/net/config/CertificatesEntryRef;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
 HSPLandroid/security/net/config/CertificatesEntryRef;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
 HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;-><init>(Landroid/security/net/config/ApplicationConfig;)V
 HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCertificateTransparencyVerificationRequired(Ljava/lang/String;)Z
+HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
 HSPLandroid/security/net/config/DirectoryCertificateSource$1;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
 HSPLandroid/security/net/config/DirectoryCertificateSource$3;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
 HSPLandroid/security/net/config/DirectoryCertificateSource$3;->match(Ljava/security/cert/X509Certificate;)Z
@@ -10221,6 +10469,8 @@
 HSPLandroid/security/net/config/XmlConfigSource;->parseTrustAnchors(Landroid/content/res/XmlResourceParser;Z)Ljava/util/Collection;
 HSPLandroid/service/notification/INotificationListener$Stub;-><init>()V
 HSPLandroid/service/notification/INotificationListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/notification/INotificationListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->get()Landroid/service/notification/StatusBarNotification;
 HSPLandroid/service/notification/NotificationListenerService$MyHandler;-><init>(Landroid/service/notification/NotificationListenerService;Landroid/os/Looper;)V
 HSPLandroid/service/notification/NotificationListenerService$MyHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;-><init>(Landroid/service/notification/NotificationListenerService;)V
@@ -10229,7 +10479,12 @@
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>()V
+HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/service/notification/NotificationListenerService$Ranking;->getKey()Ljava/lang/String;
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Ljava/lang/String;IZIIILjava/lang/CharSequence;Ljava/lang/String;Landroid/app/NotificationChannel;Ljava/util/ArrayList;Ljava/util/ArrayList;ZIZJZLjava/util/ArrayList;Ljava/util/ArrayList;ZZZ)V
+HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationListenerService$RankingMap;
+HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/notification/NotificationListenerService$RankingMap;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/service/notification/NotificationListenerService;-><init>()V
 HSPLandroid/service/notification/NotificationListenerService;->access$100(Landroid/service/notification/NotificationListenerService;Landroid/app/Notification;)V
 HSPLandroid/service/notification/NotificationListenerService;->access$200(Landroid/service/notification/NotificationListenerService;Landroid/app/Notification;)V
@@ -10245,6 +10500,8 @@
 HSPLandroid/service/notification/NotificationListenerService;->maybePopulatePeople(Landroid/app/Notification;)V
 HSPLandroid/service/notification/NotificationListenerService;->maybePopulateRemoteViews(Landroid/app/Notification;)V
 HSPLandroid/service/notification/NotificationListenerService;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;Landroid/service/notification/NotificationStats;I)V
+HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationRankingUpdate;
+HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/service/notification/NotificationRankingUpdate;->getRankingMap()Landroid/service/notification/NotificationListenerService$RankingMap;
 HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/StatusBarNotification;
 HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -10257,28 +10514,19 @@
 HSPLandroid/service/notification/StatusBarNotification;->getPostTime()J
 HSPLandroid/service/notification/StatusBarNotification;->getTag()Ljava/lang/String;
 HSPLandroid/service/notification/StatusBarNotification;->getUser()Landroid/os/UserHandle;
-HSPLandroid/service/notification/StatusBarNotification;->getUserId()I
 HSPLandroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->isAppGroup()Z
-HSPLandroid/service/notification/StatusBarNotification;->isGroup()Z
 HSPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;
-HSPLandroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager;
-HSPLandroid/service/vr/IVrStateCallbacks$Stub;-><init>()V
-HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;-><clinit>()V
-HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;-><init>()V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierService;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$H4jN0VIBNpZQBeWYt6qS3DCe_M8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;-><clinit>()V
-HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;-><init>()V
@@ -10287,14 +10535,11 @@
 HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl()Ljava/util/Optional;
 HSPLandroid/sysprop/DisplayProperties;->debug_layout()Ljava/util/Optional;
 HSPLandroid/sysprop/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
-HSPLandroid/sysprop/TelephonyProperties;->baseband_version()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->current_active_phone()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->default_network()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->icc_operator_alpha()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->icc_operator_iso_country()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->icc_operator_numeric()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$baseband_version$0(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/sysprop/TelephonyProperties;->lambda$default_network$14(Ljava/lang/String;)Ljava/lang/Integer;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_alpha$8(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_iso_country$9(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_numeric$7(Ljava/lang/String;)Ljava/lang/String;
@@ -10331,6 +10576,7 @@
 HSPLandroid/system/Os;->getuid()I
 HSPLandroid/system/Os;->ioctlInt(Ljava/io/FileDescriptor;ILandroid/system/Int32Ref;)I
 HSPLandroid/system/Os;->listen(Ljava/io/FileDescriptor;I)V
+HSPLandroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J
 HSPLandroid/system/Os;->mkdir(Ljava/lang/String;I)V
 HSPLandroid/system/Os;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
 HSPLandroid/system/Os;->pipe2(I)[Ljava/io/FileDescriptor;
@@ -10344,7 +10590,6 @@
 HSPLandroid/system/Os;->stat(Ljava/lang/String;)Landroid/system/StructStat;
 HSPLandroid/system/Os;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
 HSPLandroid/system/Os;->sysconf(I)J
-HSPLandroid/system/Os;->write(Ljava/io/FileDescriptor;[BII)I
 HSPLandroid/system/OsConstants;->S_ISDIR(I)Z
 HSPLandroid/system/OsConstants;->S_ISREG(I)Z
 HSPLandroid/system/StructAddrinfo;-><init>()V
@@ -10368,8 +10613,6 @@
 HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;Landroid/telecom/PhoneAccountHandle$1;)V
 HSPLandroid/telecom/PhoneAccountHandle;->checkParameters(Landroid/content/ComponentName;Landroid/os/UserHandle;)V
 HSPLandroid/telecom/PhoneAccountHandle;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telecom/PhoneAccountHandle;->getComponentName()Landroid/content/ComponentName;
-HSPLandroid/telecom/PhoneAccountHandle;->getId()Ljava/lang/String;
 HSPLandroid/telecom/PhoneAccountHandle;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;Lcom/android/internal/telecom/ITelecomService;)V
@@ -10425,6 +10668,7 @@
 HSPLandroid/telephony/CellIdentityWcdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma;
 HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellInfo;
 HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellInfoLte;->getCellIdentity()Landroid/telephony/CellIdentityLte;
 HSPLandroid/telephony/CellSignalStrength;-><init>()V
 HSPLandroid/telephony/CellSignalStrength;->getNumSignalStrengthLevels()I
 HSPLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthCdma;
@@ -10474,7 +10718,6 @@
 HSPLandroid/telephony/LteVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/LteVopsSupportInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/LteVopsSupportInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/LteVopsSupportInfo$1;)V
-HSPLandroid/telephony/LteVopsSupportInfo;->toString()Ljava/lang/String;
 HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NetworkRegistrationInfo;
 HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;)V
@@ -10492,6 +10735,8 @@
 HSPLandroid/telephony/NetworkRegistrationInfo;->registrationStateToString(I)Ljava/lang/String;
 HSPLandroid/telephony/NetworkRegistrationInfo;->serviceTypeToString(I)Ljava/lang/String;
 HSPLandroid/telephony/NetworkRegistrationInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->isDialable(C)Z
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;-><init>(Landroid/telephony/PhoneStateListener;Ljava/util/concurrent/Executor;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$54(Landroid/telephony/PhoneStateListener;I)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$55$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;I)V
@@ -10511,14 +10756,11 @@
 HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/util/concurrent/Executor;)V
 HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState;
 HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/ServiceState;-><init>()V
 HSPLandroid/telephony/ServiceState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/ServiceState;->copyFrom(Landroid/telephony/ServiceState;)V
 HSPLandroid/telephony/ServiceState;->getDataNetworkType()I
 HSPLandroid/telephony/ServiceState;->getDataRoamingType()I
 HSPLandroid/telephony/ServiceState;->getDuplexMode()I
 HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfo(II)Landroid/telephony/NetworkRegistrationInfo;
-HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfoList()Ljava/util/List;
 HSPLandroid/telephony/ServiceState;->getRilDataRadioTechnology()I
 HSPLandroid/telephony/ServiceState;->getRilVoiceRadioTechnology()I
 HSPLandroid/telephony/ServiceState;->getState()I
@@ -10527,7 +10769,6 @@
 HSPLandroid/telephony/ServiceState;->isUsingCarrierAggregation()Z
 HSPLandroid/telephony/ServiceState;->networkTypeToRilRadioTechnology(I)I
 HSPLandroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String;
-HSPLandroid/telephony/ServiceState;->rilServiceStateToString(I)Ljava/lang/String;
 HSPLandroid/telephony/ServiceState;->roamingTypeToString(I)Ljava/lang/String;
 HSPLandroid/telephony/ServiceState;->toString()Ljava/lang/String;
 HSPLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SignalStrength;
@@ -10542,7 +10783,6 @@
 HSPLandroid/telephony/SubscriptionInfo;->getIccId()Ljava/lang/String;
 HSPLandroid/telephony/SubscriptionInfo;->getMcc()I
 HSPLandroid/telephony/SubscriptionInfo;->getMnc()I
-HSPLandroid/telephony/SubscriptionInfo;->getNumber()Ljava/lang/String;
 HSPLandroid/telephony/SubscriptionInfo;->getSimSlotIndex()I
 HSPLandroid/telephony/SubscriptionInfo;->getSubscriptionId()I
 HSPLandroid/telephony/SubscriptionInfo;->isOpportunistic()Z
@@ -10581,12 +10821,12 @@
 HSPLandroid/telephony/TelephonyManager;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
 HSPLandroid/telephony/TelephonyManager;->createForSubscriptionId(I)Landroid/telephony/TelephonyManager;
 HSPLandroid/telephony/TelephonyManager;->getActiveModemCount()I
+HSPLandroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
 HSPLandroid/telephony/TelephonyManager;->getCallState()I
 HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType()I
 HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType(I)I
 HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneTypeForSlot(I)I
 HSPLandroid/telephony/TelephonyManager;->getDataEnabled(I)Z
-HSPLandroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;
 HSPLandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getFeatureId()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getGroupIdLevel1()Ljava/lang/String;
@@ -10605,8 +10845,6 @@
 HSPLandroid/telephony/TelephonyManager;->getPhoneCount()I
 HSPLandroid/telephony/TelephonyManager;->getPhoneId()I
 HSPLandroid/telephony/TelephonyManager;->getPhoneType()I
-HSPLandroid/telephony/TelephonyManager;->getPhoneType(I)I
-HSPLandroid/telephony/TelephonyManager;->getPhoneTypeFromNetworkType(I)I
 HSPLandroid/telephony/TelephonyManager;->getPhoneTypeFromProperty(I)I
 HSPLandroid/telephony/TelephonyManager;->getServiceState()Landroid/telephony/ServiceState;
 HSPLandroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState;
@@ -10650,10 +10888,13 @@
 HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;-><init>()V
 HSPLandroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;-><init>()V
 HSPLandroid/text/AndroidBidi$EmojiBidiOverride;->classify(I)I
+HSPLandroid/text/AndroidBidi;->bidi(I[C[B)I
+HSPLandroid/text/AndroidBidi;->directions(I[BI[CII)Landroid/text/Layout$Directions;
 HSPLandroid/text/AutoGrowArray$ByteArray;-><init>()V
 HSPLandroid/text/AutoGrowArray$ByteArray;-><init>(I)V
 HSPLandroid/text/AutoGrowArray$ByteArray;->clear()V
 HSPLandroid/text/AutoGrowArray$ByteArray;->clearWithReleasingLargeArray()V
+HSPLandroid/text/AutoGrowArray$ByteArray;->ensureCapacity(I)V
 HSPLandroid/text/AutoGrowArray$ByteArray;->get(I)B
 HSPLandroid/text/AutoGrowArray$ByteArray;->getRawArray()[B
 HSPLandroid/text/AutoGrowArray$ByteArray;->resize(I)V
@@ -10672,17 +10913,10 @@
 HSPLandroid/text/AutoGrowArray$IntArray;->getRawArray()[I
 HSPLandroid/text/AutoGrowArray;->access$000(II)I
 HSPLandroid/text/AutoGrowArray;->computeNewCapacity(II)I
-HSPLandroid/text/BidiFormatter$DirectionalityEstimator;-><init>(Ljava/lang/CharSequence;Z)V
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeBackward()B
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeForward()B
-HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getCachedDirectionality(C)B
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getEntryDir()I
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getExitDir()I
-HSPLandroid/text/BidiFormatter;->getDefaultInstanceFromContext(Z)Landroid/text/BidiFormatter;
-HSPLandroid/text/BidiFormatter;->getEntryDir(Ljava/lang/CharSequence;)I
-HSPLandroid/text/BidiFormatter;->getExitDir(Ljava/lang/CharSequence;)I
-HSPLandroid/text/BidiFormatter;->getInstance()Landroid/text/BidiFormatter;
-HSPLandroid/text/BidiFormatter;->getStereoReset()Z
 HSPLandroid/text/BidiFormatter;->markAfter(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
 HSPLandroid/text/BidiFormatter;->markBefore(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
 HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;Z)Ljava/lang/CharSequence;
@@ -10746,6 +10980,8 @@
 HSPLandroid/text/DynamicLayout$Builder;->setUseLineSpacingFromFallbacks(Z)Landroid/text/DynamicLayout$Builder;
 HSPLandroid/text/DynamicLayout$ChangeWatcher;-><init>(Landroid/text/DynamicLayout;)V
 HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
 HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V
 HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;Landroid/text/DynamicLayout$1;)V
 HSPLandroid/text/DynamicLayout;->addBlockAtOffset(I)V
@@ -10766,6 +11002,7 @@
 HSPLandroid/text/DynamicLayout;->getLineCount()I
 HSPLandroid/text/DynamicLayout;->getLineDescent(I)I
 HSPLandroid/text/DynamicLayout;->getLineDirections(I)Landroid/text/Layout$Directions;
+HSPLandroid/text/DynamicLayout;->getLineExtra(I)I
 HSPLandroid/text/DynamicLayout;->getLineStart(I)I
 HSPLandroid/text/DynamicLayout;->getLineTop(I)I
 HSPLandroid/text/DynamicLayout;->getNumberOfBlocks()I
@@ -10812,6 +11049,7 @@
 HSPLandroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
 HSPLandroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V
 HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V
+HSPLandroid/text/Layout;->getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V
 HSPLandroid/text/Layout;->getDesiredWidthWithLimit(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;F)F
 HSPLandroid/text/Layout;->getEndHyphenEdit(I)I
 HSPLandroid/text/Layout;->getHeight()I
@@ -10821,6 +11059,7 @@
 HSPLandroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
 HSPLandroid/text/Layout;->getLineBaseline(I)I
 HSPLandroid/text/Layout;->getLineBottom(I)I
+HSPLandroid/text/Layout;->getLineBottomWithoutSpacing(I)I
 HSPLandroid/text/Layout;->getLineEnd(I)I
 HSPLandroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F
 HSPLandroid/text/Layout;->getLineExtent(IZ)F
@@ -10840,6 +11079,7 @@
 HSPLandroid/text/Layout;->getParagraphLeft(I)I
 HSPLandroid/text/Layout;->getParagraphRight(I)I
 HSPLandroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
+HSPLandroid/text/Layout;->getPrimaryHorizontal(I)F
 HSPLandroid/text/Layout;->getPrimaryHorizontal(IZ)F
 HSPLandroid/text/Layout;->getSpacingAdd()F
 HSPLandroid/text/Layout;->getSpacingMultiplier()F
@@ -10853,6 +11093,7 @@
 HSPLandroid/text/Layout;->primaryIsTrailingPrevious(I)Z
 HSPLandroid/text/Layout;->replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
 HSPLandroid/text/Layout;->setJustificationMode(I)V
+HSPLandroid/text/Layout;->shouldClampCursor(I)Z
 HSPLandroid/text/MeasuredParagraph;-><init>()V
 HSPLandroid/text/MeasuredParagraph;->applyMetricsAffectingSpan(Landroid/text/TextPaint;[Landroid/text/style/MetricAffectingSpan;IILandroid/graphics/text/MeasuredText$Builder;)V
 HSPLandroid/text/MeasuredParagraph;->applyStyleRun(IILandroid/graphics/text/MeasuredText$Builder;)V
@@ -10902,6 +11143,7 @@
 HSPLandroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
 HSPLandroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I
 HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V
+HSPLandroid/text/Selection;->removeSelection(Landroid/text/Spannable;)V
 HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;I)V
 HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;II)V
 HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;III)V
@@ -10919,6 +11161,8 @@
 HSPLandroid/text/SpannableString;->getSpanStart(Ljava/lang/Object;)I
 HSPLandroid/text/SpannableString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
 HSPLandroid/text/SpannableString;->nextSpanTransition(IILjava/lang/Class;)I
+HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;)V
+HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;I)V
 HSPLandroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V
 HSPLandroid/text/SpannableStringBuilder;-><init>()V
 HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V
@@ -10951,6 +11195,8 @@
 HSPLandroid/text/SpannableStringBuilder;->removeSpan(II)V
 HSPLandroid/text/SpannableStringBuilder;->removeSpan(Ljava/lang/Object;)V
 HSPLandroid/text/SpannableStringBuilder;->removeSpan(Ljava/lang/Object;I)V
+HSPLandroid/text/SpannableStringBuilder;->removeSpansForChange(IIZI)Z
+HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/Editable;
 HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
 HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;
 HSPLandroid/text/SpannableStringBuilder;->resizeFor(I)V
@@ -10972,6 +11218,7 @@
 HSPLandroid/text/SpannableStringBuilder;->subSequence(II)Ljava/lang/CharSequence;
 HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String;
 HSPLandroid/text/SpannableStringBuilder;->treeRoot()I
+HSPLandroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I
 HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V
 HSPLandroid/text/SpannableStringInternal;->charAt(I)C
 HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V
@@ -10985,6 +11232,8 @@
 HSPLandroid/text/SpannableStringInternal;->isOutOfCopyRange(IIII)Z
 HSPLandroid/text/SpannableStringInternal;->length()I
 HSPLandroid/text/SpannableStringInternal;->nextSpanTransition(IILjava/lang/Class;)I
+HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;)V
+HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V
 HSPLandroid/text/SpannableStringInternal;->sendSpanAdded(Ljava/lang/Object;II)V
 HSPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;III)V
 HSPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;IIIZ)V
@@ -11069,16 +11318,19 @@
 HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->doCheck(Ljava/lang/CharSequence;II)Z
 HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl(Ljava/lang/CharSequence;II)Z
 HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z
+HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z
 HSPLandroid/text/TextDirectionHeuristics;->access$100(I)I
 HSPLandroid/text/TextDirectionHeuristics;->isRtlCodePoint(I)I
 HSPLandroid/text/TextLine$DecorationInfo;-><init>()V
 HSPLandroid/text/TextLine$DecorationInfo;-><init>(Landroid/text/TextLine$1;)V
+HSPLandroid/text/TextLine$DecorationInfo;->copyInfo()Landroid/text/TextLine$DecorationInfo;
 HSPLandroid/text/TextLine$DecorationInfo;->hasDecoration()Z
 HSPLandroid/text/TextLine;-><init>()V
 HSPLandroid/text/TextLine;->adjustEndHyphenEdit(II)I
 HSPLandroid/text/TextLine;->adjustStartHyphenEdit(II)I
 HSPLandroid/text/TextLine;->draw(Landroid/graphics/Canvas;FIII)V
 HSPLandroid/text/TextLine;->drawRun(Landroid/graphics/Canvas;IIZFIIIZ)F
+HSPLandroid/text/TextLine;->drawStroke(Landroid/text/TextPaint;Landroid/graphics/Canvas;IFFFFF)V
 HSPLandroid/text/TextLine;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V
 HSPLandroid/text/TextLine;->equalAttributes(Landroid/text/TextPaint;Landroid/text/TextPaint;)Z
 HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V
@@ -11096,6 +11348,7 @@
 HSPLandroid/text/TextLine;->updateMetrics(Landroid/graphics/Paint$FontMetricsInt;IIIII)V
 HSPLandroid/text/TextPaint;-><init>()V
 HSPLandroid/text/TextPaint;-><init>(I)V
+HSPLandroid/text/TextPaint;->getUnderlineThickness()F
 HSPLandroid/text/TextPaint;->set(Landroid/text/TextPaint;)V
 HSPLandroid/text/TextPaint;->setUnderlineText(IF)V
 HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/CharSequence;
@@ -11114,6 +11367,7 @@
 HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;Landroid/text/TextDirectionHeuristic;Ljava/lang/String;)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
+HSPLandroid/text/TextUtils;->getCapsMode(Ljava/lang/CharSequence;II)I
 HSPLandroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V
 HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I
@@ -11132,6 +11386,7 @@
 HSPLandroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/Spanned;Ljava/lang/Class;)[Ljava/lang/Object;
 HSPLandroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/text/TextUtils;->stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/text/TextUtils;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->trimNoCopySpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->trimToParcelableSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
@@ -11139,6 +11394,7 @@
 HSPLandroid/text/TextUtils;->unpackRangeEndFromLong(J)I
 HSPLandroid/text/TextUtils;->unpackRangeStartFromLong(J)I
 HSPLandroid/text/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V
+HSPLandroid/text/TextUtils;->writeWhere(Landroid/os/Parcel;Landroid/text/Spanned;Ljava/lang/Object;)V
 HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence;
 HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;
 HSPLandroid/text/format/DateFormat;->getBestDateTimePattern(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String;
@@ -11148,15 +11404,18 @@
 HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z
 HSPLandroid/text/format/DateFormat;->is24HourLocale(Ljava/util/Locale;)Z
 HSPLandroid/text/format/DateFormat;->zeroPad(II)Ljava/lang/String;
+HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;
+HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJI)Ljava/util/Formatter;
 HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter;
 HSPLandroid/text/format/DateUtils;->formatElapsedTime(J)Ljava/lang/String;
 HSPLandroid/text/format/DateUtils;->formatElapsedTime(Ljava/lang/StringBuilder;J)Ljava/lang/String;
 HSPLandroid/text/format/DateUtils;->initFormatStrings()V
 HSPLandroid/text/format/DateUtils;->initFormatStringsLocked()V
-HSPLandroid/text/format/Time$TimeCalculator;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsToTime(Landroid/text/format/Time;)V
 HSPLandroid/text/format/Time$TimeCalculator;->lookupZoneInfo(Ljava/lang/String;)Llibcore/util/ZoneInfo;
+HSPLandroid/text/format/Time$TimeCalculator;->setTimeInMillis(J)V
 HSPLandroid/text/format/Time;-><init>()V
-HSPLandroid/text/format/Time;->initialize(Ljava/lang/String;)V
+HSPLandroid/text/format/Time;->set(J)V
 HSPLandroid/text/method/AllCapsTransformationMethod;-><init>(Landroid/content/Context;)V
 HSPLandroid/text/method/AllCapsTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
 HSPLandroid/text/method/AllCapsTransformationMethod;->setLengthChangesAllowed(Z)V
@@ -11164,34 +11423,50 @@
 HSPLandroid/text/method/ArrowKeyMovementMethod;->canSelectArbitrarily()Z
 HSPLandroid/text/method/ArrowKeyMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
 HSPLandroid/text/method/ArrowKeyMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
+HSPLandroid/text/method/ArrowKeyMovementMethod;->onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V
 HSPLandroid/text/method/BaseKeyListener;-><init>()V
 HSPLandroid/text/method/BaseMovementMethod;-><init>()V
+HSPLandroid/text/method/LinkMovementMethod;-><init>()V
+HSPLandroid/text/method/LinkMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
+HSPLandroid/text/method/LinkMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
 HSPLandroid/text/method/MetaKeyKeyListener;-><init>()V
+HSPLandroid/text/method/MetaKeyKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I
 HSPLandroid/text/method/MetaKeyKeyListener;->isMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z
+HSPLandroid/text/method/MetaKeyKeyListener;->resetMetaState(Landroid/text/Spannable;)V
 HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;-><init>(Ljava/lang/CharSequence;[C[C)V
 HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->getChars(II[CI)V
 HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->length()I
 HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;-><init>(Landroid/text/Spanned;[C[C)V
 HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
+HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->nextSpanTransition(IILjava/lang/Class;)I
 HSPLandroid/text/method/ReplacementTransformationMethod;-><init>()V
 HSPLandroid/text/method/ReplacementTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
+HSPLandroid/text/method/ScrollingMovementMethod;-><init>()V
 HSPLandroid/text/method/SingleLineTransformationMethod;-><init>()V
 HSPLandroid/text/method/SingleLineTransformationMethod;->getInstance()Landroid/text/method/SingleLineTransformationMethod;
 HSPLandroid/text/method/SingleLineTransformationMethod;->getOriginal()[C
 HSPLandroid/text/method/SingleLineTransformationMethod;->getReplacement()[C
 HSPLandroid/text/method/TextKeyListener;-><init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V
+HSPLandroid/text/method/TextKeyListener;->getInstance()Landroid/text/method/TextKeyListener;
 HSPLandroid/text/method/TextKeyListener;->getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/TextKeyListener;
 HSPLandroid/text/method/TextKeyListener;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/text/method/TextKeyListener;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
 HSPLandroid/text/method/TextKeyListener;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
 HSPLandroid/text/style/CharacterStyle;-><init>()V
 HSPLandroid/text/style/CharacterStyle;->getUnderlying()Landroid/text/style/CharacterStyle;
 HSPLandroid/text/style/ClickableSpan;-><init>()V
 HSPLandroid/text/style/ForegroundColorSpan;-><init>(I)V
+HSPLandroid/text/style/ForegroundColorSpan;->updateDrawState(Landroid/text/TextPaint;)V
 HSPLandroid/text/style/MetricAffectingSpan;-><init>()V
 HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/CharacterStyle;
 HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/MetricAffectingSpan;
 HSPLandroid/text/style/StyleSpan;-><init>(I)V
+HSPLandroid/text/style/StyleSpan;->apply(Landroid/graphics/Paint;I)V
+HSPLandroid/text/style/StyleSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/StyleSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/StyleSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
 HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/text/style/UnderlineSpan;-><init>()V
 HSPLandroid/transition/ChangeBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/transition/ChangeBounds;->setResizeClip(Z)V
 HSPLandroid/transition/ChangeClipBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
@@ -11199,11 +11474,14 @@
 HSPLandroid/transition/ChangeTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/transition/Fade;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/transition/Transition;->setDuration(J)Landroid/transition/Transition;
 HSPLandroid/transition/TransitionInflater;-><init>(Landroid/content/Context;)V
 HSPLandroid/transition/TransitionInflater;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition;
 HSPLandroid/transition/TransitionInflater;->from(Landroid/content/Context;)Landroid/transition/TransitionInflater;
 HSPLandroid/transition/TransitionInflater;->inflateTransition(I)Landroid/transition/Transition;
 HSPLandroid/transition/TransitionManager;-><init>()V
+HSPLandroid/transition/TransitionManager;->endTransitions(Landroid/view/ViewGroup;)V
+HSPLandroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ArrayMap;
 HSPLandroid/transition/TransitionSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/transition/TransitionSet;->addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet;
 HSPLandroid/transition/TransitionSet;->addTransitionInternal(Landroid/transition/Transition;)V
@@ -11290,9 +11568,6 @@
 HSPLandroid/util/ArraySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLandroid/util/ArraySet;->valueAt(I)Ljava/lang/Object;
 HSPLandroid/util/ArraySet;->valueAtUnchecked(I)Ljava/lang/Object;
-HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;)V
-HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
-HSPLandroid/util/AtomicFile;->openRead()Ljava/io/FileInputStream;
 HSPLandroid/util/Base64$Coder;-><init>()V
 HSPLandroid/util/Base64$Decoder;-><init>(I[B)V
 HSPLandroid/util/Base64$Decoder;->process([BIIZ)Z
@@ -11347,8 +11622,6 @@
 HSPLandroid/util/JsonReader;->push(Landroid/util/JsonScope;)V
 HSPLandroid/util/JsonReader;->readLiteral()Landroid/util/JsonToken;
 HSPLandroid/util/JsonReader;->replaceTop(Landroid/util/JsonScope;)V
-HSPLandroid/util/KeyValueListParser;-><init>(C)V
-HSPLandroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V
 HSPLandroid/util/LocalLog;-><init>(I)V
 HSPLandroid/util/LocalLog;-><init>(IZ)V
 HSPLandroid/util/LocalLog;->append(Ljava/lang/String;)V
@@ -11408,12 +11681,15 @@
 HSPLandroid/util/LruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/util/LruCache;->evictAll()V
 HSPLandroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/util/LruCache;->hitCount()I
+HSPLandroid/util/LruCache;->missCount()I
 HSPLandroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/util/LruCache;->resize(I)V
 HSPLandroid/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/util/LruCache;->size()I
 HSPLandroid/util/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/util/LruCache;->snapshot()Ljava/util/Map;
 HSPLandroid/util/LruCache;->trimToSize(I)V
 HSPLandroid/util/MapCollections$ArrayIterator;-><init>(Landroid/util/MapCollections;I)V
 HSPLandroid/util/MapCollections$ArrayIterator;->hasNext()Z
@@ -11472,15 +11748,14 @@
 HSPLandroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
 HSPLandroid/util/Pair;->equals(Ljava/lang/Object;)Z
 HSPLandroid/util/Pair;->hashCode()I
-HSPLandroid/util/Pair;->toString()Ljava/lang/String;
 HSPLandroid/util/PathParser$PathData;-><init>(Landroid/util/PathParser$PathData;)V
 HSPLandroid/util/PathParser$PathData;-><init>(Ljava/lang/String;)V
 HSPLandroid/util/PathParser$PathData;->finalize()V
+HSPLandroid/util/PathParser;->access$000()J
 HSPLandroid/util/PathParser;->access$100(J)J
 HSPLandroid/util/PathParser;->access$200(Ljava/lang/String;I)J
 HSPLandroid/util/PathParser;->access$400(J)V
 HSPLandroid/util/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path;
-HSPLandroid/util/Patterns;-><clinit>()V
 HSPLandroid/util/Pools$SimplePool;-><init>(I)V
 HSPLandroid/util/Pools$SimplePool;->acquire()Ljava/lang/Object;
 HSPLandroid/util/Pools$SimplePool;->isInPool(Ljava/lang/Object;)Z
@@ -11489,6 +11764,7 @@
 HSPLandroid/util/Pools$SynchronizedPool;-><init>(ILjava/lang/Object;)V
 HSPLandroid/util/Pools$SynchronizedPool;->acquire()Ljava/lang/Object;
 HSPLandroid/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z
+HSPLandroid/util/PrintWriterPrinter;-><init>(Ljava/io/PrintWriter;)V
 HSPLandroid/util/Property;-><init>(Ljava/lang/Class;Ljava/lang/String;)V
 HSPLandroid/util/Property;->getName()Ljava/lang/String;
 HSPLandroid/util/Property;->getType()Ljava/lang/Class;
@@ -11571,12 +11847,11 @@
 HSPLandroid/util/StateSet;->get(I)[I
 HSPLandroid/util/StateSet;->stateSetMatches([I[I)Z
 HSPLandroid/util/StateSet;->trimStateSet([II)[I
+HSPLandroid/util/StatsLog;->write(Landroid/util/StatsEvent;)V
 HSPLandroid/util/StatsLog;->writeRaw([BI)V
 HSPLandroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;)V
 HSPLandroid/util/TimeUtils;->formatDurationLocked(JI)I
 HSPLandroid/util/TimeUtils;->printFieldLocked([CICIZI)I
-HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;J)V
-HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;JI)V
 HSPLandroid/util/TimingsTraceLog;->assertSameThread()V
 HSPLandroid/util/TimingsTraceLog;->logDuration(Ljava/lang/String;J)V
 HSPLandroid/util/TimingsTraceLog;->traceBegin(Ljava/lang/String;)V
@@ -11650,20 +11925,17 @@
 HSPLandroid/view/-$$Lambda$1kvF4JuyM42-wmyDVPAIYdPz1jE;-><init>(Landroid/view/RenderNodeAnimator;)V
 HSPLandroid/view/-$$Lambda$1kvF4JuyM42-wmyDVPAIYdPz1jE;->run()V
 HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$h0f2ZYL6peSaaEeCCkAoYs_YZvU;-><init>(Landroid/view/FocusFinder$FocusSorter;)V
+HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$h0f2ZYL6peSaaEeCCkAoYs_YZvU;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$kW7K1t9q7Y62V38r-7g6xRzqqq8;-><init>(Landroid/view/FocusFinder$FocusSorter;)V
+HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$kW7K1t9q7Y62V38r-7g6xRzqqq8;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/view/-$$Lambda$InsetsController$6uoSHBPvxV1C0JOZKhH1AyuNXmo;-><init>(Landroid/view/InsetsController;)V
-HSPLandroid/view/-$$Lambda$InsetsController$HI9QZ2HvGm6iykc-WONz2KPG61Q;-><init>(Landroid/view/InsetsController;)V
 HSPLandroid/view/-$$Lambda$InsetsController$RZT3QkL9zMFTeHtZbfcaHIzvlsc;-><clinit>()V
 HSPLandroid/view/-$$Lambda$InsetsController$RZT3QkL9zMFTeHtZbfcaHIzvlsc;-><init>()V
 HSPLandroid/view/-$$Lambda$InsetsController$zpmOxHfTFV_3me2u3C8YaXSUauQ;-><init>(Landroid/view/InsetsController;)V
 HSPLandroid/view/-$$Lambda$QI1s392qW8l6mC24bcy9050SkuY;-><init>(Landroid/view/View;)V
 HSPLandroid/view/-$$Lambda$View$llq76MkPXP4bNcb9oJt_msw0fnQ;-><init>(Landroid/view/View;)V
-HSPLandroid/view/-$$Lambda$ViewRootImpl$7A_3tkr_Kw4TZAeIUGVlOoTcZhg;-><init>(Landroid/view/ViewRootImpl;Ljava/util/ArrayList;)V
-HSPLandroid/view/-$$Lambda$ViewRootImpl$7A_3tkr_Kw4TZAeIUGVlOoTcZhg;->run()V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$DJd0VUYJgsebcnSohO6h8zc_ONI;-><init>(Landroid/view/ViewRootImpl;ZLjava/util/ArrayList;)V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$DJd0VUYJgsebcnSohO6h8zc_ONI;->run()V
-HSPLandroid/view/-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI;-><init>(Landroid/view/ViewRootImpl;Landroid/os/Handler;Ljava/util/ArrayList;)V
-HSPLandroid/view/-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI;->onFrameComplete(J)V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$vBfxngTfPtkwcFoa96FB0CWn5ZI;-><init>(Landroid/view/ViewRootImpl;Landroid/os/Handler;ZLjava/util/ArrayList;)V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$vBfxngTfPtkwcFoa96FB0CWn5ZI;->onFrameComplete(J)V
 HSPLandroid/view/-$$Lambda$WlJa6OPA72p3gYtA3nVKC7Z1tGY;-><init>(Landroid/view/View;)V
@@ -11673,8 +11945,6 @@
 HSPLandroid/view/AbsSavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/Choreographer$1;->initialValue()Landroid/view/Choreographer;
 HSPLandroid/view/Choreographer$1;->initialValue()Ljava/lang/Object;
-HSPLandroid/view/Choreographer$2;->initialValue()Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer$2;->initialValue()Ljava/lang/Object;
 HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;)V
 HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;Landroid/view/Choreographer$1;)V
 HSPLandroid/view/Choreographer$CallbackQueue;->addCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)V
@@ -11723,6 +11993,7 @@
 HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V
 HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/view/ContextThemeWrapper;->attachBaseContext(Landroid/content/Context;)V
+HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetManager;
 HSPLandroid/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources;
 HSPLandroid/view/ContextThemeWrapper;->getResourcesInternal()Landroid/content/res/Resources;
 HSPLandroid/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
@@ -11761,7 +12032,6 @@
 HSPLandroid/view/Display;->getRotation()I
 HSPLandroid/view/Display;->getSize(Landroid/graphics/Point;)V
 HSPLandroid/view/Display;->getState()I
-HSPLandroid/view/Display;->getSupportedColorModes()[I
 HSPLandroid/view/Display;->getSupportedModes()[Landroid/view/Display$Mode;
 HSPLandroid/view/Display;->getSupportedWideColorGamut()[Landroid/graphics/ColorSpace;
 HSPLandroid/view/Display;->getWidth()I
@@ -11818,21 +12088,26 @@
 HSPLandroid/view/FocusFinder$1;->initialValue()Landroid/view/FocusFinder;
 HSPLandroid/view/FocusFinder$1;->initialValue()Ljava/lang/Object;
 HSPLandroid/view/FocusFinder$FocusSorter;-><init>()V
+HSPLandroid/view/FocusFinder$FocusSorter;->lambda$new$0$FocusFinder$FocusSorter(Landroid/view/View;Landroid/view/View;)I
+HSPLandroid/view/FocusFinder$FocusSorter;->lambda$new$1$FocusFinder$FocusSorter(Landroid/view/View;Landroid/view/View;)I
 HSPLandroid/view/FocusFinder$FocusSorter;->sort([Landroid/view/View;IILandroid/view/ViewGroup;Z)V
 HSPLandroid/view/FocusFinder$UserSpecifiedFocusComparator;-><init>(Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;)V
 HSPLandroid/view/FocusFinder;-><init>()V
 HSPLandroid/view/FocusFinder;-><init>(Landroid/view/FocusFinder$1;)V
 HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
+HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;ILjava/util/ArrayList;)Landroid/view/View;
+HSPLandroid/view/FocusFinder;->findNextFocusInAbsoluteDirection(Ljava/util/ArrayList;Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
+HSPLandroid/view/FocusFinder;->findNextUserSpecifiedFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/FocusFinder;->getEffectiveRoot(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup;
 HSPLandroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;
 HSPLandroid/view/FocusFinder;->sort([Landroid/view/View;IILandroid/view/ViewGroup;Z)V
 HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;)V
-HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;Landroid/os/Handler;)V
 HSPLandroid/view/GestureDetector$GestureHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;-><init>()V
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDown(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
+HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onLongPress(Landroid/view/MotionEvent;)V
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onShowPress(Landroid/view/MotionEvent;)V
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onSingleTapConfirmed(Landroid/view/MotionEvent;)Z
@@ -11845,6 +12120,7 @@
 HSPLandroid/view/GestureDetector;->access$300(Landroid/view/GestureDetector;)V
 HSPLandroid/view/GestureDetector;->access$400(Landroid/view/GestureDetector;)Landroid/view/GestureDetector$OnDoubleTapListener;
 HSPLandroid/view/GestureDetector;->access$500(Landroid/view/GestureDetector;)Z
+HSPLandroid/view/GestureDetector;->access$602(Landroid/view/GestureDetector;Z)Z
 HSPLandroid/view/GestureDetector;->cancel()V
 HSPLandroid/view/GestureDetector;->dispatchLongPress()V
 HSPLandroid/view/GestureDetector;->init(Landroid/content/Context;)V
@@ -11852,6 +12128,7 @@
 HSPLandroid/view/GestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/GestureDetector;->recordGestureClassification(I)V
 HSPLandroid/view/GestureDetector;->setContextClickListener(Landroid/view/GestureDetector$OnContextClickListener;)V
+HSPLandroid/view/GestureDetector;->setIsLongpressEnabled(Z)V
 HSPLandroid/view/GestureDetector;->setOnDoubleTapListener(Landroid/view/GestureDetector$OnDoubleTapListener;)V
 HSPLandroid/view/GestureExclusionTracker$GestureExclusionViewInfo;-><init>(Landroid/view/View;)V
 HSPLandroid/view/GestureExclusionTracker$GestureExclusionViewInfo;->getView()Landroid/view/View;
@@ -11875,20 +12152,24 @@
 HSPLandroid/view/IGraphicsStats$Stub$Proxy;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor;
 HSPLandroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;
 HSPLandroid/view/IGraphicsStatsCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IGraphicsStatsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/view/IWindow$Stub;-><init>()V
 HSPLandroid/view/IWindow$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/view/IWindow$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F
+HSPLandroid/view/IWindowManager$Stub$Proxy;->getWindowInsets(Landroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)V
 HSPLandroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z
 HSPLandroid/view/IWindowManager$Stub$Proxy;->isKeyguardLocked()Z
 HSPLandroid/view/IWindowManager$Stub$Proxy;->openSession(Landroid/view/IWindowSessionCallback;)Landroid/view/IWindowSession;
+HSPLandroid/view/IWindowManager$Stub$Proxy;->useBLAST()Z
 HSPLandroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
 HSPLandroid/view/IWindowSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->addToDisplay(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
 HSPLandroid/view/IWindowSession$Stub$Proxy;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->getDisplayFrame(Landroid/view/IWindow;Landroid/graphics/Rect;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->getInTouchMode()Z
-HSPLandroid/view/IWindowSession$Stub$Proxy;->insetsModified(Landroid/view/IWindow;Landroid/view/InsetsState;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->pokeDrawLock(Landroid/os/IBinder;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;Landroid/graphics/Point;Landroid/view/SurfaceControl;)I
 HSPLandroid/view/IWindowSession$Stub$Proxy;->remove(Landroid/view/IWindow;)V
@@ -11900,6 +12181,7 @@
 HSPLandroid/view/ImeFocusController;->checkFocus(ZZ)Z
 HSPLandroid/view/ImeFocusController;->getImmDelegate()Landroid/view/ImeFocusController$InputMethodManagerDelegate;
 HSPLandroid/view/ImeFocusController;->getServedView()Landroid/view/View;
+HSPLandroid/view/ImeFocusController;->hasImeFocus()Z
 HSPLandroid/view/ImeFocusController;->isInLocalFocusMode(Landroid/view/WindowManager$LayoutParams;)Z
 HSPLandroid/view/ImeFocusController;->onPostWindowFocus(Landroid/view/View;ZLandroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/view/ImeFocusController;->onPreWindowFocus(ZLandroid/view/WindowManager$LayoutParams;)V
@@ -11948,19 +12230,18 @@
 HSPLandroid/view/InputEventReceiver;->finishInputEvent(Landroid/view/InputEvent;Z)V
 HSPLandroid/view/InputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 HSPLandroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V
+HSPLandroid/view/InputEventSender;->dispose()V
 HSPLandroid/view/InputEventSender;->dispose(Z)V
 HSPLandroid/view/InputEventSender;->finalize()V
 HSPLandroid/view/InputEventSender;->sendInputEvent(ILandroid/view/InputEvent;)Z
 HSPLandroid/view/InsetsController;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/InsetsController;-><init>(Landroid/view/ViewRootImpl;Ljava/util/function/BiFunction;Landroid/os/Handler;)V
 HSPLandroid/view/InsetsController;->applyLocalVisibilityOverride()V
-HSPLandroid/view/InsetsController;->calculateInsets(ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;I)Landroid/view/WindowInsets;
 HSPLandroid/view/InsetsController;->calculateInsets(ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;II)Landroid/view/WindowInsets;
 HSPLandroid/view/InsetsController;->calculateVisibleInsets(Landroid/graphics/Rect;I)Landroid/graphics/Rect;
 HSPLandroid/view/InsetsController;->getState()Landroid/view/InsetsState;
 HSPLandroid/view/InsetsController;->onFrameChanged(Landroid/graphics/Rect;)V
 HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z
-HSPLandroid/view/InsetsController;->sendStateToWindowManager()V
 HSPLandroid/view/InsetsFlags;-><init>()V
 HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSource;
 HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -11976,7 +12257,6 @@
 HSPLandroid/view/InsetsState;-><init>()V
 HSPLandroid/view/InsetsState;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;IILandroid/util/SparseIntArray;)Landroid/view/WindowInsets;
-HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;ILandroid/util/SparseIntArray;)Landroid/view/WindowInsets;
 HSPLandroid/view/InsetsState;->calculateVisibleInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Landroid/graphics/Rect;
 HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;)Z
 HSPLandroid/view/InsetsState;->getSource(I)Landroid/view/InsetsSource;
@@ -12009,6 +12289,7 @@
 HSPLandroid/view/KeyEvent;->getKeyCode()I
 HSPLandroid/view/KeyEvent;->getMetaState()I
 HSPLandroid/view/KeyEvent;->getRepeatCount()I
+HSPLandroid/view/KeyEvent;->getSource()I
 HSPLandroid/view/KeyEvent;->getUnicodeChar()I
 HSPLandroid/view/KeyEvent;->getUnicodeChar(I)I
 HSPLandroid/view/KeyEvent;->isCanceled()Z
@@ -12020,6 +12301,7 @@
 HSPLandroid/view/KeyEvent;->obtain(JJIIIIIIIII[BLjava/lang/String;)Landroid/view/KeyEvent;
 HSPLandroid/view/KeyEvent;->recycleIfNeededAfterDispatch()V
 HSPLandroid/view/KeyEvent;->startTracking()V
+HSPLandroid/view/KeyEvent;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/LayoutInflater$FactoryMerger;-><init>(Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;)V
 HSPLandroid/view/LayoutInflater$FactoryMerger;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
 HSPLandroid/view/LayoutInflater;-><init>(Landroid/content/Context;)V
@@ -12075,6 +12357,7 @@
 HSPLandroid/view/MotionEvent;->getHistoricalX(II)F
 HSPLandroid/view/MotionEvent;->getHistoricalY(II)F
 HSPLandroid/view/MotionEvent;->getHistorySize()I
+HSPLandroid/view/MotionEvent;->getMetaState()I
 HSPLandroid/view/MotionEvent;->getPointerCount()I
 HSPLandroid/view/MotionEvent;->getPointerId(I)I
 HSPLandroid/view/MotionEvent;->getPointerIdBits()I
@@ -12097,9 +12380,12 @@
 HSPLandroid/view/MotionEvent;->recycle()V
 HSPLandroid/view/MotionEvent;->setAction(I)V
 HSPLandroid/view/MotionEvent;->setCursorPosition(FF)V
+HSPLandroid/view/MotionEvent;->transform(Landroid/graphics/Matrix;)V
 HSPLandroid/view/MotionEvent;->updateCursorPosition()V
 HSPLandroid/view/PointerIcon$2;-><init>()V
+HSPLandroid/view/PointerIcon$2;->onDisplayChanged(I)V
 HSPLandroid/view/PointerIcon;-><init>(I)V
+HSPLandroid/view/PointerIcon;->access$200()Landroid/util/SparseArray;
 HSPLandroid/view/PointerIcon;->getSystemIcon(Landroid/content/Context;I)Landroid/view/PointerIcon;
 HSPLandroid/view/PointerIcon;->getSystemIconTypeIndex(I)I
 HSPLandroid/view/PointerIcon;->registerDisplayListener(Landroid/content/Context;)V
@@ -12128,6 +12414,9 @@
 HSPLandroid/view/RenderNodeAnimator;->start()V
 HSPLandroid/view/RenderNodeAnimatorSetHelper;->createNativeInterpolator(Landroid/animation/TimeInterpolator;J)J
 HSPLandroid/view/RenderNodeAnimatorSetHelper;->getTarget(Landroid/graphics/RecordingCanvas;)Landroid/graphics/RenderNode;
+HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;Landroid/os/Handler;)V
+HSPLandroid/view/ScaleGestureDetector;->setQuickScaleEnabled(Z)V
+HSPLandroid/view/ScaleGestureDetector;->setStylusScaleEnabled(Z)V
 HSPLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;)V
 HSPLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;Landroid/view/Surface$1;)V
 HSPLandroid/view/Surface;-><init>()V
@@ -12158,6 +12447,7 @@
 HSPLandroid/view/SurfaceControl$Transaction;->apply(Z)V
 HSPLandroid/view/SurfaceControl$Transaction;->applyResizedSurfaces()V
 HSPLandroid/view/SurfaceControl$Transaction;->checkPreconditions(Landroid/view/SurfaceControl;)V
+HSPLandroid/view/SurfaceControl$Transaction;->deferTransactionUntil(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;J)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->hide(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->remove(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->reparent(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
@@ -12177,6 +12467,7 @@
 HSPLandroid/view/SurfaceControl;->access$1100(JJFF)V
 HSPLandroid/view/SurfaceControl;->access$2000(JJFFFF)V
 HSPLandroid/view/SurfaceControl;->access$2300(JJIIII)V
+HSPLandroid/view/SurfaceControl;->access$2400(JJF)V
 HSPLandroid/view/SurfaceControl;->access$300(Landroid/view/SurfaceControl;)V
 HSPLandroid/view/SurfaceControl;->access$400()J
 HSPLandroid/view/SurfaceControl;->access$4400(JLandroid/os/Parcel;)V
@@ -12189,6 +12480,8 @@
 HSPLandroid/view/SurfaceControl;->release()V
 HSPLandroid/view/SurfaceSession;-><init>()V
 HSPLandroid/view/SurfaceSession;->finalize()V
+HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/view/SurfaceView;->invalidate(Z)V
 HSPLandroid/view/ThreadedRenderer;-><init>(Landroid/content/Context;ZLjava/lang/String;)V
 HSPLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/String;)Landroid/view/ThreadedRenderer;
 HSPLandroid/view/ThreadedRenderer;->destroy()V
@@ -12226,13 +12519,23 @@
 HSPLandroid/view/View$1;->positionLost(J)V
 HSPLandroid/view/View$3;->setValue(Landroid/view/View;F)V
 HSPLandroid/view/View$3;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$4;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$4;->setValue(Ljava/lang/Object;F)V
 HSPLandroid/view/View$5;->setValue(Landroid/view/View;F)V
 HSPLandroid/view/View$5;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$6;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$6;->setValue(Ljava/lang/Object;F)V
 HSPLandroid/view/View$AccessibilityDelegate;-><init>()V
 HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V
 HSPLandroid/view/View$AttachInfo;-><init>(Landroid/view/IWindowSession;Landroid/view/IWindow;Landroid/view/Display;Landroid/view/ViewRootImpl;Landroid/os/Handler;Landroid/view/View$AttachInfo$Callbacks;Landroid/content/Context;)V
 HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcelable;)V
 HSPLandroid/view/View$BaseSavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/View$CheckForLongPress;-><init>(Landroid/view/View;)V
+HSPLandroid/view/View$CheckForLongPress;-><init>(Landroid/view/View;Landroid/view/View$1;)V
+HSPLandroid/view/View$CheckForLongPress;->rememberPressedState()V
+HSPLandroid/view/View$CheckForLongPress;->rememberWindowAttachCount()V
+HSPLandroid/view/View$CheckForLongPress;->setAnchor(FF)V
+HSPLandroid/view/View$CheckForLongPress;->setClassification(I)V
 HSPLandroid/view/View$CheckForTap;-><init>(Landroid/view/View;)V
 HSPLandroid/view/View$CheckForTap;-><init>(Landroid/view/View;Landroid/view/View$1;)V
 HSPLandroid/view/View$CheckForTap;->run()V
@@ -12240,16 +12543,21 @@
 HSPLandroid/view/View$ForegroundInfo;-><init>(Landroid/view/View$1;)V
 HSPLandroid/view/View$ForegroundInfo;->access$100(Landroid/view/View$ForegroundInfo;)Z
 HSPLandroid/view/View$ForegroundInfo;->access$102(Landroid/view/View$ForegroundInfo;Z)Z
+HSPLandroid/view/View$ForegroundInfo;->access$1600(Landroid/view/View$ForegroundInfo;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/view/View$ForegroundInfo;->access$1602(Landroid/view/View$ForegroundInfo;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View$ForegroundInfo;->access$1700(Landroid/view/View$ForegroundInfo;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/view/View$ForegroundInfo;->access$1702(Landroid/view/View$ForegroundInfo;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/view/View$ForegroundInfo;->access$2202(Landroid/view/View$ForegroundInfo;Z)Z
 HSPLandroid/view/View$ForegroundInfo;->access$2302(Landroid/view/View$ForegroundInfo;Z)Z
 HSPLandroid/view/View$ForegroundInfo;->access$2600(Landroid/view/View$ForegroundInfo;)I
 HSPLandroid/view/View$ForegroundInfo;->access$2602(Landroid/view/View$ForegroundInfo;I)I
 HSPLandroid/view/View$ForegroundInfo;->access$2700(Landroid/view/View$ForegroundInfo;)I
+HSPLandroid/view/View$ForegroundInfo;->access$2700(Landroid/view/View$ForegroundInfo;)Landroid/view/View$TintInfo;
 HSPLandroid/view/View$ForegroundInfo;->access$2702(Landroid/view/View$ForegroundInfo;I)I
-HSPLandroid/view/View$ForegroundInfo;->access$2800(Landroid/view/View$ForegroundInfo;)Landroid/view/View$TintInfo;
+HSPLandroid/view/View$ForegroundInfo;->access$2900(Landroid/view/View$ForegroundInfo;)Landroid/graphics/Rect;
 HSPLandroid/view/View$ListenerInfo;-><init>()V
+HSPLandroid/view/View$ListenerInfo;->access$1400(Landroid/view/View$ListenerInfo;)Ljava/util/List;
 HSPLandroid/view/View$ListenerInfo;->access$1500(Landroid/view/View$ListenerInfo;)Ljava/util/List;
+HSPLandroid/view/View$ListenerInfo;->access$1800(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
 HSPLandroid/view/View$ListenerInfo;->access$1900(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
 HSPLandroid/view/View$ListenerInfo;->access$200(Landroid/view/View$ListenerInfo;)Ljava/util/ArrayList;
 HSPLandroid/view/View$ListenerInfo;->access$202(Landroid/view/View$ListenerInfo;Ljava/util/ArrayList;)Ljava/util/ArrayList;
@@ -12273,14 +12581,16 @@
 HSPLandroid/view/View$PerformClick;->run()V
 HSPLandroid/view/View$ScrollabilityCache;-><init>(Landroid/view/ViewConfiguration;Landroid/view/View;)V
 HSPLandroid/view/View$ScrollabilityCache;->run()V
+HSPLandroid/view/View$TintInfo;-><init>()V
 HSPLandroid/view/View$TooltipInfo;-><init>()V
 HSPLandroid/view/View$TooltipInfo;-><init>(Landroid/view/View$1;)V
+HSPLandroid/view/View$TooltipInfo;->access$4000(Landroid/view/View$TooltipInfo;)V
 HSPLandroid/view/View$TooltipInfo;->clearAnchorPos()V
 HSPLandroid/view/View$TransformationInfo;-><init>()V
-HSPLandroid/view/View$TransformationInfo;->access$2400(Landroid/view/View$TransformationInfo;)F
+HSPLandroid/view/View$TransformationInfo;->access$2300(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
 HSPLandroid/view/View$TransformationInfo;->access$2400(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
-HSPLandroid/view/View$TransformationInfo;->access$2500(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
-HSPLandroid/view/View$TransformationInfo;->access$2502(Landroid/view/View$TransformationInfo;Landroid/graphics/Matrix;)Landroid/graphics/Matrix;
+HSPLandroid/view/View$TransformationInfo;->access$2500(Landroid/view/View$TransformationInfo;)F
+HSPLandroid/view/View$TransformationInfo;->access$2502(Landroid/view/View$TransformationInfo;F)F
 HSPLandroid/view/View$TransformationInfo;->access$2600(Landroid/view/View$TransformationInfo;)F
 HSPLandroid/view/View$TransformationInfo;->access$2602(Landroid/view/View$TransformationInfo;F)F
 HSPLandroid/view/View$UnsetPressedState;-><init>(Landroid/view/View;)V
@@ -12293,13 +12603,16 @@
 HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/view/View;->access$3100()Z
 HSPLandroid/view/View;->access$3200()Z
+HSPLandroid/view/View;->access$3200(Landroid/view/View;I)V
 HSPLandroid/view/View;->access$3300(Landroid/view/View;I)V
+HSPLandroid/view/View;->access$3600(Landroid/view/View;)Z
 HSPLandroid/view/View;->access$3700(Landroid/view/View;)Z
 HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;I)V
 HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;II)V
 HSPLandroid/view/View;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V
 HSPLandroid/view/View;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
 HSPLandroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/View;->announceForAccessibility(Ljava/lang/CharSequence;)V
 HSPLandroid/view/View;->applyBackgroundTint()V
 HSPLandroid/view/View;->applyForegroundTint()V
 HSPLandroid/view/View;->applyInsets(Landroid/graphics/Rect;)V
@@ -12315,6 +12628,7 @@
 HSPLandroid/view/View;->canReceivePointerEvents()Z
 HSPLandroid/view/View;->canResolveLayoutDirection()Z
 HSPLandroid/view/View;->canResolveTextDirection()Z
+HSPLandroid/view/View;->canScrollHorizontally(I)Z
 HSPLandroid/view/View;->canScrollVertically(I)Z
 HSPLandroid/view/View;->canTakeFocus()Z
 HSPLandroid/view/View;->cancel(Landroid/view/View$SendAccessibilityEventThrottle;)V
@@ -12334,6 +12648,7 @@
 HSPLandroid/view/View;->combineVisibility(II)I
 HSPLandroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->computeHorizontalScrollExtent()I
+HSPLandroid/view/View;->computeHorizontalScrollRange()I
 HSPLandroid/view/View;->computeOpaqueFlags()V
 HSPLandroid/view/View;->computeScroll()V
 HSPLandroid/view/View;->computeSystemWindowInsets(Landroid/view/WindowInsets;Landroid/graphics/Rect;)Landroid/view/WindowInsets;
@@ -12350,11 +12665,15 @@
 HSPLandroid/view/View;->dispatchDetachedFromWindow()V
 HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V
 HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V
+HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V
 HSPLandroid/view/View;->dispatchPointerEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/View;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/View;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/View;->dispatchScreenStateChanged(I)V
+HSPLandroid/view/View;->dispatchSetActivated(Z)V
 HSPLandroid/view/View;->dispatchSetPressed(Z)V
 HSPLandroid/view/View;->dispatchSetSelected(Z)V
+HSPLandroid/view/View;->dispatchStartTemporaryDetach()V
 HSPLandroid/view/View;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z
 HSPLandroid/view/View;->dispatchVisibilityChanged(Landroid/view/View;I)V
@@ -12372,11 +12691,15 @@
 HSPLandroid/view/View;->findAccessibilityFocusHost(Z)Landroid/view/View;
 HSPLandroid/view/View;->findFocus()Landroid/view/View;
 HSPLandroid/view/View;->findKeyboardNavigationCluster()Landroid/view/View;
+HSPLandroid/view/View;->findUserSetNextFocus(Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/View;->findViewById(I)Landroid/view/View;
 HSPLandroid/view/View;->findViewTraversal(I)Landroid/view/View;
 HSPLandroid/view/View;->fitSystemWindows(Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->fitSystemWindowsInt(Landroid/graphics/Rect;)Z
+HSPLandroid/view/View;->focusSearch(I)Landroid/view/View;
 HSPLandroid/view/View;->forceLayout()V
+HSPLandroid/view/View;->generateViewId()I
+HSPLandroid/view/View;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
 HSPLandroid/view/View;->getAccessibilityLiveRegion()I
 HSPLandroid/view/View;->getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;
@@ -12390,6 +12713,7 @@
 HSPLandroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View;->getBaseline()I
 HSPLandroid/view/View;->getBottom()I
+HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V
 HSPLandroid/view/View;->getClipToOutline()Z
 HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence;
 HSPLandroid/view/View;->getContext()Landroid/content/Context;
@@ -12407,6 +12731,7 @@
 HSPLandroid/view/View;->getFocusableAttribute(Landroid/content/res/TypedArray;)I
 HSPLandroid/view/View;->getForeground()Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View;->getForegroundGravity()I
+HSPLandroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;Landroid/graphics/Point;)Z
 HSPLandroid/view/View;->getHandler()Landroid/os/Handler;
 HSPLandroid/view/View;->getHasOverlappingRendering()Z
@@ -12457,6 +12782,7 @@
 HSPLandroid/view/View;->getRunQueue()Landroid/view/HandlerActionQueue;
 HSPLandroid/view/View;->getScaleX()F
 HSPLandroid/view/View;->getScaleY()F
+HSPLandroid/view/View;->getScrollBarStyle()I
 HSPLandroid/view/View;->getScrollX()I
 HSPLandroid/view/View;->getScrollY()I
 HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
@@ -12470,6 +12796,7 @@
 HSPLandroid/view/View;->getTextDirection()I
 HSPLandroid/view/View;->getTop()I
 HSPLandroid/view/View;->getTransitionAlpha()F
+HSPLandroid/view/View;->getTransitionName()Ljava/lang/String;
 HSPLandroid/view/View;->getTranslationX()F
 HSPLandroid/view/View;->getTranslationY()F
 HSPLandroid/view/View;->getTranslationZ()F
@@ -12483,6 +12810,7 @@
 HSPLandroid/view/View;->getWindowSystemUiVisibility()I
 HSPLandroid/view/View;->getWindowToken()Landroid/os/IBinder;
 HSPLandroid/view/View;->getWindowVisibility()I
+HSPLandroid/view/View;->getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V
 HSPLandroid/view/View;->getX()F
 HSPLandroid/view/View;->getY()F
 HSPLandroid/view/View;->getZ()F
@@ -12496,6 +12824,7 @@
 HSPLandroid/view/View;->hasIdentityMatrix()Z
 HSPLandroid/view/View;->hasImeFocus()Z
 HSPLandroid/view/View;->hasListenersForAccessibility()Z
+HSPLandroid/view/View;->hasNestedScrollingParent()Z
 HSPLandroid/view/View;->hasOnClickListeners()Z
 HSPLandroid/view/View;->hasOverlappingRendering()Z
 HSPLandroid/view/View;->hasPendingLongPressCallback()Z
@@ -12533,6 +12862,7 @@
 HSPLandroid/view/View;->isAutofillable()Z
 HSPLandroid/view/View;->isAutofilled()Z
 HSPLandroid/view/View;->isClickable()Z
+HSPLandroid/view/View;->isContextClickable()Z
 HSPLandroid/view/View;->isDefaultFocusHighlightNeeded(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)Z
 HSPLandroid/view/View;->isEnabled()Z
 HSPLandroid/view/View;->isFocusable()Z
@@ -12540,6 +12870,7 @@
 HSPLandroid/view/View;->isFocused()Z
 HSPLandroid/view/View;->isFocusedByDefault()Z
 HSPLandroid/view/View;->isForegroundInsidePadding()Z
+HSPLandroid/view/View;->isHapticFeedbackEnabled()Z
 HSPLandroid/view/View;->isHardwareAccelerated()Z
 HSPLandroid/view/View;->isHorizontalFadingEdgeEnabled()Z
 HSPLandroid/view/View;->isHorizontalScrollBarEnabled()Z
@@ -12582,6 +12913,7 @@
 HSPLandroid/view/View;->layout(IIII)V
 HSPLandroid/view/View;->makeFrameworkOptionalFitsSystemWindows()V
 HSPLandroid/view/View;->makeOptionalFitsSystemWindows()V
+HSPLandroid/view/View;->mapRectFromViewToScreenCoords(Landroid/graphics/RectF;Z)V
 HSPLandroid/view/View;->measure(II)V
 HSPLandroid/view/View;->mergeDrawableStates([I[I)[I
 HSPLandroid/view/View;->needGlobalAttributesUpdate(Z)V
@@ -12615,17 +12947,21 @@
 HSPLandroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
 HSPLandroid/view/View;->onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/View;->onFinishInflate()V
+HSPLandroid/view/View;->onFinishTemporaryDetach()V
 HSPLandroid/view/View;->onFocusChanged(ZILandroid/graphics/Rect;)V
 HSPLandroid/view/View;->onFocusLost()V
 HSPLandroid/view/View;->onLayout(ZIIII)V
 HSPLandroid/view/View;->onMeasure(II)V
+HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V
 HSPLandroid/view/View;->onResolveDrawables(I)V
+HSPLandroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V
 HSPLandroid/view/View;->onRtlPropertiesChanged(I)V
 HSPLandroid/view/View;->onSaveInstanceState()Landroid/os/Parcelable;
 HSPLandroid/view/View;->onScreenStateChanged(I)V
 HSPLandroid/view/View;->onScrollChanged(IIII)V
 HSPLandroid/view/View;->onSetAlpha(I)Z
 HSPLandroid/view/View;->onSizeChanged(IIII)V
+HSPLandroid/view/View;->onStartTemporaryDetach()V
 HSPLandroid/view/View;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/View;->onVisibilityAggregated(Z)V
 HSPLandroid/view/View;->onVisibilityChanged(Landroid/view/View;I)V
@@ -12645,6 +12981,7 @@
 HSPLandroid/view/View;->postInvalidateDelayed(J)V
 HSPLandroid/view/View;->postInvalidateOnAnimation()V
 HSPLandroid/view/View;->postOnAnimation(Ljava/lang/Runnable;)V
+HSPLandroid/view/View;->postOnAnimationDelayed(Ljava/lang/Runnable;J)V
 HSPLandroid/view/View;->postSendViewScrolledAccessibilityEventCallback(II)V
 HSPLandroid/view/View;->postUpdateSystemGestureExclusionRects()V
 HSPLandroid/view/View;->rebuildOutline()V
@@ -12665,6 +13002,8 @@
 HSPLandroid/view/View;->requestFocus(ILandroid/graphics/Rect;)Z
 HSPLandroid/view/View;->requestFocusNoSearch(ILandroid/graphics/Rect;)Z
 HSPLandroid/view/View;->requestLayout()V
+HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;)Z
+HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;Z)Z
 HSPLandroid/view/View;->resetDisplayList()V
 HSPLandroid/view/View;->resetPressedState()V
 HSPLandroid/view/View;->resetResolvedDrawables()V
@@ -12685,11 +13024,14 @@
 HSPLandroid/view/View;->resolveSizeAndState(III)I
 HSPLandroid/view/View;->resolveTextAlignment()Z
 HSPLandroid/view/View;->resolveTextDirection()Z
+HSPLandroid/view/View;->restoreHierarchyState(Landroid/util/SparseArray;)V
 HSPLandroid/view/View;->retrieveExplicitStyle(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+HSPLandroid/view/View;->rootViewRequestFocus()Z
 HSPLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;)F
 HSPLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;FF)F
 HSPLandroid/view/View;->saveAttributeDataForStyleable(Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V
 HSPLandroid/view/View;->saveHierarchyState(Landroid/util/SparseArray;)V
+HSPLandroid/view/View;->scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V
 HSPLandroid/view/View;->scrollTo(II)V
 HSPLandroid/view/View;->sendAccessibilityEvent(I)V
 HSPLandroid/view/View;->sendAccessibilityEventInternal(I)V
@@ -12713,6 +13055,7 @@
 HSPLandroid/view/View;->setContentDescription(Ljava/lang/CharSequence;)V
 HSPLandroid/view/View;->setDefaultFocusHighlightEnabled(Z)V
 HSPLandroid/view/View;->setDisplayListProperties(Landroid/graphics/RenderNode;)V
+HSPLandroid/view/View;->setDrawingCacheEnabled(Z)V
 HSPLandroid/view/View;->setElevation(F)V
 HSPLandroid/view/View;->setEnabled(Z)V
 HSPLandroid/view/View;->setFitsSystemWindows(Z)V
@@ -12725,6 +13068,7 @@
 HSPLandroid/view/View;->setFrame(IIII)Z
 HSPLandroid/view/View;->setHasTransientState(Z)V
 HSPLandroid/view/View;->setHorizontalFadingEdgeEnabled(Z)V
+HSPLandroid/view/View;->setHorizontalScrollBarEnabled(Z)V
 HSPLandroid/view/View;->setId(I)V
 HSPLandroid/view/View;->setImportantForAccessibility(I)V
 HSPLandroid/view/View;->setImportantForAutofill(I)V
@@ -12739,6 +13083,7 @@
 HSPLandroid/view/View;->setMeasuredDimension(II)V
 HSPLandroid/view/View;->setMeasuredDimensionRaw(II)V
 HSPLandroid/view/View;->setMinimumHeight(I)V
+HSPLandroid/view/View;->setMinimumWidth(I)V
 HSPLandroid/view/View;->setOnApplyWindowInsetsListener(Landroid/view/View$OnApplyWindowInsetsListener;)V
 HSPLandroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
 HSPLandroid/view/View;->setOnFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V
@@ -12751,8 +13096,10 @@
 HSPLandroid/view/View;->setPaddingRelative(IIII)V
 HSPLandroid/view/View;->setPivotX(F)V
 HSPLandroid/view/View;->setPivotY(F)V
+HSPLandroid/view/View;->setPointerIcon(Landroid/view/PointerIcon;)V
 HSPLandroid/view/View;->setPressed(Z)V
 HSPLandroid/view/View;->setPressed(ZFF)V
+HSPLandroid/view/View;->setRight(I)V
 HSPLandroid/view/View;->setRotation(F)V
 HSPLandroid/view/View;->setRotationX(F)V
 HSPLandroid/view/View;->setRotationY(F)V
@@ -12770,6 +13117,8 @@
 HSPLandroid/view/View;->setTag(Ljava/lang/Object;)V
 HSPLandroid/view/View;->setTagInternal(ILjava/lang/Object;)V
 HSPLandroid/view/View;->setTooltipText(Ljava/lang/CharSequence;)V
+HSPLandroid/view/View;->setTop(I)V
+HSPLandroid/view/View;->setTouchDelegate(Landroid/view/TouchDelegate;)V
 HSPLandroid/view/View;->setTransitionName(Ljava/lang/String;)V
 HSPLandroid/view/View;->setTranslationX(F)V
 HSPLandroid/view/View;->setTranslationY(F)V
@@ -12782,6 +13131,7 @@
 HSPLandroid/view/View;->sizeChange(IIII)V
 HSPLandroid/view/View;->skipInvalidate()Z
 HSPLandroid/view/View;->startAnimation(Landroid/view/animation/Animation;)V
+HSPLandroid/view/View;->startNestedScroll(I)Z
 HSPLandroid/view/View;->stopNestedScroll()V
 HSPLandroid/view/View;->switchDefaultFocusHighlight()V
 HSPLandroid/view/View;->toString()Ljava/lang/String;
@@ -12793,6 +13143,7 @@
 HSPLandroid/view/View;->updateFocusedInCluster(Landroid/view/View;I)V
 HSPLandroid/view/View;->updateSystemGestureExclusionRects()V
 HSPLandroid/view/View;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/view/View;->willNotDraw()Z
 HSPLandroid/view/ViewAnimationHostBridge;-><init>(Landroid/view/View;)V
 HSPLandroid/view/ViewAnimationHostBridge;->isAttached()Z
 HSPLandroid/view/ViewAnimationHostBridge;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
@@ -12811,12 +13162,14 @@
 HSPLandroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I
 HSPLandroid/view/ViewConfiguration;->getScaledMinScrollbarTouchTarget()I
 HSPLandroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I
+HSPLandroid/view/ViewConfiguration;->getScaledMinimumScalingSpan()I
 HSPLandroid/view/ViewConfiguration;->getScaledOverflingDistance()I
 HSPLandroid/view/ViewConfiguration;->getScaledOverscrollDistance()I
 HSPLandroid/view/ViewConfiguration;->getScaledPagingTouchSlop()I
 HSPLandroid/view/ViewConfiguration;->getScaledScrollBarSize()I
 HSPLandroid/view/ViewConfiguration;->getScaledTouchSlop()I
 HSPLandroid/view/ViewConfiguration;->getScaledVerticalScrollFactor()F
+HSPLandroid/view/ViewConfiguration;->getScaledWindowTouchSlop()I
 HSPLandroid/view/ViewConfiguration;->getScrollBarFadeDuration()I
 HSPLandroid/view/ViewConfiguration;->getScrollDefaultDelay()I
 HSPLandroid/view/ViewConfiguration;->getScrollFriction()F
@@ -12876,6 +13229,7 @@
 HSPLandroid/view/ViewGroup;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
 HSPLandroid/view/ViewGroup;->childDrawableStateChanged(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->childHasTransientStateChanged(Landroid/view/View;Z)V
+HSPLandroid/view/ViewGroup;->cleanupLayoutState(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->clearCachedLayoutMode()V
 HSPLandroid/view/ViewGroup;->clearChildFocus(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->clearDisappearingChildren()V
@@ -12892,14 +13246,18 @@
 HSPLandroid/view/ViewGroup;->dispatchDetachedFromWindow()V
 HSPLandroid/view/ViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V
 HSPLandroid/view/ViewGroup;->dispatchDrawableHotspotChanged(FF)V
+HSPLandroid/view/ViewGroup;->dispatchFinishTemporaryDetach()V
 HSPLandroid/view/ViewGroup;->dispatchFreezeSelfOnly(Landroid/util/SparseArray;)V
 HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V
 HSPLandroid/view/ViewGroup;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
 HSPLandroid/view/ViewGroup;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/ViewGroup;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/ViewGroup;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/ViewGroup;->dispatchScreenStateChanged(I)V
+HSPLandroid/view/ViewGroup;->dispatchSetActivated(Z)V
 HSPLandroid/view/ViewGroup;->dispatchSetPressed(Z)V
 HSPLandroid/view/ViewGroup;->dispatchSetSelected(Z)V
+HSPLandroid/view/ViewGroup;->dispatchStartTemporaryDetach()V
 HSPLandroid/view/ViewGroup;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/ViewGroup;->dispatchTransformedTouchEvent(Landroid/view/MotionEvent;ZLandroid/view/View;I)Z
 HSPLandroid/view/ViewGroup;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Landroid/view/View;
@@ -12918,9 +13276,11 @@
 HSPLandroid/view/ViewGroup;->findFocus()Landroid/view/View;
 HSPLandroid/view/ViewGroup;->findViewTraversal(I)Landroid/view/View;
 HSPLandroid/view/ViewGroup;->finishAnimatingView(Landroid/view/View;Landroid/view/animation/Animation;)V
+HSPLandroid/view/ViewGroup;->focusSearch(Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/ViewGroup;->focusableViewAvailable(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/view/ViewGroup;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/view/ViewGroup;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedIndex(IIZ)I
 HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedView(Ljava/util/ArrayList;[Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
@@ -12962,6 +13322,7 @@
 HSPLandroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V
 HSPLandroid/view/ViewGroup;->measureChild(Landroid/view/View;II)V
 HSPLandroid/view/ViewGroup;->measureChildWithMargins(Landroid/view/View;IIII)V
+HSPLandroid/view/ViewGroup;->measureChildren(II)V
 HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V
 HSPLandroid/view/ViewGroup;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewGroup;->offsetRectBetweenParentAndChild(Landroid/view/View;Landroid/graphics/Rect;ZZ)V
@@ -12988,6 +13349,7 @@
 HSPLandroid/view/ViewGroup;->removeViewInternal(ILandroid/view/View;)V
 HSPLandroid/view/ViewGroup;->removeViewInternal(Landroid/view/View;)Z
 HSPLandroid/view/ViewGroup;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
 HSPLandroid/view/ViewGroup;->requestDisallowInterceptTouchEvent(Z)V
 HSPLandroid/view/ViewGroup;->requestFocus(ILandroid/graphics/Rect;)Z
 HSPLandroid/view/ViewGroup;->resetCancelNextUpFlag(Landroid/view/View;)Z
@@ -13018,9 +13380,12 @@
 HSPLandroid/view/ViewGroup;->setTouchscreenBlocksFocus(Z)V
 HSPLandroid/view/ViewGroup;->shouldBlockFocusForTouchscreen()Z
 HSPLandroid/view/ViewGroup;->shouldDelayChildPressedState()Z
+HSPLandroid/view/ViewGroup;->startViewTransition(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->transformPointToViewLocal([FLandroid/view/View;)V
+HSPLandroid/view/ViewGroup;->unFocus(Landroid/view/View;)V
 HSPLandroid/view/ViewOutlineProvider$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
+HSPLandroid/view/ViewOutlineProvider$2;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
 HSPLandroid/view/ViewOutlineProvider;-><init>()V
 HSPLandroid/view/ViewPropertyAnimator$1;-><init>(Landroid/view/ViewPropertyAnimator;)V
 HSPLandroid/view/ViewPropertyAnimator$1;->run()V
@@ -13053,6 +13418,7 @@
 HSPLandroid/view/ViewPropertyAnimator;->setValue(IF)V
 HSPLandroid/view/ViewPropertyAnimator;->start()V
 HSPLandroid/view/ViewPropertyAnimator;->startAnimation()V
+HSPLandroid/view/ViewPropertyAnimator;->translationX(F)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->translationY(F)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewRootImpl$1;-><init>(Landroid/view/ViewRootImpl;)V
@@ -13066,6 +13432,7 @@
 HSPLandroid/view/ViewRootImpl$AsyncInputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V
 HSPLandroid/view/ViewRootImpl$AsyncInputStage;->defer(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl$AsyncInputStage;->dequeue(Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+HSPLandroid/view/ViewRootImpl$AsyncInputStage;->enqueue(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl$AsyncInputStage;->forward(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;-><init>(Landroid/view/ViewRootImpl;)V
@@ -13140,9 +13507,9 @@
 HSPLandroid/view/ViewRootImpl$W;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$W;->closeSystemDialogs(Ljava/lang/String;)V
 HSPLandroid/view/ViewRootImpl$W;->dispatchAppVisibility(Z)V
+HSPLandroid/view/ViewRootImpl$W;->dispatchWindowShown()V
 HSPLandroid/view/ViewRootImpl$W;->insetsChanged(Landroid/view/InsetsState;)V
 HSPLandroid/view/ViewRootImpl$W;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
-HSPLandroid/view/ViewRootImpl$W;->windowFocusChanged(ZZ)V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/ViewRootImpl;Landroid/view/InputChannel;Landroid/os/Looper;)V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->dispose()V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onBatchedInputEventPending()V
@@ -13179,7 +13546,6 @@
 HSPLandroid/view/ViewRootImpl;->childHasTransientStateChanged(Landroid/view/View;Z)V
 HSPLandroid/view/ViewRootImpl;->clearChildFocus(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl;->collectViewAttributes()Z
-HSPLandroid/view/ViewRootImpl;->controlInsetsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl;->destroyHardwareRenderer()V
 HSPLandroid/view/ViewRootImpl;->destroyHardwareResources()V
@@ -13230,11 +13596,13 @@
 HSPLandroid/view/ViewRootImpl;->getRootMeasureSpec(II)I
 HSPLandroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue;
 HSPLandroid/view/ViewRootImpl;->getTextDirection()I
+HSPLandroid/view/ViewRootImpl;->getTitle()Ljava/lang/CharSequence;
 HSPLandroid/view/ViewRootImpl;->getValidLayoutRequesters(Ljava/util/ArrayList;Z)Ljava/util/ArrayList;
 HSPLandroid/view/ViewRootImpl;->getView()Landroid/view/View;
 HSPLandroid/view/ViewRootImpl;->getWindowInsets(Z)Landroid/view/WindowInsets;
 HSPLandroid/view/ViewRootImpl;->handleAppVisibility(Z)V
 HSPLandroid/view/ViewRootImpl;->handleContentCaptureFlush()V
+HSPLandroid/view/ViewRootImpl;->handleDispatchWindowShown()V
 HSPLandroid/view/ViewRootImpl;->handleWindowFocusChanged()V
 HSPLandroid/view/ViewRootImpl;->hasColorModeChanged(I)Z
 HSPLandroid/view/ViewRootImpl;->invalidate()V
@@ -13249,9 +13617,7 @@
 HSPLandroid/view/ViewRootImpl;->isNavigationKey(Landroid/view/KeyEvent;)Z
 HSPLandroid/view/ViewRootImpl;->isTextDirectionResolved()Z
 HSPLandroid/view/ViewRootImpl;->isTypingKey(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/ViewRootImpl;->lambda$performDraw$1$ViewRootImpl(Ljava/util/ArrayList;)V
 HSPLandroid/view/ViewRootImpl;->lambda$performDraw$1$ViewRootImpl(ZLjava/util/ArrayList;)V
-HSPLandroid/view/ViewRootImpl;->lambda$performDraw$2$ViewRootImpl(Landroid/os/Handler;Ljava/util/ArrayList;J)V
 HSPLandroid/view/ViewRootImpl;->lambda$performDraw$2$ViewRootImpl(Landroid/os/Handler;ZLjava/util/ArrayList;J)V
 HSPLandroid/view/ViewRootImpl;->loadSystemProperties()V
 HSPLandroid/view/ViewRootImpl;->maybeHandleWindowMove(Landroid/graphics/Rect;)V
@@ -13276,6 +13642,7 @@
 HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V
 HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V
 HSPLandroid/view/ViewRootImpl;->profileRendering(Z)V
+HSPLandroid/view/ViewRootImpl;->recomputeViewAttributes(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl;->recycleQueuedInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
 HSPLandroid/view/ViewRootImpl;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
@@ -13285,6 +13652,7 @@
 HSPLandroid/view/ViewRootImpl;->reportDrawFinished()V
 HSPLandroid/view/ViewRootImpl;->reportNextDraw()V
 HSPLandroid/view/ViewRootImpl;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
 HSPLandroid/view/ViewRootImpl;->requestDisallowInterceptTouchEvent(Z)V
 HSPLandroid/view/ViewRootImpl;->requestFitSystemWindows()V
 HSPLandroid/view/ViewRootImpl;->requestLayout()V
@@ -13312,6 +13680,7 @@
 HSPLandroid/view/ViewRootImpl;->updateSystemGestureExclusionRectsForView(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl;->updateVisibleInsets()V
 HSPLandroid/view/ViewRootImpl;->windowFocusChanged(ZZ)V
+HSPLandroid/view/ViewStructure;-><init>()V
 HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
@@ -13353,6 +13722,7 @@
 HSPLandroid/view/ViewTreeObserver;->dispatchOnTouchModeChanged(Z)V
 HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowAttachedChange(Z)V
 HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowFocusChange(Z)V
+HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowShown()V
 HSPLandroid/view/ViewTreeObserver;->hasComputeInternalInsetsListeners()Z
 HSPLandroid/view/ViewTreeObserver;->isAlive()Z
 HSPLandroid/view/ViewTreeObserver;->kill()V
@@ -13360,6 +13730,7 @@
 HSPLandroid/view/ViewTreeObserver;->removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V
 HSPLandroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
 HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
+HSPLandroid/view/ViewTreeObserver;->removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
 HSPLandroid/view/ViewTreeObserver;->removeOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
 HSPLandroid/view/Window;-><init>(Landroid/content/Context;)V
 HSPLandroid/view/Window;->addFlags(I)V
@@ -13384,6 +13755,7 @@
 HSPLandroid/view/Window;->haveDimAmount()Z
 HSPLandroid/view/Window;->isActive()Z
 HSPLandroid/view/Window;->isDestroyed()Z
+HSPLandroid/view/Window;->isOutOfBounds(Landroid/content/Context;Landroid/view/MotionEvent;)Z
 HSPLandroid/view/Window;->makeActive()V
 HSPLandroid/view/Window;->requestFeature(I)Z
 HSPLandroid/view/Window;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V
@@ -13403,8 +13775,11 @@
 HSPLandroid/view/Window;->setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;)V
 HSPLandroid/view/Window;->setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;Z)V
 HSPLandroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z
+HSPLandroid/view/WindowInsets$Builder;-><init>()V
 HSPLandroid/view/WindowInsets$Builder;-><init>(Landroid/view/WindowInsets;)V
 HSPLandroid/view/WindowInsets$Builder;->build()Landroid/view/WindowInsets;
+HSPLandroid/view/WindowInsets$Builder;->setDisplayCutout(Landroid/view/DisplayCutout;)Landroid/view/WindowInsets$Builder;
+HSPLandroid/view/WindowInsets$Builder;->setStableInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;
 HSPLandroid/view/WindowInsets$Builder;->setSystemWindowInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;
 HSPLandroid/view/WindowInsets$Side;->all()I
 HSPLandroid/view/WindowInsets$Type;->ime()I
@@ -13412,7 +13787,6 @@
 HSPLandroid/view/WindowInsets$Type;->navigationBars()I
 HSPLandroid/view/WindowInsets$Type;->systemBars()I
 HSPLandroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;)V
-HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZZLandroid/view/DisplayCutout;I)V
 HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZZLandroid/view/DisplayCutout;IZ)V
 HSPLandroid/view/WindowInsets;->access$000(Landroid/view/WindowInsets;)[Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->access$100(Landroid/view/WindowInsets;)[Landroid/graphics/Insets;
@@ -13428,6 +13802,7 @@
 HSPLandroid/view/WindowInsets;->createCompatTypeMap(Landroid/graphics/Rect;)[Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->displayCutoutCopyConstructorArgument(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout;
 HSPLandroid/view/WindowInsets;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/WindowInsets;->getDisplayCutout()Landroid/view/DisplayCutout;
 HSPLandroid/view/WindowInsets;->getInsets(I)Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->getInsets([Landroid/graphics/Insets;I)Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->getStableInsetBottom()I
@@ -13474,8 +13849,10 @@
 HSPLandroid/view/WindowManagerGlobal;->closeAll(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/view/WindowManagerGlobal;->closeAllExceptView(Landroid/os/IBinder;Landroid/view/View;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/view/WindowManagerGlobal;->doRemoveView(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/WindowManagerGlobal;->dumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
 HSPLandroid/view/WindowManagerGlobal;->findViewLocked(Landroid/view/View;Z)I
 HSPLandroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal;
+HSPLandroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList;
 HSPLandroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager;
 HSPLandroid/view/WindowManagerGlobal;->getWindowSession()Landroid/view/IWindowSession;
 HSPLandroid/view/WindowManagerGlobal;->initialize()V
@@ -13491,24 +13868,26 @@
 HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;Landroid/view/Window;)V
 HSPLandroid/view/WindowManagerImpl;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
 HSPLandroid/view/WindowManagerImpl;->applyDefaultToken(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/WindowManagerImpl;->computeWindowInsets()Landroid/view/WindowInsets;
 HSPLandroid/view/WindowManagerImpl;->createLocalWindowManager(Landroid/view/Window;)Landroid/view/WindowManagerImpl;
 HSPLandroid/view/WindowManagerImpl;->getDefaultDisplay()Landroid/view/Display;
+HSPLandroid/view/WindowManagerImpl;->getMaximumBounds()Landroid/graphics/Rect;
+HSPLandroid/view/WindowManagerImpl;->getMaximumWindowMetrics()Landroid/view/WindowMetrics;
+HSPLandroid/view/WindowManagerImpl;->getWindowInsetsFromServer(Landroid/view/WindowManager$LayoutParams;)Landroid/view/WindowInsets;
 HSPLandroid/view/WindowManagerImpl;->removeViewImmediate(Landroid/view/View;)V
+HSPLandroid/view/WindowManagerImpl;->toSize(Landroid/graphics/Rect;)Landroid/util/Size;
 HSPLandroid/view/WindowManagerImpl;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/WindowMetrics;-><init>(Landroid/util/Size;Landroid/view/WindowInsets;)V
+HSPLandroid/view/WindowMetrics;->getSize()Landroid/util/Size;
 HSPLandroid/view/accessibility/AccessibilityManager$1;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
 HSPLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChanged(J)V
-HSPLandroid/view/accessibility/AccessibilityManager$1;->setState(I)V
 HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
 HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager$1;)V
-HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;->handleMessage(Landroid/os/Message;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;I)V
-HSPLandroid/view/accessibility/AccessibilityManager;->access$000(Landroid/view/accessibility/AccessibilityManager;J)V
-HSPLandroid/view/accessibility/AccessibilityManager;->access$100(Landroid/view/accessibility/AccessibilityManager;)Ljava/lang/Object;
-HSPLandroid/view/accessibility/AccessibilityManager;->access$200(Landroid/view/accessibility/AccessibilityManager;)Landroid/util/ArrayMap;
-HSPLandroid/view/accessibility/AccessibilityManager;->access$400(Landroid/view/accessibility/AccessibilityManager;I)V
 HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;Landroid/os/Handler;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->addHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;Landroid/os/Handler;)V
+HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;Landroid/os/Handler;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->getEnabledAccessibilityServiceList(I)Ljava/util/List;
 HSPLandroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager;
@@ -13516,6 +13895,7 @@
 HSPLandroid/view/accessibility/AccessibilityManager;->isEnabled()Z
 HSPLandroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z
 HSPLandroid/view/accessibility/AccessibilityManager;->isTouchExplorationEnabled()Z
+HSPLandroid/view/accessibility/AccessibilityManager;->notifyAccessibilityStateChanged()V
 HSPLandroid/view/accessibility/AccessibilityManager;->removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;->removeHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->setStateLocked(I)V
@@ -13526,12 +13906,16 @@
 HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->registerViewWithId(Landroid/view/View;I)V
 HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->unregisterViewWithId(I)V
 HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;-><init>(ILjava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeProvider;-><init>()V
 HSPLandroid/view/accessibility/CaptioningManager$1;-><init>(Landroid/view/accessibility/CaptioningManager;)V
 HSPLandroid/view/accessibility/CaptioningManager$CaptioningChangeListener;-><init>()V
 HSPLandroid/view/accessibility/CaptioningManager$MyContentObserver;-><init>(Landroid/view/accessibility/CaptioningManager;Landroid/os/Handler;)V
 HSPLandroid/view/accessibility/CaptioningManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/accessibility/CaptioningManager;->getFontScale()F
 HSPLandroid/view/accessibility/CaptioningManager;->getLocale()Ljava/util/Locale;
 HSPLandroid/view/accessibility/CaptioningManager;->getRawLocale()Ljava/lang/String;
+HSPLandroid/view/accessibility/CaptioningManager;->getRawUserStyle()I
+HSPLandroid/view/accessibility/CaptioningManager;->getUserStyle()Landroid/view/accessibility/CaptioningManager$CaptionStyle;
 HSPLandroid/view/accessibility/CaptioningManager;->isEnabled()Z
 HSPLandroid/view/accessibility/CaptioningManager;->removeCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V
 HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -13551,8 +13935,10 @@
 HSPLandroid/view/animation/AccelerateInterpolator;-><init>()V
 HSPLandroid/view/animation/AccelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
 HSPLandroid/view/animation/AccelerateInterpolator;->getInterpolation(F)F
+HSPLandroid/view/animation/AlphaAnimation;-><init>(FF)V
 HSPLandroid/view/animation/AlphaAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/view/animation/AlphaAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/AlphaAnimation;->hasAlpha()Z
 HSPLandroid/view/animation/AlphaAnimation;->willChangeBounds()Z
 HSPLandroid/view/animation/AlphaAnimation;->willChangeTransformationMatrix()Z
 HSPLandroid/view/animation/Animation$1;-><init>(Landroid/view/animation/Animation;)V
@@ -13571,14 +13957,17 @@
 HSPLandroid/view/animation/Animation;->fireAnimationStart()V
 HSPLandroid/view/animation/Animation;->getDuration()J
 HSPLandroid/view/animation/Animation;->getFillAfter()Z
+HSPLandroid/view/animation/Animation;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V
 HSPLandroid/view/animation/Animation;->getScaleFactor()F
 HSPLandroid/view/animation/Animation;->getStartOffset()J
 HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;)Z
 HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;F)Z
+HSPLandroid/view/animation/Animation;->hasAlpha()Z
 HSPLandroid/view/animation/Animation;->hasAnimationListener()Z
 HSPLandroid/view/animation/Animation;->hasEnded()Z
 HSPLandroid/view/animation/Animation;->hasStarted()Z
 HSPLandroid/view/animation/Animation;->initialize(IIII)V
+HSPLandroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V
 HSPLandroid/view/animation/Animation;->isCanceled()Z
 HSPLandroid/view/animation/Animation;->isInitialized()Z
 HSPLandroid/view/animation/Animation;->reset()V
@@ -13650,33 +14039,53 @@
 HSPLandroid/view/animation/Transformation;->compose(Landroid/view/animation/Transformation;)V
 HSPLandroid/view/animation/Transformation;->getAlpha()F
 HSPLandroid/view/animation/Transformation;->getMatrix()Landroid/graphics/Matrix;
+HSPLandroid/view/animation/Transformation;->getTransformationType()I
+HSPLandroid/view/animation/Transformation;->set(Landroid/view/animation/Transformation;)V
 HSPLandroid/view/animation/Transformation;->setAlpha(F)V
 HSPLandroid/view/animation/TranslateAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/TranslateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/TranslateAnimation;->initialize(IIII)V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$V76JiQu509LCUz3-ckpb-nB3JhA;-><init>(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;I)V
 HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillId;
 HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/autofill/AutofillId;-><init>(I)V
 HSPLandroid/view/autofill/AutofillId;-><init>(IIJI)V
 HSPLandroid/view/autofill/AutofillId;-><init>(IIJILandroid/view/autofill/AutofillId$1;)V
 HSPLandroid/view/autofill/AutofillId;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/autofill/AutofillId;->getViewId()I
 HSPLandroid/view/autofill/AutofillId;->hasSession()Z
 HSPLandroid/view/autofill/AutofillId;->hashCode()I
 HSPLandroid/view/autofill/AutofillId;->isVirtualInt()Z
 HSPLandroid/view/autofill/AutofillId;->isVirtualLong()Z
 HSPLandroid/view/autofill/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;)V
+HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$1;)V
 HSPLandroid/view/autofill/AutofillManager;-><init>(Landroid/content/Context;Landroid/view/autofill/IAutoFillManager;)V
 HSPLandroid/view/autofill/AutofillManager;->ensureServiceClientAddedIfNeededLocked()V
 HSPLandroid/view/autofill/AutofillManager;->getClient()Landroid/view/autofill/AutofillManager$AutofillClient;
 HSPLandroid/view/autofill/AutofillManager;->hasAutofillFeature()Z
+HSPLandroid/view/autofill/AutofillManager;->isActiveLocked()Z
 HSPLandroid/view/autofill/AutofillManager;->isAutofillUiShowing()Z
+HSPLandroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z
 HSPLandroid/view/autofill/AutofillManager;->notifyValueChanged(Landroid/view/View;)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofill(Landroid/view/View;)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewExited(Landroid/view/View;)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewExitedLocked(Landroid/view/View;)V
 HSPLandroid/view/autofill/AutofillManager;->notifyViewVisibilityChanged(Landroid/view/View;Z)V
 HSPLandroid/view/autofill/AutofillManager;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V
 HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi()V
 HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi(Landroid/view/autofill/AutofillId;Z)V
 HSPLandroid/view/autofill/AutofillManager;->startAutofillIfNeededLocked(Landroid/view/View;)Z
+HSPLandroid/view/autofill/AutofillValue;-><init>(ILjava/lang/Object;)V
+HSPLandroid/view/autofill/AutofillValue;->forText(Ljava/lang/CharSequence;)Landroid/view/autofill/AutofillValue;
 HSPLandroid/view/autofill/AutofillValue;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V
 HSPLandroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager;
+HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;-><init>()V
+HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/contentcapture/ContentCaptureHelper;->getLoggingLevelAsString(I)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ContentCaptureHelper;->setLoggingLevel(I)V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$imXagcrnfBo6bvJbiHKCn0Q2ZzU;-><init>(Landroid/view/inputmethod/InputMethodManager$DelegateImpl;ZLandroid/view/View;III)V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$imXagcrnfBo6bvJbiHKCn0Q2ZzU;->run()V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$r2X8PLo_YIORJTYJGDfinf_IvK4;-><init>(Landroid/view/inputmethod/InputMethodManager$DelegateImpl;Landroid/view/View;)V
@@ -13687,16 +14096,30 @@
 HSPLandroid/view/inputmethod/BaseInputConnection;->beginBatchEdit()Z
 HSPLandroid/view/inputmethod/BaseInputConnection;->endBatchEdit()Z
 HSPLandroid/view/inputmethod/BaseInputConnection;->finishComposingText()Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->getComposingSpanEnd(Landroid/text/Spannable;)I
+HSPLandroid/view/inputmethod/BaseInputConnection;->getComposingSpanStart(Landroid/text/Spannable;)I
 HSPLandroid/view/inputmethod/BaseInputConnection;->getEditable()Landroid/text/Editable;
+HSPLandroid/view/inputmethod/BaseInputConnection;->getHandler()Landroid/os/Handler;
+HSPLandroid/view/inputmethod/BaseInputConnection;->getSelectedText(I)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/BaseInputConnection;->getTextAfterCursor(II)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/BaseInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence;
 HSPLandroid/view/inputmethod/BaseInputConnection;->removeComposingSpans(Landroid/text/Spannable;)V
 HSPLandroid/view/inputmethod/BaseInputConnection;->sendCurrentText()V
 HSPLandroid/view/inputmethod/CursorAnchorInfo$Builder;-><init>()V
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText$1;-><init>()V
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;-><clinit>()V
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;-><init>()V
+HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;-><init>(Ljava/lang/CharSequence;II)V
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/inputmethod/EditorInfo;-><init>()V
+HSPLandroid/view/inputmethod/EditorInfo;->isPasswordInputType(I)Z
+HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingSubText(Ljava/lang/CharSequence;I)V
+HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingText(Ljava/lang/CharSequence;)V
 HSPLandroid/view/inputmethod/EditorInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/inputmethod/InputConnectionInspector;->getMissingMethodFlags(Landroid/view/inputmethod/InputConnection;)I
+HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputMethodInfo;
+HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String;
 HSPLandroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String;
 HSPLandroid/view/inputmethod/InputMethodManager$1;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
@@ -13705,6 +14128,8 @@
 HSPLandroid/view/inputmethod/InputMethodManager$1;->reportFullscreenMode(Z)V
 HSPLandroid/view/inputmethod/InputMethodManager$1;->setActive(ZZ)V
 HSPLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/InputMethodManager;)V
+HSPLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->deactivate()V
+HSPLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->isActive()Z
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager$1;)V
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishComposingText()V
@@ -13718,13 +14143,18 @@
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->startInputAsyncOnWindowFocusGain(Landroid/view/View;IIZ)V
 HSPLandroid/view/inputmethod/InputMethodManager$H;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/os/Looper;)V
 HSPLandroid/view/inputmethod/InputMethodManager$H;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/view/inputmethod/InputMethodManager$ImeInputEventSender;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/view/InputChannel;Landroid/os/Looper;)V
 HSPLandroid/view/inputmethod/InputMethodManager$ImeInputEventSender;->onInputEventFinished(IZ)V
 HSPLandroid/view/inputmethod/InputMethodManager$ImeThreadFactory;-><init>(Ljava/lang/String;)V
 HSPLandroid/view/inputmethod/InputMethodManager$ImeThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
+HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
+HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager$1;)V
+HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;->recycle()V
 HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;->run()V
 HSPLandroid/view/inputmethod/InputMethodManager;-><init>(Lcom/android/internal/view/IInputMethodManager;ILandroid/os/Looper;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->access$100(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/View;
 HSPLandroid/view/inputmethod/InputMethodManager;->access$1000(Landroid/view/View;)Z
+HSPLandroid/view/inputmethod/InputMethodManager;->access$1400(Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager$PendingEvent;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->access$200(Landroid/view/inputmethod/InputMethodManager;Landroid/view/View;I)I
 HSPLandroid/view/inputmethod/InputMethodManager;->access$300(Landroid/view/inputmethod/InputMethodManager;)Ljava/util/concurrent/Future;
 HSPLandroid/view/inputmethod/InputMethodManager;->access$302(Landroid/view/inputmethod/InputMethodManager;Ljava/util/concurrent/Future;)Ljava/util/concurrent/Future;
@@ -13737,7 +14167,6 @@
 HSPLandroid/view/inputmethod/InputMethodManager;->access$902(Landroid/view/inputmethod/InputMethodManager;Landroid/graphics/Matrix;)Landroid/graphics/Matrix;
 HSPLandroid/view/inputmethod/InputMethodManager;->canStartInput(Landroid/view/View;)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->checkFocus()V
-HSPLandroid/view/inputmethod/InputMethodManager;->checkFocusNoStartInput(Z)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->clearBindingLocked()V
 HSPLandroid/view/inputmethod/InputMethodManager;->clearConnectionLocked()V
 HSPLandroid/view/inputmethod/InputMethodManager;->createInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
@@ -13757,19 +14186,24 @@
 HSPLandroid/view/inputmethod/InputMethodManager;->hasServedByInputMethodLocked(Landroid/view/View;)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;I)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z
+HSPLandroid/view/inputmethod/InputMethodManager;->invokeFinishedInputEventCallback(Landroid/view/inputmethod/InputMethodManager$PendingEvent;Z)V
 HSPLandroid/view/inputmethod/InputMethodManager;->isActive(Landroid/view/View;)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->isAutofillUIShowing(Landroid/view/View;)Z
+HSPLandroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z
 HSPLandroid/view/inputmethod/InputMethodManager;->isFullscreenMode()Z
 HSPLandroid/view/inputmethod/InputMethodManager;->isInEditMode()Z
 HSPLandroid/view/inputmethod/InputMethodManager;->lambda$startInputInner$1$InputMethodManager(I)V
 HSPLandroid/view/inputmethod/InputMethodManager;->maybeCallServedViewChangedLocked(Landroid/view/inputmethod/EditorInfo;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->onViewDetachedFromWindow(Landroid/view/View;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->obtainPendingEventLocked(Landroid/view/InputEvent;Ljava/lang/Object;Ljava/lang/String;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)Landroid/view/inputmethod/InputMethodManager$PendingEvent;
+HSPLandroid/view/inputmethod/InputMethodManager;->recyclePendingEventLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->restartInput(Landroid/view/View;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->sendInputEventOnMainLooperLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)I
 HSPLandroid/view/inputmethod/InputMethodManager;->setInputChannelLocked(Landroid/view/InputChannel;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->setNextServedViewLocked(Landroid/view/View;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->setServedViewLocked(Landroid/view/View;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;ILandroid/os/ResultReceiver;)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->startInputInner(ILandroid/os/IBinder;III)Z
+HSPLandroid/view/inputmethod/InputMethodManager;->updateSelection(Landroid/view/View;IIII)V
 HSPLandroid/view/textclassifier/-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V
 HSPLandroid/view/textclassifier/SelectionSessionLogger;->getTokenIterator(Ljava/util/Locale;)Ljava/text/BreakIterator;
 HSPLandroid/view/textclassifier/TextClassificationConstants;-><init>()V
@@ -13779,10 +14213,15 @@
 HSPLandroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants;
 HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
+HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerSubtype;
+HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/textservice/SpellCheckerSubtype;->getLocaleObject()Ljava/util/Locale;
 HSPLandroid/view/textservice/SpellCheckerSubtype;->hashCodeInternal(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/view/textservice/TextServicesManager;-><init>(I)V
 HSPLandroid/view/textservice/TextServicesManager;->createInstance(Landroid/content/Context;)Landroid/view/textservice/TextServicesManager;
+HSPLandroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype;
+HSPLandroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
 HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->isMultiProcessEnabled()Z
 HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
@@ -13812,12 +14251,19 @@
 HSPLandroid/webkit/WebViewProviderResponse;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/webkit/WebViewProviderResponse;-><init>(Landroid/os/Parcel;Landroid/webkit/WebViewProviderResponse$1;)V
 HSPLandroid/widget/-$$Lambda$IfzAW5fP9thoftErKAjo9SLZufw;-><init>(Landroid/widget/TextView;)V
+HSPLandroid/widget/-$$Lambda$PopupWindow$8Gc2stI5cSJZbuKX7X4Qr_vU2nI;-><init>(Landroid/widget/PopupWindow;)V
+HSPLandroid/widget/-$$Lambda$PopupWindow$nV1HS3Nc6Ck5JRIbIHe3mkyHWzc;-><init>(Landroid/widget/PopupWindow;)V
 HSPLandroid/widget/-$$Lambda$yIdmBO6ZxaY03PGN08RySVVQXuE;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/AbsListView$AdapterDataSetObserver;-><init>(Landroid/widget/AbsListView;)V
 HSPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V
 HSPLandroid/widget/AbsListView$RecycleBin;-><init>(Landroid/widget/AbsListView;)V
+HSPLandroid/widget/AbsListView$RecycleBin;->addScrapView(Landroid/view/View;I)V
 HSPLandroid/widget/AbsListView$RecycleBin;->clear()V
+HSPLandroid/widget/AbsListView$RecycleBin;->clearScrap(Ljava/util/ArrayList;)V
+HSPLandroid/widget/AbsListView$RecycleBin;->clearScrapForRebind(Landroid/view/View;)V
 HSPLandroid/widget/AbsListView$RecycleBin;->clearTransientStateViews()V
+HSPLandroid/widget/AbsListView$RecycleBin;->fillActiveViews(II)V
+HSPLandroid/widget/AbsListView$RecycleBin;->getActiveView(I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->getScrapView(I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->getTransientStateView(I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->markChildrenDirty()V
@@ -13826,21 +14272,36 @@
 HSPLandroid/widget/AbsListView$RecycleBin;->retrieveFromScrap(Ljava/util/ArrayList;I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->scrapActiveViews()V
 HSPLandroid/widget/AbsListView$RecycleBin;->setViewTypeCount(I)V
+HSPLandroid/widget/AbsListView$RecycleBin;->shouldRecycleViewType(I)Z
 HSPLandroid/widget/AbsListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AbsListView;->access$4500(Landroid/widget/AbsListView;)Landroid/widget/FastScroller;
 HSPLandroid/widget/AbsListView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
 HSPLandroid/widget/AbsListView;->clearChoices()V
+HSPLandroid/widget/AbsListView;->computeVerticalScrollExtent()I
+HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I
+HSPLandroid/widget/AbsListView;->computeVerticalScrollRange()I
 HSPLandroid/widget/AbsListView;->dismissPopup()V
+HSPLandroid/widget/AbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsListView;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsListView;->drawSelector(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/AbsListView;->drawableStateChanged()V
+HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/AbsListView$LayoutParams;
+HSPLandroid/widget/AbsListView;->getVerticalScrollbarWidth()I
 HSPLandroid/widget/AbsListView;->handleBoundsChange()V
+HSPLandroid/widget/AbsListView;->handleDataChanged()V
 HSPLandroid/widget/AbsListView;->hideSelector()V
 HSPLandroid/widget/AbsListView;->initAbsListView()V
 HSPLandroid/widget/AbsListView;->internalSetPadding(IIII)V
 HSPLandroid/widget/AbsListView;->invokeOnItemScrollListener()V
+HSPLandroid/widget/AbsListView;->isFastScrollEnabled()Z
 HSPLandroid/widget/AbsListView;->isInFilterMode()Z
+HSPLandroid/widget/AbsListView;->isVerticalScrollBarHidden()Z
 HSPLandroid/widget/AbsListView;->jumpDrawablesToCurrentState()V
 HSPLandroid/widget/AbsListView;->layoutChildren()V
 HSPLandroid/widget/AbsListView;->obtainView(I[Z)Landroid/view/View;
 HSPLandroid/widget/AbsListView;->onAttachedToWindow()V
+HSPLandroid/widget/AbsListView;->onDetachedFromWindow()V
 HSPLandroid/widget/AbsListView;->onLayout(ZIIII)V
 HSPLandroid/widget/AbsListView;->onMeasure(II)V
 HSPLandroid/widget/AbsListView;->onRtlPropertiesChanged(I)V
@@ -13864,6 +14325,8 @@
 HSPLandroid/widget/AbsListView;->setTextFilterEnabled(Z)V
 HSPLandroid/widget/AbsListView;->setTranscriptMode(I)V
 HSPLandroid/widget/AbsListView;->setVisibleRangeHint(II)V
+HSPLandroid/widget/AbsListView;->shouldDisplayEdgeEffects()Z
+HSPLandroid/widget/AbsListView;->shouldDrawSelector()Z
 HSPLandroid/widget/AbsListView;->shouldShowSelector()Z
 HSPLandroid/widget/AbsListView;->touchModeDrawsInPressedState()Z
 HSPLandroid/widget/AbsListView;->updateScrollIndicators()V
@@ -13874,21 +14337,29 @@
 HSPLandroid/widget/AdapterView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/AdapterView;->checkFocus()V
 HSPLandroid/widget/AdapterView;->checkSelectionChanged()V
+HSPLandroid/widget/AdapterView;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/widget/AdapterView;->getItemIdAtPosition(I)J
+HSPLandroid/widget/AdapterView;->onDetachedFromWindow()V
 HSPLandroid/widget/AdapterView;->onLayout(ZIIII)V
 HSPLandroid/widget/AdapterView;->rememberSyncState()V
 HSPLandroid/widget/AdapterView;->setFocusableInTouchMode(Z)V
 HSPLandroid/widget/AdapterView;->setNextSelectedPositionInt(I)V
 HSPLandroid/widget/AdapterView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
 HSPLandroid/widget/AdapterView;->setSelectedPositionInt(I)V
+HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;)V
+HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;Z)V
 HSPLandroid/widget/BaseAdapter;-><init>()V
 HSPLandroid/widget/BaseAdapter;->areAllItemsEnabled()Z
+HSPLandroid/widget/BaseAdapter;->getViewTypeCount()I
 HSPLandroid/widget/BaseAdapter;->hasStableIds()Z
+HSPLandroid/widget/BaseAdapter;->isEnabled(I)Z
 HSPLandroid/widget/BaseAdapter;->notifyDataSetChanged()V
 HSPLandroid/widget/BaseAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/widget/BaseAdapter;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
 HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/CompoundButton;->applyButtonTint()V
 HSPLandroid/widget/CompoundButton;->drawableStateChanged()V
@@ -13896,9 +14367,11 @@
 HSPLandroid/widget/CompoundButton;->getButtonStateDescription()Ljava/lang/CharSequence;
 HSPLandroid/widget/CompoundButton;->getCompoundPaddingLeft()I
 HSPLandroid/widget/CompoundButton;->getCompoundPaddingRight()I
+HSPLandroid/widget/CompoundButton;->getHorizontalOffsetForDrawables()I
 HSPLandroid/widget/CompoundButton;->isChecked()Z
 HSPLandroid/widget/CompoundButton;->jumpDrawablesToCurrentState()V
 HSPLandroid/widget/CompoundButton;->onCreateDrawableState(I)[I
+HSPLandroid/widget/CompoundButton;->onDraw(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/CompoundButton;->onResolveDrawables(I)V
 HSPLandroid/widget/CompoundButton;->setChecked(Z)V
 HSPLandroid/widget/CompoundButton;->setDefaultStateDescritption()V
@@ -13907,6 +14380,8 @@
 HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/EdgeEffect;->draw(Landroid/graphics/Canvas;)Z
 HSPLandroid/widget/EdgeEffect;->isFinished()Z
+HSPLandroid/widget/EdgeEffect;->onAbsorb(I)V
+HSPLandroid/widget/EdgeEffect;->onPull(FF)V
 HSPLandroid/widget/EdgeEffect;->onRelease()V
 HSPLandroid/widget/EdgeEffect;->setSize(II)V
 HSPLandroid/widget/EdgeEffect;->update()V
@@ -13915,6 +14390,7 @@
 HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/EditText;->getDefaultEditable()Z
 HSPLandroid/widget/EditText;->getDefaultMovementMethod()Landroid/text/method/MovementMethod;
+HSPLandroid/widget/EditText;->getFreezesText()Z
 HSPLandroid/widget/EditText;->getText()Landroid/text/Editable;
 HSPLandroid/widget/EditText;->getText()Ljava/lang/CharSequence;
 HSPLandroid/widget/EditText;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V
@@ -13924,10 +14400,17 @@
 HSPLandroid/widget/Editor$2;->onDraw()V
 HSPLandroid/widget/Editor$3;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$5;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$Blink;->cancel()V
+HSPLandroid/widget/Editor$Blink;->run()V
 HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V
 HSPLandroid/widget/Editor$InputContentType;-><init>()V
+HSPLandroid/widget/Editor$InsertionPointCursorController;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->hide()V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->isActive()Z
+HSPLandroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified()Z
+HSPLandroid/widget/Editor$InsertionPointCursorController;->onDetached()V
 HSPLandroid/widget/Editor$PositionListener;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$PositionListener;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$PositionListener;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V
@@ -13936,35 +14419,56 @@
 HSPLandroid/widget/Editor$PositionListener;->updatePosition()V
 HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->isCursorBeingModified()Z
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->isDragAcceleratorActive()Z
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->isSelectionStartDragged()Z
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->onDetached()V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetDragAcceleratorState()V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetTouchOffsets()V
 HSPLandroid/widget/Editor$SpanController;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$SpanController;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$SpanController;->hide()V
 HSPLandroid/widget/Editor$SpanController;->isNonIntermediateSelectionSpan(Landroid/text/Spannable;Ljava/lang/Object;)Z
 HSPLandroid/widget/Editor$SpanController;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/widget/Editor$SpanController;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
 HSPLandroid/widget/Editor$SpanController;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
 HSPLandroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator;-><init>(Landroid/widget/Editor$SuggestionHelper;)V
 HSPLandroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator;-><init>(Landroid/widget/Editor$SuggestionHelper;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$SuggestionHelper;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$SuggestionHelper;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
+HSPLandroid/widget/Editor$TextRenderNode;-><init>(Ljava/lang/String;)V
 HSPLandroid/widget/Editor$TextRenderNode;->needsRecord()Z
 HSPLandroid/widget/Editor$UndoInputFilter;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$UndoInputFilter;->beginBatchEdit()V
+HSPLandroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z
+HSPLandroid/widget/Editor$UndoInputFilter;->endBatchEdit()V
+HSPLandroid/widget/Editor$UndoInputFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;
+HSPLandroid/widget/Editor$UndoInputFilter;->saveInstanceState(Landroid/os/Parcel;)V
 HSPLandroid/widget/Editor;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/Editor;->access$000(Landroid/widget/Editor;)Landroid/widget/Editor$MagnifierMotionAnimator;
 HSPLandroid/widget/Editor;->access$1600(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor;->access$300(Landroid/widget/Editor;)Landroid/widget/TextView;
 HSPLandroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V
 HSPLandroid/widget/Editor;->adjustInputType(ZZZZ)V
+HSPLandroid/widget/Editor;->beginBatchEdit()V
+HSPLandroid/widget/Editor;->clampHorizontalPosition(Landroid/graphics/drawable/Drawable;F)I
 HSPLandroid/widget/Editor;->createInputContentTypeIfNeeded()V
+HSPLandroid/widget/Editor;->createInputMethodStateIfNeeded()V
 HSPLandroid/widget/Editor;->discardTextDisplayLists()V
+HSPLandroid/widget/Editor;->downgradeEasyCorrectionSpans()V
 HSPLandroid/widget/Editor;->drawHardwareAccelerated(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
 HSPLandroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I
+HSPLandroid/widget/Editor;->endBatchEdit()V
 HSPLandroid/widget/Editor;->ensureEndedBatchEdit()V
 HSPLandroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V
 HSPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z
+HSPLandroid/widget/Editor;->finishBatchEdit(Landroid/widget/Editor$InputMethodState;)V
 HSPLandroid/widget/Editor;->forgetUndoRedo()V
 HSPLandroid/widget/Editor;->getAvailableDisplayListIndex([III)I
 HSPLandroid/widget/Editor;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/widget/Editor;->getInsertionController()Landroid/widget/Editor$InsertionPointCursorController;
+HSPLandroid/widget/Editor;->getLastTapPosition()I
 HSPLandroid/widget/Editor;->getPositionListener()Landroid/widget/Editor$PositionListener;
 HSPLandroid/widget/Editor;->getSelectionActionModeHelper()Landroid/widget/SelectionActionModeHelper;
 HSPLandroid/widget/Editor;->getSelectionController()Landroid/widget/Editor$SelectionModifierCursorController;
@@ -13974,24 +14478,33 @@
 HSPLandroid/widget/Editor;->hideCursorControllers()V
 HSPLandroid/widget/Editor;->hideInsertionPointCursorController()V
 HSPLandroid/widget/Editor;->hideSpanControllers()V
+HSPLandroid/widget/Editor;->invalidateHandlesAndActionMode()V
 HSPLandroid/widget/Editor;->invalidateTextDisplayList()V
 HSPLandroid/widget/Editor;->isCursorVisible()Z
+HSPLandroid/widget/Editor;->loadCursorDrawable()V
 HSPLandroid/widget/Editor;->makeBlink()V
 HSPLandroid/widget/Editor;->onAttachedToWindow()V
 HSPLandroid/widget/Editor;->onDetachedFromWindow()V
 HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
+HSPLandroid/widget/Editor;->onFocusChanged(ZI)V
+HSPLandroid/widget/Editor;->onLocaleChanged()V
 HSPLandroid/widget/Editor;->onScreenStateChanged(I)V
 HSPLandroid/widget/Editor;->onWindowFocusChanged(Z)V
 HSPLandroid/widget/Editor;->prepareCursorControllers()V
 HSPLandroid/widget/Editor;->refreshTextActionMode()V
+HSPLandroid/widget/Editor;->reportExtractedText()Z
 HSPLandroid/widget/Editor;->resumeBlink()V
+HSPLandroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel;
 HSPLandroid/widget/Editor;->sendOnTextChanged(III)V
 HSPLandroid/widget/Editor;->sendUpdateSelection()V
 HSPLandroid/widget/Editor;->setFrame()V
 HSPLandroid/widget/Editor;->shouldBlink()Z
+HSPLandroid/widget/Editor;->shouldRenderCursor()Z
 HSPLandroid/widget/Editor;->stopTextActionMode()V
 HSPLandroid/widget/Editor;->stopTextActionModeWithPreservingSelection()V
 HSPLandroid/widget/Editor;->suspendBlink()V
+HSPLandroid/widget/Editor;->updateCursorPosition()V
+HSPLandroid/widget/Editor;->updateCursorPosition(IIF)V
 HSPLandroid/widget/Editor;->updateSpellCheckSpans(IIZ)V
 HSPLandroid/widget/EditorTouchState;-><init>()V
 HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(II)V
@@ -14019,15 +14532,27 @@
 HSPLandroid/widget/FrameLayout;->onMeasure(II)V
 HSPLandroid/widget/FrameLayout;->setForegroundGravity(I)V
 HSPLandroid/widget/FrameLayout;->shouldDelayChildPressedState()Z
+HSPLandroid/widget/HorizontalScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/widget/HorizontalScrollView;->clamp(III)I
+HSPLandroid/widget/HorizontalScrollView;->computeScroll()V
+HSPLandroid/widget/HorizontalScrollView;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/HorizontalScrollView;->initScrollView()V
+HSPLandroid/widget/HorizontalScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
+HSPLandroid/widget/HorizontalScrollView;->onLayout(ZIIII)V
+HSPLandroid/widget/HorizontalScrollView;->onMeasure(II)V
+HSPLandroid/widget/HorizontalScrollView;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/HorizontalScrollView;->onSizeChanged(IIII)V
 HSPLandroid/widget/HorizontalScrollView;->requestLayout()V
+HSPLandroid/widget/HorizontalScrollView;->scrollTo(II)V
 HSPLandroid/widget/HorizontalScrollView;->setFillViewport(Z)V
 HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ImageButton;->onSetAlpha(I)Z
 HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -14055,10 +14580,12 @@
 HSPLandroid/widget/ImageView;->onRtlPropertiesChanged(I)V
 HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V
 HSPLandroid/widget/ImageView;->resizeFromDrawable()V
+HSPLandroid/widget/ImageView;->resolveAdjustedSize(III)I
 HSPLandroid/widget/ImageView;->resolveUri()V
 HSPLandroid/widget/ImageView;->scaleTypeToScaleToFit(Landroid/widget/ImageView$ScaleType;)Landroid/graphics/Matrix$ScaleToFit;
 HSPLandroid/widget/ImageView;->setAdjustViewBounds(Z)V
 HSPLandroid/widget/ImageView;->setAlpha(I)V
+HSPLandroid/widget/ImageView;->setColorFilter(I)V
 HSPLandroid/widget/ImageView;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V
 HSPLandroid/widget/ImageView;->setColorFilter(Landroid/graphics/ColorFilter;)V
 HSPLandroid/widget/ImageView;->setFrame(IIII)Z
@@ -14076,6 +14603,7 @@
 HSPLandroid/widget/ImageView;->updateDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/ImageView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
 HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(II)V
+HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(IIF)V
 HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
 HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$MarginLayoutParams;)V
@@ -14093,10 +14621,12 @@
 HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/LinearLayout$LayoutParams;
 HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/LinearLayout$LayoutParams;
+HSPLandroid/widget/LinearLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/LinearLayout;->getBaseline()I
 HSPLandroid/widget/LinearLayout;->getChildrenSkipCount(Landroid/view/View;I)I
 HSPLandroid/widget/LinearLayout;->getLocationOffset(Landroid/view/View;)I
 HSPLandroid/widget/LinearLayout;->getNextLocationOffset(Landroid/view/View;)I
+HSPLandroid/widget/LinearLayout;->getOrientation()I
 HSPLandroid/widget/LinearLayout;->getVirtualChildAt(I)Landroid/view/View;
 HSPLandroid/widget/LinearLayout;->getVirtualChildCount()I
 HSPLandroid/widget/LinearLayout;->hasDividerBeforeChildAt(I)Z
@@ -14122,7 +14652,14 @@
 HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/ListView;->adjustViewsUpOrDown()V
 HSPLandroid/widget/ListView;->clearRecycledState(Ljava/util/ArrayList;)V
+HSPLandroid/widget/ListView;->correctTooHigh(I)V
+HSPLandroid/widget/ListView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/ListView;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
 HSPLandroid/widget/ListView;->fillDown(II)Landroid/view/View;
+HSPLandroid/widget/ListView;->fillFromTop(I)Landroid/view/View;
+HSPLandroid/widget/ListView;->fillSpecific(II)Landroid/view/View;
+HSPLandroid/widget/ListView;->fillUp(II)Landroid/view/View;
+HSPLandroid/widget/ListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;
 HSPLandroid/widget/ListView;->findViewTraversal(I)Landroid/view/View;
 HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/Adapter;
 HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/ListAdapter;
@@ -14130,6 +14667,7 @@
 HSPLandroid/widget/ListView;->layoutChildren()V
 HSPLandroid/widget/ListView;->lookForSelectablePosition(IZ)I
 HSPLandroid/widget/ListView;->makeAndAddView(IIZIZ)Landroid/view/View;
+HSPLandroid/widget/ListView;->onDetachedFromWindow()V
 HSPLandroid/widget/ListView;->onFinishInflate()V
 HSPLandroid/widget/ListView;->onMeasure(II)V
 HSPLandroid/widget/ListView;->onSizeChanged(IIII)V
@@ -14143,6 +14681,7 @@
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$100(Landroid/widget/OverScroller$SplineOverScroller;)I
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$200(Landroid/widget/OverScroller$SplineOverScroller;)F
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$400(Landroid/widget/OverScroller$SplineOverScroller;)I
+HSPLandroid/widget/OverScroller$SplineOverScroller;->access$500(Landroid/widget/OverScroller$SplineOverScroller;)I
 HSPLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z
 HSPLandroid/widget/OverScroller$SplineOverScroller;->finish()V
 HSPLandroid/widget/OverScroller$SplineOverScroller;->fling(IIIII)V
@@ -14163,7 +14702,20 @@
 HSPLandroid/widget/OverScroller;->getFinalX()I
 HSPLandroid/widget/OverScroller;->getFinalY()I
 HSPLandroid/widget/OverScroller;->isFinished()Z
+HSPLandroid/widget/PopupWindow$1;-><init>(Landroid/widget/PopupWindow;)V
+HSPLandroid/widget/PopupWindow$2;-><init>(Landroid/widget/PopupWindow;)V
+HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/PopupWindow;->dismiss()V
+HSPLandroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition;
 HSPLandroid/widget/PopupWindow;->isShowing()Z
+HSPLandroid/widget/PopupWindow;->setAttachedInDecor(Z)V
+HSPLandroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V
+HSPLandroid/widget/PopupWindow;->setEnterTransition(Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow;->setExitTransition(Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow;->setFocusable(Z)V
+HSPLandroid/widget/PopupWindow;->setHeight(I)V
+HSPLandroid/widget/PopupWindow;->setWidth(I)V
 HSPLandroid/widget/ProgressBar$1;-><init>(Landroid/widget/ProgressBar;Ljava/lang/String;)V
 HSPLandroid/widget/ProgressBar$SavedState;-><init>(Landroid/os/Parcelable;)V
 HSPLandroid/widget/ProgressBar$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
@@ -14224,6 +14776,7 @@
 HSPLandroid/widget/RelativeLayout$DependencyGraph;->clear()V
 HSPLandroid/widget/RelativeLayout$DependencyGraph;->findRoots([I)Ljava/util/ArrayDeque;
 HSPLandroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[I)V
+HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(II)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$100(Landroid/widget/RelativeLayout$LayoutParams;)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$102(Landroid/widget/RelativeLayout$LayoutParams;I)I
@@ -14238,6 +14791,7 @@
 HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules()[I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules(I)[I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->hasRelativeRules()Z
+HSPLandroid/widget/RelativeLayout$LayoutParams;->isRelativeRule(I)Z
 HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveLayoutDirection(I)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveRules(I)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->shouldResolveLayoutDirection(I)Z
@@ -14252,6 +14806,7 @@
 HSPLandroid/widget/RelativeLayout;->compareLayoutPosition(Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams;)I
 HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RelativeLayout$LayoutParams;
+HSPLandroid/widget/RelativeLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/RelativeLayout;->getBaseline()I
 HSPLandroid/widget/RelativeLayout;->getChildMeasureSpec(IIIIIIII)I
 HSPLandroid/widget/RelativeLayout;->getRelatedView([II)Landroid/view/View;
@@ -14328,16 +14883,19 @@
 HSPLandroid/widget/ScrollView;->initScrollView()V
 HSPLandroid/widget/ScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
 HSPLandroid/widget/ScrollView;->onDetachedFromWindow()V
+HSPLandroid/widget/ScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/ScrollView;->onLayout(ZIIII)V
 HSPLandroid/widget/ScrollView;->onMeasure(II)V
 HSPLandroid/widget/ScrollView;->onSizeChanged(IIII)V
 HSPLandroid/widget/ScrollView;->requestLayout()V
 HSPLandroid/widget/ScrollView;->scrollTo(II)V
 HSPLandroid/widget/ScrollView;->setFillViewport(Z)V
+HSPLandroid/widget/ScrollView;->shouldDisplayEdgeEffects()Z
 HSPLandroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V
 HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V
 HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
 HSPLandroid/widget/Scroller;->computeDeceleration(F)F
+HSPLandroid/widget/Scroller;->computeScrollOffset()Z
 HSPLandroid/widget/Scroller;->isFinished()Z
 HSPLandroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;-><init>(Landroid/widget/SelectionActionModeHelper$SelectionTracker;)V
@@ -14360,14 +14918,25 @@
 HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/Space;->getDefaultSize2(II)I
 HSPLandroid/widget/Space;->onMeasure(II)V
+HSPLandroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V
+HSPLandroid/widget/SpellChecker;->closeSession()V
+HSPLandroid/widget/SpellChecker;->resetSession()V
+HSPLandroid/widget/SpellChecker;->spellCheck(II)V
+HSPLandroid/widget/TextView$3;->run()V
 HSPLandroid/widget/TextView$ChangeWatcher;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/TextView$ChangeWatcher;-><init>(Landroid/widget/TextView;Landroid/widget/TextView$1;)V
+HSPLandroid/widget/TextView$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V
+HSPLandroid/widget/TextView$ChangeWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/widget/TextView$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/widget/TextView$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
 HSPLandroid/widget/TextView$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/widget/TextView$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/widget/TextView$Drawables;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/TextView$Drawables;->applyErrorDrawableIfNeeded(I)V
 HSPLandroid/widget/TextView$Drawables;->hasMetadata()Z
 HSPLandroid/widget/TextView$Drawables;->resolveWithLayoutDirection(I)Z
+HSPLandroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/widget/TextView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>()V
 HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>(Landroid/widget/TextView$1;)V
 HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;)V
@@ -14380,6 +14949,7 @@
 HSPLandroid/widget/TextView;->applyTextAppearance(Landroid/widget/TextView$TextAppearanceAttributes;)V
 HSPLandroid/widget/TextView;->assumeLayout()V
 HSPLandroid/widget/TextView;->autoSizeText()V
+HSPLandroid/widget/TextView;->beginBatchEdit()V
 HSPLandroid/widget/TextView;->bringPointIntoView(I)Z
 HSPLandroid/widget/TextView;->bringTextIntoView()Z
 HSPLandroid/widget/TextView;->cancelLongPress()V
@@ -14391,11 +14961,15 @@
 HSPLandroid/widget/TextView;->desired(Landroid/text/Layout;)I
 HSPLandroid/widget/TextView;->drawableHotspotChanged(FF)V
 HSPLandroid/widget/TextView;->drawableStateChanged()V
+HSPLandroid/widget/TextView;->endBatchEdit()V
+HSPLandroid/widget/TextView;->fixFocusableAndClickableSettings()V
 HSPLandroid/widget/TextView;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/TextView;->getAutofillType()I
+HSPLandroid/widget/TextView;->getAutofillValue()Landroid/view/autofill/AutofillValue;
 HSPLandroid/widget/TextView;->getBaseline()I
 HSPLandroid/widget/TextView;->getBaselineOffset()I
 HSPLandroid/widget/TextView;->getBoxHeight(Landroid/text/Layout;)I
+HSPLandroid/widget/TextView;->getCompoundDrawablesRelative()[Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/TextView;->getCompoundPaddingBottom()I
 HSPLandroid/widget/TextView;->getCompoundPaddingLeft()I
 HSPLandroid/widget/TextView;->getCompoundPaddingRight()I
@@ -14405,35 +14979,51 @@
 HSPLandroid/widget/TextView;->getDefaultMovementMethod()Landroid/text/method/MovementMethod;
 HSPLandroid/widget/TextView;->getDesiredHeight()I
 HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I
+HSPLandroid/widget/TextView;->getEditableText()Landroid/text/Editable;
+HSPLandroid/widget/TextView;->getError()Ljava/lang/CharSequence;
 HSPLandroid/widget/TextView;->getExtendedPaddingBottom()I
 HSPLandroid/widget/TextView;->getExtendedPaddingTop()I
 HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter;
+HSPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V
 HSPLandroid/widget/TextView;->getFreezesText()Z
 HSPLandroid/widget/TextView;->getGravity()I
+HSPLandroid/widget/TextView;->getHint()Ljava/lang/CharSequence;
 HSPLandroid/widget/TextView;->getHorizontalOffsetForDrawables()I
 HSPLandroid/widget/TextView;->getHorizontallyScrolling()Z
 HSPLandroid/widget/TextView;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/widget/TextView;->getInputType()I
+HSPLandroid/widget/TextView;->getInterestingRect(Landroid/graphics/Rect;I)V
 HSPLandroid/widget/TextView;->getKeyListener()Landroid/text/method/KeyListener;
 HSPLandroid/widget/TextView;->getLayout()Landroid/text/Layout;
 HSPLandroid/widget/TextView;->getLayoutAlignment()Landroid/text/Layout$Alignment;
 HSPLandroid/widget/TextView;->getLineCount()I
+HSPLandroid/widget/TextView;->getLineHeight()I
 HSPLandroid/widget/TextView;->getMaxLines()I
+HSPLandroid/widget/TextView;->getMovementMethod()Landroid/text/method/MovementMethod;
 HSPLandroid/widget/TextView;->getPaint()Landroid/text/TextPaint;
 HSPLandroid/widget/TextView;->getSelectionEnd()I
 HSPLandroid/widget/TextView;->getSelectionStart()I
+HSPLandroid/widget/TextView;->getServiceManagerForUser(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
+HSPLandroid/widget/TextView;->getSpellCheckerLocale()Ljava/util/Locale;
 HSPLandroid/widget/TextView;->getText()Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->getTextCursorDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
 HSPLandroid/widget/TextView;->getTextLocale()Ljava/util/Locale;
 HSPLandroid/widget/TextView;->getTextLocales()Landroid/os/LocaleList;
 HSPLandroid/widget/TextView;->getTextSize()F
+HSPLandroid/widget/TextView;->getTotalPaddingLeft()I
+HSPLandroid/widget/TextView;->getTotalPaddingRight()I
+HSPLandroid/widget/TextView;->getTotalPaddingTop()I
 HSPLandroid/widget/TextView;->getTransformationMethod()Landroid/text/method/TransformationMethod;
 HSPLandroid/widget/TextView;->getUpdatedHighlightPath()Landroid/graphics/Path;
 HSPLandroid/widget/TextView;->getVerticalOffset(Z)I
+HSPLandroid/widget/TextView;->handleTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/widget/TextView;->hasOverlappingRendering()Z
 HSPLandroid/widget/TextView;->hasPasswordTransformationMethod()Z
 HSPLandroid/widget/TextView;->hasSelection()Z
+HSPLandroid/widget/TextView;->hideErrorIfUnchanged()V
 HSPLandroid/widget/TextView;->invalidateCursor(III)V
+HSPLandroid/widget/TextView;->invalidateCursorPath()V
 HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/TextView;->invalidateRegion(IIZ)V
 HSPLandroid/widget/TextView;->isAutoSizeEnabled()Z
@@ -14442,25 +15032,34 @@
 HSPLandroid/widget/TextView;->isInputMethodTarget()Z
 HSPLandroid/widget/TextView;->isMarqueeFadeEnabled()Z
 HSPLandroid/widget/TextView;->isMultilineInputType(I)Z
+HSPLandroid/widget/TextView;->isPasswordInputType(I)Z
 HSPLandroid/widget/TextView;->isShowingHint()Z
 HSPLandroid/widget/TextView;->isSuggestionsEnabled()Z
 HSPLandroid/widget/TextView;->isTextEditable()Z
 HSPLandroid/widget/TextView;->isTextSelectable()Z
 HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/TextView;->length()I
 HSPLandroid/widget/TextView;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V
 HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;
 HSPLandroid/widget/TextView;->notifyListeningManagersAfterTextChanged()V
 HSPLandroid/widget/TextView;->nullLayouts()V
 HSPLandroid/widget/TextView;->onAttachedToWindow()V
+HSPLandroid/widget/TextView;->onBeginBatchEdit()V
 HSPLandroid/widget/TextView;->onCheckIsTextEditor()Z
 HSPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLandroid/widget/TextView;->onCreateDrawableState(I)[I
+HSPLandroid/widget/TextView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
 HSPLandroid/widget/TextView;->onDetachedFromWindowInternal()V
 HSPLandroid/widget/TextView;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/TextView;->onEndBatchEdit()V
+HSPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V
 HSPLandroid/widget/TextView;->onLayout(ZIIII)V
+HSPLandroid/widget/TextView;->onLocaleChanged()V
 HSPLandroid/widget/TextView;->onMeasure(II)V
 HSPLandroid/widget/TextView;->onPreDraw()Z
+HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V
 HSPLandroid/widget/TextView;->onResolveDrawables(I)V
+HSPLandroid/widget/TextView;->onRestoreInstanceState(Landroid/os/Parcelable;)V
 HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V
 HSPLandroid/widget/TextView;->onSaveInstanceState()Landroid/os/Parcelable;
 HSPLandroid/widget/TextView;->onScreenStateChanged(I)V
@@ -14478,10 +15077,12 @@
 HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V
 HSPLandroid/widget/TextView;->removeMisspelledSpans(Landroid/text/Spannable;)V
 HSPLandroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->resetErrorChangedFlag()V
 HSPLandroid/widget/TextView;->resetResolvedDrawables()V
 HSPLandroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typeface;II)V
 HSPLandroid/widget/TextView;->restartMarqueeIfNeeded()V
 HSPLandroid/widget/TextView;->sendAccessibilityEventInternal(I)V
+HSPLandroid/widget/TextView;->sendAfterTextChanged(Landroid/text/Editable;)V
 HSPLandroid/widget/TextView;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/widget/TextView;->setCompoundDrawablePadding(I)V
@@ -14503,12 +15104,14 @@
 HSPLandroid/widget/TextView;->setInputType(IZ)V
 HSPLandroid/widget/TextView;->setInputTypeSingleLine(Z)V
 HSPLandroid/widget/TextView;->setLetterSpacing(F)V
+HSPLandroid/widget/TextView;->setLineSpacing(FF)V
 HSPLandroid/widget/TextView;->setLines(I)V
 HSPLandroid/widget/TextView;->setLinkTextColor(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/TextView;->setMaxLines(I)V
 HSPLandroid/widget/TextView;->setMaxWidth(I)V
 HSPLandroid/widget/TextView;->setMinHeight(I)V
 HSPLandroid/widget/TextView;->setMinWidth(I)V
+HSPLandroid/widget/TextView;->setMovementMethod(Landroid/text/method/MovementMethod;)V
 HSPLandroid/widget/TextView;->setOnEditorActionListener(Landroid/widget/TextView$OnEditorActionListener;)V
 HSPLandroid/widget/TextView;->setPadding(IIII)V
 HSPLandroid/widget/TextView;->setPaddingRelative(IIII)V
@@ -14542,9 +15145,12 @@
 HSPLandroid/widget/TextView;->supportsAutoSizeText()Z
 HSPLandroid/widget/TextView;->textCanBeSelected()Z
 HSPLandroid/widget/TextView;->unregisterForPreDraw()V
+HSPLandroid/widget/TextView;->updateAfterEdit()V
 HSPLandroid/widget/TextView;->updateTextColors()V
 HSPLandroid/widget/TextView;->useDynamicLayout()Z
 HSPLandroid/widget/TextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/TextView;->viewportToContentHorizontalOffset()I
+HSPLandroid/widget/TextView;->viewportToContentVerticalOffset()I
 HSPLcom/android/icu/charset/CharsetDecoderICU;-><init>(Ljava/nio/charset/Charset;FJ)V
 HSPLcom/android/icu/charset/CharsetDecoderICU;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
 HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/ByteBuffer;)I
@@ -14593,8 +15199,6 @@
 HSPLcom/android/icu/util/regex/PatternNative;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/icu/util/regex/PatternNative;->create(Ljava/lang/String;I)Lcom/android/icu/util/regex/PatternNative;
 HSPLcom/android/icu/util/regex/PatternNative;->openMatcher()J
-HSPLcom/android/internal/app/AssistUtils;-><init>(Landroid/content/Context;)V
-HSPLcom/android/internal/app/AssistUtils;->getAssistComponentForUser(I)Landroid/content/ComponentName;
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I
@@ -14603,6 +15207,7 @@
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->shouldCollectNotes(I)Z
 HSPLcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
 HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
 HSPLcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
 HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
 HSPLcom/android/internal/app/IVoiceInteractor$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractor;
@@ -14635,6 +15240,7 @@
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->onStateChange([I)Z
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
+HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->start()V
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->stop()V
 HSPLcom/android/internal/inputmethod/SubtypeLocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale;
 HSPLcom/android/internal/logging/AndroidConfig;-><init>()V
@@ -14646,7 +15252,6 @@
 HSPLcom/android/internal/logging/MetricsLogger;-><init>()V
 HSPLcom/android/internal/logging/MetricsLogger;->action(II)V
 HSPLcom/android/internal/logging/MetricsLogger;->getLogger()Lcom/android/internal/logging/MetricsLogger;
-HSPLcom/android/internal/logging/MetricsLogger;->hidden(I)V
 HSPLcom/android/internal/logging/MetricsLogger;->saveLog(Landroid/metrics/LogMaker;)V
 HSPLcom/android/internal/logging/MetricsLogger;->write(Landroid/metrics/LogMaker;)V
 HSPLcom/android/internal/os/-$$Lambda$RuntimeInit$ep4ioD9YINkHI5Q1wZ0N_7VFAOg;->get()Ljava/lang/Object;
@@ -14655,6 +15260,7 @@
 HSPLcom/android/internal/os/-$$Lambda$ZygoteConnection$xjqM7qW7vAjTqh2tR5XRF5Vn5mk;-><init>([Ljava/lang/String;)V
 HSPLcom/android/internal/os/-$$Lambda$ZygoteConnection$xjqM7qW7vAjTqh2tR5XRF5Vn5mk;->run()V
 HSPLcom/android/internal/os/AndroidPrintStream;-><init>(ILjava/lang/String;)V
+HSPLcom/android/internal/os/AndroidPrintStream;->log(Ljava/lang/String;)V
 HSPLcom/android/internal/os/BackgroundThread;-><init>()V
 HSPLcom/android/internal/os/BackgroundThread;->ensureThreadLocked()V
 HSPLcom/android/internal/os/BackgroundThread;->getHandler()Landroid/os/Handler;
@@ -14668,9 +15274,6 @@
 HSPLcom/android/internal/os/ClassLoaderFactory;->isPathClassLoaderName(Ljava/lang/String;)Z
 HSPLcom/android/internal/os/HandlerCaller$MyHandler;-><init>(Lcom/android/internal/os/HandlerCaller;Landroid/os/Looper;Z)V
 HSPLcom/android/internal/os/HandlerCaller;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/os/HandlerCaller$Callback;Z)V
-HSPLcom/android/internal/os/HandlerCaller;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message;
-HSPLcom/android/internal/os/HandlerCaller;->obtainMessageO(ILjava/lang/Object;)Landroid/os/Message;
-HSPLcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
 HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundle;)V
 HSPLcom/android/internal/os/IResultReceiver$Stub;-><init>()V
@@ -14825,6 +15428,7 @@
 HSPLcom/android/internal/policy/DecorView;->onWindowSystemUiVisibilityChanged(I)V
 HSPLcom/android/internal/policy/DecorView;->releaseThreadedRenderer()V
 HSPLcom/android/internal/policy/DecorView;->sendAccessibilityEvent(I)V
+HSPLcom/android/internal/policy/DecorView;->setBackgroundFallback(Landroid/graphics/drawable/Drawable;)V
 HSPLcom/android/internal/policy/DecorView;->setColor(Landroid/view/View;IIZZ)V
 HSPLcom/android/internal/policy/DecorView;->setFrame(IIII)Z
 HSPLcom/android/internal/policy/DecorView;->setWindow(Lcom/android/internal/policy/PhoneWindow;)V
@@ -14864,11 +15468,13 @@
 HSPLcom/android/internal/policy/PhoneWindow;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
 HSPLcom/android/internal/policy/PhoneWindow;->generateDecor(I)Lcom/android/internal/policy/DecorView;
 HSPLcom/android/internal/policy/PhoneWindow;->generateLayout(Lcom/android/internal/policy/DecorView;)Landroid/view/ViewGroup;
+HSPLcom/android/internal/policy/PhoneWindow;->getCurrentFocus()Landroid/view/View;
 HSPLcom/android/internal/policy/PhoneWindow;->getDecorView()Landroid/view/View;
 HSPLcom/android/internal/policy/PhoneWindow;->getLayoutInflater()Landroid/view/LayoutInflater;
 HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZ)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
 HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZLcom/android/internal/policy/PhoneWindow$PanelFeatureState;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
 HSPLcom/android/internal/policy/PhoneWindow;->getTransition(Landroid/transition/Transition;Landroid/transition/Transition;I)Landroid/transition/Transition;
+HSPLcom/android/internal/policy/PhoneWindow;->getViewRootImpl()Landroid/view/ViewRootImpl;
 HSPLcom/android/internal/policy/PhoneWindow;->installDecor()V
 HSPLcom/android/internal/policy/PhoneWindow;->isFloating()Z
 HSPLcom/android/internal/policy/PhoneWindow;->isShowingWallpaper()Z
@@ -14887,16 +15493,15 @@
 HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;)V
 HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
 HSPLcom/android/internal/policy/PhoneWindow;->setDefaultWindowFormat(I)V
+HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarColor(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setStatusBarColor(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setTheme(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;)V
 HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;Z)V
 HSPLcom/android/internal/policy/PhoneWindow;->setTitleColor(I)V
+HSPLcom/android/internal/policy/PhoneWindow;->setVolumeControlStream(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z
 HSPLcom/android/internal/policy/PhoneWindow;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLcom/android/internal/policy/ScreenDecorationsUtils;->getWindowCornerRadius(Landroid/content/res/Resources;)F
-HSPLcom/android/internal/policy/ScreenDecorationsUtils;->supportsRoundedCornersOnWindows(Landroid/content/res/Resources;)Z
-HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
 HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I
 HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultDialerPackage()Ljava/lang/String;
@@ -14929,6 +15534,7 @@
 HSPLcom/android/internal/telephony/ISub$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISub;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getActivePhoneTypeForSlot(I)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceIdWithFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisplay(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
@@ -14960,11 +15566,10 @@
 HSPLcom/android/internal/telephony/util/HandlerExecutor;-><init>(Landroid/os/Handler;)V
 HSPLcom/android/internal/telephony/util/HandlerExecutor;->execute(Ljava/lang/Runnable;)V
 HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype;
 HSPLcom/android/internal/textservice/ITextServicesManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ITextServicesManager;
 HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;J)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;JLjava/lang/String;J)V
 HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/NonNull;Ljava/lang/Object;)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;I)V
 HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->checkBounds(II)V
@@ -14975,7 +15580,6 @@
 HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z
-HSPLcom/android/internal/util/ArrayUtils;->isEmpty([I)Z
 HSPLcom/android/internal/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z
 HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedBooleanArray(I)[Z
@@ -14988,8 +15592,6 @@
 HSPLcom/android/internal/util/ArrayUtils;->size([Ljava/lang/Object;)I
 HSPLcom/android/internal/util/ArrayUtils;->unstableRemoveIf(Ljava/util/ArrayList;Ljava/util/function/Predicate;)I
 HSPLcom/android/internal/util/BitUtils;->unpackBits(J)[I
-HSPLcom/android/internal/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z
-HSPLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Collection;)I
 HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;-><init>(I)V
 HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->add(I)V
 HSPLcom/android/internal/util/FastMath;->round(F)I
@@ -15029,6 +15631,10 @@
 HSPLcom/android/internal/util/FastXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
 HSPLcom/android/internal/util/FastXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
 HSPLcom/android/internal/util/FastXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIJII)V
+HSPLcom/android/internal/util/FrameworkStatsLog;->write(IILjava/lang/String;IZ)V
+HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V
+HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V
 HSPLcom/android/internal/util/GrowingArrayUtils;->append([III)[I
 HSPLcom/android/internal/util/GrowingArrayUtils;->append([JIJ)[J
 HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;
@@ -15120,38 +15726,55 @@
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->setIfInBounds([Ljava/lang/Object;ILjava/lang/Object;)V
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->unmask(II)I
 HSPLcom/android/internal/view/IInputConnectionWrapper$MyHandler;-><init>(Lcom/android/internal/view/IInputConnectionWrapper;Landroid/os/Looper;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper$MyHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->beginBatchEdit()V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->closeConnection()V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->dispatchMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->endBatchEdit()V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->executeMessage(Landroid/os/Message;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->finishComposingText()V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->getInputConnection()Landroid/view/inputmethod/InputConnection;
+HSPLcom/android/internal/view/IInputConnectionWrapper;->getSelectedText(IILcom/android/internal/view/IInputContextCallback;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->getTextAfterCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->getTextBeforeCursor(IIILcom/android/internal/view/IInputContextCallback;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->isFinished()Z
 HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessage(I)Landroid/os/Message;
+HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIISC(IIIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageISC(IIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
 HSPLcom/android/internal/view/IInputContext$Stub;-><init>()V
 HSPLcom/android/internal/view/IInputContext$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/view/IInputContext$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setSelectedText(Ljava/lang/CharSequence;I)V
+HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextAfterCursor(Ljava/lang/CharSequence;I)V
+HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextBeforeCursor(Ljava/lang/CharSequence;I)V
 HSPLcom/android/internal/view/IInputMethodClient$Stub;-><init>()V
 HSPLcom/android/internal/view/IInputMethodClient$Stub;->asBinder()Landroid/os/IBinder;
 HSPLcom/android/internal/view/IInputMethodClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->addClient(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;I)V
+HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodList(I)Ljava/util/List;
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->startInputOrWindowGainedFocus(ILcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/view/IInputContext;II)Lcom/android/internal/view/InputBindResult;
 HSPLcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager;
 HSPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V
 HSPLcom/android/internal/view/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodSession;
 HSPLcom/android/internal/view/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/view/InputBindResult;
 HSPLcom/android/internal/view/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLcom/android/internal/view/InputBindResult;-><init>(Landroid/os/Parcel;)V
 HSPLcom/android/internal/view/InputBindResult;->getActivityViewToScreenMatrix()Landroid/graphics/Matrix;
+HSPLcom/android/internal/view/menu/MenuBuilder;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
 HSPLcom/android/internal/widget/BackgroundFallback;-><init>()V
 HSPLcom/android/internal/widget/BackgroundFallback;->draw(Landroid/view/ViewGroup;Landroid/view/ViewGroup;Landroid/graphics/Canvas;Landroid/view/View;Landroid/view/View;Landroid/view/View;)V
 HSPLcom/android/internal/widget/BackgroundFallback;->hasFallback()Z
+HSPLcom/android/internal/widget/BackgroundFallback;->setDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/widget/EditableInputConnection;->beginBatchEdit()Z
+HSPLcom/android/internal/widget/EditableInputConnection;->closeConnection()V
+HSPLcom/android/internal/widget/EditableInputConnection;->endBatchEdit()Z
+HSPLcom/android/internal/widget/EditableInputConnection;->getEditable()Landroid/text/Editable;
 HSPLcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
-HSPLcom/android/internal/widget/LockPatternUtils;-><init>(Landroid/content/Context;)V
-HSPLcom/android/internal/widget/LockPatternUtils;->getCredentialTypeForUser(I)I
-HSPLcom/android/internal/widget/LockPatternUtils;->getLockSettings()Lcom/android/internal/widget/ILockSettings;
-HSPLcom/android/internal/widget/LockPatternUtils;->isSecure(I)Z
-HSPLcom/android/internal/widget/LockscreenCredential;-><init>(I[B)V
 HSPLcom/android/internal/widget/ScrollBarUtils;->getThumbLength(IIII)I
 HSPLcom/android/internal/widget/ScrollBarUtils;->getThumbOffset(IIIII)I
 HSPLcom/android/okhttp/Address;-><init>(Ljava/lang/String;ILcom/android/okhttp/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lcom/android/okhttp/CertificatePinner;Lcom/android/okhttp/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V
@@ -15505,6 +16128,8 @@
 HSPLcom/android/okhttp/internal/http/HttpEngine;->readResponse()V
 HSPLcom/android/okhttp/internal/http/HttpEngine;->receiveHeaders(Lcom/android/okhttp/Headers;)V
 HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Lcom/android/okhttp/internal/http/RouteException;)Lcom/android/okhttp/internal/http/HttpEngine;
+HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;)Lcom/android/okhttp/internal/http/HttpEngine;
+HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/internal/http/HttpEngine;
 HSPLcom/android/okhttp/internal/http/HttpEngine;->releaseStreamAllocation()V
 HSPLcom/android/okhttp/internal/http/HttpEngine;->sendRequest()V
 HSPLcom/android/okhttp/internal/http/HttpEngine;->stripBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
@@ -15555,9 +16180,11 @@
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->deallocate(ZZZ)V
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->findConnection(IIIZ)Lcom/android/okhttp/internal/io/RealConnection;
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->findHealthyConnection(IIIZZ)Lcom/android/okhttp/internal/io/RealConnection;
+HSPLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Lcom/android/okhttp/internal/http/RouteException;)Z
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->newStream(IIIZZ)Lcom/android/okhttp/internal/http/HttpStream;
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->noNewStreams()V
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z
+HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Z
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->release()V
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->release(Lcom/android/okhttp/internal/io/RealConnection;)V
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
@@ -15568,10 +16195,12 @@
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->disconnect()V
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentEncoding()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentLength()I
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentType()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderFields()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getInputStream()Ljava/io/InputStream;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getOutputStream()Ljava/io/OutputStream;
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestProperties()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseCode()I
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseMessage()Ljava/lang/String;
@@ -15598,6 +16227,7 @@
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaders()Lcom/android/okhttp/Headers;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getInputStream()Ljava/io/InputStream;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getOutputStream()Ljava/io/OutputStream;
+HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getRequestProperties()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponse()Lcom/android/okhttp/internal/http/HttpEngine;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponseCode()I
@@ -15618,10 +16248,12 @@
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->disconnect()V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentEncoding()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentLength()I
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentType()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderFields()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getInputStream()Ljava/io/InputStream;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getOutputStream()Ljava/io/OutputStream;
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperties()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseCode()I
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseMessage()Ljava/lang/String;
@@ -15773,12 +16405,22 @@
 HSPLcom/android/okhttp/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout;
 HSPLcom/android/okhttp/okio/Timeout;->timeoutNanos()J
 HSPLcom/android/okhttp/okio/Util;->reverseBytesInt(I)I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Object;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
 HSPLcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar;->getSecureRandom()Ljava/security/SecureRandom;
+HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;->init([B[BI)V
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getDigestSize()I
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->update([BII)V
+HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;-><init>([BII)V
 HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;->getKey()[B
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$Std;-><init>()V
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;->getType()I
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;-><init>(I)V
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineAliases()Ljava/util/Enumeration;
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineLoad(Ljava/io/InputStream;[C)V
 HSPLcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;-><init>()V
 HSPLcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V
@@ -15810,16 +16452,6 @@
 HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/InputStream;Ljava/lang/String;)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/Reader;)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->skip()V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(C)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;II)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->check(Z)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->flush()V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->flushBuffer()V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->setOutput(Ljava/io/Writer;)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->writeEscaped(Ljava/lang/String;I)V
 HSPLcom/android/server/NetworkManagementSocketTagger$1;->initialValue()Lcom/android/server/NetworkManagementSocketTagger$SocketTags;
 HSPLcom/android/server/NetworkManagementSocketTagger$1;->initialValue()Ljava/lang/Object;
 HSPLcom/android/server/NetworkManagementSocketTagger$SocketTags;-><init>()V
@@ -15837,7 +16469,6 @@
 HSPLcom/google/android/gles_jni/EGLConfigImpl;-><init>(J)V
 HSPLcom/google/android/gles_jni/EGLImpl;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;
 HSPLcom/google/android/gles_jni/EGLImpl;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay;
-HSPLcom/google/android/gles_jni/EGLSurfaceImpl;-><init>(J)V
 HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
 HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V
 HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;Z)V
@@ -15845,6 +16476,7 @@
 HSPLdalvik/system/BaseDexClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class;
 HSPLdalvik/system/BaseDexClassLoader;->findLibrary(Ljava/lang/String;)Ljava/lang/String;
 HSPLdalvik/system/BaseDexClassLoader;->findResource(Ljava/lang/String;)Ljava/net/URL;
+HSPLdalvik/system/BaseDexClassLoader;->findResources(Ljava/lang/String;)Ljava/util/Enumeration;
 HSPLdalvik/system/BaseDexClassLoader;->getLdLibraryPath()Ljava/lang/String;
 HSPLdalvik/system/BaseDexClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package;
 HSPLdalvik/system/BaseDexClassLoader;->reportClassLoaderChain()V
@@ -15898,6 +16530,7 @@
 HSPLdalvik/system/DexPathList;->findClass(Ljava/lang/String;Ljava/util/List;)Ljava/lang/Class;
 HSPLdalvik/system/DexPathList;->findLibrary(Ljava/lang/String;)Ljava/lang/String;
 HSPLdalvik/system/DexPathList;->findResource(Ljava/lang/String;)Ljava/net/URL;
+HSPLdalvik/system/DexPathList;->findResources(Ljava/lang/String;)Ljava/util/Enumeration;
 HSPLdalvik/system/DexPathList;->getAllNativeLibraryDirectories()Ljava/util/List;
 HSPLdalvik/system/DexPathList;->getDexPaths()Ljava/util/List;
 HSPLdalvik/system/DexPathList;->getNativeLibraryDirectories()Ljava/util/List;
@@ -16026,11 +16659,13 @@
 HSPLjava/io/DataInputStream;->readLong()J
 HSPLjava/io/DataInputStream;->readUTF()Ljava/lang/String;
 HSPLjava/io/DataInputStream;->readUTF(Ljava/io/DataInput;)Ljava/lang/String;
+HSPLjava/io/DataInputStream;->readUnsignedByte()I
 HSPLjava/io/DataInputStream;->readUnsignedShort()I
 HSPLjava/io/DataInputStream;->skipBytes(I)I
 HSPLjava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
 HSPLjava/io/DataOutputStream;->flush()V
 HSPLjava/io/DataOutputStream;->incCount(I)V
+HSPLjava/io/DataOutputStream;->write(I)V
 HSPLjava/io/DataOutputStream;->write([BII)V
 HSPLjava/io/DataOutputStream;->writeBoolean(Z)V
 HSPLjava/io/DataOutputStream;->writeByte(I)V
@@ -16040,6 +16675,7 @@
 HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;)V
 HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;Ljava/io/DataOutput;)I
 HSPLjava/io/EOFException;-><init>()V
+HSPLjava/io/EOFException;-><init>(Ljava/lang/String;)V
 HSPLjava/io/ExpiringCache;->clear()V
 HSPLjava/io/File$TempDirectory;->generateFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
 HSPLjava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
@@ -16210,6 +16846,7 @@
 HSPLjava/io/ObjectInputStream;->readByte()B
 HSPLjava/io/ObjectInputStream;->readClassDesc(Z)Ljava/io/ObjectStreamClass;
 HSPLjava/io/ObjectInputStream;->readClassDescriptor()Ljava/io/ObjectStreamClass;
+HSPLjava/io/ObjectInputStream;->readEnum(Z)Ljava/lang/Enum;
 HSPLjava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object;
 HSPLjava/io/ObjectInputStream;->readInt()I
 HSPLjava/io/ObjectInputStream;->readLong()J
@@ -16252,6 +16889,7 @@
 HSPLjava/io/ObjectOutputStream$HandleTable;->insert(Ljava/lang/Object;I)V
 HSPLjava/io/ObjectOutputStream$HandleTable;->lookup(Ljava/lang/Object;)I
 HSPLjava/io/ObjectOutputStream$ReplaceTable;-><init>(IF)V
+HSPLjava/io/ObjectOutputStream$ReplaceTable;->assign(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/io/ObjectOutputStream$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/io/ObjectOutputStream;-><init>(Ljava/io/OutputStream;)V
 HSPLjava/io/ObjectOutputStream;->annotateClass(Ljava/lang/Class;)V
@@ -16352,6 +16990,7 @@
 HSPLjava/io/ObjectStreamClass;->getDeclaredSUID(Ljava/lang/Class;)Ljava/lang/Long;
 HSPLjava/io/ObjectStreamClass;->getDeclaredSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
 HSPLjava/io/ObjectStreamClass;->getDefaultSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
+HSPLjava/io/ObjectStreamClass;->getField(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/ObjectStreamField;
 HSPLjava/io/ObjectStreamClass;->getFields(Z)[Ljava/io/ObjectStreamField;
 HSPLjava/io/ObjectStreamClass;->getInheritableMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
 HSPLjava/io/ObjectStreamClass;->getMethodSignature([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
@@ -16377,6 +17016,8 @@
 HSPLjava/io/ObjectStreamClass;->invokeReadObject(Ljava/lang/Object;Ljava/io/ObjectInputStream;)V
 HSPLjava/io/ObjectStreamClass;->invokeReadResolve(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/io/ObjectStreamClass;->invokeWriteObject(Ljava/lang/Object;Ljava/io/ObjectOutputStream;)V
+HSPLjava/io/ObjectStreamClass;->invokeWriteReplace(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/io/ObjectStreamClass;->isEnum()Z
 HSPLjava/io/ObjectStreamClass;->isExternalizable()Z
 HSPLjava/io/ObjectStreamClass;->isInstantiable()Z
 HSPLjava/io/ObjectStreamClass;->isProxy()Z
@@ -16399,6 +17040,7 @@
 HSPLjava/io/ObjectStreamField;->getName()Ljava/lang/String;
 HSPLjava/io/ObjectStreamField;->getOffset()I
 HSPLjava/io/ObjectStreamField;->getSignature()Ljava/lang/String;
+HSPLjava/io/ObjectStreamField;->getType()Ljava/lang/Class;
 HSPLjava/io/ObjectStreamField;->getTypeCode()C
 HSPLjava/io/ObjectStreamField;->getTypeString()Ljava/lang/String;
 HSPLjava/io/ObjectStreamField;->isPrimitive()Z
@@ -16436,10 +17078,10 @@
 HSPLjava/io/PrintWriter;->print(I)V
 HSPLjava/io/PrintWriter;->print(J)V
 HSPLjava/io/PrintWriter;->print(Ljava/lang/String;)V
+HSPLjava/io/PrintWriter;->printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
 HSPLjava/io/PrintWriter;->println()V
 HSPLjava/io/PrintWriter;->println(Ljava/lang/Object;)V
 HSPLjava/io/PrintWriter;->println(Ljava/lang/String;)V
-HSPLjava/io/PrintWriter;->write(I)V
 HSPLjava/io/PrintWriter;->write(Ljava/lang/String;)V
 HSPLjava/io/PrintWriter;->write(Ljava/lang/String;II)V
 HSPLjava/io/PrintWriter;->write([CII)V
@@ -16493,6 +17135,7 @@
 HSPLjava/io/StringReader;->read([CII)I
 HSPLjava/io/StringWriter;-><init>()V
 HSPLjava/io/StringWriter;->append(C)Ljava/io/StringWriter;
+HSPLjava/io/StringWriter;->append(C)Ljava/io/Writer;
 HSPLjava/io/StringWriter;->append(Ljava/lang/CharSequence;)Ljava/io/StringWriter;
 HSPLjava/io/StringWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
 HSPLjava/io/StringWriter;->close()V
@@ -16608,6 +17251,7 @@
 HSPLjava/lang/Character;->getType(I)I
 HSPLjava/lang/Character;->hashCode()I
 HSPLjava/lang/Character;->hashCode(C)I
+HSPLjava/lang/Character;->highSurrogate(I)C
 HSPLjava/lang/Character;->isBmpCodePoint(I)Z
 HSPLjava/lang/Character;->isDigit(C)Z
 HSPLjava/lang/Character;->isDigit(I)Z
@@ -16617,17 +17261,21 @@
 HSPLjava/lang/Character;->isLetterOrDigit(C)Z
 HSPLjava/lang/Character;->isLetterOrDigit(I)Z
 HSPLjava/lang/Character;->isLowSurrogate(C)Z
+HSPLjava/lang/Character;->isSpaceChar(C)Z
+HSPLjava/lang/Character;->isSpaceChar(I)Z
 HSPLjava/lang/Character;->isUpperCase(C)Z
 HSPLjava/lang/Character;->isUpperCase(I)Z
 HSPLjava/lang/Character;->isValidCodePoint(I)Z
 HSPLjava/lang/Character;->isWhitespace(C)Z
 HSPLjava/lang/Character;->isWhitespace(I)Z
+HSPLjava/lang/Character;->lowSurrogate(I)C
 HSPLjava/lang/Character;->toChars(I[CI)I
 HSPLjava/lang/Character;->toCodePoint(CC)I
 HSPLjava/lang/Character;->toLowerCase(C)C
 HSPLjava/lang/Character;->toLowerCase(I)I
 HSPLjava/lang/Character;->toString()Ljava/lang/String;
 HSPLjava/lang/Character;->toString(C)Ljava/lang/String;
+HSPLjava/lang/Character;->toSurrogates(I[CI)V
 HSPLjava/lang/Character;->toUpperCase(C)C
 HSPLjava/lang/Character;->toUpperCase(I)I
 HSPLjava/lang/Character;->valueOf(C)Ljava/lang/Character;
@@ -16699,6 +17347,7 @@
 HSPLjava/lang/ClassLoader;->getParent()Ljava/lang/ClassLoader;
 HSPLjava/lang/ClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL;
 HSPLjava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;
+HSPLjava/lang/ClassLoader;->getResources(Ljava/lang/String;)Ljava/util/Enumeration;
 HSPLjava/lang/ClassLoader;->getSystemClassLoader()Ljava/lang/ClassLoader;
 HSPLjava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
 HSPLjava/lang/ClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
@@ -16903,7 +17552,6 @@
 HSPLjava/lang/Math;->signum(F)F
 HSPLjava/lang/Math;->subtractExact(JJ)J
 HSPLjava/lang/Math;->toDegrees(D)D
-HSPLjava/lang/Math;->toIntExact(J)I
 HSPLjava/lang/Math;->toRadians(D)D
 HSPLjava/lang/NoClassDefFoundError;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V
@@ -16911,6 +17559,7 @@
 HSPLjava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/Number;-><init>()V
+HSPLjava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/Object;-><init>()V
 HSPLjava/lang/Object;->clone()Ljava/lang/Object;
 HSPLjava/lang/Object;->equals(Ljava/lang/Object;)Z
@@ -16928,7 +17577,6 @@
 HSPLjava/lang/ProcessBuilder;->directory(Ljava/io/File;)Ljava/lang/ProcessBuilder;
 HSPLjava/lang/ProcessBuilder;->environment([Ljava/lang/String;)Ljava/lang/ProcessBuilder;
 HSPLjava/lang/ProcessBuilder;->start()Ljava/lang/Process;
-HSPLjava/lang/ProcessEnvironment;->toEnvironmentBlock(Ljava/util/Map;[I)[B
 HSPLjava/lang/ProcessImpl;->start([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
 HSPLjava/lang/ProcessImpl;->toCString(Ljava/lang/String;)[B
 HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/String;)V
@@ -16936,6 +17584,7 @@
 HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/Throwable;)V
 HSPLjava/lang/Runtime;->addShutdownHook(Ljava/lang/Thread;)V
 HSPLjava/lang/Runtime;->availableProcessors()I
+HSPLjava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process;
 HSPLjava/lang/Runtime;->exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
 HSPLjava/lang/Runtime;->gc()V
 HSPLjava/lang/Runtime;->getLibPaths()[Ljava/lang/String;
@@ -17101,7 +17750,6 @@
 HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/lang/System;->arraycopy([CI[CII)V
 HSPLjava/lang/System;->checkKey(Ljava/lang/String;)V
-HSPLjava/lang/System;->load(Ljava/lang/String;)V
 HSPLjava/lang/Thread$State;->values()[Ljava/lang/Thread$State;
 HSPLjava/lang/Thread;-><init>()V
 HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
@@ -17220,11 +17868,8 @@
 HSPLjava/lang/UNIXProcess$ProcessPipeOutputStream;->processExited()V
 HSPLjava/lang/UNIXProcess$ProcessReaperThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
 HSPLjava/lang/UNIXProcess;-><init>([B[BI[BI[B[IZ)V
-HSPLjava/lang/UNIXProcess;->access$100(Ljava/lang/UNIXProcess;)I
-HSPLjava/lang/UNIXProcess;->access$200(Ljava/lang/UNIXProcess;I)I
 HSPLjava/lang/UNIXProcess;->getInputStream()Ljava/io/InputStream;
 HSPLjava/lang/UNIXProcess;->initStreams([I)V
-HSPLjava/lang/UNIXProcess;->newFileDescriptor(I)Ljava/io/FileDescriptor;
 HSPLjava/lang/UNIXProcess;->processExited(I)V
 HSPLjava/lang/UnsatisfiedLinkError;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
@@ -17272,6 +17917,7 @@
 HSPLjava/lang/reflect/Array;->newArray(Ljava/lang/Class;I)Ljava/lang/Object;
 HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
 HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
+HSPLjava/lang/reflect/Array;->set(Ljava/lang/Object;ILjava/lang/Object;)V
 HSPLjava/lang/reflect/Constructor;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
 HSPLjava/lang/reflect/Constructor;->getDeclaringClass()Ljava/lang/Class;
 HSPLjava/lang/reflect/Constructor;->getModifiers()I
@@ -17288,6 +17934,8 @@
 HSPLjava/lang/reflect/Executable;->getDeclaringClassInternal()Ljava/lang/Class;
 HSPLjava/lang/reflect/Executable;->getModifiersInternal()I
 HSPLjava/lang/reflect/Executable;->isAnnotationPresent(Ljava/lang/Class;)Z
+HSPLjava/lang/reflect/Executable;->isDefaultMethodInternal()Z
+HSPLjava/lang/reflect/Executable;->isSynthetic()Z
 HSPLjava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
 HSPLjava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class;
 HSPLjava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type;
@@ -17298,6 +17946,7 @@
 HSPLjava/lang/reflect/Field;->getType()Ljava/lang/Class;
 HSPLjava/lang/reflect/Field;->isSynthetic()Z
 HSPLjava/lang/reflect/InvocationTargetException;-><init>(Ljava/lang/Throwable;)V
+HSPLjava/lang/reflect/InvocationTargetException;->getCause()Ljava/lang/Throwable;
 HSPLjava/lang/reflect/Method$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLjava/lang/reflect/Method$1;->compare(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I
 HSPLjava/lang/reflect/Method;->equalNameAndParameters(Ljava/lang/reflect/Method;)Z
@@ -17309,6 +17958,8 @@
 HSPLjava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
 HSPLjava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
 HSPLjava/lang/reflect/Method;->hashCode()I
+HSPLjava/lang/reflect/Method;->isDefault()Z
+HSPLjava/lang/reflect/Method;->isSynthetic()Z
 HSPLjava/lang/reflect/Modifier;->isFinal(I)Z
 HSPLjava/lang/reflect/Modifier;->isPrivate(I)Z
 HSPLjava/lang/reflect/Modifier;->isProtected(I)Z
@@ -17381,7 +18032,6 @@
 HSPLjava/math/BigInt;->littleEndianIntsMagnitude()[I
 HSPLjava/math/BigInt;->longInt()J
 HSPLjava/math/BigInt;->makeValid()V
-HSPLjava/math/BigInt;->product(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
 HSPLjava/math/BigInt;->putBigEndian([BZ)V
 HSPLjava/math/BigInt;->putBigEndianTwosComplement([B)V
 HSPLjava/math/BigInt;->putDecString(Ljava/lang/String;)V
@@ -17453,7 +18103,9 @@
 HSPLjava/net/AddressCache;->putUnknownHost(Ljava/lang/String;ILjava/lang/String;)V
 HSPLjava/net/CookieHandler;-><init>()V
 HSPLjava/net/CookieHandler;->getDefault()Ljava/net/CookieHandler;
+HSPLjava/net/CookieManager;-><init>()V
 HSPLjava/net/CookieManager;-><init>(Ljava/net/CookieStore;Ljava/net/CookiePolicy;)V
+HSPLjava/net/CookieManager;->get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map;
 HSPLjava/net/DatagramPacket;-><init>([BI)V
 HSPLjava/net/DatagramPacket;-><init>([BII)V
 HSPLjava/net/DatagramPacket;->getAddress()Ljava/net/InetAddress;
@@ -17480,6 +18132,27 @@
 HSPLjava/net/DatagramSocket;->receive(Ljava/net/DatagramPacket;)V
 HSPLjava/net/DatagramSocket;->send(Ljava/net/DatagramPacket;)V
 HSPLjava/net/DatagramSocketImpl;->setDatagramSocket(Ljava/net/DatagramSocket;)V
+HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->assignAttribute(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->getDomain()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getMaxAge()J
+HSPLjava/net/HttpCookie;->getName()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getPath()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getValue()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getVersion()I
+HSPLjava/net/HttpCookie;->guessCookieVersion(Ljava/lang/String;)I
+HSPLjava/net/HttpCookie;->isToken(Ljava/lang/String;)Z
+HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;)Ljava/util/List;
+HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;Z)Ljava/util/List;
+HSPLjava/net/HttpCookie;->parseInternal(Ljava/lang/String;Z)Ljava/net/HttpCookie;
+HSPLjava/net/HttpCookie;->setDomain(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setMaxAge(J)V
+HSPLjava/net/HttpCookie;->setPath(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setVersion(I)V
+HSPLjava/net/HttpCookie;->startsWithIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/HttpCookie;->stripOffSurroundingQuote(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/HttpCookie;->toString()Ljava/lang/String;
 HSPLjava/net/HttpURLConnection;-><init>(Ljava/net/URL;)V
 HSPLjava/net/HttpURLConnection;->getFollowRedirects()Z
 HSPLjava/net/HttpURLConnection;->setChunkedStreamingMode(I)V
@@ -17570,6 +18243,7 @@
 HSPLjava/net/NetworkInterface;-><init>(Ljava/lang/String;I[Ljava/net/InetAddress;)V
 HSPLjava/net/NetworkInterface;->getAll()[Ljava/net/NetworkInterface;
 HSPLjava/net/NetworkInterface;->getName()Ljava/lang/String;
+HSPLjava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration;
 HSPLjava/net/Parts;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/net/Parts;->getPath()Ljava/lang/String;
 HSPLjava/net/Parts;->getQuery()Ljava/lang/String;
@@ -17635,6 +18309,7 @@
 HSPLjava/net/Socket;->setTcpNoDelay(Z)V
 HSPLjava/net/SocketAddress;-><init>()V
 HSPLjava/net/SocketException;-><init>(Ljava/lang/String;)V
+HSPLjava/net/SocketException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 HSPLjava/net/SocketImpl;-><init>()V
 HSPLjava/net/SocketImpl;->getFileDescriptor()Ljava/io/FileDescriptor;
 HSPLjava/net/SocketImpl;->getInetAddress()Ljava/net/InetAddress;
@@ -17718,6 +18393,7 @@
 HSPLjava/net/URI;->create(Ljava/lang/String;)Ljava/net/URI;
 HSPLjava/net/URI;->decode(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/net/URI;->defineString()V
+HSPLjava/net/URI;->encode(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/net/URI;->equal(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLjava/net/URI;->equalIgnoringCase(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLjava/net/URI;->equals(Ljava/lang/Object;)Z
@@ -17727,6 +18403,7 @@
 HSPLjava/net/URI;->getPath()Ljava/lang/String;
 HSPLjava/net/URI;->getPort()I
 HSPLjava/net/URI;->getQuery()Ljava/lang/String;
+HSPLjava/net/URI;->getRawPath()Ljava/lang/String;
 HSPLjava/net/URI;->getRawQuery()Ljava/lang/String;
 HSPLjava/net/URI;->getScheme()Ljava/lang/String;
 HSPLjava/net/URI;->getUserInfo()Ljava/lang/String;
@@ -17737,6 +18414,7 @@
 HSPLjava/net/URI;->isOpaque()Z
 HSPLjava/net/URI;->match(CJJ)Z
 HSPLjava/net/URI;->quote(Ljava/lang/String;JJ)Ljava/lang/String;
+HSPLjava/net/URI;->toASCIIString()Ljava/lang/String;
 HSPLjava/net/URI;->toLower(C)I
 HSPLjava/net/URI;->toString()Ljava/lang/String;
 HSPLjava/net/URI;->toString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -17872,6 +18550,7 @@
 HSPLjava/nio/ByteBuffer;->wrap([BII)Ljava/nio/ByteBuffer;
 HSPLjava/nio/ByteBufferAsCharBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
 HSPLjava/nio/ByteBufferAsCharBuffer;->duplicate()Ljava/nio/CharBuffer;
+HSPLjava/nio/ByteBufferAsCharBuffer;->get()C
 HSPLjava/nio/ByteBufferAsCharBuffer;->get(I)C
 HSPLjava/nio/ByteBufferAsCharBuffer;->get([CII)Ljava/nio/CharBuffer;
 HSPLjava/nio/ByteBufferAsCharBuffer;->isDirect()Z
@@ -17885,6 +18564,7 @@
 HSPLjava/nio/ByteBufferAsIntBuffer;->get([III)Ljava/nio/IntBuffer;
 HSPLjava/nio/ByteBufferAsIntBuffer;->ix(I)I
 HSPLjava/nio/ByteBufferAsLongBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
+HSPLjava/nio/ByteBufferAsLongBuffer;->get([JII)Ljava/nio/LongBuffer;
 HSPLjava/nio/ByteBufferAsLongBuffer;->ix(I)I
 HSPLjava/nio/ByteBufferAsShortBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
 HSPLjava/nio/ByteBufferAsShortBuffer;->get([SII)Ljava/nio/ShortBuffer;
@@ -17919,6 +18599,7 @@
 HSPLjava/nio/DirectByteBuffer;->asCharBuffer()Ljava/nio/CharBuffer;
 HSPLjava/nio/DirectByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;
 HSPLjava/nio/DirectByteBuffer;->asIntBuffer()Ljava/nio/IntBuffer;
+HSPLjava/nio/DirectByteBuffer;->asLongBuffer()Ljava/nio/LongBuffer;
 HSPLjava/nio/DirectByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;
 HSPLjava/nio/DirectByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
 HSPLjava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;
@@ -17939,6 +18620,7 @@
 HSPLjava/nio/DirectByteBuffer;->getShort(J)S
 HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[CII)V
 HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[III)V
+HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[JII)V
 HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[SII)V
 HSPLjava/nio/DirectByteBuffer;->isDirect()Z
 HSPLjava/nio/DirectByteBuffer;->isReadOnly()Z
@@ -18000,6 +18682,7 @@
 HSPLjava/nio/IntBuffer;->position(I)Ljava/nio/Buffer;
 HSPLjava/nio/LongBuffer;-><init>(IIII)V
 HSPLjava/nio/LongBuffer;-><init>(IIII[JI)V
+HSPLjava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;
 HSPLjava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;
 HSPLjava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;
 HSPLjava/nio/MappedByteBuffer;-><init>(IIII)V
@@ -18021,8 +18704,6 @@
 HSPLjava/nio/channels/Channels;->newInputStream(Ljava/nio/channels/ReadableByteChannel;)Ljava/io/InputStream;
 HSPLjava/nio/channels/FileChannel;-><init>()V
 HSPLjava/nio/channels/FileChannel;->lock()Ljava/nio/channels/FileLock;
-HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
-HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
 HSPLjava/nio/channels/FileChannel;->tryLock()Ljava/nio/channels/FileLock;
 HSPLjava/nio/channels/FileLock;-><init>(Ljava/nio/channels/FileChannel;JJZ)V
 HSPLjava/nio/channels/FileLock;->acquiredBy()Ljava/nio/channels/Channel;
@@ -18113,6 +18794,7 @@
 HSPLjava/security/KeyStore$1;->run()Ljava/lang/String;
 HSPLjava/security/KeyStore;-><init>(Ljava/security/KeyStoreSpi;Ljava/security/Provider;Ljava/lang/String;)V
 HSPLjava/security/KeyStore;->aliases()Ljava/util/Enumeration;
+HSPLjava/security/KeyStore;->containsAlias(Ljava/lang/String;)Z
 HSPLjava/security/KeyStore;->getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
 HSPLjava/security/KeyStore;->getDefaultType()Ljava/lang/String;
 HSPLjava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore;
@@ -18141,6 +18823,7 @@
 HSPLjava/security/MessageDigest;->digest([BII)I
 HSPLjava/security/MessageDigest;->getDigestLength()I
 HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
+HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/MessageDigest;
 HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;
 HSPLjava/security/MessageDigest;->isEqual([B[B)Z
 HSPLjava/security/MessageDigest;->reset()V
@@ -18225,7 +18908,6 @@
 HSPLjava/security/Signature$Delegate;->chooseFirstProvider()V
 HSPLjava/security/Signature$Delegate;->chooseProvider(ILjava/security/Key;Ljava/security/SecureRandom;)V
 HSPLjava/security/Signature$Delegate;->engineInitVerify(Ljava/security/PublicKey;)V
-HSPLjava/security/Signature$Delegate;->engineUpdate(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/Signature$Delegate;->engineUpdate([BII)V
 HSPLjava/security/Signature$Delegate;->engineVerify([B)Z
 HSPLjava/security/Signature$Delegate;->init(Ljava/security/SignatureSpi;ILjava/security/Key;Ljava/security/SecureRandom;)V
@@ -18236,12 +18918,10 @@
 HSPLjava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
 HSPLjava/security/Signature;->initVerify(Ljava/security/PublicKey;)V
 HSPLjava/security/Signature;->isSpi(Ljava/security/Provider$Service;)Z
-HSPLjava/security/Signature;->update(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/Signature;->update([B)V
 HSPLjava/security/Signature;->update([BII)V
 HSPLjava/security/Signature;->verify([B)Z
 HSPLjava/security/SignatureSpi;-><init>()V
-HSPLjava/security/SignatureSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/cert/CertPath;-><init>(Ljava/lang/String;)V
 HSPLjava/security/cert/CertPath;->getType()Ljava/lang/String;
 HSPLjava/security/cert/CertPathValidator;-><init>(Ljava/security/cert/CertPathValidatorSpi;Ljava/security/Provider;Ljava/lang/String;)V
@@ -18328,7 +19008,9 @@
 HSPLjava/text/CalendarBuilder;->isSet(I)Z
 HSPLjava/text/CalendarBuilder;->set(II)Ljava/text/CalendarBuilder;
 HSPLjava/text/Collator;-><init>(Landroid/icu/text/Collator;)V
+HSPLjava/text/Collator;->decompositionMode_Java_ICU(I)I
 HSPLjava/text/Collator;->getInstance(Ljava/util/Locale;)Ljava/text/Collator;
+HSPLjava/text/Collator;->setDecomposition(I)V
 HSPLjava/text/Collator;->setStrength(I)V
 HSPLjava/text/DateFormat;-><init>()V
 HSPLjava/text/DateFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
@@ -18338,6 +19020,7 @@
 HSPLjava/text/DateFormat;->getTimeZone()Ljava/util/TimeZone;
 HSPLjava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date;
 HSPLjava/text/DateFormat;->set24HourTimePref(Ljava/lang/Boolean;)V
+HSPLjava/text/DateFormat;->setLenient(Z)V
 HSPLjava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
 HSPLjava/text/DateFormatSymbols;-><init>(Ljava/util/Locale;)V
 HSPLjava/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String;
@@ -18480,7 +19163,12 @@
 HSPLjava/text/StringCharacterIterator;-><init>(Ljava/lang/String;III)V
 HSPLjava/text/StringCharacterIterator;->clone()Ljava/lang/Object;
 HSPLjava/text/StringCharacterIterator;->current()C
+HSPLjava/text/StringCharacterIterator;->first()C
+HSPLjava/text/StringCharacterIterator;->getBeginIndex()I
+HSPLjava/text/StringCharacterIterator;->getEndIndex()I
+HSPLjava/text/StringCharacterIterator;->getIndex()I
 HSPLjava/text/StringCharacterIterator;->next()C
+HSPLjava/text/StringCharacterIterator;->setIndex(I)C
 HSPLjava/time/Clock$SystemClock;-><init>(Ljava/time/ZoneId;)V
 HSPLjava/time/Clock$SystemClock;->getZone()Ljava/time/ZoneId;
 HSPLjava/time/Clock$SystemClock;->instant()Ljava/time/Instant;
@@ -18504,8 +19192,11 @@
 HSPLjava/time/LocalDate;->get0(Ljava/time/temporal/TemporalField;)I
 HSPLjava/time/LocalDate;->getDayOfMonth()I
 HSPLjava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;
+HSPLjava/time/LocalDate;->getMonthValue()I
 HSPLjava/time/LocalDate;->getYear()I
 HSPLjava/time/LocalDate;->isLeapYear()Z
+HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
 HSPLjava/time/LocalDate;->of(ILjava/time/Month;I)Ljava/time/LocalDate;
 HSPLjava/time/LocalDate;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate;
 HSPLjava/time/LocalDate;->plusDays(J)Ljava/time/LocalDate;
@@ -18515,6 +19206,9 @@
 HSPLjava/time/LocalDateTime;-><init>(Ljava/time/LocalDate;Ljava/time/LocalTime;)V
 HSPLjava/time/LocalDateTime;->getDayOfMonth()I
 HSPLjava/time/LocalDateTime;->getHour()I
+HSPLjava/time/LocalDateTime;->getMinute()I
+HSPLjava/time/LocalDateTime;->getMonthValue()I
+HSPLjava/time/LocalDateTime;->getNano()I
 HSPLjava/time/LocalDateTime;->getSecond()I
 HSPLjava/time/LocalDateTime;->getYear()I
 HSPLjava/time/LocalDateTime;->plusSeconds(J)Ljava/time/LocalDateTime;
@@ -18535,7 +19229,10 @@
 HSPLjava/time/LocalTime;->toNanoOfDay()J
 HSPLjava/time/LocalTime;->toSecondOfDay()I
 HSPLjava/time/LocalTime;->toString()Ljava/lang/String;
+HSPLjava/time/Month$1;-><clinit>()V
 HSPLjava/time/Month;->getValue()I
+HSPLjava/time/Month;->length(Z)I
+HSPLjava/time/Month;->values()[Ljava/time/Month;
 HSPLjava/time/ZoneId;-><init>()V
 HSPLjava/time/ZoneId;->of(Ljava/lang/String;)Ljava/time/ZoneId;
 HSPLjava/time/ZoneId;->of(Ljava/lang/String;Ljava/util/Map;)Ljava/time/ZoneId;
@@ -18559,6 +19256,7 @@
 HSPLjava/time/format/DateTimeFormatter;-><init>(Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;Ljava/util/Locale;Ljava/time/format/DecimalStyle;Ljava/time/format/ResolverStyle;Ljava/util/Set;Ljava/time/chrono/Chronology;Ljava/time/ZoneId;)V
 HSPLjava/time/format/DateTimeFormatter;->format(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
 HSPLjava/time/format/DateTimeFormatter;->formatTo(Ljava/time/temporal/TemporalAccessor;Ljava/lang/Appendable;)V
+HSPLjava/time/format/DateTimeFormatter;->getChronology()Ljava/time/chrono/Chronology;
 HSPLjava/time/format/DateTimeFormatter;->getDecimalStyle()Ljava/time/format/DecimalStyle;
 HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;-><init>(C)V
 HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>(Ljava/util/List;Z)V
@@ -18569,18 +19267,19 @@
 HSPLjava/time/format/DateTimeFormatterBuilder;->appendLiteral(C)Ljava/time/format/DateTimeFormatterBuilder;
 HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/DateTimeFormatterBuilder;
 HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder;
-HSPLjava/time/format/DateTimeFormatterBuilder;->parseField(CILjava/time/temporal/TemporalField;)V
-HSPLjava/time/format/DateTimeFormatterBuilder;->parsePattern(Ljava/lang/String;)V
 HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
-HSPLjava/time/format/DateTimePrintContext;-><init>(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)V
 HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$A9OZwfMlHD1vy7-nYt5NssACu7Q;-><init>(I)V
 HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$A9OZwfMlHD1vy7-nYt5NssACu7Q;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$TKkfUVRu_GUECdXqtmzzXrayVY8;-><init>(I)V
+HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$TKkfUVRu_GUECdXqtmzzXrayVY8;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
 HSPLjava/time/temporal/ChronoField;->checkValidIntValue(J)I
 HSPLjava/time/temporal/ChronoField;->checkValidValue(J)J
 HSPLjava/time/temporal/ChronoField;->isTimeBased()Z
 HSPLjava/time/temporal/ChronoField;->range()Ljava/time/temporal/ValueRange;
 HSPLjava/time/temporal/TemporalAdjusters;->lambda$nextOrSame$10(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+HSPLjava/time/temporal/TemporalAdjusters;->lambda$previousOrSame$12(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
 HSPLjava/time/temporal/TemporalAdjusters;->nextOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;
+HSPLjava/time/temporal/TemporalAdjusters;->previousOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;
 HSPLjava/time/temporal/TemporalQueries;->chronology()Ljava/time/temporal/TemporalQuery;
 HSPLjava/time/temporal/TemporalQueries;->localTime()Ljava/time/temporal/TemporalQuery;
 HSPLjava/time/temporal/TemporalQueries;->offset()Ljava/time/temporal/TemporalQuery;
@@ -18632,8 +19331,17 @@
 HSPLjava/util/AbstractList$Itr;->next()Ljava/lang/Object;
 HSPLjava/util/AbstractList$ListItr;-><init>(Ljava/util/AbstractList;I)V
 HSPLjava/util/AbstractList$ListItr;->nextIndex()I
+HSPLjava/util/AbstractList$RandomAccessSubList;-><init>(Ljava/util/AbstractList;II)V
+HSPLjava/util/AbstractList$SubList$1;-><init>(Ljava/util/AbstractList$SubList;I)V
+HSPLjava/util/AbstractList$SubList$1;->hasNext()Z
+HSPLjava/util/AbstractList$SubList$1;->nextIndex()I
 HSPLjava/util/AbstractList$SubList;-><init>(Ljava/util/AbstractList;II)V
+HSPLjava/util/AbstractList$SubList;->access$100(Ljava/util/AbstractList$SubList;)I
+HSPLjava/util/AbstractList$SubList;->access$200(Ljava/util/AbstractList$SubList;)Ljava/util/AbstractList;
 HSPLjava/util/AbstractList$SubList;->checkForComodification()V
+HSPLjava/util/AbstractList$SubList;->iterator()Ljava/util/Iterator;
+HSPLjava/util/AbstractList$SubList;->listIterator(I)Ljava/util/ListIterator;
+HSPLjava/util/AbstractList$SubList;->rangeCheckForAdd(I)V
 HSPLjava/util/AbstractList;-><init>()V
 HSPLjava/util/AbstractList;->add(Ljava/lang/Object;)Z
 HSPLjava/util/AbstractList;->clear()V
@@ -18676,6 +19384,7 @@
 HSPLjava/util/ArrayDeque$DescendingIterator;-><init>(Ljava/util/ArrayDeque;)V
 HSPLjava/util/ArrayDeque$DescendingIterator;-><init>(Ljava/util/ArrayDeque;Ljava/util/ArrayDeque$1;)V
 HSPLjava/util/ArrayDeque$DescendingIterator;->hasNext()Z
+HSPLjava/util/ArrayDeque$DescendingIterator;->next()Ljava/lang/Object;
 HSPLjava/util/ArrayDeque;-><init>()V
 HSPLjava/util/ArrayDeque;-><init>(I)V
 HSPLjava/util/ArrayDeque;-><init>(Ljava/util/Collection;)V
@@ -18690,6 +19399,7 @@
 HSPLjava/util/ArrayDeque;->descendingIterator()Ljava/util/Iterator;
 HSPLjava/util/ArrayDeque;->doubleCapacity()V
 HSPLjava/util/ArrayDeque;->getFirst()Ljava/lang/Object;
+HSPLjava/util/ArrayDeque;->getLast()Ljava/lang/Object;
 HSPLjava/util/ArrayDeque;->isEmpty()Z
 HSPLjava/util/ArrayDeque;->iterator()Ljava/util/Iterator;
 HSPLjava/util/ArrayDeque;->offer(Ljava/lang/Object;)Z
@@ -18865,6 +19575,7 @@
 HSPLjava/util/BitSet;->set(I)V
 HSPLjava/util/BitSet;->set(II)V
 HSPLjava/util/BitSet;->set(IZ)V
+HSPLjava/util/BitSet;->toString()Ljava/lang/String;
 HSPLjava/util/BitSet;->wordIndex(I)I
 HSPLjava/util/Calendar;-><init>()V
 HSPLjava/util/Calendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V
@@ -18917,6 +19628,7 @@
 HSPLjava/util/Collections$CopiesList;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyEnumeration;->hasMoreElements()Z
 HSPLjava/util/Collections$EmptyIterator;->hasNext()Z
+HSPLjava/util/Collections$EmptyList;->containsAll(Ljava/util/Collection;)Z
 HSPLjava/util/Collections$EmptyList;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$EmptyList;->isEmpty()Z
 HSPLjava/util/Collections$EmptyList;->iterator()Ljava/util/Iterator;
@@ -18925,6 +19637,7 @@
 HSPLjava/util/Collections$EmptyList;->size()I
 HSPLjava/util/Collections$EmptyList;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLjava/util/Collections$EmptyMap;->containsKey(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$EmptyMap;->entrySet()Ljava/util/Set;
 HSPLjava/util/Collections$EmptyMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyMap;->isEmpty()Z
@@ -18989,7 +19702,6 @@
 HSPLjava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;)V
 HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;)V
 HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;Ljava/lang/Object;)V
-HSPLjava/util/Collections$SynchronizedSet;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$UnmodifiableCollection$1;-><init>(Ljava/util/Collections$UnmodifiableCollection;)V
 HSPLjava/util/Collections$UnmodifiableCollection$1;->hasNext()Z
 HSPLjava/util/Collections$UnmodifiableCollection$1;->next()Ljava/lang/Object;
@@ -19009,6 +19721,7 @@
 HSPLjava/util/Collections$UnmodifiableList;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$UnmodifiableList;->get(I)Ljava/lang/Object;
 HSPLjava/util/Collections$UnmodifiableList;->hashCode()I
+HSPLjava/util/Collections$UnmodifiableList;->indexOf(Ljava/lang/Object;)I
 HSPLjava/util/Collections$UnmodifiableList;->listIterator()Ljava/util/ListIterator;
 HSPLjava/util/Collections$UnmodifiableList;->listIterator(I)Ljava/util/ListIterator;
 HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;-><init>(Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;)V
@@ -19050,6 +19763,7 @@
 HSPLjava/util/Collections;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;)I
 HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
+HSPLjava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList;
 HSPLjava/util/Collections;->nCopies(ILjava/lang/Object;)Ljava/util/List;
 HSPLjava/util/Collections;->newSetFromMap(Ljava/util/Map;)Ljava/util/Set;
 HSPLjava/util/Collections;->reverse(Ljava/util/List;)V
@@ -19257,6 +19971,9 @@
 HSPLjava/util/GregorianCalendar;->computeTime()V
 HSPLjava/util/GregorianCalendar;->getCurrentFixedDate()J
 HSPLjava/util/GregorianCalendar;->getFixedDate(Lsun/util/calendar/BaseCalendar;II)J
+HSPLjava/util/GregorianCalendar;->getLeastMaximum(I)I
+HSPLjava/util/GregorianCalendar;->getMaximum(I)I
+HSPLjava/util/GregorianCalendar;->getMinimum(I)I
 HSPLjava/util/GregorianCalendar;->getTimeZone()Ljava/util/TimeZone;
 HSPLjava/util/GregorianCalendar;->getWeekNumber(JJ)I
 HSPLjava/util/GregorianCalendar;->internalGetEra()I
@@ -19476,6 +20193,7 @@
 HSPLjava/util/LinkedHashMap;->keySet()Ljava/util/Set;
 HSPLjava/util/LinkedHashMap;->linkNodeLast(Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V
 HSPLjava/util/LinkedHashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+HSPLjava/util/LinkedHashMap;->reinitialize()V
 HSPLjava/util/LinkedHashMap;->removeEldestEntry(Ljava/util/Map$Entry;)Z
 HSPLjava/util/LinkedHashMap;->values()Ljava/util/Collection;
 HSPLjava/util/LinkedHashSet;-><init>()V
@@ -19491,6 +20209,7 @@
 HSPLjava/util/LinkedList$Node;-><init>(Ljava/util/LinkedList$Node;Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
 HSPLjava/util/LinkedList;-><init>()V
 HSPLjava/util/LinkedList;-><init>(Ljava/util/Collection;)V
+HSPLjava/util/LinkedList;->add(ILjava/lang/Object;)V
 HSPLjava/util/LinkedList;->add(Ljava/lang/Object;)Z
 HSPLjava/util/LinkedList;->addAll(ILjava/util/Collection;)Z
 HSPLjava/util/LinkedList;->addAll(Ljava/util/Collection;)Z
@@ -19548,6 +20267,7 @@
 HSPLjava/util/Locale;->getDefault()Ljava/util/Locale;
 HSPLjava/util/Locale;->getDefault(Ljava/util/Locale$Category;)Ljava/util/Locale;
 HSPLjava/util/Locale;->getExtensionKeys()Ljava/util/Set;
+HSPLjava/util/Locale;->getISO3Language()Ljava/lang/String;
 HSPLjava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
 HSPLjava/util/Locale;->getInstance(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
 HSPLjava/util/Locale;->getLanguage()Ljava/lang/String;
@@ -19586,7 +20306,6 @@
 HSPLjava/util/PriorityQueue$Itr;-><init>(Ljava/util/PriorityQueue;Ljava/util/PriorityQueue$1;)V
 HSPLjava/util/PriorityQueue$Itr;->hasNext()Z
 HSPLjava/util/PriorityQueue$Itr;->next()Ljava/lang/Object;
-HSPLjava/util/PriorityQueue$Itr;->remove()V
 HSPLjava/util/PriorityQueue;-><init>()V
 HSPLjava/util/PriorityQueue;-><init>(ILjava/util/Comparator;)V
 HSPLjava/util/PriorityQueue;->add(Ljava/lang/Object;)Z
@@ -19622,7 +20341,6 @@
 HSPLjava/util/Random;->nextBytes([B)V
 HSPLjava/util/Random;->nextDouble()D
 HSPLjava/util/Random;->nextFloat()F
-HSPLjava/util/Random;->nextGaussian()D
 HSPLjava/util/Random;->nextInt()I
 HSPLjava/util/Random;->nextInt(I)I
 HSPLjava/util/Random;->nextLong()J
@@ -19667,7 +20385,6 @@
 HSPLjava/util/SimpleTimeZone;->getOffsets(J[I)I
 HSPLjava/util/SimpleTimeZone;->getRawOffset()I
 HSPLjava/util/SimpleTimeZone;->hasSameRules(Ljava/util/TimeZone;)Z
-HSPLjava/util/Spliterator$OfInt;->forEachRemaining(Ljava/util/function/Consumer;)V
 HSPLjava/util/Spliterator;->getExactSizeIfKnown()J
 HSPLjava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;III)V
 HSPLjava/util/Spliterators$ArraySpliterator;->characteristics()I
@@ -19783,6 +20500,7 @@
 HSPLjava/util/TreeMap$TreeMapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$TreeMapEntry;->getKey()Ljava/lang/Object;
 HSPLjava/util/TreeMap$TreeMapEntry;->getValue()Ljava/lang/Object;
+HSPLjava/util/TreeMap$TreeMapEntry;->setValue(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/TreeMap$ValueIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$ValueIterator;->next()Ljava/lang/Object;
 HSPLjava/util/TreeMap$Values;-><init>(Ljava/util/TreeMap;)V
@@ -19953,6 +20671,9 @@
 HSPLjava/util/concurrent/CancellationException;-><init>(Ljava/lang/String;)V
 HSPLjava/util/concurrent/CompletableFuture$Completion;-><init>()V
 HSPLjava/util/concurrent/CompletableFuture$Signaller;-><init>(ZJJ)V
+HSPLjava/util/concurrent/CompletableFuture$Signaller;->block()Z
+HSPLjava/util/concurrent/CompletableFuture$Signaller;->isReleasable()Z
+HSPLjava/util/concurrent/CompletableFuture$Signaller;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
 HSPLjava/util/concurrent/CompletableFuture;-><init>()V
 HSPLjava/util/concurrent/CompletableFuture;->casStack(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)Z
 HSPLjava/util/concurrent/CompletableFuture;->complete(Ljava/lang/Object;)Z
@@ -20003,6 +20724,7 @@
 HSPLjava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set;
 HSPLjava/util/concurrent/ConcurrentHashMap;->mappingCount()J
 HSPLjava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentHashMap;->putAll(Ljava/util/Map;)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap;->putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
@@ -20016,9 +20738,14 @@
 HSPLjava/util/concurrent/ConcurrentHashMap;->tabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;
 HSPLjava/util/concurrent/ConcurrentHashMap;->tableSizeFor(I)I
 HSPLjava/util/concurrent/ConcurrentHashMap;->transfer([Ljava/util/concurrent/ConcurrentHashMap$Node;[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+HSPLjava/util/concurrent/ConcurrentHashMap;->tryPresize(I)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection;
 HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->casNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
 HSPLjava/util/concurrent/ConcurrentLinkedDeque;-><init>()V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->first()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->linkLast(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue;)V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->hasNext()Z
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->next()Ljava/lang/Object;
@@ -20036,6 +20763,7 @@
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->newNode(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedQueue;->peek()Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->poll()Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->remove(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->size()I
@@ -20153,10 +20881,14 @@
 HSPLjava/util/concurrent/LinkedBlockingDeque$Node;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>()V
 HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>(I)V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->addLast(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/LinkedBlockingDeque;->linkLast(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
 HSPLjava/util/concurrent/LinkedBlockingDeque;->offer(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/LinkedBlockingDeque;->offerLast(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/LinkedBlockingDeque;->pollFirst()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingDeque;->size()I
+HSPLjava/util/concurrent/LinkedBlockingDeque;->take()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->takeFirst()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingDeque;->unlinkFirst()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingQueue$Node;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>()V
@@ -20172,6 +20904,7 @@
 HSPLjava/util/concurrent/LinkedBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingQueue;->put(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotEmpty()V
+HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotFull()V
 HSPLjava/util/concurrent/LinkedBlockingQueue;->size()I
 HSPLjava/util/concurrent/LinkedBlockingQueue;->take()Ljava/lang/Object;
 HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>()V
@@ -20185,6 +20918,7 @@
 HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V
 HSPLjava/util/concurrent/PriorityBlockingQueue;->siftUpComparable(ILjava/lang/Object;[Ljava/lang/Object;)V
 HSPLjava/util/concurrent/PriorityBlockingQueue;->take()Ljava/lang/Object;
+HSPLjava/util/concurrent/PriorityBlockingQueue;->tryGrow([Ljava/lang/Object;I)V
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;[Ljava/util/concurrent/RunnableScheduledFuture;)V
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->hasNext()Z
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;-><init>()V
@@ -20238,17 +20972,20 @@
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->shutdown()V
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->shutdownNow()Ljava/util/List;
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
+HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(J)J
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J
 HSPLjava/util/concurrent/Semaphore$NonfairSync;-><init>(I)V
 HSPLjava/util/concurrent/Semaphore$NonfairSync;->tryAcquireShared(I)I
 HSPLjava/util/concurrent/Semaphore$Sync;-><init>(I)V
+HSPLjava/util/concurrent/Semaphore$Sync;->getPermits()I
 HSPLjava/util/concurrent/Semaphore$Sync;->nonfairTryAcquireShared(I)I
 HSPLjava/util/concurrent/Semaphore$Sync;->tryReleaseShared(I)Z
 HSPLjava/util/concurrent/Semaphore;-><init>(I)V
 HSPLjava/util/concurrent/Semaphore;-><init>(IZ)V
 HSPLjava/util/concurrent/Semaphore;->acquire()V
 HSPLjava/util/concurrent/Semaphore;->acquireUninterruptibly()V
+HSPLjava/util/concurrent/Semaphore;->availablePermits()I
 HSPLjava/util/concurrent/Semaphore;->release()V
 HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
@@ -20270,7 +21007,6 @@
 HSPLjava/util/concurrent/SynchronousQueue;->offer(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/SynchronousQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLjava/util/concurrent/SynchronousQueue;->take()Ljava/lang/Object;
-HSPLjava/util/concurrent/ThreadLocalRandom;->mix32(J)I
 HSPLjava/util/concurrent/ThreadLocalRandom;->nextInt()I
 HSPLjava/util/concurrent/ThreadLocalRandom;->nextSeed()J
 HSPLjava/util/concurrent/ThreadPoolExecutor$DiscardPolicy;-><init>()V
@@ -20335,6 +21071,7 @@
 HSPLjava/util/concurrent/TimeUnit$2;->toMillis(J)J
 HSPLjava/util/concurrent/TimeUnit$3;->convert(JLjava/util/concurrent/TimeUnit;)J
 HSPLjava/util/concurrent/TimeUnit$3;->toDays(J)J
+HSPLjava/util/concurrent/TimeUnit$3;->toHours(J)J
 HSPLjava/util/concurrent/TimeUnit$3;->toMicros(J)J
 HSPLjava/util/concurrent/TimeUnit$3;->toMillis(J)J
 HSPLjava/util/concurrent/TimeUnit$3;->toMinutes(J)J
@@ -20350,6 +21087,7 @@
 HSPLjava/util/concurrent/TimeUnit$5;->toNanos(J)J
 HSPLjava/util/concurrent/TimeUnit$5;->toSeconds(J)J
 HSPLjava/util/concurrent/TimeUnit$6;->toMillis(J)J
+HSPLjava/util/concurrent/TimeUnit$6;->toMinutes(J)J
 HSPLjava/util/concurrent/TimeUnit$6;->toNanos(J)J
 HSPLjava/util/concurrent/TimeUnit$6;->toSeconds(J)J
 HSPLjava/util/concurrent/TimeUnit$7;->toMillis(J)J
@@ -20395,6 +21133,7 @@
 HSPLjava/util/concurrent/atomic/AtomicLong;->decrementAndGet()J
 HSPLjava/util/concurrent/atomic/AtomicLong;->get()J
 HSPLjava/util/concurrent/atomic/AtomicLong;->getAndAdd(J)J
+HSPLjava/util/concurrent/atomic/AtomicLong;->getAndDecrement()J
 HSPLjava/util/concurrent/atomic/AtomicLong;->getAndIncrement()J
 HSPLjava/util/concurrent/atomic/AtomicLong;->getAndSet(J)J
 HSPLjava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J
@@ -20417,6 +21156,8 @@
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->byteOffset(I)J
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->checkedByteOffset(I)J
+HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSetRaw(JLjava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getRaw(J)Ljava/lang/Object;
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
@@ -20425,6 +21166,7 @@
 HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
 HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->getAndSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->valueCheck(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater;-><init>()V
 HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
@@ -20598,14 +21340,11 @@
 HSPLjava/util/jar/Manifest;->read(Ljava/io/InputStream;)V
 HSPLjava/util/jar/Manifest;->toLower(I)I
 HSPLjava/util/logging/ErrorManager;-><init>()V
-HSPLjava/util/logging/Formatter;-><init>()V
 HSPLjava/util/logging/Handler;-><init>()V
 HSPLjava/util/logging/Handler;->checkPermission()V
 HSPLjava/util/logging/Handler;->getFormatter()Ljava/util/logging/Formatter;
-HSPLjava/util/logging/Handler;->getLevel()Ljava/util/logging/Level;
-HSPLjava/util/logging/Handler;->isLoggable(Ljava/util/logging/LogRecord;)Z
 HSPLjava/util/logging/Handler;->setFormatter(Ljava/util/logging/Formatter;)V
-HSPLjava/util/logging/Handler;->setLevel(Ljava/util/logging/Level;)V
+HSPLjava/util/logging/Level$KnownLevel;->findByName(Ljava/lang/String;)Ljava/util/logging/Level$KnownLevel;
 HSPLjava/util/logging/Level;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/logging/Level;->intValue()I
 HSPLjava/util/logging/LogManager$5;-><init>(Ljava/util/logging/LogManager;Ljava/lang/String;Ljava/util/logging/Logger;)V
@@ -20763,10 +21502,7 @@
 HSPLjava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
 HSPLjava/util/stream/AbstractPipeline;->getStreamAndOpFlags()I
 HSPLjava/util/stream/AbstractPipeline;->isParallel()Z
-HSPLjava/util/stream/AbstractPipeline;->onClose(Ljava/lang/Runnable;)Ljava/util/stream/BaseStream;
 HSPLjava/util/stream/AbstractPipeline;->sourceSpliterator(I)Ljava/util/Spliterator;
-HSPLjava/util/stream/AbstractPipeline;->sourceStageSpliterator()Ljava/util/Spliterator;
-HSPLjava/util/stream/AbstractPipeline;->spliterator()Ljava/util/Spliterator;
 HSPLjava/util/stream/AbstractPipeline;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;
 HSPLjava/util/stream/AbstractPipeline;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;
 HSPLjava/util/stream/AbstractSpinedBuffer;-><init>()V
@@ -20890,9 +21626,7 @@
 HSPLjava/util/stream/ReferencePipeline$5$1;->accept(Ljava/lang/Object;)V
 HSPLjava/util/stream/ReferencePipeline$5;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToLongFunction;)V
 HSPLjava/util/stream/ReferencePipeline$5;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/ReferencePipeline$7;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Function;)V
 HSPLjava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
-HSPLjava/util/stream/ReferencePipeline$Head;->forEach(Ljava/util/function/Consumer;)V
 HSPLjava/util/stream/ReferencePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 HSPLjava/util/stream/ReferencePipeline$StatefulOp;->opIsStateful()Z
 HSPLjava/util/stream/ReferencePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
@@ -20905,7 +21639,6 @@
 HSPLjava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream;
 HSPLjava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
 HSPLjava/util/stream/ReferencePipeline;->findFirst()Ljava/util/Optional;
-HSPLjava/util/stream/ReferencePipeline;->flatMap(Ljava/util/function/Function;)Ljava/util/stream/Stream;
 HSPLjava/util/stream/ReferencePipeline;->forEach(Ljava/util/function/Consumer;)V
 HSPLjava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
 HSPLjava/util/stream/ReferencePipeline;->lambda$count$2(Ljava/lang/Object;)J
@@ -20942,6 +21675,7 @@
 HSPLjava/util/zip/CheckedInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V
 HSPLjava/util/zip/CheckedInputStream;->read()I
 HSPLjava/util/zip/CheckedInputStream;->read([BII)I
+HSPLjava/util/zip/Deflater;-><init>()V
 HSPLjava/util/zip/Deflater;-><init>(IZ)V
 HSPLjava/util/zip/Deflater;->deflate([BII)I
 HSPLjava/util/zip/Deflater;->deflate([BIII)I
@@ -21011,6 +21745,7 @@
 HSPLjava/util/zip/ZipCoder;->isUTF8()Z
 HSPLjava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;
 HSPLjava/util/zip/ZipEntry;-><init>()V
+HSPLjava/util/zip/ZipEntry;-><init>(Ljava/lang/String;)V
 HSPLjava/util/zip/ZipEntry;-><init>(Ljava/util/zip/ZipEntry;)V
 HSPLjava/util/zip/ZipEntry;->getMethod()I
 HSPLjava/util/zip/ZipEntry;->getName()Ljava/lang/String;
@@ -21060,6 +21795,7 @@
 HSPLjava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;J)Ljava/util/zip/ZipEntry;
 HSPLjava/util/zip/ZipFile;->releaseInflater(Ljava/util/zip/Inflater;)V
 HSPLjava/util/zip/ZipUtils;->get16([BI)I
+HSPLjava/util/zip/ZipUtils;->get32([BI)J
 HSPLjavax/crypto/Cipher$CipherSpiAndProvider;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
 HSPLjavax/crypto/Cipher$InitParams;-><init>(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/SecureRandom;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;)V
 HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;-><init>(Ljavax/crypto/Cipher;Ljava/security/Provider;Ljavax/crypto/CipherSpi;)V
@@ -21375,7 +22111,6 @@
 HSPLlibcore/io/NioBufferIterator;->skip(I)V
 HSPLlibcore/io/Os;->compareAndSetDefault(Llibcore/io/Os;Llibcore/io/Os;)Z
 HSPLlibcore/io/Os;->getDefault()Llibcore/io/Os;
-HSPLlibcore/net/InetAddressUtils;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrow(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrowStripOptionalBrackets(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLlibcore/net/NetworkSecurityPolicy;-><init>()V
@@ -21426,6 +22161,7 @@
 HSPLlibcore/reflect/ParameterizedTypeImpl;->getResolvedType()Ljava/lang/reflect/Type;
 HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V
 HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;Llibcore/reflect/ListOfTypes;)V
+HSPLlibcore/reflect/TypeVariableImpl;->equals(Ljava/lang/Object;)Z
 HSPLlibcore/reflect/TypeVariableImpl;->findFormalVar(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)Ljava/lang/reflect/TypeVariable;
 HSPLlibcore/reflect/TypeVariableImpl;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
 HSPLlibcore/reflect/TypeVariableImpl;->getName()Ljava/lang/String;
@@ -21445,7 +22181,6 @@
 HSPLlibcore/timezone/ZoneInfoDB;->checkNotClosed()V
 HSPLlibcore/timezone/ZoneInfoDB;->close()V
 HSPLlibcore/timezone/ZoneInfoDB;->finalize()V
-HSPLlibcore/timezone/ZoneInfoDB;->getAvailableIDs()[Ljava/lang/String;
 HSPLlibcore/timezone/ZoneInfoDB;->getBufferIterator(Ljava/lang/String;)Llibcore/io/BufferIterator;
 HSPLlibcore/timezone/ZoneInfoDB;->getInstance()Llibcore/timezone/ZoneInfoDB;
 HSPLlibcore/timezone/ZoneInfoDB;->makeTimeZone(Ljava/lang/String;)Llibcore/util/ZoneInfo;
@@ -21455,6 +22190,7 @@
 HSPLlibcore/timezone/ZoneInfoDb;->checkNotClosed()V
 HSPLlibcore/timezone/ZoneInfoDb;->close()V
 HSPLlibcore/timezone/ZoneInfoDb;->finalize()V
+HSPLlibcore/timezone/ZoneInfoDb;->getAvailableIDs()[Ljava/lang/String;
 HSPLlibcore/timezone/ZoneInfoDb;->getBufferIterator(Ljava/lang/String;)Llibcore/io/BufferIterator;
 HSPLlibcore/timezone/ZoneInfoDb;->getInstance()Llibcore/timezone/ZoneInfoDb;
 HSPLlibcore/timezone/ZoneInfoDb;->makeTimeZone(Ljava/lang/String;)Llibcore/util/ZoneInfo;
@@ -21478,7 +22214,6 @@
 HSPLlibcore/util/FP16;->toHalf(F)S
 HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;->run()V
 HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->run()V
-HSPLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJ)V
 HSPLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJZ)V
 HSPLlibcore/util/NativeAllocationRegistry;->access$000(Llibcore/util/NativeAllocationRegistry;)J
 HSPLlibcore/util/NativeAllocationRegistry;->access$100(Llibcore/util/NativeAllocationRegistry;)J
@@ -21491,12 +22226,26 @@
 HSPLlibcore/util/SneakyThrow;->sneakyThrow(Ljava/lang/Throwable;)V
 HSPLlibcore/util/SneakyThrow;->sneakyThrow_(Ljava/lang/Throwable;)V
 HSPLlibcore/util/XmlObjectFactory;->newXmlPullParser()Lorg/xmlpull/v1/XmlPullParser;
-HSPLlibcore/util/ZoneInfo$WallTime;-><init>()V
 HSPLlibcore/util/ZoneInfo$WallTime;->copyFieldsFromCalendar()V
+HSPLlibcore/util/ZoneInfo$WallTime;->getGmtOffset()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getHour()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getIsDst()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getMinute()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getMonth()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getMonthDay()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getSecond()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getWeekDay()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getYear()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getYearDay()I
+HSPLlibcore/util/ZoneInfo$WallTime;->localtime(ILlibcore/util/ZoneInfo;)V
 HSPLlibcore/util/ZoneInfo;-><init>(Ljava/lang/String;[J[B[I[BJ)V
 HSPLlibcore/util/ZoneInfo;->access$000(Llibcore/util/ZoneInfo;)I
 HSPLlibcore/util/ZoneInfo;->access$100(Llibcore/util/ZoneInfo;)[J
+HSPLlibcore/util/ZoneInfo;->access$300(Llibcore/util/ZoneInfo;)[I
+HSPLlibcore/util/ZoneInfo;->access$400(Llibcore/util/ZoneInfo;)[B
+HSPLlibcore/util/ZoneInfo;->access$500(JI)I
 HSPLlibcore/util/ZoneInfo;->checkTzifVersionAcceptable(Ljava/lang/String;B)V
+HSPLlibcore/util/ZoneInfo;->checked32BitAdd(JI)I
 HSPLlibcore/util/ZoneInfo;->clone()Ljava/lang/Object;
 HSPLlibcore/util/ZoneInfo;->findOffsetIndexForTimeInMilliseconds(J)I
 HSPLlibcore/util/ZoneInfo;->findOffsetIndexForTimeInSeconds(J)I
@@ -21515,7 +22264,6 @@
 HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(ILjava/nio/ByteBuffer;)V
 HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(I[BII)V
 HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->putString(Ljava/nio/ByteBuffer;Ljava/lang/String;)V
-HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->wrapChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Ljava/nio/ByteBuffer;
 HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->broadcast(I)V
 HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->dispatch(I[BII)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->sendChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)V
@@ -21536,6 +22284,7 @@
 HSPLorg/ccil/cowan/tagsoup/Element;->canContain(Lorg/ccil/cowan/tagsoup/Element;)Z
 HSPLorg/ccil/cowan/tagsoup/Element;->clean()V
 HSPLorg/ccil/cowan/tagsoup/Element;->flags()I
+HSPLorg/ccil/cowan/tagsoup/Element;->isPreclosed()Z
 HSPLorg/ccil/cowan/tagsoup/Element;->localName()Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/Element;->name()Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/Element;->namespace()Ljava/lang/String;
@@ -21557,9 +22306,15 @@
 HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->unread(Ljava/io/PushbackReader;I)V
 HSPLorg/ccil/cowan/tagsoup/Parser$1;-><init>(Lorg/ccil/cowan/tagsoup/Parser;)V
 HSPLorg/ccil/cowan/tagsoup/Parser;-><init>()V
+HSPLorg/ccil/cowan/tagsoup/Parser;->entity([CII)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->eof([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->etag_basic([CII)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->foreign(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLorg/ccil/cowan/tagsoup/Parser;->getEntity()I
 HSPLorg/ccil/cowan/tagsoup/Parser;->getReader(Lorg/xml/sax/InputSource;)Ljava/io/Reader;
+HSPLorg/ccil/cowan/tagsoup/Parser;->gi([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->lookupEntity([CII)I
+HSPLorg/ccil/cowan/tagsoup/Parser;->makeName([CII)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/Parser;->parse(Lorg/xml/sax/InputSource;)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->pcdata([CII)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->pop()V
@@ -21581,6 +22336,7 @@
 HSPLorg/json/JSON;->toString(Ljava/lang/Object;)Ljava/lang/String;
 HSPLorg/json/JSONArray;-><init>()V
 HSPLorg/json/JSONArray;-><init>(Ljava/lang/String;)V
+HSPLorg/json/JSONArray;-><init>(Ljava/util/Collection;)V
 HSPLorg/json/JSONArray;-><init>(Lorg/json/JSONTokener;)V
 HSPLorg/json/JSONArray;->get(I)Ljava/lang/Object;
 HSPLorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
@@ -21588,6 +22344,8 @@
 HSPLorg/json/JSONArray;->length()I
 HSPLorg/json/JSONArray;->opt(I)Ljava/lang/Object;
 HSPLorg/json/JSONArray;->optJSONObject(I)Lorg/json/JSONObject;
+HSPLorg/json/JSONArray;->put(I)Lorg/json/JSONArray;
+HSPLorg/json/JSONArray;->put(J)Lorg/json/JSONArray;
 HSPLorg/json/JSONArray;->put(Ljava/lang/Object;)Lorg/json/JSONArray;
 HSPLorg/json/JSONArray;->toString()Ljava/lang/String;
 HSPLorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V
@@ -21610,6 +22368,7 @@
 HSPLorg/json/JSONObject;->length()I
 HSPLorg/json/JSONObject;->numberToString(Ljava/lang/Number;)Ljava/lang/String;
 HSPLorg/json/JSONObject;->opt(Ljava/lang/String;)Ljava/lang/Object;
+HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;)Z
 HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z
 HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;)I
 HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;I)I
@@ -21619,10 +22378,12 @@
 HSPLorg/json/JSONObject;->optLong(Ljava/lang/String;J)J
 HSPLorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
 HSPLorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/json/JSONObject;->put(Ljava/lang/String;D)Lorg/json/JSONObject;
 HSPLorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
 HSPLorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;
 HSPLorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
 HSPLorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
+HSPLorg/json/JSONObject;->putOpt(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
 HSPLorg/json/JSONObject;->toString()Ljava/lang/String;
 HSPLorg/json/JSONObject;->wrap(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLorg/json/JSONObject;->writeTo(Lorg/json/JSONStringer;)V
@@ -21673,10 +22434,14 @@
 HSPLsun/misc/Cleaner;->clean()V
 HSPLsun/misc/Cleaner;->create(Ljava/lang/Object;Ljava/lang/Runnable;)Lsun/misc/Cleaner;
 HSPLsun/misc/Cleaner;->remove(Lsun/misc/Cleaner;)Z
+HSPLsun/misc/CompoundEnumeration;-><init>([Ljava/util/Enumeration;)V
+HSPLsun/misc/CompoundEnumeration;->hasMoreElements()Z
+HSPLsun/misc/CompoundEnumeration;->next()Z
 HSPLsun/misc/FDBigInteger;-><init>(J[CII)V
 HSPLsun/misc/FDBigInteger;-><init>([II)V
 HSPLsun/misc/FDBigInteger;->addAndCmp(Lsun/misc/FDBigInteger;Lsun/misc/FDBigInteger;)I
 HSPLsun/misc/FDBigInteger;->big5pow(I)Lsun/misc/FDBigInteger;
+HSPLsun/misc/FDBigInteger;->checkZeroTail([II)I
 HSPLsun/misc/FDBigInteger;->cmp(Lsun/misc/FDBigInteger;)I
 HSPLsun/misc/FDBigInteger;->cmpPow52(II)I
 HSPLsun/misc/FDBigInteger;->getNormalizationBias()I
@@ -21684,6 +22449,7 @@
 HSPLsun/misc/FDBigInteger;->leftShift(I)Lsun/misc/FDBigInteger;
 HSPLsun/misc/FDBigInteger;->leftShift([II[IIII)V
 HSPLsun/misc/FDBigInteger;->makeImmutable()V
+HSPLsun/misc/FDBigInteger;->mult([IIII[I)V
 HSPLsun/misc/FDBigInteger;->mult([III[I)V
 HSPLsun/misc/FDBigInteger;->multAddMe(II)V
 HSPLsun/misc/FDBigInteger;->multAndCarryBy10([II[I)I
@@ -21872,7 +22638,6 @@
 HSPLsun/nio/fs/NativeBuffer;->setOwner(Ljava/lang/Object;)V
 HSPLsun/nio/fs/NativeBuffer;->size()I
 HSPLsun/nio/fs/NativeBuffers;->copyCStringToNativeBuffer([BLsun/nio/fs/NativeBuffer;)V
-HSPLsun/nio/fs/NativeBuffers;->getNativeBufferFromCache(I)Lsun/nio/fs/NativeBuffer;
 HSPLsun/nio/fs/NativeBuffers;->releaseNativeBuffer(Lsun/nio/fs/NativeBuffer;)V
 HSPLsun/nio/fs/UnixChannelFactory$1;-><clinit>()V
 HSPLsun/nio/fs/UnixChannelFactory$Flags;-><init>()V
@@ -21907,8 +22672,6 @@
 HSPLsun/nio/fs/UnixFileSystemProvider;->newByteChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
 HSPLsun/nio/fs/UnixFileSystemProvider;->newFileChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
 HSPLsun/nio/fs/UnixFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
-HSPLsun/nio/fs/UnixNativeDispatcher;->copyToNativeBuffer(Lsun/nio/fs/UnixPath;)Lsun/nio/fs/NativeBuffer;
-HSPLsun/nio/fs/UnixNativeDispatcher;->lstat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V
 HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)V
 HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;[B)V
 HSPLsun/nio/fs/UnixPath;->checkNotNul(Ljava/lang/String;C)V
@@ -21990,6 +22753,8 @@
 HSPLsun/security/jca/Providers;->getThreadProviderList()Lsun/security/jca/ProviderList;
 HSPLsun/security/jca/Providers;->setProviderList(Lsun/security/jca/ProviderList;)V
 HSPLsun/security/jca/Providers;->setSystemProviderList(Lsun/security/jca/ProviderList;)V
+HSPLsun/security/jca/Providers;->startJarVerification()Ljava/lang/Object;
+HSPLsun/security/jca/Providers;->stopJarVerification(Ljava/lang/Object;)V
 HSPLsun/security/pkcs/ContentInfo;-><init>(Lsun/security/util/DerInputStream;)V
 HSPLsun/security/pkcs/ContentInfo;-><init>(Lsun/security/util/DerInputStream;Z)V
 HSPLsun/security/pkcs/ContentInfo;->getContent()Lsun/security/util/DerValue;
@@ -22243,6 +23008,8 @@
 HSPLsun/security/util/SignatureFileVerifier;-><init>(Ljava/util/ArrayList;Lsun/security/util/ManifestDigester;Ljava/lang/String;[B)V
 HSPLsun/security/util/SignatureFileVerifier;->getDigest(Ljava/lang/String;)Ljava/security/MessageDigest;
 HSPLsun/security/util/SignatureFileVerifier;->getSigners([Lsun/security/pkcs/SignerInfo;Lsun/security/pkcs/PKCS7;)[Ljava/security/CodeSigner;
+HSPLsun/security/util/SignatureFileVerifier;->isBlockOrSF(Ljava/lang/String;)Z
+HSPLsun/security/util/SignatureFileVerifier;->matches([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
 HSPLsun/security/util/SignatureFileVerifier;->needSignatureFileBytes()Z
 HSPLsun/security/util/SignatureFileVerifier;->process(Ljava/util/Hashtable;Ljava/util/List;)V
 HSPLsun/security/util/SignatureFileVerifier;->processImpl(Ljava/util/Hashtable;Ljava/util/List;)V
@@ -22484,8 +23251,6 @@
 HSPLsun/util/locale/BaseLocale;->getScript()Ljava/lang/String;
 HSPLsun/util/locale/BaseLocale;->getVariant()Ljava/lang/String;
 HSPLsun/util/locale/BaseLocale;->hashCode()I
-HSPLsun/util/locale/Extension;-><init>(CLjava/lang/String;)V
-HSPLsun/util/locale/Extension;->setValue(Ljava/lang/String;)V
 HSPLsun/util/locale/InternalLocaleBuilder;-><init>()V
 HSPLsun/util/locale/InternalLocaleBuilder;->clear()Lsun/util/locale/InternalLocaleBuilder;
 HSPLsun/util/locale/InternalLocaleBuilder;->clearExtensions()Lsun/util/locale/InternalLocaleBuilder;
@@ -22517,8 +23282,6 @@
 HSPLsun/util/locale/LanguageTag;->parseRegion(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
 HSPLsun/util/locale/LanguageTag;->parseScript(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
 HSPLsun/util/locale/LanguageTag;->parseVariants(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-HSPLsun/util/locale/LocaleExtensions;-><clinit>()V
-HSPLsun/util/locale/LocaleExtensions;-><init>(Ljava/lang/String;Ljava/lang/Character;Lsun/util/locale/Extension;)V
 HSPLsun/util/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
 HSPLsun/util/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
 HSPLsun/util/locale/LocaleObjectCache;->cleanStaleEntries()V
@@ -22546,25 +23309,30 @@
 HSPLsun/util/locale/StringTokenIterator;->next()Ljava/lang/String;
 HSPLsun/util/locale/StringTokenIterator;->nextDelimiter(I)I
 HSPLsun/util/locale/StringTokenIterator;->setStart(I)Lsun/util/locale/StringTokenIterator;
-HSPLsun/util/locale/UnicodeLocaleExtension;-><clinit>()V
-HSPLsun/util/locale/UnicodeLocaleExtension;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/R$styleable;
 Landroid/accessibilityservice/AccessibilityServiceInfo$1;
 Landroid/accessibilityservice/AccessibilityServiceInfo;
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;
 Landroid/accessibilityservice/IAccessibilityServiceClient;
+Landroid/accounts/AbstractAccountAuthenticator$Transport;
+Landroid/accounts/AbstractAccountAuthenticator;
 Landroid/accounts/Account$1;
 Landroid/accounts/Account;
 Landroid/accounts/AccountAndUser;
+Landroid/accounts/AccountAuthenticatorResponse$1;
+Landroid/accounts/AccountAuthenticatorResponse;
 Landroid/accounts/AccountManager$10;
 Landroid/accounts/AccountManager$11;
+Landroid/accounts/AccountManager$15;
+Landroid/accounts/AccountManager$16;
 Landroid/accounts/AccountManager$17;
 Landroid/accounts/AccountManager$18;
 Landroid/accounts/AccountManager$1;
 Landroid/accounts/AccountManager$20;
 Landroid/accounts/AccountManager$2;
 Landroid/accounts/AccountManager$3;
+Landroid/accounts/AccountManager$8;
 Landroid/accounts/AccountManager$AmsTask$1;
 Landroid/accounts/AccountManager$AmsTask$Response;
 Landroid/accounts/AccountManager$AmsTask;
@@ -22585,6 +23353,9 @@
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;
 Landroid/accounts/IAccountAuthenticator$Stub;
 Landroid/accounts/IAccountAuthenticator;
+Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;
+Landroid/accounts/IAccountAuthenticatorResponse$Stub;
+Landroid/accounts/IAccountAuthenticatorResponse;
 Landroid/accounts/IAccountManager$Stub$Proxy;
 Landroid/accounts/IAccountManager$Stub;
 Landroid/accounts/IAccountManager;
@@ -22663,8 +23434,13 @@
 Landroid/animation/TypeEvaluator;
 Landroid/animation/ValueAnimator$AnimatorUpdateListener;
 Landroid/animation/ValueAnimator;
+Landroid/annotation/IntRange;
+Landroid/annotation/NonNull;
+Landroid/annotation/SystemApi;
 Landroid/apex/ApexInfo$1;
 Landroid/apex/ApexInfo;
+Landroid/apex/ApexSessionInfo$1;
+Landroid/apex/ApexSessionInfo;
 Landroid/apex/IApexService$Stub$Proxy;
 Landroid/apex/IApexService$Stub;
 Landroid/apex/IApexService;
@@ -22676,15 +23452,19 @@
 Landroid/app/-$$Lambda$ActivityThread$FmvGY8exyv0L0oqZrnunpl8OFI8;
 Landroid/app/-$$Lambda$ActivityThread$Wg40iAoNYFxps_KmrqtgptTB054;
 Landroid/app/-$$Lambda$ActivityTransitionState$yioLR6wQWjZ9DcWK5bibElIbsXc;
+Landroid/app/-$$Lambda$AppOpsManager$2$t9yQjThS21ls97TonVuHm6nv4N8;
+Landroid/app/-$$Lambda$AppOpsManager$4Zbi7CSLEt0nvOmfJBVYtJkauTQ;
 Landroid/app/-$$Lambda$AppOpsManager$HistoricalOp$DkVcBvqB32SMHlxw0sWQPh3GL1A;
 Landroid/app/-$$Lambda$AppOpsManager$HistoricalOp$HUOLFYs8TiaQIOXcrq6JzjxA6gs;
 Landroid/app/-$$Lambda$AppOpsManager$HistoricalOp$Vs6pDL0wjOBTquwNnreWVbPQrn4;
+Landroid/app/-$$Lambda$AppOpsManager$frSyqmhVUmNbhMckfMS3PSwTMlw;
 Landroid/app/-$$Lambda$Dialog$zXRzrq3I7H1_zmZ8d_W7t2CQN0I;
 Landroid/app/-$$Lambda$FragmentTransition$jurn0WXuKw3bRQ_2d5zCWdeZWuI;
 Landroid/app/-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA;
 Landroid/app/-$$Lambda$Notification$hOCsSZH8tWalFSbIzQ9x9IcPa9M;
 Landroid/app/-$$Lambda$ResourcesManager$QJ7UiVk_XS90KuXAsIjIEym1DnM;
 Landroid/app/-$$Lambda$SharedPreferencesImpl$EditorImpl$3CAjkhzA131V3V-sLfP2uy0FWZ0;
+Landroid/app/-$$Lambda$SystemServiceRegistry$17$DBwvhMLzjNnBFkaOY1OxllrybH4;
 Landroid/app/-$$Lambda$WallpaperManager$Globals$1AcnQUORvPlCjJoNqdxfQT4o4Nw;
 Landroid/app/-$$Lambda$WallpaperManager$Globals$2yG7V1sbMECCnlFTLyjKWKqNoYI;
 Landroid/app/-$$Lambda$ZsFzoG2loyqNOR2cNbo-thrNK5c;
@@ -22696,12 +23476,15 @@
 Landroid/app/Activity$ManagedCursor;
 Landroid/app/Activity$ManagedDialog;
 Landroid/app/Activity$NonConfigurationInstances;
+Landroid/app/Activity$RequestFinishCallback;
 Landroid/app/Activity;
 Landroid/app/ActivityManager$1;
 Landroid/app/ActivityManager$AppTask;
 Landroid/app/ActivityManager$MemoryInfo$1;
 Landroid/app/ActivityManager$MemoryInfo;
 Landroid/app/ActivityManager$OnUidImportanceListener;
+Landroid/app/ActivityManager$ProcessErrorStateInfo$1;
+Landroid/app/ActivityManager$ProcessErrorStateInfo;
 Landroid/app/ActivityManager$RecentTaskInfo$1;
 Landroid/app/ActivityManager$RecentTaskInfo;
 Landroid/app/ActivityManager$RunningAppProcessInfo$1;
@@ -22719,8 +23502,10 @@
 Landroid/app/ActivityManager$UidObserver;
 Landroid/app/ActivityManager;
 Landroid/app/ActivityManagerInternal;
+Landroid/app/ActivityOptions$1;
 Landroid/app/ActivityOptions;
 Landroid/app/ActivityTaskManager$1;
+Landroid/app/ActivityTaskManager$2;
 Landroid/app/ActivityTaskManager;
 Landroid/app/ActivityThread$1;
 Landroid/app/ActivityThread$ActivityClientRecord;
@@ -22765,35 +23550,55 @@
 Landroid/app/AppOpsManager$1;
 Landroid/app/AppOpsManager$2;
 Landroid/app/AppOpsManager$3;
+Landroid/app/AppOpsManager$HistoricalFeatureOps;
 Landroid/app/AppOpsManager$HistoricalOp$1;
 Landroid/app/AppOpsManager$HistoricalOp;
 Landroid/app/AppOpsManager$HistoricalOps$1;
 Landroid/app/AppOpsManager$HistoricalOps;
+Landroid/app/AppOpsManager$HistoricalOpsRequest$Builder;
+Landroid/app/AppOpsManager$HistoricalOpsRequest;
 Landroid/app/AppOpsManager$HistoricalPackageOps$1;
 Landroid/app/AppOpsManager$HistoricalPackageOps;
 Landroid/app/AppOpsManager$HistoricalUidOps$1;
 Landroid/app/AppOpsManager$HistoricalUidOps;
+Landroid/app/AppOpsManager$NoteOpEvent;
+Landroid/app/AppOpsManager$OnOpActiveChangedInternalListener;
+Landroid/app/AppOpsManager$OnOpActiveChangedListener;
 Landroid/app/AppOpsManager$OnOpChangedInternalListener;
 Landroid/app/AppOpsManager$OnOpChangedListener;
+Landroid/app/AppOpsManager$OnOpNotedListener;
 Landroid/app/AppOpsManager$OpEntry$1;
 Landroid/app/AppOpsManager$OpEntry;
+Landroid/app/AppOpsManager$OpFeatureEntry$1;
+Landroid/app/AppOpsManager$OpFeatureEntry$LongSparseArrayParceling;
+Landroid/app/AppOpsManager$OpFeatureEntry;
 Landroid/app/AppOpsManager$PackageOps$1;
 Landroid/app/AppOpsManager$PackageOps;
+Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;
 Landroid/app/AppOpsManager;
 Landroid/app/AppOpsManagerInternal;
 Landroid/app/Application$ActivityLifecycleCallbacks;
+Landroid/app/Application$OnProvideAssistDataListener;
 Landroid/app/Application;
 Landroid/app/ApplicationErrorReport$1;
+Landroid/app/ApplicationErrorReport$AnrInfo;
+Landroid/app/ApplicationErrorReport$BatteryInfo;
 Landroid/app/ApplicationErrorReport$CrashInfo;
 Landroid/app/ApplicationErrorReport$ParcelableCrashInfo$1;
 Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;
+Landroid/app/ApplicationErrorReport$RunningServiceInfo;
 Landroid/app/ApplicationErrorReport;
 Landroid/app/ApplicationLoaders$CachedClassLoader;
 Landroid/app/ApplicationLoaders;
+Landroid/app/ApplicationPackageManager$1;
+Landroid/app/ApplicationPackageManager$HasSystemFeatureQuery;
 Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;
 Landroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;
 Landroid/app/ApplicationPackageManager$ResourceName;
+Landroid/app/ApplicationPackageManager$SystemFeatureQuery;
 Landroid/app/ApplicationPackageManager;
+Landroid/app/AsyncNotedAppOp$1;
+Landroid/app/AsyncNotedAppOp;
 Landroid/app/AutomaticZenRule$1;
 Landroid/app/AutomaticZenRule;
 Landroid/app/BackStackRecord$Op;
@@ -22811,12 +23616,14 @@
 Landroid/app/Dialog$ListenersHandler;
 Landroid/app/Dialog;
 Landroid/app/DialogFragment;
+Landroid/app/DirectAction$1;
 Landroid/app/DirectAction;
 Landroid/app/DownloadManager$CursorTranslator;
 Landroid/app/DownloadManager$Query;
 Landroid/app/DownloadManager$Request;
 Landroid/app/DownloadManager;
 Landroid/app/EnterTransitionCoordinator;
+Landroid/app/EventLogTags;
 Landroid/app/ExitTransitionCoordinator;
 Landroid/app/Fragment$1;
 Landroid/app/Fragment$AnimationInfo;
@@ -22891,6 +23698,7 @@
 Landroid/app/IRequestFinishCallback$Stub$Proxy;
 Landroid/app/IRequestFinishCallback$Stub;
 Landroid/app/IRequestFinishCallback;
+Landroid/app/ISearchManager$Stub$Proxy;
 Landroid/app/ISearchManager$Stub;
 Landroid/app/ISearchManager;
 Landroid/app/IServiceConnection$Stub$Proxy;
@@ -22899,12 +23707,15 @@
 Landroid/app/IStopUserCallback$Stub$Proxy;
 Landroid/app/IStopUserCallback$Stub;
 Landroid/app/IStopUserCallback;
+Landroid/app/ITaskOrganizerController;
 Landroid/app/ITaskStackListener$Stub$Proxy;
 Landroid/app/ITaskStackListener$Stub;
 Landroid/app/ITaskStackListener;
 Landroid/app/ITransientNotification$Stub$Proxy;
 Landroid/app/ITransientNotification$Stub;
 Landroid/app/ITransientNotification;
+Landroid/app/ITransientNotificationCallback$Stub;
+Landroid/app/ITransientNotificationCallback;
 Landroid/app/IUiAutomationConnection$Stub$Proxy;
 Landroid/app/IUiAutomationConnection$Stub;
 Landroid/app/IUiAutomationConnection;
@@ -22926,8 +23737,13 @@
 Landroid/app/IWallpaperManagerCallback$Stub$Proxy;
 Landroid/app/IWallpaperManagerCallback$Stub;
 Landroid/app/IWallpaperManagerCallback;
+Landroid/app/InstantAppResolverService$1;
+Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;
+Landroid/app/InstantAppResolverService$ServiceHandler;
+Landroid/app/InstantAppResolverService;
 Landroid/app/Instrumentation$ActivityGoing;
 Landroid/app/Instrumentation$ActivityMonitor;
+Landroid/app/Instrumentation$ActivityResult;
 Landroid/app/Instrumentation$ActivityWaiter;
 Landroid/app/Instrumentation;
 Landroid/app/IntentReceiverLeaked;
@@ -22964,22 +23780,30 @@
 Landroid/app/Notification$BuilderRemoteViews;
 Landroid/app/Notification$DecoratedCustomViewStyle;
 Landroid/app/Notification$DecoratedMediaCustomViewStyle;
+Landroid/app/Notification$Extender;
 Landroid/app/Notification$InboxStyle;
 Landroid/app/Notification$MediaStyle;
 Landroid/app/Notification$MessagingStyle$Message;
 Landroid/app/Notification$MessagingStyle;
 Landroid/app/Notification$StandardTemplateParams;
 Landroid/app/Notification$Style;
+Landroid/app/Notification$TemplateBindResult;
+Landroid/app/Notification$TvExtender;
 Landroid/app/Notification;
 Landroid/app/NotificationChannel$1;
 Landroid/app/NotificationChannel;
 Landroid/app/NotificationChannelGroup$1;
 Landroid/app/NotificationChannelGroup;
+Landroid/app/NotificationHistory$1;
+Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+Landroid/app/NotificationHistory$HistoricalNotification;
+Landroid/app/NotificationHistory;
 Landroid/app/NotificationManager$Policy$1;
 Landroid/app/NotificationManager$Policy;
 Landroid/app/NotificationManager;
 Landroid/app/OnActivityPausedListener;
 Landroid/app/PackageInstallObserver$1;
+Landroid/app/PackageInstallObserver;
 Landroid/app/PendingIntent$1;
 Landroid/app/PendingIntent$2;
 Landroid/app/PendingIntent$CanceledException;
@@ -22991,23 +23815,33 @@
 Landroid/app/Person$Builder;
 Landroid/app/Person;
 Landroid/app/PictureInPictureParams$1;
+Landroid/app/PictureInPictureParams$Builder;
 Landroid/app/PictureInPictureParams;
+Landroid/app/ProcessMemoryState$1;
+Landroid/app/ProcessMemoryState;
 Landroid/app/ProfilerInfo$1;
 Landroid/app/ProfilerInfo;
+Landroid/app/ProgressDialog;
+Landroid/app/PropertyInvalidatedCache$1;
+Landroid/app/PropertyInvalidatedCache;
 Landroid/app/QueuedWork$QueuedWorkHandler;
 Landroid/app/QueuedWork;
 Landroid/app/ReceiverRestrictedContext;
 Landroid/app/RemoteAction$1;
 Landroid/app/RemoteAction;
 Landroid/app/RemoteInput$1;
+Landroid/app/RemoteInput$Builder;
 Landroid/app/RemoteInput;
+Landroid/app/RemoteInputHistoryItem;
 Landroid/app/RemoteServiceException;
 Landroid/app/ResourcesManager$1;
 Landroid/app/ResourcesManager$ActivityResources;
 Landroid/app/ResourcesManager$ApkKey;
+Landroid/app/ResourcesManager$UpdateHandler;
 Landroid/app/ResourcesManager;
 Landroid/app/ResultInfo$1;
 Landroid/app/ResultInfo;
+Landroid/app/SearchDialog;
 Landroid/app/SearchManager;
 Landroid/app/SearchableInfo$1;
 Landroid/app/SearchableInfo$ActionKeyInfo;
@@ -23025,6 +23859,9 @@
 Landroid/app/SharedPreferencesImpl$EditorImpl;
 Landroid/app/SharedPreferencesImpl$MemoryCommitResult;
 Landroid/app/SharedPreferencesImpl;
+Landroid/app/StatsManager$StatsUnavailableException;
+Landroid/app/StatsManager$StatsdDeathRecipient;
+Landroid/app/StatsManager;
 Landroid/app/StatusBarManager;
 Landroid/app/SynchronousUserSwitchObserver;
 Landroid/app/SystemServiceRegistry$100;
@@ -23044,7 +23881,12 @@
 Landroid/app/SystemServiceRegistry$113;
 Landroid/app/SystemServiceRegistry$114;
 Landroid/app/SystemServiceRegistry$115;
+Landroid/app/SystemServiceRegistry$116;
+Landroid/app/SystemServiceRegistry$117;
+Landroid/app/SystemServiceRegistry$118;
+Landroid/app/SystemServiceRegistry$119;
 Landroid/app/SystemServiceRegistry$11;
+Landroid/app/SystemServiceRegistry$120;
 Landroid/app/SystemServiceRegistry$12;
 Landroid/app/SystemServiceRegistry$13;
 Landroid/app/SystemServiceRegistry$14;
@@ -23162,10 +24004,13 @@
 Landroid/app/Vr2dDisplayProperties$1;
 Landroid/app/Vr2dDisplayProperties;
 Landroid/app/VrManager;
+Landroid/app/WaitResult$1;
+Landroid/app/WaitResult;
 Landroid/app/WallpaperColors$1;
 Landroid/app/WallpaperColors;
 Landroid/app/WallpaperInfo$1;
 Landroid/app/WallpaperInfo;
+Landroid/app/WallpaperManager$ColorManagementProxy;
 Landroid/app/WallpaperManager$Globals;
 Landroid/app/WallpaperManager$OnColorsChangedListener;
 Landroid/app/WallpaperManager;
@@ -23187,13 +24032,23 @@
 Landroid/app/admin/DevicePolicyManager;
 Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;
 Landroid/app/admin/DevicePolicyManagerInternal;
+Landroid/app/admin/DeviceStateCache;
+Landroid/app/admin/FactoryResetProtectionPolicy;
 Landroid/app/admin/IDeviceAdminService$Stub$Proxy;
+Landroid/app/admin/IDeviceAdminService$Stub;
 Landroid/app/admin/IDeviceAdminService;
 Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;
 Landroid/app/admin/IDevicePolicyManager$Stub;
 Landroid/app/admin/IDevicePolicyManager;
+Landroid/app/admin/NetworkEvent;
 Landroid/app/admin/PasswordMetrics$1;
+Landroid/app/admin/PasswordMetrics$ComplexityBucket$1;
+Landroid/app/admin/PasswordMetrics$ComplexityBucket$2;
+Landroid/app/admin/PasswordMetrics$ComplexityBucket$3;
+Landroid/app/admin/PasswordMetrics$ComplexityBucket$4;
+Landroid/app/admin/PasswordMetrics$ComplexityBucket;
 Landroid/app/admin/PasswordMetrics;
+Landroid/app/admin/PasswordPolicy;
 Landroid/app/admin/SecurityLog$SecurityEvent$1;
 Landroid/app/admin/SecurityLog$SecurityEvent;
 Landroid/app/admin/SecurityLog;
@@ -23207,6 +24062,10 @@
 Landroid/app/assist/AssistContent$1;
 Landroid/app/assist/AssistContent;
 Landroid/app/assist/AssistStructure$1;
+Landroid/app/assist/AssistStructure$AutofillOverlay;
+Landroid/app/assist/AssistStructure$HtmlInfoNode$1;
+Landroid/app/assist/AssistStructure$HtmlInfoNode;
+Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;
 Landroid/app/assist/AssistStructure$ParcelTransferReader;
 Landroid/app/assist/AssistStructure$ParcelTransferWriter;
 Landroid/app/assist/AssistStructure$SendChannel;
@@ -23226,10 +24085,18 @@
 Landroid/app/backup/BackupHelper;
 Landroid/app/backup/BackupHelperDispatcher$Header;
 Landroid/app/backup/BackupHelperDispatcher;
+Landroid/app/backup/BackupManager$BackupManagerMonitorWrapper;
+Landroid/app/backup/BackupManager$BackupObserverWrapper$1;
+Landroid/app/backup/BackupManager$BackupObserverWrapper;
 Landroid/app/backup/BackupManager;
+Landroid/app/backup/BackupManagerMonitor;
+Landroid/app/backup/BackupObserver;
+Landroid/app/backup/BackupProgress$1;
+Landroid/app/backup/BackupProgress;
 Landroid/app/backup/BackupTransport$TransportImpl;
 Landroid/app/backup/BackupTransport;
 Landroid/app/backup/BlobBackupHelper;
+Landroid/app/backup/FileBackupHelper;
 Landroid/app/backup/FileBackupHelperBase;
 Landroid/app/backup/FullBackup;
 Landroid/app/backup/FullBackupDataOutput;
@@ -23248,16 +24115,29 @@
 Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;
 Landroid/app/backup/IFullBackupRestoreObserver$Stub;
 Landroid/app/backup/IFullBackupRestoreObserver;
+Landroid/app/backup/IRestoreSession;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub;
 Landroid/app/backup/ISelectBackupTransportCallback;
+Landroid/app/backup/RestoreDescription$1;
+Landroid/app/backup/RestoreDescription;
 Landroid/app/backup/SharedPreferencesBackupHelper;
 Landroid/app/blob/-$$Lambda$BlobStoreManagerFrameworkInitializer$WjSRSHMmxWPF4Fq-7TpX23MBh2U;
+Landroid/app/blob/BlobHandle;
 Landroid/app/blob/BlobStoreManager;
 Landroid/app/blob/BlobStoreManagerFrameworkInitializer;
+Landroid/app/blob/IBlobStoreManager$Stub;
+Landroid/app/blob/IBlobStoreManager;
+Landroid/app/blob/IBlobStoreSession;
+Landroid/app/contentsuggestions/ClassificationsRequest;
 Landroid/app/contentsuggestions/ContentSuggestionsManager;
+Landroid/app/contentsuggestions/IClassificationsCallback$Stub;
+Landroid/app/contentsuggestions/IClassificationsCallback;
 Landroid/app/contentsuggestions/IContentSuggestionsManager$Stub;
 Landroid/app/contentsuggestions/IContentSuggestionsManager;
+Landroid/app/contentsuggestions/ISelectionsCallback$Stub;
+Landroid/app/contentsuggestions/ISelectionsCallback;
+Landroid/app/contentsuggestions/SelectionsRequest;
 Landroid/app/job/-$$Lambda$FpGlzN9oJcl8o5soW-gU-DyTvXM;
 Landroid/app/job/-$$Lambda$JobSchedulerFrameworkInitializer$PtYe8PQc1PVJQXRnpm3iSxcWTR0;
 Landroid/app/job/-$$Lambda$JobSchedulerFrameworkInitializer$RHUxgww0pZFMmfQWKgaRAx0YFqA;
@@ -23286,13 +24166,16 @@
 Landroid/app/job/JobServiceEngine;
 Landroid/app/job/JobWorkItem$1;
 Landroid/app/job/JobWorkItem;
+Landroid/app/prediction/-$$Lambda$1lqxDplfWlUwgBrOynX9L0oK_uA;
 Landroid/app/prediction/AppPredictionContext$1;
 Landroid/app/prediction/AppPredictionContext;
 Landroid/app/prediction/AppPredictionManager;
 Landroid/app/prediction/AppPredictionSessionId$1;
 Landroid/app/prediction/AppPredictionSessionId;
+Landroid/app/prediction/AppPredictor$CallbackWrapper;
 Landroid/app/prediction/AppPredictor;
 Landroid/app/prediction/AppTarget$1;
+Landroid/app/prediction/AppTarget$Builder;
 Landroid/app/prediction/AppTarget;
 Landroid/app/prediction/AppTargetEvent$1;
 Landroid/app/prediction/AppTargetEvent;
@@ -23304,17 +24187,23 @@
 Landroid/app/prediction/IPredictionManager$Stub$Proxy;
 Landroid/app/prediction/IPredictionManager$Stub;
 Landroid/app/prediction/IPredictionManager;
+Landroid/app/role/-$$Lambda$9DeAxmM9lUVr3-FTSefyo-BW8DY;
 Landroid/app/role/-$$Lambda$RoleControllerManager$Jsb4ev7pHUqel8_lglNSRLiUzpg;
+Landroid/app/role/-$$Lambda$RoleControllerManager$hbh627Rh8mtJykW3vb1FWR34mIQ;
+Landroid/app/role/-$$Lambda$RoleControllerManager$mCMKfoPdye0sMu6efs963HCR1Xk;
+Landroid/app/role/-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE;
 Landroid/app/role/-$$Lambda$o94o2jK_ei-IVw-3oY_QJ49zpAA;
 Landroid/app/role/IOnRoleHoldersChangedListener$Stub$Proxy;
 Landroid/app/role/IOnRoleHoldersChangedListener$Stub;
 Landroid/app/role/IOnRoleHoldersChangedListener;
+Landroid/app/role/IRoleController$Stub$Proxy;
 Landroid/app/role/IRoleController$Stub;
 Landroid/app/role/IRoleController;
 Landroid/app/role/IRoleManager$Stub$Proxy;
 Landroid/app/role/IRoleManager$Stub;
 Landroid/app/role/IRoleManager;
 Landroid/app/role/OnRoleHoldersChangedListener;
+Landroid/app/role/RoleControllerManager$1;
 Landroid/app/role/RoleControllerManager;
 Landroid/app/role/RoleManager$OnRoleHoldersChangedListenerDelegate;
 Landroid/app/role/RoleManager;
@@ -23335,6 +24224,8 @@
 Landroid/app/servertransaction/DestroyActivityItem;
 Landroid/app/servertransaction/LaunchActivityItem$1;
 Landroid/app/servertransaction/LaunchActivityItem;
+Landroid/app/servertransaction/MultiWindowModeChangeItem$1;
+Landroid/app/servertransaction/MultiWindowModeChangeItem;
 Landroid/app/servertransaction/NewIntentItem$1;
 Landroid/app/servertransaction/NewIntentItem;
 Landroid/app/servertransaction/ObjectPool;
@@ -23343,6 +24234,8 @@
 Landroid/app/servertransaction/PauseActivityItem;
 Landroid/app/servertransaction/PendingTransactionActions$StopInfo;
 Landroid/app/servertransaction/PendingTransactionActions;
+Landroid/app/servertransaction/PipModeChangeItem$1;
+Landroid/app/servertransaction/PipModeChangeItem;
 Landroid/app/servertransaction/ResumeActivityItem$1;
 Landroid/app/servertransaction/ResumeActivityItem;
 Landroid/app/servertransaction/StopActivityItem$1;
@@ -23367,8 +24260,19 @@
 Landroid/app/timedetector/ITimeDetectorService$Stub$Proxy;
 Landroid/app/timedetector/ITimeDetectorService$Stub;
 Landroid/app/timedetector/ITimeDetectorService;
+Landroid/app/timedetector/ManualTimeSuggestion$1;
+Landroid/app/timedetector/ManualTimeSuggestion;
+Landroid/app/timedetector/NetworkTimeSuggestion;
+Landroid/app/timedetector/PhoneTimeSuggestion$1;
+Landroid/app/timedetector/PhoneTimeSuggestion;
+Landroid/app/timedetector/TelephonyTimeSuggestion;
 Landroid/app/timedetector/TimeDetector;
 Landroid/app/timezone/RulesManager;
+Landroid/app/timezonedetector/ITimeZoneDetectorService$Stub$Proxy;
+Landroid/app/timezonedetector/ITimeZoneDetectorService$Stub;
+Landroid/app/timezonedetector/ITimeZoneDetectorService;
+Landroid/app/timezonedetector/ManualTimeZoneSuggestion;
+Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;
 Landroid/app/timezonedetector/TimeZoneDetector;
 Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;
 Landroid/app/trust/IStrongAuthTracker$Stub;
@@ -23394,6 +24298,8 @@
 Landroid/app/usage/ConfigurationStats$1;
 Landroid/app/usage/ConfigurationStats;
 Landroid/app/usage/EventList;
+Landroid/app/usage/ExternalStorageStats$1;
+Landroid/app/usage/ExternalStorageStats;
 Landroid/app/usage/ICacheQuotaService$Stub$Proxy;
 Landroid/app/usage/ICacheQuotaService$Stub;
 Landroid/app/usage/ICacheQuotaService;
@@ -23403,6 +24309,8 @@
 Landroid/app/usage/IUsageStatsManager$Stub$Proxy;
 Landroid/app/usage/IUsageStatsManager$Stub;
 Landroid/app/usage/IUsageStatsManager;
+Landroid/app/usage/NetworkStats$Bucket;
+Landroid/app/usage/NetworkStats;
 Landroid/app/usage/NetworkStatsManager$CallbackHandler;
 Landroid/app/usage/NetworkStatsManager$UsageCallback;
 Landroid/app/usage/NetworkStatsManager;
@@ -23431,6 +24339,9 @@
 Landroid/bluetooth/BluetoothActivityEnergyInfo;
 Landroid/bluetooth/BluetoothAdapter$1;
 Landroid/bluetooth/BluetoothAdapter$2;
+Landroid/bluetooth/BluetoothAdapter$3;
+Landroid/bluetooth/BluetoothAdapter$4;
+Landroid/bluetooth/BluetoothAdapter$5;
 Landroid/bluetooth/BluetoothAdapter;
 Landroid/bluetooth/BluetoothAvrcpController;
 Landroid/bluetooth/BluetoothClass$1;
@@ -23442,6 +24353,7 @@
 Landroid/bluetooth/BluetoothDevice$1;
 Landroid/bluetooth/BluetoothDevice$2;
 Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothGattCallback;
 Landroid/bluetooth/BluetoothGattService$1;
 Landroid/bluetooth/BluetoothGattService;
 Landroid/bluetooth/BluetoothHeadset$1;
@@ -23508,6 +24420,7 @@
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;
 Landroid/bluetooth/IBluetoothHeadsetPhone;
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHearingAid$Stub;
 Landroid/bluetooth/IBluetoothHearingAid;
 Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;
@@ -23557,7 +24470,10 @@
 Landroid/bluetooth/le/AdvertiseData;
 Landroid/bluetooth/le/AdvertisingSetParameters$1;
 Landroid/bluetooth/le/AdvertisingSetParameters;
+Landroid/bluetooth/le/BluetoothLeScanner$1;
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;
 Landroid/bluetooth/le/BluetoothLeScanner;
+Landroid/bluetooth/le/BluetoothLeUtils;
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;
 Landroid/bluetooth/le/IAdvertisingSetCallback;
@@ -23569,6 +24485,7 @@
 Landroid/bluetooth/le/IScannerCallback;
 Landroid/bluetooth/le/PeriodicAdvertisingParameters$1;
 Landroid/bluetooth/le/PeriodicAdvertisingParameters;
+Landroid/bluetooth/le/ScanCallback;
 Landroid/bluetooth/le/ScanFilter$1;
 Landroid/bluetooth/le/ScanFilter$Builder;
 Landroid/bluetooth/le/ScanFilter;
@@ -23590,6 +24507,7 @@
 Landroid/compat/Compatibility$Callbacks;
 Landroid/compat/Compatibility;
 Landroid/content/-$$Lambda$AbstractThreadedSyncAdapter$ISyncAdapterImpl$L6ZtOCe8gjKwJj0908ytPlrD8Rc;
+Landroid/content/-$$Lambda$ClipboardManager$1$hQk8olbGAgUi4WWNG4ZuDZsM39s;
 Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;
 Landroid/content/AbstractThreadedSyncAdapter$SyncThread;
 Landroid/content/AbstractThreadedSyncAdapter;
@@ -23620,6 +24538,7 @@
 Landroid/content/ContentCaptureOptions$1;
 Landroid/content/ContentCaptureOptions;
 Landroid/content/ContentInterface;
+Landroid/content/ContentProvider$CallingIdentity;
 Landroid/content/ContentProvider$PipeDataWriter;
 Landroid/content/ContentProvider$Transport;
 Landroid/content/ContentProvider;
@@ -23628,13 +24547,18 @@
 Landroid/content/ContentProviderClient;
 Landroid/content/ContentProviderNative;
 Landroid/content/ContentProviderOperation$1;
+Landroid/content/ContentProviderOperation$BackReference$1;
+Landroid/content/ContentProviderOperation$BackReference;
 Landroid/content/ContentProviderOperation$Builder;
 Landroid/content/ContentProviderOperation;
 Landroid/content/ContentProviderProxy;
 Landroid/content/ContentProviderResult$1;
 Landroid/content/ContentProviderResult;
 Landroid/content/ContentResolver$1;
+Landroid/content/ContentResolver$2;
 Landroid/content/ContentResolver$CursorWrapperInner;
+Landroid/content/ContentResolver$GetTypeResultListener;
+Landroid/content/ContentResolver$OpenResourceIdResult;
 Landroid/content/ContentResolver$ParcelFileDescriptorInner;
 Landroid/content/ContentResolver;
 Landroid/content/ContentUris;
@@ -23681,6 +24605,7 @@
 Landroid/content/ISyncStatusObserver$Stub;
 Landroid/content/ISyncStatusObserver;
 Landroid/content/Intent$1;
+Landroid/content/Intent$CommandOptionHandler;
 Landroid/content/Intent$FilterComparison;
 Landroid/content/Intent;
 Landroid/content/IntentFilter$1;
@@ -23697,9 +24622,14 @@
 Landroid/content/Loader;
 Landroid/content/LocusId$1;
 Landroid/content/LocusId;
+Landroid/content/LoggingContentInterface;
+Landroid/content/MutableContextWrapper;
 Landroid/content/OperationApplicationException;
 Landroid/content/PeriodicSync$1;
+Landroid/content/PeriodicSync;
+Landroid/content/PermissionChecker;
 Landroid/content/ReceiverCallNotAllowedException;
+Landroid/content/RestrictionEntry;
 Landroid/content/RestrictionsManager;
 Landroid/content/SearchRecentSuggestionsProvider$DatabaseHelper;
 Landroid/content/SearchRecentSuggestionsProvider;
@@ -23712,6 +24642,8 @@
 Landroid/content/SyncAdaptersCache$MySerializer;
 Landroid/content/SyncAdaptersCache;
 Landroid/content/SyncContext;
+Landroid/content/SyncInfo$1;
+Landroid/content/SyncInfo;
 Landroid/content/SyncRequest$1;
 Landroid/content/SyncRequest$Builder;
 Landroid/content/SyncRequest;
@@ -23728,6 +24660,8 @@
 Landroid/content/UndoOperation;
 Landroid/content/UndoOwner;
 Landroid/content/UriMatcher;
+Landroid/content/UriPermission$1;
+Landroid/content/UriPermission;
 Landroid/content/integrity/AppIntegrityManager;
 Landroid/content/om/IOverlayManager$Stub$Proxy;
 Landroid/content/om/IOverlayManager$Stub;
@@ -23736,32 +24670,46 @@
 Landroid/content/om/OverlayInfo;
 Landroid/content/om/OverlayManager;
 Landroid/content/om/OverlayableInfo;
+Landroid/content/pm/-$$Lambda$B12dZLpdwpXn89QSesmkaZjD72Q;
 Landroid/content/pm/-$$Lambda$PackageParser$0DZRgzfgaIMpCOhJqjw6PUiU5vw;
 Landroid/content/pm/-$$Lambda$PackageParser$0aobsT7Zf7WVZCqMZ5z2clAuQf4;
 Landroid/content/pm/-$$Lambda$PackageParser$M-9fHqS_eEp1oYkuKJhRHOGUxf8;
 Landroid/content/pm/-$$Lambda$T1UQAuePWRRmVQ1KzTyMAktZUPM;
 Landroid/content/pm/-$$Lambda$ciir_QAmv6RwJro4I58t77dPnxU;
+Landroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;
 Landroid/content/pm/-$$Lambda$n3uXeb1v-YRmq_BWTfosEqUUr9g;
 Landroid/content/pm/-$$Lambda$zO9HBUVgPeroyDQPLJE-MNMvSqc;
 Landroid/content/pm/ActivityInfo$1;
 Landroid/content/pm/ActivityInfo$WindowLayout;
 Landroid/content/pm/ActivityInfo;
+Landroid/content/pm/ActivityPresentationInfo;
 Landroid/content/pm/ApplicationInfo$1;
 Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
 Landroid/content/pm/BaseParceledListSlice$1;
 Landroid/content/pm/BaseParceledListSlice;
+Landroid/content/pm/ChangedPackages$1;
+Landroid/content/pm/ChangedPackages;
 Landroid/content/pm/ComponentInfo;
 Landroid/content/pm/ConfigurationInfo$1;
 Landroid/content/pm/ConfigurationInfo;
 Landroid/content/pm/CrossProfileApps;
 Landroid/content/pm/DataLoaderManager;
+Landroid/content/pm/DataLoaderParams;
+Landroid/content/pm/DataLoaderParamsParcel;
 Landroid/content/pm/FallbackCategoryProvider;
 Landroid/content/pm/FeatureGroupInfo$1;
 Landroid/content/pm/FeatureGroupInfo;
 Landroid/content/pm/FeatureInfo$1;
 Landroid/content/pm/FeatureInfo;
+Landroid/content/pm/ICrossProfileApps$Stub$Proxy;
 Landroid/content/pm/ICrossProfileApps$Stub;
 Landroid/content/pm/ICrossProfileApps;
+Landroid/content/pm/IDataLoader;
+Landroid/content/pm/IDataLoaderManager$Stub;
+Landroid/content/pm/IDataLoaderManager;
+Landroid/content/pm/IDataLoaderStatusListener$Stub;
+Landroid/content/pm/IDataLoaderStatusListener;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub;
 Landroid/content/pm/IDexModuleRegisterCallback;
@@ -23791,6 +24739,7 @@
 Landroid/content/pm/IPackageInstallerCallback$Stub;
 Landroid/content/pm/IPackageInstallerCallback;
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;
+Landroid/content/pm/IPackageInstallerSession$Stub;
 Landroid/content/pm/IPackageInstallerSession;
 Landroid/content/pm/IPackageManager$Stub$Proxy;
 Landroid/content/pm/IPackageManager$Stub;
@@ -23803,12 +24752,19 @@
 Landroid/content/pm/IPackageStatsObserver$Stub$Proxy;
 Landroid/content/pm/IPackageStatsObserver$Stub;
 Landroid/content/pm/IPackageStatsObserver;
+Landroid/content/pm/IShortcutChangeCallback$Stub;
+Landroid/content/pm/IShortcutChangeCallback;
 Landroid/content/pm/IShortcutService$Stub$Proxy;
 Landroid/content/pm/IShortcutService$Stub;
 Landroid/content/pm/IShortcutService;
+Landroid/content/pm/InstallSourceInfo$1;
+Landroid/content/pm/InstallSourceInfo;
 Landroid/content/pm/InstantAppIntentFilter$1;
 Landroid/content/pm/InstantAppIntentFilter;
+Landroid/content/pm/InstantAppRequest;
+Landroid/content/pm/InstantAppRequestInfo;
 Landroid/content/pm/InstantAppResolveInfo$1;
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest$1;
 Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;
 Landroid/content/pm/InstantAppResolveInfo;
 Landroid/content/pm/InstrumentationInfo$1;
@@ -23819,12 +24775,19 @@
 Landroid/content/pm/KeySet;
 Landroid/content/pm/LauncherActivityInfo;
 Landroid/content/pm/LauncherApps$1;
+Landroid/content/pm/LauncherApps$AppUsageLimit$1;
+Landroid/content/pm/LauncherApps$AppUsageLimit;
+Landroid/content/pm/LauncherApps$Callback;
+Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;
 Landroid/content/pm/LauncherApps$CallbackMessageHandler;
+Landroid/content/pm/LauncherApps$ShortcutQuery;
 Landroid/content/pm/LauncherApps;
 Landroid/content/pm/ModuleInfo$1;
 Landroid/content/pm/ModuleInfo;
 Landroid/content/pm/PackageInfo$1;
 Landroid/content/pm/PackageInfo;
+Landroid/content/pm/PackageInfoLite$1;
+Landroid/content/pm/PackageInfoLite;
 Landroid/content/pm/PackageInstaller$Session;
 Landroid/content/pm/PackageInstaller$SessionCallback;
 Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;
@@ -23903,6 +24866,8 @@
 Landroid/content/pm/ShortcutInfo$1;
 Landroid/content/pm/ShortcutInfo$Builder;
 Landroid/content/pm/ShortcutInfo;
+Landroid/content/pm/ShortcutManager$ShareShortcutInfo$1;
+Landroid/content/pm/ShortcutManager$ShareShortcutInfo;
 Landroid/content/pm/ShortcutManager;
 Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;
 Landroid/content/pm/ShortcutServiceInternal;
@@ -23913,22 +24878,76 @@
 Landroid/content/pm/StringParceledListSlice$1;
 Landroid/content/pm/StringParceledListSlice;
 Landroid/content/pm/SuspendDialogInfo$1;
+Landroid/content/pm/SuspendDialogInfo$Builder;
 Landroid/content/pm/SuspendDialogInfo;
 Landroid/content/pm/UserInfo$1;
 Landroid/content/pm/UserInfo;
+Landroid/content/pm/VerifierDeviceIdentity$1;
+Landroid/content/pm/VerifierDeviceIdentity;
 Landroid/content/pm/VerifierInfo$1;
 Landroid/content/pm/VerifierInfo;
 Landroid/content/pm/VersionedPackage$1;
 Landroid/content/pm/VersionedPackage;
 Landroid/content/pm/XmlSerializerAndParser;
+Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;
 Landroid/content/pm/dex/ArtManager;
 Landroid/content/pm/dex/ArtManagerInternal;
 Landroid/content/pm/dex/DexMetadataHelper;
+Landroid/content/pm/dex/IArtManager$Stub$Proxy;
 Landroid/content/pm/dex/IArtManager$Stub;
 Landroid/content/pm/dex/IArtManager;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;
+Landroid/content/pm/dex/PackageOptimizationInfo;
+Landroid/content/pm/parsing/AndroidPackage;
+Landroid/content/pm/parsing/AndroidPackageWrite;
+Landroid/content/pm/parsing/ApkLiteParseUtils;
+Landroid/content/pm/parsing/ApkParseUtils$ParseInput;
+Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+Landroid/content/pm/parsing/ApkParseUtils;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedFeature;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedProcess;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedQueriesIntentInfo;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedService$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo$1;
+Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;
+Landroid/content/pm/parsing/ComponentParseUtils;
+Landroid/content/pm/parsing/PackageImpl$1;
+Landroid/content/pm/parsing/PackageImpl;
+Landroid/content/pm/parsing/PackageInfoUtils;
+Landroid/content/pm/parsing/ParsedPackage$PackageSettingCallback;
+Landroid/content/pm/parsing/ParsedPackage;
+Landroid/content/pm/parsing/ParsingPackage;
+Landroid/content/pm/parsing/library/-$$Lambda$WrPVuoVJehE45tfhLfe_8Tcc-Nw;
+Landroid/content/pm/parsing/library/AndroidHidlUpdater;
+Landroid/content/pm/parsing/library/AndroidTestBaseUpdater;
+Landroid/content/pm/parsing/library/OrgApacheHttpLegacyUpdater;
+Landroid/content/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;
+Landroid/content/pm/parsing/library/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary;
+Landroid/content/pm/parsing/library/PackageBackwardCompatibility;
+Landroid/content/pm/parsing/library/PackageSharedLibraryUpdater;
+Landroid/content/pm/permission/SplitPermissionInfoParcelable$1;
+Landroid/content/pm/permission/SplitPermissionInfoParcelable;
 Landroid/content/pm/split/DefaultSplitAssetLoader;
 Landroid/content/pm/split/SplitAssetDependencyLoader;
 Landroid/content/pm/split/SplitAssetLoader;
@@ -23972,6 +24991,7 @@
 Landroid/content/res/Resources$NotFoundException;
 Landroid/content/res/Resources$Theme;
 Landroid/content/res/Resources$ThemeKey;
+Landroid/content/res/Resources$UpdateCallbacks;
 Landroid/content/res/Resources;
 Landroid/content/res/ResourcesImpl$LookupStack;
 Landroid/content/res/ResourcesImpl$ThemeImpl;
@@ -23985,10 +25005,15 @@
 Landroid/content/res/XmlBlock$Parser;
 Landroid/content/res/XmlBlock;
 Landroid/content/res/XmlResourceParser;
+Landroid/content/res/loader/AssetsProvider;
+Landroid/content/res/loader/ResourcesLoader$UpdateCallbacks;
+Landroid/content/res/loader/ResourcesLoader;
+Landroid/content/res/loader/ResourcesProvider;
 Landroid/content/rollback/IRollbackManager$Stub$Proxy;
 Landroid/content/rollback/IRollbackManager$Stub;
 Landroid/content/rollback/IRollbackManager;
 Landroid/content/rollback/RollbackManager;
+Landroid/content/type/DefaultMimeMapFactory;
 Landroid/database/AbstractCursor$SelfContentObserver;
 Landroid/database/AbstractCursor;
 Landroid/database/AbstractWindowedCursor;
@@ -24014,6 +25039,7 @@
 Landroid/database/DataSetObservable;
 Landroid/database/DataSetObserver;
 Landroid/database/DatabaseErrorHandler;
+Landroid/database/DatabaseUtils$InsertHelper;
 Landroid/database/DatabaseUtils;
 Landroid/database/DefaultDatabaseErrorHandler;
 Landroid/database/IBulkCursor;
@@ -24028,8 +25054,13 @@
 Landroid/database/SQLException;
 Landroid/database/StaleDataException;
 Landroid/database/sqlite/-$$Lambda$RBWjWVyGrOTsQrLCYzJ_G8Uk25Q;
+Landroid/database/sqlite/-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE;
+Landroid/database/sqlite/-$$Lambda$SQLiteQueryBuilder$W2yQ6UjYGqGIu6HEomKgdgvGNKI;
 Landroid/database/sqlite/DatabaseObjectNotClosedException;
+Landroid/database/sqlite/SQLiteAbortException;
+Landroid/database/sqlite/SQLiteAccessPermException;
 Landroid/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException;
+Landroid/database/sqlite/SQLiteBlobTooBigException;
 Landroid/database/sqlite/SQLiteCantOpenDatabaseException;
 Landroid/database/sqlite/SQLiteClosable;
 Landroid/database/sqlite/SQLiteCompatibilityWalFlags;
@@ -24060,11 +25091,13 @@
 Landroid/database/sqlite/SQLiteDebug$PagerStats;
 Landroid/database/sqlite/SQLiteDebug;
 Landroid/database/sqlite/SQLiteDirectCursorDriver;
+Landroid/database/sqlite/SQLiteDiskIOException;
 Landroid/database/sqlite/SQLiteDoneException;
 Landroid/database/sqlite/SQLiteException;
 Landroid/database/sqlite/SQLiteFullException;
 Landroid/database/sqlite/SQLiteGlobal;
 Landroid/database/sqlite/SQLiteOpenHelper;
+Landroid/database/sqlite/SQLiteOutOfMemoryException;
 Landroid/database/sqlite/SQLiteProgram;
 Landroid/database/sqlite/SQLiteQuery;
 Landroid/database/sqlite/SQLiteQueryBuilder;
@@ -24072,6 +25105,8 @@
 Landroid/database/sqlite/SQLiteSession;
 Landroid/database/sqlite/SQLiteStatement;
 Landroid/database/sqlite/SQLiteStatementInfo;
+Landroid/database/sqlite/SQLiteTableLockedException;
+Landroid/database/sqlite/SQLiteTokenizer;
 Landroid/database/sqlite/SQLiteTransactionListener;
 Landroid/database/sqlite/SqliteWrapper;
 Landroid/ddm/DdmHandleAppName$Names;
@@ -24086,6 +25121,7 @@
 Landroid/ddm/DdmRegister;
 Landroid/debug/AdbManager;
 Landroid/debug/AdbManagerInternal;
+Landroid/debug/IAdbManager$Stub$Proxy;
 Landroid/debug/IAdbManager$Stub;
 Landroid/debug/IAdbManager;
 Landroid/debug/IAdbTransport$Stub;
@@ -24127,6 +25163,7 @@
 Landroid/graphics/ColorMatrix;
 Landroid/graphics/ColorMatrixColorFilter;
 Landroid/graphics/ColorSpace$Adaptation;
+Landroid/graphics/ColorSpace$Connector;
 Landroid/graphics/ColorSpace$Lab;
 Landroid/graphics/ColorSpace$Model;
 Landroid/graphics/ColorSpace$Named;
@@ -24191,10 +25228,12 @@
 Landroid/graphics/PaintFlagsDrawFilter;
 Landroid/graphics/Path$Direction;
 Landroid/graphics/Path$FillType;
+Landroid/graphics/Path$Op;
 Landroid/graphics/Path;
 Landroid/graphics/PathDashPathEffect;
 Landroid/graphics/PathEffect;
 Landroid/graphics/PathMeasure;
+Landroid/graphics/Picture$PictureCanvas;
 Landroid/graphics/Picture;
 Landroid/graphics/PixelFormat;
 Landroid/graphics/Point$1;
@@ -24244,6 +25283,7 @@
 Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;
 Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;
 Landroid/graphics/drawable/AdaptiveIconDrawable;
+Landroid/graphics/drawable/Animatable2$AnimationCallback;
 Landroid/graphics/drawable/Animatable2;
 Landroid/graphics/drawable/Animatable;
 Landroid/graphics/drawable/AnimatedImageDrawable$State;
@@ -24255,6 +25295,7 @@
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;
+Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;
 Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;
 Landroid/graphics/drawable/AnimatedStateListDrawable;
 Landroid/graphics/drawable/AnimatedVectorDrawable$1;
@@ -24290,6 +25331,7 @@
 Landroid/graphics/drawable/GradientDrawable$Orientation;
 Landroid/graphics/drawable/GradientDrawable;
 Landroid/graphics/drawable/Icon$1;
+Landroid/graphics/drawable/Icon$LoadDrawableTask;
 Landroid/graphics/drawable/Icon;
 Landroid/graphics/drawable/InsetDrawable$InsetState;
 Landroid/graphics/drawable/InsetDrawable$InsetValue;
@@ -24317,6 +25359,7 @@
 Landroid/graphics/drawable/RotateDrawable;
 Landroid/graphics/drawable/ScaleDrawable$ScaleState;
 Landroid/graphics/drawable/ScaleDrawable;
+Landroid/graphics/drawable/ShapeDrawable$ShaderFactory;
 Landroid/graphics/drawable/ShapeDrawable$ShapeState;
 Landroid/graphics/drawable/ShapeDrawable;
 Landroid/graphics/drawable/StateListDrawable$StateListState;
@@ -24352,6 +25395,7 @@
 Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;
 Landroid/graphics/drawable/VectorDrawable;
 Landroid/graphics/drawable/shapes/OvalShape;
+Landroid/graphics/drawable/shapes/PathShape;
 Landroid/graphics/drawable/shapes/RectShape;
 Landroid/graphics/drawable/shapes/RoundRectShape;
 Landroid/graphics/drawable/shapes/Shape;
@@ -24374,9 +25418,14 @@
 Landroid/graphics/text/LineBreaker;
 Landroid/graphics/text/MeasuredText$Builder;
 Landroid/graphics/text/MeasuredText;
+Landroid/gsi/GsiProgress$1;
+Landroid/gsi/GsiProgress;
 Landroid/gsi/IGsiService$Stub$Proxy;
 Landroid/gsi/IGsiService$Stub;
 Landroid/gsi/IGsiService;
+Landroid/gsi/IGsid$Stub$Proxy;
+Landroid/gsi/IGsid$Stub;
+Landroid/gsi/IGsid;
 Landroid/hardware/Camera$CameraInfo;
 Landroid/hardware/Camera$Face;
 Landroid/hardware/Camera;
@@ -24407,7 +25456,10 @@
 Landroid/hardware/Sensor;
 Landroid/hardware/SensorAdditionalInfo;
 Landroid/hardware/SensorEvent;
+Landroid/hardware/SensorEventCallback;
+Landroid/hardware/SensorEventListener2;
 Landroid/hardware/SensorEventListener;
+Landroid/hardware/SensorListener;
 Landroid/hardware/SensorManager;
 Landroid/hardware/SensorPrivacyManager$1;
 Landroid/hardware/SensorPrivacyManager;
@@ -24419,6 +25471,7 @@
 Landroid/hardware/SystemSensorManager;
 Landroid/hardware/TriggerEvent;
 Landroid/hardware/TriggerEventListener;
+Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;
 Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;
 Landroid/hardware/biometrics/BiometricAuthenticator;
 Landroid/hardware/biometrics/BiometricFaceConstants;
@@ -24426,9 +25479,17 @@
 Landroid/hardware/biometrics/BiometricManager;
 Landroid/hardware/biometrics/BiometricSourceType$1;
 Landroid/hardware/biometrics/BiometricSourceType;
+Landroid/hardware/biometrics/CryptoObject;
+Landroid/hardware/biometrics/IAuthService$Stub$Proxy;
+Landroid/hardware/biometrics/IAuthService$Stub;
+Landroid/hardware/biometrics/IAuthService;
+Landroid/hardware/biometrics/IBiometricAuthenticator$Stub$Proxy;
+Landroid/hardware/biometrics/IBiometricAuthenticator$Stub;
+Landroid/hardware/biometrics/IBiometricAuthenticator;
 Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;
 Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub;
 Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;
+Landroid/hardware/biometrics/IBiometricNativeHandle;
 Landroid/hardware/biometrics/IBiometricService$Stub$Proxy;
 Landroid/hardware/biometrics/IBiometricService$Stub;
 Landroid/hardware/biometrics/IBiometricService;
@@ -24441,6 +25502,8 @@
 Landroid/hardware/biometrics/IBiometricServiceReceiverInternal$Stub$Proxy;
 Landroid/hardware/biometrics/IBiometricServiceReceiverInternal$Stub;
 Landroid/hardware/biometrics/IBiometricServiceReceiverInternal;
+Landroid/hardware/camera2/-$$Lambda$CameraManager$CameraManagerGlobal$6Ptxoe4wF_VCkE_pml8t66mklao;
+Landroid/hardware/camera2/-$$Lambda$CameraManager$CameraManagerGlobal$CONvadOBAEkcHSpx8j61v67qRGM;
 Landroid/hardware/camera2/CameraAccessException;
 Landroid/hardware/camera2/CameraCharacteristics$1;
 Landroid/hardware/camera2/CameraCharacteristics$2;
@@ -24453,6 +25516,7 @@
 Landroid/hardware/camera2/CameraDevice;
 Landroid/hardware/camera2/CameraManager$AvailabilityCallback;
 Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;
 Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
 Landroid/hardware/camera2/CameraManager$TorchCallback;
 Landroid/hardware/camera2/CameraManager;
@@ -24483,6 +25547,7 @@
 Landroid/hardware/camera2/impl/CameraMetadataNative$20;
 Landroid/hardware/camera2/impl/CameraMetadataNative$21;
 Landroid/hardware/camera2/impl/CameraMetadataNative$22;
+Landroid/hardware/camera2/impl/CameraMetadataNative$23;
 Landroid/hardware/camera2/impl/CameraMetadataNative$2;
 Landroid/hardware/camera2/impl/CameraMetadataNative$3;
 Landroid/hardware/camera2/impl/CameraMetadataNative$4;
@@ -24504,6 +25569,7 @@
 Landroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;
 Landroid/hardware/camera2/marshal/MarshalRegistry;
 Landroid/hardware/camera2/marshal/Marshaler;
+Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableBlackLevelPattern;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;
@@ -24516,12 +25582,14 @@
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryablePair;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableParcelable;
+Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableRange;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableRecommendedStreamConfiguration;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableRect;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableReprocessFormatsMap;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableRggbChannelVector;
+Landroid/hardware/camera2/marshal/impl/MarshalQueryableSize$MarshalerSize;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableSize;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableSizeF;
 Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration;
@@ -24548,6 +25616,8 @@
 Landroid/hardware/camera2/params/StreamConfigurationMap;
 Landroid/hardware/camera2/params/TonemapCurve;
 Landroid/hardware/camera2/utils/ArrayUtils;
+Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
+Landroid/hardware/camera2/utils/TypeReference$SpecializedBaseTypeReference;
 Landroid/hardware/camera2/utils/TypeReference$SpecializedTypeReference;
 Landroid/hardware/camera2/utils/TypeReference;
 Landroid/hardware/contexthub/V1_0/ContextHub;
@@ -24558,12 +25628,14 @@
 Landroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;
 Landroid/hardware/contexthub/V1_0/IContexthubCallback;
 Landroid/hardware/contexthub/V1_0/MemRange;
+Landroid/hardware/contexthub/V1_0/NanoAppBinary;
 Landroid/hardware/contexthub/V1_0/PhysicalSensor;
 Landroid/hardware/display/-$$Lambda$NightDisplayListener$sOK1HmSbMnFLzc4SdDD1WpVWJiI;
 Landroid/hardware/display/AmbientBrightnessDayStats$1;
 Landroid/hardware/display/AmbientBrightnessDayStats;
 Landroid/hardware/display/AmbientDisplayConfiguration;
 Landroid/hardware/display/BrightnessChangeEvent$1;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;
 Landroid/hardware/display/BrightnessChangeEvent;
 Landroid/hardware/display/BrightnessConfiguration$1;
 Landroid/hardware/display/BrightnessConfiguration$Builder;
@@ -24610,7 +25682,22 @@
 Landroid/hardware/display/WifiDisplaySessionInfo;
 Landroid/hardware/display/WifiDisplayStatus$1;
 Landroid/hardware/display/WifiDisplayStatus;
+Landroid/hardware/face/Face$1;
+Landroid/hardware/face/Face;
+Landroid/hardware/face/FaceManager$1;
+Landroid/hardware/face/FaceManager$AuthenticationCallback;
+Landroid/hardware/face/FaceManager$AuthenticationResult;
+Landroid/hardware/face/FaceManager$EnrollmentCallback;
+Landroid/hardware/face/FaceManager$MyHandler;
+Landroid/hardware/face/FaceManager$OnAuthenticationCancelListener;
+Landroid/hardware/face/FaceManager$RemovalCallback;
 Landroid/hardware/face/FaceManager;
+Landroid/hardware/face/IFaceService$Stub$Proxy;
+Landroid/hardware/face/IFaceService$Stub;
+Landroid/hardware/face/IFaceService;
+Landroid/hardware/face/IFaceServiceReceiver$Stub$Proxy;
+Landroid/hardware/face/IFaceServiceReceiver$Stub;
+Landroid/hardware/face/IFaceServiceReceiver;
 Landroid/hardware/fingerprint/Fingerprint$1;
 Landroid/hardware/fingerprint/Fingerprint;
 Landroid/hardware/fingerprint/FingerprintManager$1;
@@ -24641,6 +25728,7 @@
 Landroid/hardware/input/InputDeviceIdentifier;
 Landroid/hardware/input/InputManager$InputDeviceListener;
 Landroid/hardware/input/InputManager$InputDeviceListenerDelegate;
+Landroid/hardware/input/InputManager$InputDeviceVibrator;
 Landroid/hardware/input/InputManager$InputDevicesChangedListener;
 Landroid/hardware/input/InputManager;
 Landroid/hardware/input/InputManagerInternal;
@@ -24649,23 +25737,37 @@
 Landroid/hardware/input/TouchCalibration$1;
 Landroid/hardware/input/TouchCalibration;
 Landroid/hardware/iris/IrisManager;
+Landroid/hardware/lights/LightsManager;
+Landroid/hardware/location/-$$Lambda$ContextHubManager$3$U9x_HK_GdADIEQ3mS5mDWMNWMu8;
+Landroid/hardware/location/-$$Lambda$ContextHubManager$4$sylEfC1Rx_cxuQRnKuthZXmV8KI;
+Landroid/hardware/location/-$$Lambda$ContextHubTransaction$7a5H6DrY_dOy9M3qnYHhlmDHRNQ;
+Landroid/hardware/location/-$$Lambda$ContextHubTransaction$RNVGnle3xCUm9u68syzn6-2znnU;
 Landroid/hardware/location/ActivityRecognitionHardware;
 Landroid/hardware/location/ContextHubClient;
+Landroid/hardware/location/ContextHubClientCallback;
 Landroid/hardware/location/ContextHubInfo$1;
 Landroid/hardware/location/ContextHubInfo;
 Landroid/hardware/location/ContextHubManager$2;
 Landroid/hardware/location/ContextHubManager$3;
 Landroid/hardware/location/ContextHubManager$4;
+Landroid/hardware/location/ContextHubManager$Callback;
+Landroid/hardware/location/ContextHubManager$ICallback;
 Landroid/hardware/location/ContextHubManager;
 Landroid/hardware/location/ContextHubMessage$1;
 Landroid/hardware/location/ContextHubMessage;
+Landroid/hardware/location/ContextHubTransaction$OnCompleteListener;
+Landroid/hardware/location/ContextHubTransaction$Response;
 Landroid/hardware/location/ContextHubTransaction;
+Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
+Landroid/hardware/location/GeofenceHardware;
+Landroid/hardware/location/GeofenceHardwareCallback;
 Landroid/hardware/location/GeofenceHardwareImpl$1;
 Landroid/hardware/location/GeofenceHardwareImpl$2;
 Landroid/hardware/location/GeofenceHardwareImpl$3;
 Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;
 Landroid/hardware/location/GeofenceHardwareImpl$Reaper;
 Landroid/hardware/location/GeofenceHardwareImpl;
+Landroid/hardware/location/GeofenceHardwareMonitorCallback;
 Landroid/hardware/location/GeofenceHardwareMonitorEvent$1;
 Landroid/hardware/location/GeofenceHardwareMonitorEvent;
 Landroid/hardware/location/GeofenceHardwareRequest;
@@ -24748,6 +25850,7 @@
 Landroid/hardware/radio/V1_0/Call;
 Landroid/hardware/radio/V1_0/CallForwardInfo;
 Landroid/hardware/radio/V1_0/CardStatus;
+Landroid/hardware/radio/V1_0/Carrier;
 Landroid/hardware/radio/V1_0/CarrierRestrictions;
 Landroid/hardware/radio/V1_0/CdmaBroadcastSmsConfigInfo;
 Landroid/hardware/radio/V1_0/CdmaCallWaiting;
@@ -24764,6 +25867,7 @@
 Landroid/hardware/radio/V1_0/CellIdentityTdscdma;
 Landroid/hardware/radio/V1_0/CellIdentityWcdma;
 Landroid/hardware/radio/V1_0/CellInfo;
+Landroid/hardware/radio/V1_0/CellInfoCdma;
 Landroid/hardware/radio/V1_0/CellInfoGsm;
 Landroid/hardware/radio/V1_0/CellInfoLte;
 Landroid/hardware/radio/V1_0/CellInfoTdscdma;
@@ -24844,20 +25948,39 @@
 Landroid/hardware/radio/V1_3/IRadioResponse;
 Landroid/hardware/radio/V1_4/CardStatus;
 Landroid/hardware/radio/V1_4/CarrierRestrictionsWithPriority;
+Landroid/hardware/radio/V1_4/CellConfigLte;
+Landroid/hardware/radio/V1_4/CellIdentityNr;
+Landroid/hardware/radio/V1_4/CellInfo$Info;
 Landroid/hardware/radio/V1_4/CellInfo;
+Landroid/hardware/radio/V1_4/CellInfoLte;
+Landroid/hardware/radio/V1_4/CellInfoNr;
+Landroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo$hidl_discriminator;
 Landroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo;
 Landroid/hardware/radio/V1_4/DataRegStateResult;
 Landroid/hardware/radio/V1_4/EmergencyNumber;
+Landroid/hardware/radio/V1_4/IRadio$Proxy;
 Landroid/hardware/radio/V1_4/IRadio;
 Landroid/hardware/radio/V1_4/IRadioIndication$Stub;
 Landroid/hardware/radio/V1_4/IRadioIndication;
 Landroid/hardware/radio/V1_4/IRadioResponse$Stub;
 Landroid/hardware/radio/V1_4/IRadioResponse;
+Landroid/hardware/radio/V1_4/LteVopsInfo;
 Landroid/hardware/radio/V1_4/NetworkScanResult;
 Landroid/hardware/radio/V1_4/NrIndicators;
+Landroid/hardware/radio/V1_4/NrSignalStrength;
 Landroid/hardware/radio/V1_4/PhysicalChannelConfig;
+Landroid/hardware/radio/V1_4/RadioFrequencyInfo;
 Landroid/hardware/radio/V1_4/SetupDataCallResult;
 Landroid/hardware/radio/V1_4/SignalStrength;
+Landroid/hardware/radio/V1_5/CellIdentity;
+Landroid/hardware/radio/V1_5/CellIdentityGsm;
+Landroid/hardware/radio/V1_5/CellIdentityLte;
+Landroid/hardware/radio/V1_5/CellIdentityNr;
+Landroid/hardware/radio/V1_5/CellIdentityTdscdma;
+Landroid/hardware/radio/V1_5/CellIdentityWcdma;
+Landroid/hardware/radio/V1_5/ClosedSubscriberGroupInfo;
+Landroid/hardware/radio/V1_5/IRadio;
+Landroid/hardware/radio/V1_5/OptionalCsgInfo;
 Landroid/hardware/radio/config/V1_0/IRadioConfig;
 Landroid/hardware/radio/config/V1_0/IRadioConfigIndication;
 Landroid/hardware/radio/config/V1_0/IRadioConfigResponse;
@@ -24881,9 +26004,11 @@
 Landroid/hardware/radio/deprecated/V1_0/IOemHookResponse$Stub;
 Landroid/hardware/radio/deprecated/V1_0/IOemHookResponse;
 Landroid/hardware/sidekick/SidekickInternal;
+Landroid/hardware/soundtrigger/ConversionUtil;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
+Landroid/hardware/soundtrigger/KeyphraseMetadata;
 Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;
 Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
 Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent$1;
@@ -24898,6 +26023,8 @@
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel$1;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+Landroid/hardware/soundtrigger/SoundTrigger$ModelParamRange$1;
+Landroid/hardware/soundtrigger/SoundTrigger$ModelParamRange;
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties$1;
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig$1;
@@ -24909,25 +26036,36 @@
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;
 Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;
 Landroid/hardware/soundtrigger/SoundTrigger;
+Landroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate;
 Landroid/hardware/soundtrigger/SoundTriggerModule;
 Landroid/hardware/thermal/V1_0/IThermal;
 Landroid/hardware/thermal/V1_0/ThermalStatus;
+Landroid/hardware/thermal/V2_0/CoolingDevice;
 Landroid/hardware/thermal/V2_0/IThermal$Proxy;
+Landroid/hardware/thermal/V2_0/IThermal$getCurrentCoolingDevicesCallback;
 Landroid/hardware/thermal/V2_0/IThermal$getCurrentTemperaturesCallback;
 Landroid/hardware/thermal/V2_0/IThermal;
 Landroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;
 Landroid/hardware/thermal/V2_0/IThermalChangedCallback;
 Landroid/hardware/thermal/V2_0/Temperature;
+Landroid/hardware/usb/AccessoryFilter;
+Landroid/hardware/usb/DeviceFilter;
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;
 Landroid/hardware/usb/IUsbManager$Stub;
 Landroid/hardware/usb/IUsbManager;
+Landroid/hardware/usb/IUsbSerialReader$Stub;
+Landroid/hardware/usb/IUsbSerialReader;
 Landroid/hardware/usb/ParcelableUsbPort$1;
 Landroid/hardware/usb/ParcelableUsbPort;
 Landroid/hardware/usb/UsbAccessory$2;
 Landroid/hardware/usb/UsbAccessory;
+Landroid/hardware/usb/UsbConfiguration$1;
+Landroid/hardware/usb/UsbConfiguration;
 Landroid/hardware/usb/UsbDevice$1;
+Landroid/hardware/usb/UsbDevice$Builder;
 Landroid/hardware/usb/UsbDevice;
 Landroid/hardware/usb/UsbDeviceConnection;
+Landroid/hardware/usb/UsbInterface;
 Landroid/hardware/usb/UsbManager;
 Landroid/hardware/usb/UsbPort;
 Landroid/hardware/usb/UsbPortStatus$1;
@@ -24940,8 +26078,18 @@
 Landroid/icu/impl/BMPSet;
 Landroid/icu/impl/CacheBase;
 Landroid/icu/impl/CacheValue$NullValue;
+Landroid/icu/impl/CacheValue$SoftValue;
 Landroid/icu/impl/CacheValue$Strength;
+Landroid/icu/impl/CacheValue$StrongValue;
 Landroid/icu/impl/CacheValue;
+Landroid/icu/impl/CalType;
+Landroid/icu/impl/CalendarUtil$CalendarPreferences;
+Landroid/icu/impl/CalendarUtil;
+Landroid/icu/impl/CaseMapImpl$StringContextIterator;
+Landroid/icu/impl/CaseMapImpl;
+Landroid/icu/impl/CharTrie;
+Landroid/icu/impl/CharacterIteration;
+Landroid/icu/impl/CharacterPropertiesImpl;
 Landroid/icu/impl/ClassLoaderUtil;
 Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
 Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider;
@@ -24949,6 +26097,11 @@
 Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType;
 Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;
 Landroid/icu/impl/CurrencyData;
+Landroid/icu/impl/DateNumberFormat;
+Landroid/icu/impl/FormattedStringBuilder;
+Landroid/icu/impl/FormattedValueStringBuilderImpl$NullField;
+Landroid/icu/impl/FormattedValueStringBuilderImpl;
+Landroid/icu/impl/Grego;
 Landroid/icu/impl/ICUBinary$Authenticate;
 Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable;
 Landroid/icu/impl/ICUBinary$DatPackageReader;
@@ -24970,20 +26123,26 @@
 Landroid/icu/impl/ICUData;
 Landroid/icu/impl/ICUDebug;
 Landroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;
+Landroid/icu/impl/ICULocaleService$LocaleKey;
 Landroid/icu/impl/ICULocaleService$LocaleKeyFactory;
 Landroid/icu/impl/ICULocaleService;
 Landroid/icu/impl/ICUNotifier;
 Landroid/icu/impl/ICURWLock;
 Landroid/icu/impl/ICUResourceBundle$1;
+Landroid/icu/impl/ICUResourceBundle$2$1;
+Landroid/icu/impl/ICUResourceBundle$2;
 Landroid/icu/impl/ICUResourceBundle$3;
 Landroid/icu/impl/ICUResourceBundle$4;
+Landroid/icu/impl/ICUResourceBundle$AvailEntry;
 Landroid/icu/impl/ICUResourceBundle$Loader;
 Landroid/icu/impl/ICUResourceBundle$OpenType;
 Landroid/icu/impl/ICUResourceBundle$WholeBundle;
 Landroid/icu/impl/ICUResourceBundle;
 Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray;
+Landroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;
 Landroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;
 Landroid/icu/impl/ICUResourceBundleImpl$ResourceInt;
+Landroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;
 Landroid/icu/impl/ICUResourceBundleImpl$ResourceString;
 Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;
 Landroid/icu/impl/ICUResourceBundleImpl;
@@ -25001,25 +26160,79 @@
 Landroid/icu/impl/ICUResourceBundleReader$Table16;
 Landroid/icu/impl/ICUResourceBundleReader$Table;
 Landroid/icu/impl/ICUResourceBundleReader;
+Landroid/icu/impl/ICUService$CacheEntry;
 Landroid/icu/impl/ICUService$Factory;
+Landroid/icu/impl/ICUService$Key;
 Landroid/icu/impl/ICUService;
+Landroid/icu/impl/IDNA2003;
+Landroid/icu/impl/JavaTimeZone;
 Landroid/icu/impl/LocaleIDParser;
+Landroid/icu/impl/LocaleIDs;
+Landroid/icu/impl/Norm2AllModes$1;
+Landroid/icu/impl/Norm2AllModes$ComposeNormalizer2;
+Landroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;
+Landroid/icu/impl/Norm2AllModes$FCDNormalizer2;
+Landroid/icu/impl/Norm2AllModes$NFCSingleton;
+Landroid/icu/impl/Norm2AllModes$NFKCSingleton;
+Landroid/icu/impl/Norm2AllModes$NoopNormalizer2;
+Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;
+Landroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;
+Landroid/icu/impl/Norm2AllModes;
+Landroid/icu/impl/Normalizer2Impl$1;
+Landroid/icu/impl/Normalizer2Impl$IsAcceptable;
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;
+Landroid/icu/impl/Normalizer2Impl$UTF16Plus;
+Landroid/icu/impl/Normalizer2Impl;
+Landroid/icu/impl/OlsonTimeZone;
 Landroid/icu/impl/Pair;
+Landroid/icu/impl/PatternProps;
+Landroid/icu/impl/PatternTokenizer;
+Landroid/icu/impl/PluralRulesLoader;
 Landroid/icu/impl/RBBIDataWrapper$IsAcceptable;
 Landroid/icu/impl/RBBIDataWrapper$RBBIDataHeader;
 Landroid/icu/impl/RBBIDataWrapper$RBBIStateTable;
 Landroid/icu/impl/RBBIDataWrapper;
+Landroid/icu/impl/ReplaceableUCharacterIterator;
+Landroid/icu/impl/RuleCharacterIterator;
 Landroid/icu/impl/SimpleCache;
+Landroid/icu/impl/SimpleFormatterImpl;
 Landroid/icu/impl/SoftCache;
+Landroid/icu/impl/StandardPlural;
+Landroid/icu/impl/StaticUnicodeSets$Key;
+Landroid/icu/impl/StaticUnicodeSets$ParseDataSink;
+Landroid/icu/impl/StaticUnicodeSets;
+Landroid/icu/impl/StringPrepDataReader;
+Landroid/icu/impl/StringSegment;
+Landroid/icu/impl/TextTrieMap$Node;
+Landroid/icu/impl/TextTrieMap;
+Landroid/icu/impl/TimeZoneNamesFactoryImpl;
+Landroid/icu/impl/TimeZoneNamesImpl$1;
+Landroid/icu/impl/TimeZoneNamesImpl$MZ2TZsCache;
+Landroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;
+Landroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;
+Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;
+Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
+Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;
+Landroid/icu/impl/TimeZoneNamesImpl;
+Landroid/icu/impl/Trie$DataManipulate;
+Landroid/icu/impl/Trie$DefaultGetFoldingOffset;
 Landroid/icu/impl/Trie2$1;
 Landroid/icu/impl/Trie2$2;
+Landroid/icu/impl/Trie2$Range;
+Landroid/icu/impl/Trie2$Trie2Iterator;
 Landroid/icu/impl/Trie2$UTrie2Header;
 Landroid/icu/impl/Trie2$ValueMapper;
 Landroid/icu/impl/Trie2$ValueWidth;
 Landroid/icu/impl/Trie2;
 Landroid/icu/impl/Trie2_16;
+Landroid/icu/impl/Trie2_32;
+Landroid/icu/impl/Trie;
 Landroid/icu/impl/UBiDiProps$IsAcceptable;
 Landroid/icu/impl/UBiDiProps;
+Landroid/icu/impl/UCaseProps$ContextIterator;
+Landroid/icu/impl/UCaseProps$IsAcceptable;
+Landroid/icu/impl/UCaseProps$LatinCase;
+Landroid/icu/impl/UCaseProps;
 Landroid/icu/impl/UCharacterProperty$10;
 Landroid/icu/impl/UCharacterProperty$11;
 Landroid/icu/impl/UCharacterProperty$12;
@@ -25056,48 +26269,118 @@
 Landroid/icu/impl/UCharacterProperty$NormInertBinaryProperty;
 Landroid/icu/impl/UCharacterProperty$NormQuickCheckIntProperty;
 Landroid/icu/impl/UCharacterProperty;
+Landroid/icu/impl/UPropertyAliases$IsAcceptable;
+Landroid/icu/impl/UPropertyAliases;
+Landroid/icu/impl/URLHandler$URLVisitor;
 Landroid/icu/impl/UResource$Array;
 Landroid/icu/impl/UResource$Key;
 Landroid/icu/impl/UResource$Sink;
 Landroid/icu/impl/UResource$Table;
 Landroid/icu/impl/UResource$Value;
 Landroid/icu/impl/UResource;
+Landroid/icu/impl/USerializedSet;
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;
+Landroid/icu/impl/UnicodeSetStringSpan;
 Landroid/icu/impl/Utility;
 Landroid/icu/impl/ZoneMeta$1;
 Landroid/icu/impl/ZoneMeta$CustomTimeZoneCache;
 Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache;
 Landroid/icu/impl/ZoneMeta;
+Landroid/icu/impl/coll/CollationData;
+Landroid/icu/impl/coll/CollationDataReader$IsAcceptable;
+Landroid/icu/impl/coll/CollationDataReader;
+Landroid/icu/impl/coll/CollationFastLatin;
+Landroid/icu/impl/coll/CollationIterator$CEBuffer;
+Landroid/icu/impl/coll/CollationLoader;
+Landroid/icu/impl/coll/CollationRoot;
+Landroid/icu/impl/coll/CollationSettings;
+Landroid/icu/impl/coll/CollationTailoring;
+Landroid/icu/impl/coll/SharedObject$Reference;
+Landroid/icu/impl/coll/SharedObject;
+Landroid/icu/impl/locale/AsciiUtil$CaseInsensitiveKey;
 Landroid/icu/impl/locale/AsciiUtil;
 Landroid/icu/impl/locale/BaseLocale$Cache;
 Landroid/icu/impl/locale/BaseLocale$Key;
 Landroid/icu/impl/locale/BaseLocale;
+Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;
+Landroid/icu/impl/locale/InternalLocaleBuilder;
+Landroid/icu/impl/locale/LanguageTag;
 Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;
 Landroid/icu/impl/locale/LocaleObjectCache;
 Landroid/icu/impl/locale/LocaleSyntaxException;
+Landroid/icu/impl/number/AdoptingModifierStore;
 Landroid/icu/impl/number/AffixPatternProvider;
+Landroid/icu/impl/number/AffixUtils$SymbolProvider;
+Landroid/icu/impl/number/AffixUtils$TokenConsumer;
 Landroid/icu/impl/number/AffixUtils;
+Landroid/icu/impl/number/ConstantAffixModifier;
+Landroid/icu/impl/number/ConstantMultiFieldModifier;
+Landroid/icu/impl/number/CurrencySpacingEnabledModifier;
 Landroid/icu/impl/number/CustomSymbolCurrency;
 Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;
 Landroid/icu/impl/number/DecimalFormatProperties;
+Landroid/icu/impl/number/DecimalQuantity;
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;
+Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
 Landroid/icu/impl/number/Grouper;
 Landroid/icu/impl/number/MacroProps;
+Landroid/icu/impl/number/MicroProps;
+Landroid/icu/impl/number/MicroPropsGenerator;
+Landroid/icu/impl/number/Modifier;
+Landroid/icu/impl/number/ModifierStore;
+Landroid/icu/impl/number/MultiplierFormatHandler;
+Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;
+Landroid/icu/impl/number/MutablePatternModifier;
 Landroid/icu/impl/number/Padder$PadPosition;
+Landroid/icu/impl/number/Padder;
 Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;
 Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;
 Landroid/icu/impl/number/PatternStringParser$ParserState;
 Landroid/icu/impl/number/PatternStringParser;
+Landroid/icu/impl/number/PatternStringUtils;
 Landroid/icu/impl/number/PropertiesAffixPatternProvider;
 Landroid/icu/impl/number/RoundingUtils;
+Landroid/icu/impl/number/parse/AffixMatcher$1;
+Landroid/icu/impl/number/parse/AffixMatcher;
+Landroid/icu/impl/number/parse/AffixPatternMatcher;
+Landroid/icu/impl/number/parse/AffixTokenMatcherFactory;
+Landroid/icu/impl/number/parse/DecimalMatcher;
+Landroid/icu/impl/number/parse/IgnorablesMatcher;
+Landroid/icu/impl/number/parse/InfinityMatcher;
+Landroid/icu/impl/number/parse/MinusSignMatcher;
+Landroid/icu/impl/number/parse/NanMatcher;
+Landroid/icu/impl/number/parse/NumberParseMatcher$Flexible;
+Landroid/icu/impl/number/parse/NumberParseMatcher;
+Landroid/icu/impl/number/parse/NumberParserImpl;
+Landroid/icu/impl/number/parse/ParsedNumber$1;
+Landroid/icu/impl/number/parse/ParsedNumber;
+Landroid/icu/impl/number/parse/ParsingUtils;
+Landroid/icu/impl/number/parse/RequireAffixValidator;
+Landroid/icu/impl/number/parse/RequireNumberValidator;
+Landroid/icu/impl/number/parse/ScientificMatcher;
+Landroid/icu/impl/number/parse/SeriesMatcher;
+Landroid/icu/impl/number/parse/SymbolMatcher;
+Landroid/icu/impl/number/parse/ValidationMatcher;
+Landroid/icu/lang/CharacterProperties;
 Landroid/icu/lang/UCharacter;
 Landroid/icu/lang/UCharacterEnums$ECharacterCategory;
 Landroid/icu/lang/UCharacterEnums$ECharacterDirection;
+Landroid/icu/lang/UScript$ScriptUsage;
+Landroid/icu/lang/UScript;
+Landroid/icu/math/BigDecimal;
+Landroid/icu/math/MathContext;
+Landroid/icu/number/CompactNotation;
 Landroid/icu/number/CurrencyPrecision;
+Landroid/icu/number/FormattedNumber;
 Landroid/icu/number/FractionPrecision;
 Landroid/icu/number/IntegerWidth;
 Landroid/icu/number/LocalizedNumberFormatter;
+Landroid/icu/number/Notation;
 Landroid/icu/number/NumberFormatter$DecimalSeparatorDisplay;
 Landroid/icu/number/NumberFormatter$SignDisplay;
+Landroid/icu/number/NumberFormatter$UnitWidth;
 Landroid/icu/number/NumberFormatter;
+Landroid/icu/number/NumberFormatterImpl;
 Landroid/icu/number/NumberFormatterSettings;
 Landroid/icu/number/NumberPropertyMapper;
 Landroid/icu/number/Precision$CurrencyRounderImpl;
@@ -25109,18 +26392,66 @@
 Landroid/icu/number/Precision$PassThroughRounderImpl;
 Landroid/icu/number/Precision$SignificantRounderImpl;
 Landroid/icu/number/Precision;
+Landroid/icu/number/Scale;
+Landroid/icu/number/ScientificNotation;
 Landroid/icu/number/UnlocalizedNumberFormatter;
+Landroid/icu/text/AlphabeticIndex$1;
+Landroid/icu/text/AlphabeticIndex$Bucket;
+Landroid/icu/text/AlphabeticIndex$BucketList;
+Landroid/icu/text/AlphabeticIndex$ImmutableIndex;
+Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;
 Landroid/icu/text/BidiClassifier;
+Landroid/icu/text/BidiLine;
 Landroid/icu/text/BreakIterator$BreakIteratorCache;
 Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
 Landroid/icu/text/BreakIterator;
 Landroid/icu/text/BreakIteratorFactory$BFService$1RBBreakIteratorFactory;
 Landroid/icu/text/BreakIteratorFactory$BFService;
 Landroid/icu/text/BreakIteratorFactory;
+Landroid/icu/text/CaseMap$Title;
+Landroid/icu/text/CaseMap$Upper;
+Landroid/icu/text/CaseMap;
+Landroid/icu/text/Collator$ServiceShim;
+Landroid/icu/text/Collator;
+Landroid/icu/text/CollatorServiceShim$CService$1CollatorFactory;
+Landroid/icu/text/CollatorServiceShim$CService;
+Landroid/icu/text/CollatorServiceShim;
+Landroid/icu/text/ConstrainedFieldPosition$1;
+Landroid/icu/text/ConstrainedFieldPosition$ConstraintType;
+Landroid/icu/text/ConstrainedFieldPosition;
 Landroid/icu/text/CurrencyDisplayNames;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
 Landroid/icu/text/CurrencyMetaInfo;
+Landroid/icu/text/DateFormat$BooleanAttribute;
+Landroid/icu/text/DateFormat$Field;
+Landroid/icu/text/DateFormat;
+Landroid/icu/text/DateFormatSymbols$1;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols;
+Landroid/icu/text/DateIntervalFormat$BestMatchInfo;
+Landroid/icu/text/DateIntervalFormat;
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;
+Landroid/icu/text/DateIntervalInfo$PatternInfo;
+Landroid/icu/text/DateIntervalInfo;
+Landroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;
+Landroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;
+Landroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;
+Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
+Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;
+Landroid/icu/text/DateTimePatternGenerator$DisplayWidth;
+Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;
+Landroid/icu/text/DateTimePatternGenerator$FormatParser;
+Landroid/icu/text/DateTimePatternGenerator$PatternInfo;
+Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;
+Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;
+Landroid/icu/text/DateTimePatternGenerator$VariableField;
+Landroid/icu/text/DateTimePatternGenerator;
 Landroid/icu/text/DecimalFormat;
 Landroid/icu/text/DecimalFormatSymbols$1;
 Landroid/icu/text/DecimalFormatSymbols$CacheData;
@@ -25130,50 +26461,144 @@
 Landroid/icu/text/DictionaryBreakEngine;
 Landroid/icu/text/DisplayContext$Type;
 Landroid/icu/text/DisplayContext;
+Landroid/icu/text/Edits$Iterator;
+Landroid/icu/text/Edits;
+Landroid/icu/text/FormattedValue;
+Landroid/icu/text/IDNA;
 Landroid/icu/text/LanguageBreakEngine;
+Landroid/icu/text/MeasureFormat$FormatWidth;
+Landroid/icu/text/MeasureFormat;
 Landroid/icu/text/Normalizer$FCDMode;
 Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer$ModeImpl;
 Landroid/icu/text/Normalizer$NFCMode;
 Landroid/icu/text/Normalizer$NFDMode;
 Landroid/icu/text/Normalizer$NFKCMode;
 Landroid/icu/text/Normalizer$NFKDMode;
+Landroid/icu/text/Normalizer$NFKDModeImpl;
 Landroid/icu/text/Normalizer$NONEMode;
 Landroid/icu/text/Normalizer$QuickCheckResult;
+Landroid/icu/text/Normalizer2;
 Landroid/icu/text/Normalizer;
+Landroid/icu/text/NumberFormat$Field;
+Landroid/icu/text/NumberFormat$NumberFormatShim;
 Landroid/icu/text/NumberFormat;
+Landroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory;
+Landroid/icu/text/NumberFormatServiceShim$NFService;
 Landroid/icu/text/NumberingSystem$1;
 Landroid/icu/text/NumberingSystem$2;
 Landroid/icu/text/NumberingSystem$LocaleLookupData;
 Landroid/icu/text/NumberingSystem;
+Landroid/icu/text/PluralRanges$Matrix;
+Landroid/icu/text/PluralRanges;
+Landroid/icu/text/PluralRules$1;
+Landroid/icu/text/PluralRules$2;
+Landroid/icu/text/PluralRules$AndConstraint;
+Landroid/icu/text/PluralRules$BinaryConstraint;
+Landroid/icu/text/PluralRules$Constraint;
+Landroid/icu/text/PluralRules$Factory;
+Landroid/icu/text/PluralRules$FixedDecimal;
+Landroid/icu/text/PluralRules$FixedDecimalRange;
+Landroid/icu/text/PluralRules$FixedDecimalSamples;
+Landroid/icu/text/PluralRules$IFixedDecimal;
+Landroid/icu/text/PluralRules$Operand;
+Landroid/icu/text/PluralRules$PluralType;
+Landroid/icu/text/PluralRules$RangeConstraint;
+Landroid/icu/text/PluralRules$Rule;
+Landroid/icu/text/PluralRules$RuleList;
+Landroid/icu/text/PluralRules$SampleType;
+Landroid/icu/text/PluralRules$SimpleTokenizer;
+Landroid/icu/text/PluralRules;
+Landroid/icu/text/RelativeDateTimeFormatter$Cache$1;
+Landroid/icu/text/RelativeDateTimeFormatter$Cache;
+Landroid/icu/text/RelativeDateTimeFormatter$Loader;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;
+Landroid/icu/text/Replaceable;
+Landroid/icu/text/ReplaceableString;
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;
 Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;
 Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;
 Landroid/icu/text/RuleBasedBreakIterator;
+Landroid/icu/text/RuleBasedCollator$CollationBuffer;
+Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;
+Landroid/icu/text/RuleBasedCollator$NFDIterator;
+Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
+Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/SimpleDateFormat$PatternItem;
+Landroid/icu/text/SimpleDateFormat;
+Landroid/icu/text/StringPrep;
 Landroid/icu/text/StringPrepParseException;
 Landroid/icu/text/StringTransform;
+Landroid/icu/text/TimeZoneNames$Cache;
+Landroid/icu/text/TimeZoneNames$Factory;
 Landroid/icu/text/TimeZoneNames$NameType;
+Landroid/icu/text/TimeZoneNames;
 Landroid/icu/text/Transform;
 Landroid/icu/text/Transliterator;
+Landroid/icu/text/UCharacterIterator;
+Landroid/icu/text/UFieldPosition;
 Landroid/icu/text/UFormat;
+Landroid/icu/text/UForwardCharacterIterator;
+Landroid/icu/text/UTF16$StringComparator;
 Landroid/icu/text/UTF16;
 Landroid/icu/text/UnhandledBreakEngine;
 Landroid/icu/text/UnicodeFilter;
 Landroid/icu/text/UnicodeMatcher;
+Landroid/icu/text/UnicodeSet$Filter;
+Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;
+Landroid/icu/text/UnicodeSet$IntPropertyFilter;
+Landroid/icu/text/UnicodeSet$SpanCondition;
+Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;
 Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/AnnualTimeZoneRule;
+Landroid/icu/util/BasicTimeZone;
+Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/BytesTrie;
+Landroid/icu/util/Calendar$1;
+Landroid/icu/util/Calendar$FormatConfiguration;
+Landroid/icu/util/Calendar$PatternData;
+Landroid/icu/util/Calendar$WeekData;
+Landroid/icu/util/Calendar$WeekDataCache;
+Landroid/icu/util/Calendar;
+Landroid/icu/util/CharsTrie$Entry;
+Landroid/icu/util/CharsTrie$Iterator;
+Landroid/icu/util/CodePointMap$Range;
+Landroid/icu/util/CodePointMap$RangeOption;
+Landroid/icu/util/CodePointMap$ValueFilter;
+Landroid/icu/util/CodePointMap;
+Landroid/icu/util/CodePointTrie$1;
+Landroid/icu/util/CodePointTrie$Data16;
+Landroid/icu/util/CodePointTrie$Data;
+Landroid/icu/util/CodePointTrie$Fast16;
+Landroid/icu/util/CodePointTrie$Fast;
+Landroid/icu/util/CodePointTrie$Type;
+Landroid/icu/util/CodePointTrie$ValueWidth;
+Landroid/icu/util/CodePointTrie;
 Landroid/icu/util/Currency$1;
 Landroid/icu/util/Currency$CurrencyUsage;
 Landroid/icu/util/Currency;
+Landroid/icu/util/DateTimeRule;
 Landroid/icu/util/Freezable;
+Landroid/icu/util/GregorianCalendar;
+Landroid/icu/util/ICUException;
+Landroid/icu/util/InitialTimeZoneRule;
+Landroid/icu/util/Measure;
 Landroid/icu/util/MeasureUnit$1;
 Landroid/icu/util/MeasureUnit$2;
 Landroid/icu/util/MeasureUnit$3;
 Landroid/icu/util/MeasureUnit$4;
 Landroid/icu/util/MeasureUnit$Factory;
 Landroid/icu/util/MeasureUnit;
+Landroid/icu/util/Output;
+Landroid/icu/util/STZInfo;
+Landroid/icu/util/SimpleTimeZone;
+Landroid/icu/util/TimeArrayTimeZoneRule;
 Landroid/icu/util/TimeUnit;
 Landroid/icu/util/TimeZone$ConstantZone;
 Landroid/icu/util/TimeZone$SystemTimeZoneType;
 Landroid/icu/util/TimeZone;
+Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/TimeZoneTransition;
 Landroid/icu/util/ULocale$1;
 Landroid/icu/util/ULocale$2;
 Landroid/icu/util/ULocale$3;
@@ -25184,17 +26609,21 @@
 Landroid/icu/util/UResourceBundle$1;
 Landroid/icu/util/UResourceBundle$RootType;
 Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundleIterator;
 Landroid/icu/util/UResourceTypeMismatchException;
 Landroid/icu/util/VersionInfo;
 Landroid/inputmethodservice/-$$Lambda$InputMethodService$8T9TmAUIN7vW9eU6kTg8309_d4E;
+Landroid/inputmethodservice/-$$Lambda$InputMethodService$TvVfWDKZ3ljQdrU87qYykg6uD-I;
 Landroid/inputmethodservice/-$$Lambda$InputMethodService$wp8DeVGx_WDOPw4F6an7QbwVxf0;
 Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;
 Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;
 Landroid/inputmethodservice/AbstractInputMethodService;
+Landroid/inputmethodservice/ExtractEditText;
 Landroid/inputmethodservice/IInputMethodSessionWrapper$ImeInputEventReceiver;
 Landroid/inputmethodservice/IInputMethodSessionWrapper;
 Landroid/inputmethodservice/IInputMethodWrapper$InputMethodSessionCallbackWrapper;
 Landroid/inputmethodservice/IInputMethodWrapper;
+Landroid/inputmethodservice/InputMethodService$InputMethodImpl;
 Landroid/inputmethodservice/InputMethodService$InputMethodSessionImpl;
 Landroid/inputmethodservice/InputMethodService$Insets;
 Landroid/inputmethodservice/InputMethodService$SettingsObserver;
@@ -25202,6 +26631,22 @@
 Landroid/inputmethodservice/SoftInputWindow;
 Landroid/internal/hidl/base/V1_0/DebugInfo;
 Landroid/internal/hidl/base/V1_0/IBase;
+Landroid/internal/hidl/safe_union/V1_0/Monostate;
+Landroid/internal/telephony/sysprop/TelephonyProperties;
+Landroid/location/-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0;
+Landroid/location/-$$Lambda$AbstractListenerManager$Registration$TnkXgyOd99JHl00GzK6Oay_sYms;
+Landroid/location/-$$Lambda$GpsStatus$RTSonBp9m0T0NWA3SCfYgWf1mTo;
+Landroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$4EPi22o4xuVnpNhFHnDvebH4TG8;
+Landroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$7Fi5XkeF81eL_OKPS2GJMvyc3-8;
+Landroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$gYcH61KCtV_OcJJszI1TfvnrJHY;
+Landroid/location/-$$Lambda$LocationManager$LocationListenerTransport$JzcdERl3Ha8sYr9NxFhb3gNOoCM;
+Landroid/location/-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps;
+Landroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vDJFuk-DvyNgQEXUO2Jkf2ZFeE8;
+Landroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vtBApnyHdgybRqRKlCt1NFEyfeQ;
+Landroid/location/-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY;
+Landroid/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;
+Landroid/location/AbstractListenerManager$Registration;
+Landroid/location/AbstractListenerManager;
 Landroid/location/Address$1;
 Landroid/location/Address;
 Landroid/location/Country$1;
@@ -25211,6 +26656,7 @@
 Landroid/location/CountryListener;
 Landroid/location/Criteria$1;
 Landroid/location/Criteria;
+Landroid/location/FusedBatchOptions$SourceTechnologies;
 Landroid/location/Geocoder;
 Landroid/location/GeocoderParams$1;
 Landroid/location/GeocoderParams;
@@ -25222,7 +26668,21 @@
 Landroid/location/GnssMeasurement;
 Landroid/location/GnssMeasurementCorrections$1;
 Landroid/location/GnssMeasurementCorrections;
+Landroid/location/GnssMeasurementsEvent$1;
+Landroid/location/GnssMeasurementsEvent;
+Landroid/location/GnssNavigationMessage$1;
+Landroid/location/GnssNavigationMessage;
+Landroid/location/GnssReflectingPlane$1;
+Landroid/location/GnssReflectingPlane;
+Landroid/location/GnssRequest;
+Landroid/location/GnssSingleSatCorrection$1;
+Landroid/location/GnssSingleSatCorrection;
+Landroid/location/GnssStatus$Callback;
+Landroid/location/GnssStatus;
+Landroid/location/GpsSatellite;
 Landroid/location/GpsStatus$Listener;
+Landroid/location/GpsStatus$SatelliteIterator;
+Landroid/location/GpsStatus;
 Landroid/location/IBatchedLocationCallback$Stub$Proxy;
 Landroid/location/IBatchedLocationCallback$Stub;
 Landroid/location/IBatchedLocationCallback;
@@ -25241,6 +26701,8 @@
 Landroid/location/IGeofenceProvider$Stub$Proxy;
 Landroid/location/IGeofenceProvider$Stub;
 Landroid/location/IGeofenceProvider;
+Landroid/location/IGnssAntennaInfoListener$Stub;
+Landroid/location/IGnssAntennaInfoListener;
 Landroid/location/IGnssMeasurementsListener$Stub$Proxy;
 Landroid/location/IGnssMeasurementsListener$Stub;
 Landroid/location/IGnssMeasurementsListener;
@@ -25266,14 +26728,31 @@
 Landroid/location/Location$BearingDistanceCache;
 Landroid/location/Location;
 Landroid/location/LocationListener;
+Landroid/location/LocationManager$BatchedLocationCallbackManager;
+Landroid/location/LocationManager$GnssAntennaInfoListenerManager;
+Landroid/location/LocationManager$GnssMeasurementsListenerManager;
+Landroid/location/LocationManager$GnssNavigationMessageListenerManager;
+Landroid/location/LocationManager$GnssStatusListenerManager$1;
+Landroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;
+Landroid/location/LocationManager$GnssStatusListenerManager;
+Landroid/location/LocationManager$LocationListenerTransport;
+Landroid/location/LocationManager$NmeaAdapter;
 Landroid/location/LocationManager;
 Landroid/location/LocationProvider;
 Landroid/location/LocationRequest$1;
 Landroid/location/LocationRequest;
+Landroid/location/LocationTime$1;
+Landroid/location/LocationTime;
+Landroid/location/OnNmeaMessageListener;
 Landroid/media/-$$Lambda$MediaCodecInfo$VideoCapabilities$DpgwEn-gVFZT9EtP3qcxpiA2G0M;
+Landroid/media/-$$Lambda$MediaDrm$8rRollK1F3eENvuaBGoS8u_-heQ;
+Landroid/media/-$$Lambda$MediaDrm$IvEWhXQgSYABwC6_1bdnhTJ4V2I;
+Landroid/media/-$$Lambda$MediaDrm$UPVWCanGo24eu9-1S_t6PvJ1Zno;
 Landroid/media/AudioAttributes$1;
 Landroid/media/AudioAttributes$Builder;
 Landroid/media/AudioAttributes;
+Landroid/media/AudioDevice$1;
+Landroid/media/AudioDevice;
 Landroid/media/AudioDeviceAddress$1;
 Landroid/media/AudioDeviceAddress;
 Landroid/media/AudioDeviceCallback;
@@ -25296,6 +26775,8 @@
 Landroid/media/AudioManager$4;
 Landroid/media/AudioManager$AudioPlaybackCallback;
 Landroid/media/AudioManager$AudioPlaybackCallbackInfo;
+Landroid/media/AudioManager$AudioRecordingCallback;
+Landroid/media/AudioManager$AudioRecordingCallbackInfo;
 Landroid/media/AudioManager$BlockingFocusResultReceiver;
 Landroid/media/AudioManager$FocusRequestInfo;
 Landroid/media/AudioManager$NativeEventHandlerDelegate$1;
@@ -25303,6 +26784,8 @@
 Landroid/media/AudioManager$OnAmPortUpdateListener;
 Landroid/media/AudioManager$OnAudioFocusChangeListener;
 Landroid/media/AudioManager$OnAudioPortUpdateListener;
+Landroid/media/AudioManager$PlaybackConfigChangeCallbackData;
+Landroid/media/AudioManager$RecordConfigChangeCallbackData;
 Landroid/media/AudioManager$SafeWaitObject;
 Landroid/media/AudioManager$ServiceEventHandlerDelegate$1;
 Landroid/media/AudioManager$ServiceEventHandlerDelegate;
@@ -25323,6 +26806,8 @@
 Landroid/media/AudioPresentation;
 Landroid/media/AudioRecord;
 Landroid/media/AudioRecordRoutingProxy;
+Landroid/media/AudioRecordingConfiguration$1;
+Landroid/media/AudioRecordingConfiguration;
 Landroid/media/AudioRecordingMonitor;
 Landroid/media/AudioRecordingMonitorClient;
 Landroid/media/AudioRecordingMonitorImpl$1;
@@ -25335,6 +26820,8 @@
 Landroid/media/AudioSystem$ErrorCallback;
 Landroid/media/AudioSystem;
 Landroid/media/AudioTimestamp;
+Landroid/media/AudioTrack$1;
+Landroid/media/AudioTrack$TunerConfiguration;
 Landroid/media/AudioTrack;
 Landroid/media/AudioTrackRoutingProxy;
 Landroid/media/CamcorderProfile;
@@ -25342,6 +26829,7 @@
 Landroid/media/DecoderCapabilities;
 Landroid/media/EncoderCapabilities;
 Landroid/media/ExifInterface$ByteOrderedDataInputStream;
+Landroid/media/ExifInterface$ByteOrderedDataOutputStream;
 Landroid/media/ExifInterface$ExifAttribute;
 Landroid/media/ExifInterface$ExifTag;
 Landroid/media/ExifInterface$Rational;
@@ -25394,6 +26882,8 @@
 Landroid/media/IRingtonePlayer$Stub$Proxy;
 Landroid/media/IRingtonePlayer$Stub;
 Landroid/media/IRingtonePlayer;
+Landroid/media/IStrategyPreferredDeviceDispatcher$Stub;
+Landroid/media/IStrategyPreferredDeviceDispatcher;
 Landroid/media/IVolumeController$Stub$Proxy;
 Landroid/media/IVolumeController$Stub;
 Landroid/media/IVolumeController;
@@ -25414,7 +26904,11 @@
 Landroid/media/MediaCodec$CryptoInfo$Pattern;
 Landroid/media/MediaCodec$CryptoInfo;
 Landroid/media/MediaCodec$EventHandler;
+Landroid/media/MediaCodec$GraphicBlock;
+Landroid/media/MediaCodec$LinearBlock;
+Landroid/media/MediaCodec$OutputFrame;
 Landroid/media/MediaCodec$PersistentSurface;
+Landroid/media/MediaCodec$QueueRequest;
 Landroid/media/MediaCodec;
 Landroid/media/MediaCodecInfo$AudioCapabilities;
 Landroid/media/MediaCodecInfo$CodecCapabilities;
@@ -25426,13 +26920,18 @@
 Landroid/media/MediaCodecInfo;
 Landroid/media/MediaCodecList;
 Landroid/media/MediaCrypto;
+Landroid/media/MediaCryptoException;
 Landroid/media/MediaDescrambler;
 Landroid/media/MediaDescription$1;
+Landroid/media/MediaDescription$Builder;
 Landroid/media/MediaDescription;
 Landroid/media/MediaDrm$Certificate;
+Landroid/media/MediaDrm$CryptoSession;
 Landroid/media/MediaDrm$KeyRequest;
 Landroid/media/MediaDrm$KeyStatus;
+Landroid/media/MediaDrm$ListenerWithExecutor;
 Landroid/media/MediaDrm$MediaDrmStateException;
+Landroid/media/MediaDrm$OnEventListener;
 Landroid/media/MediaDrm$ProvisionRequest;
 Landroid/media/MediaDrm$SessionException;
 Landroid/media/MediaDrm;
@@ -25458,11 +26957,19 @@
 Landroid/media/MediaPlayer$EventHandler$1;
 Landroid/media/MediaPlayer$EventHandler$2;
 Landroid/media/MediaPlayer$EventHandler;
+Landroid/media/MediaPlayer$OnBufferingUpdateListener;
 Landroid/media/MediaPlayer$OnCompletionListener;
+Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;
 Landroid/media/MediaPlayer$OnErrorListener;
+Landroid/media/MediaPlayer$OnInfoListener;
+Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
 Landroid/media/MediaPlayer$OnPreparedListener;
 Landroid/media/MediaPlayer$OnSeekCompleteListener;
 Landroid/media/MediaPlayer$OnSubtitleDataListener;
+Landroid/media/MediaPlayer$OnTimedMetaDataAvailableListener;
+Landroid/media/MediaPlayer$OnTimedTextListener;
+Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
+Landroid/media/MediaPlayer$ProvisioningThread;
 Landroid/media/MediaPlayer$TimeProvider$EventHandler;
 Landroid/media/MediaPlayer$TimeProvider;
 Landroid/media/MediaPlayer$TrackInfo$1;
@@ -25484,8 +26991,10 @@
 Landroid/media/MediaRouter$Static$Client$2;
 Landroid/media/MediaRouter$Static$Client;
 Landroid/media/MediaRouter$Static;
+Landroid/media/MediaRouter$UserRouteInfo$SessionVolumeProvider;
 Landroid/media/MediaRouter$UserRouteInfo;
 Landroid/media/MediaRouter$VolumeCallback;
+Landroid/media/MediaRouter$VolumeCallbackInfo;
 Landroid/media/MediaRouter$VolumeChangeReceiver;
 Landroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;
 Landroid/media/MediaRouter;
@@ -25500,6 +27009,7 @@
 Landroid/media/MediaTimeProvider$OnMediaTimeListener;
 Landroid/media/MediaTimeProvider;
 Landroid/media/MediaTimestamp;
+Landroid/media/MediaTranscodeManager;
 Landroid/media/MicrophoneDirection;
 Landroid/media/MicrophoneInfo$Coordinate3F;
 Landroid/media/MicrophoneInfo;
@@ -25514,11 +27024,14 @@
 Landroid/media/PlayerBase;
 Landroid/media/Rating$1;
 Landroid/media/Rating;
+Landroid/media/RemoteControlClient;
 Landroid/media/RemoteDisplay;
 Landroid/media/ResampleInputStream;
 Landroid/media/Ringtone$MyOnCompletionListener;
 Landroid/media/Ringtone;
 Landroid/media/RingtoneManager;
+Landroid/media/RouteDiscoveryPreference;
+Landroid/media/RoutingSessionInfo;
 Landroid/media/SoundPool$Builder;
 Landroid/media/SoundPool$EventHandler;
 Landroid/media/SoundPool$OnLoadCompleteListener;
@@ -25531,6 +27044,7 @@
 Landroid/media/SubtitleData;
 Landroid/media/SubtitleTrack;
 Landroid/media/SyncParams;
+Landroid/media/ThumbnailUtils;
 Landroid/media/TimedMetaData;
 Landroid/media/TimedText;
 Landroid/media/ToneGenerator;
@@ -25540,6 +27054,7 @@
 Landroid/media/VolumeAutomation;
 Landroid/media/VolumePolicy$1;
 Landroid/media/VolumePolicy;
+Landroid/media/VolumeProvider;
 Landroid/media/VolumeShaper$Configuration$1;
 Landroid/media/VolumeShaper$Configuration$Builder;
 Landroid/media/VolumeShaper$Configuration;
@@ -25548,10 +27063,18 @@
 Landroid/media/VolumeShaper$Operation;
 Landroid/media/VolumeShaper$State$1;
 Landroid/media/VolumeShaper$State;
+Landroid/media/VolumeShaper;
 Landroid/media/audiofx/AudioEffect$Descriptor;
+Landroid/media/audiopolicy/-$$Lambda$AudioPolicy$-ztOT0FT3tzGMUr4lm1gv6dBE4c;
+Landroid/media/audiopolicy/AudioMix$Builder;
 Landroid/media/audiopolicy/AudioMix;
 Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;
+Landroid/media/audiopolicy/AudioMixingRule$Builder;
 Landroid/media/audiopolicy/AudioMixingRule;
+Landroid/media/audiopolicy/AudioPolicy$1;
+Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener;
+Landroid/media/audiopolicy/AudioPolicy$EventHandler;
+Landroid/media/audiopolicy/AudioPolicy;
 Landroid/media/audiopolicy/AudioPolicyConfig$1;
 Landroid/media/audiopolicy/AudioPolicyConfig;
 Landroid/media/audiopolicy/AudioProductStrategy$1;
@@ -25579,11 +27102,18 @@
 Landroid/media/browse/MediaBrowser$SubscriptionCallback;
 Landroid/media/browse/MediaBrowser;
 Landroid/media/browse/MediaBrowserUtils;
+Landroid/media/midi/IMidiDeviceListener$Stub;
+Landroid/media/midi/IMidiDeviceListener;
+Landroid/media/midi/IMidiDeviceOpenCallback$Stub;
+Landroid/media/midi/IMidiDeviceOpenCallback;
+Landroid/media/midi/IMidiDeviceServer$Stub;
+Landroid/media/midi/IMidiDeviceServer;
 Landroid/media/midi/IMidiManager$Stub;
 Landroid/media/midi/IMidiManager;
 Landroid/media/midi/MidiDevice;
 Landroid/media/midi/MidiDeviceInfo$1;
 Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/MidiDeviceStatus;
 Landroid/media/midi/MidiManager;
 Landroid/media/projection/IMediaProjection$Stub$Proxy;
 Landroid/media/projection/IMediaProjection$Stub;
@@ -25594,6 +27124,9 @@
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;
 Landroid/media/projection/IMediaProjectionWatcherCallback;
+Landroid/media/projection/MediaProjection;
+Landroid/media/projection/MediaProjectionInfo$1;
+Landroid/media/projection/MediaProjectionInfo;
 Landroid/media/projection/MediaProjectionManager$CallbackDelegate;
 Landroid/media/projection/MediaProjectionManager;
 Landroid/media/session/-$$Lambda$MediaSessionManager$IEuWPZ528guBgmyKPMUWhBwnMCE;
@@ -25643,6 +27176,7 @@
 Landroid/media/session/MediaSession$Token$1;
 Landroid/media/session/MediaSession$Token;
 Landroid/media/session/MediaSession;
+Landroid/media/session/MediaSessionLegacyHelper;
 Landroid/media/session/MediaSessionManager$1;
 Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;
 Landroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListener;
@@ -25665,13 +27199,22 @@
 Landroid/media/session/PlaybackState$CustomAction$1;
 Landroid/media/session/PlaybackState$CustomAction;
 Landroid/media/session/PlaybackState;
+Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub;
+Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;
 Landroid/media/soundtrigger/SoundTriggerManager;
+Landroid/media/soundtrigger_middleware/ISoundTriggerCallback$Stub;
+Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;
+Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;
+Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
 Landroid/media/tv/TvInputHardwareInfo$Builder;
 Landroid/media/tv/TvInputManager;
 Landroid/media/tv/TvStreamConfig$1;
 Landroid/media/tv/TvStreamConfig$Builder;
 Landroid/media/tv/TvStreamConfig;
 Landroid/metrics/LogMaker;
+Landroid/metrics/MetricsReader$Event;
+Landroid/metrics/MetricsReader$LogReader;
+Landroid/metrics/MetricsReader;
 Landroid/mtp/MtpDatabase$1;
 Landroid/mtp/MtpDatabase$2;
 Landroid/mtp/MtpDatabase;
@@ -25689,13 +27232,23 @@
 Landroid/mtp/MtpStorageManager;
 Landroid/net/-$$Lambda$FpGXkd3pLxeXY58eJ_84mi1PLWQ;
 Landroid/net/-$$Lambda$Network$KD6DxaMRJIcajhj36TU1K7lJnHQ;
+Landroid/net/-$$Lambda$NetworkFactory$HfslgqyaKc_n0wXX5_qRYVZoGfI;
+Landroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$PGkg1UrNyisY0wAts4zoVuYRgkw;
+Landroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$TEOhIiY2C9y8yDWwRR6zm_12TGY;
+Landroid/net/-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY;
 Landroid/net/-$$Lambda$NetworkStats$xvFSsVoR0k5s7Fhw1yPDPVIpx8A;
 Landroid/net/-$$Lambda$p1_56lwnt1xBuY1muPblbN1Dtkw;
+Landroid/net/CaptivePortal$1;
+Landroid/net/CaptivePortal;
+Landroid/net/CaptivePortalData;
 Landroid/net/ConnectionInfo$1;
 Landroid/net/ConnectionInfo;
+Landroid/net/ConnectivityDiagnosticsManager;
 Landroid/net/ConnectivityManager$1;
 Landroid/net/ConnectivityManager$2;
 Landroid/net/ConnectivityManager$3;
+Landroid/net/ConnectivityManager$4;
+Landroid/net/ConnectivityManager$5;
 Landroid/net/ConnectivityManager$CallbackHandler;
 Landroid/net/ConnectivityManager$LegacyRequest;
 Landroid/net/ConnectivityManager$NetworkCallback;
@@ -25720,11 +27273,17 @@
 Landroid/net/DhcpResults;
 Landroid/net/EthernetManager;
 Landroid/net/EventLogTags;
+Landroid/net/ICaptivePortal$Stub;
+Landroid/net/ICaptivePortal;
+Landroid/net/IConnectivityDiagnosticsCallback$Stub;
+Landroid/net/IConnectivityDiagnosticsCallback;
 Landroid/net/IConnectivityManager$Stub$Proxy;
 Landroid/net/IConnectivityManager$Stub;
 Landroid/net/IConnectivityManager;
 Landroid/net/IEthernetManager$Stub;
 Landroid/net/IEthernetManager;
+Landroid/net/IEthernetServiceListener$Stub;
+Landroid/net/IEthernetServiceListener;
 Landroid/net/IIpConnectivityMetrics$Stub$Proxy;
 Landroid/net/IIpConnectivityMetrics$Stub;
 Landroid/net/IIpConnectivityMetrics;
@@ -25754,14 +27313,20 @@
 Landroid/net/INetworkStatsService$Stub$Proxy;
 Landroid/net/INetworkStatsService$Stub;
 Landroid/net/INetworkStatsService;
+Landroid/net/INetworkStatsSession$Stub$Proxy;
+Landroid/net/INetworkStatsSession$Stub;
+Landroid/net/INetworkStatsSession;
 Landroid/net/ISocketKeepaliveCallback$Stub$Proxy;
 Landroid/net/ISocketKeepaliveCallback$Stub;
 Landroid/net/ISocketKeepaliveCallback;
 Landroid/net/ITestNetworkManager$Stub;
 Landroid/net/ITestNetworkManager;
+Landroid/net/ITetheredInterfaceCallback$Stub;
+Landroid/net/ITetheredInterfaceCallback;
 Landroid/net/ITetheringStatsProvider$Stub$Proxy;
 Landroid/net/ITetheringStatsProvider$Stub;
 Landroid/net/ITetheringStatsProvider;
+Landroid/net/InetAddresses;
 Landroid/net/InterfaceConfiguration$1;
 Landroid/net/InterfaceConfiguration;
 Landroid/net/IpConfiguration$1;
@@ -25771,13 +27336,19 @@
 Landroid/net/IpPrefix$1;
 Landroid/net/IpPrefix$2;
 Landroid/net/IpPrefix;
+Landroid/net/IpSecConfig;
 Landroid/net/IpSecManager$SpiUnavailableException;
 Landroid/net/IpSecManager$UdpEncapsulationSocket;
 Landroid/net/IpSecManager;
+Landroid/net/IpSecSpiResponse;
+Landroid/net/IpSecTransformResponse;
+Landroid/net/IpSecTunnelInterfaceResponse;
+Landroid/net/IpSecUdpEncapResponse;
 Landroid/net/KeepalivePacketData;
 Landroid/net/LinkAddress$1;
 Landroid/net/LinkAddress;
 Landroid/net/LinkProperties$1;
+Landroid/net/LinkProperties$CompareResult;
 Landroid/net/LinkProperties;
 Landroid/net/LocalServerSocket;
 Landroid/net/LocalSocket;
@@ -25795,10 +27366,14 @@
 Landroid/net/Network$NetworkBoundSocketFactory;
 Landroid/net/Network;
 Landroid/net/NetworkAgent;
+Landroid/net/NetworkAgentConfig;
 Landroid/net/NetworkCapabilities$1;
 Landroid/net/NetworkCapabilities$NameOf;
 Landroid/net/NetworkCapabilities;
 Landroid/net/NetworkConfig;
+Landroid/net/NetworkFactory$NetworkRequestInfo;
+Landroid/net/NetworkFactory$SerialNumber;
+Landroid/net/NetworkFactory;
 Landroid/net/NetworkIdentity;
 Landroid/net/NetworkInfo$1;
 Landroid/net/NetworkInfo$DetailedState;
@@ -25810,15 +27385,30 @@
 Landroid/net/NetworkPolicy;
 Landroid/net/NetworkPolicyManager$1;
 Landroid/net/NetworkPolicyManager$Listener;
+Landroid/net/NetworkPolicyManager$SubscriptionCallback;
+Landroid/net/NetworkPolicyManager$SubscriptionCallbackProxy;
 Landroid/net/NetworkPolicyManager;
 Landroid/net/NetworkProvider;
+Landroid/net/NetworkQuotaInfo$1;
 Landroid/net/NetworkQuotaInfo;
+Landroid/net/NetworkRecommendationProvider$ServiceWrapper$1;
+Landroid/net/NetworkRecommendationProvider$ServiceWrapper;
+Landroid/net/NetworkRecommendationProvider;
 Landroid/net/NetworkRequest$1;
+Landroid/net/NetworkRequest$2;
 Landroid/net/NetworkRequest$Builder;
 Landroid/net/NetworkRequest$Type;
 Landroid/net/NetworkRequest;
+Landroid/net/NetworkScore$1;
+Landroid/net/NetworkScore$Builder;
+Landroid/net/NetworkScore;
+Landroid/net/NetworkScoreManager$NetworkScoreCallback;
+Landroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;
 Landroid/net/NetworkScoreManager;
+Landroid/net/NetworkScorerAppData$1;
+Landroid/net/NetworkScorerAppData;
 Landroid/net/NetworkSpecifier;
+Landroid/net/NetworkStack;
 Landroid/net/NetworkState$1;
 Landroid/net/NetworkState;
 Landroid/net/NetworkStats$1;
@@ -25860,6 +27450,8 @@
 Landroid/net/StringNetworkSpecifier$1;
 Landroid/net/StringNetworkSpecifier;
 Landroid/net/TcpSocketKeepalive;
+Landroid/net/TelephonyNetworkSpecifier$1;
+Landroid/net/TelephonyNetworkSpecifier;
 Landroid/net/TestNetworkManager;
 Landroid/net/TrafficStats;
 Landroid/net/TransportInfo;
@@ -25879,6 +27471,7 @@
 Landroid/net/Uri$StringUri;
 Landroid/net/Uri;
 Landroid/net/UriCodec;
+Landroid/net/VpnManager;
 Landroid/net/WebAddress;
 Landroid/net/WifiKey$1;
 Landroid/net/WifiKey;
@@ -25888,6 +27481,7 @@
 Landroid/net/http/X509TrustManagerExtensions;
 Landroid/net/lowpan/LowpanManager;
 Landroid/net/metrics/ApfProgramEvent$1;
+Landroid/net/metrics/ApfProgramEvent$Decoder;
 Landroid/net/metrics/ApfProgramEvent;
 Landroid/net/metrics/ApfStats$1;
 Landroid/net/metrics/ApfStats;
@@ -25895,23 +27489,34 @@
 Landroid/net/metrics/DefaultNetworkEvent;
 Landroid/net/metrics/DhcpClientEvent$1;
 Landroid/net/metrics/DhcpClientEvent;
+Landroid/net/metrics/DhcpErrorEvent$1;
+Landroid/net/metrics/DhcpErrorEvent$Decoder;
+Landroid/net/metrics/DhcpErrorEvent;
 Landroid/net/metrics/DnsEvent;
 Landroid/net/metrics/IpConnectivityLog$Event;
 Landroid/net/metrics/IpConnectivityLog;
 Landroid/net/metrics/IpManagerEvent$1;
+Landroid/net/metrics/IpManagerEvent$Decoder;
 Landroid/net/metrics/IpManagerEvent;
 Landroid/net/metrics/IpReachabilityEvent$1;
+Landroid/net/metrics/IpReachabilityEvent$Decoder;
 Landroid/net/metrics/IpReachabilityEvent;
 Landroid/net/metrics/NetworkEvent$1;
+Landroid/net/metrics/NetworkEvent$Decoder;
 Landroid/net/metrics/NetworkEvent;
 Landroid/net/metrics/NetworkMetrics$Metrics;
 Landroid/net/metrics/NetworkMetrics$Summary;
+Landroid/net/metrics/NetworkMetrics;
 Landroid/net/metrics/RaEvent$1;
 Landroid/net/metrics/RaEvent;
 Landroid/net/metrics/ValidationProbeEvent$1;
+Landroid/net/metrics/ValidationProbeEvent$Decoder;
 Landroid/net/metrics/ValidationProbeEvent;
 Landroid/net/metrics/WakeupEvent;
 Landroid/net/metrics/WakeupStats;
+Landroid/net/netstats/provider/INetworkStatsProvider$Stub;
+Landroid/net/netstats/provider/INetworkStatsProvider;
+Landroid/net/netstats/provider/INetworkStatsProviderCallback;
 Landroid/net/nsd/INsdManager$Stub$Proxy;
 Landroid/net/nsd/INsdManager$Stub;
 Landroid/net/nsd/INsdManager;
@@ -25930,12 +27535,33 @@
 Landroid/net/sip/SipManager;
 Landroid/net/sip/SipProfile;
 Landroid/net/sip/SipSessionAdapter;
+Landroid/net/util/-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E;
+Landroid/net/util/KeepaliveUtils$KeepaliveDeviceConfigurationException;
+Landroid/net/util/KeepaliveUtils;
+Landroid/net/util/LinkPropertiesUtils;
+Landroid/net/util/MacAddressUtils;
 Landroid/net/util/MultinetworkPolicyTracker$1;
+Landroid/net/util/MultinetworkPolicyTracker$2;
 Landroid/net/util/MultinetworkPolicyTracker$SettingObserver;
 Landroid/net/util/MultinetworkPolicyTracker;
+Landroid/net/util/NetUtils;
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener$1;
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;
 Landroid/net/wifi/WifiNetworkScoreCache;
+Landroid/net/wifi/wificond/ChannelSettings$1;
+Landroid/net/wifi/wificond/ChannelSettings;
+Landroid/net/wifi/wificond/HiddenNetwork$1;
+Landroid/net/wifi/wificond/HiddenNetwork;
+Landroid/net/wifi/wificond/NativeScanResult$1;
+Landroid/net/wifi/wificond/NativeScanResult;
+Landroid/net/wifi/wificond/PnoNetwork$1;
+Landroid/net/wifi/wificond/PnoNetwork;
+Landroid/net/wifi/wificond/PnoSettings$1;
+Landroid/net/wifi/wificond/PnoSettings;
+Landroid/net/wifi/wificond/RadioChainInfo$1;
+Landroid/net/wifi/wificond/RadioChainInfo;
+Landroid/net/wifi/wificond/SingleScanSettings$1;
+Landroid/net/wifi/wificond/SingleScanSettings;
 Landroid/net/wifi/wificond/WifiCondManager;
 Landroid/nfc/BeamShareData$1;
 Landroid/nfc/BeamShareData;
@@ -25945,9 +27571,11 @@
 Landroid/nfc/INfcAdapter$Stub$Proxy;
 Landroid/nfc/INfcAdapter$Stub;
 Landroid/nfc/INfcAdapter;
+Landroid/nfc/INfcAdapterExtras;
 Landroid/nfc/INfcCardEmulation$Stub$Proxy;
 Landroid/nfc/INfcCardEmulation$Stub;
 Landroid/nfc/INfcCardEmulation;
+Landroid/nfc/INfcDta;
 Landroid/nfc/INfcFCardEmulation$Stub$Proxy;
 Landroid/nfc/INfcFCardEmulation$Stub;
 Landroid/nfc/INfcFCardEmulation;
@@ -25971,6 +27599,10 @@
 Landroid/nfc/Tag;
 Landroid/nfc/TechListParcel$1;
 Landroid/nfc/TechListParcel;
+Landroid/nfc/cardemulation/AidGroup$1;
+Landroid/nfc/cardemulation/AidGroup;
+Landroid/nfc/cardemulation/ApduServiceInfo;
+Landroid/nfc/cardemulation/CardEmulation;
 Landroid/opengl/EGL14;
 Landroid/opengl/EGL15;
 Landroid/opengl/EGLConfig;
@@ -25997,9 +27629,13 @@
 Landroid/opengl/Visibility;
 Landroid/os/-$$Lambda$Binder$IYUHVkWouPK_9CG2s8VwyWBt5_I;
 Landroid/os/-$$Lambda$Build$WrC6eL7oW2Zm9UDTcXXKr0DnOMw;
+Landroid/os/-$$Lambda$FileUtils$0SBPRWOXcbR9EMG_p-55sUuxJ_0;
+Landroid/os/-$$Lambda$FileUtils$TJeD9NeX5giO-5vlBrurGI-g4IY;
 Landroid/os/-$$Lambda$HidlSupport$CwwfmHPEvZaybUxpLzKdwrpQRfA;
 Landroid/os/-$$Lambda$HidlSupport$GHxmwrIWiKN83tl6aMQt_nV5hiw;
+Landroid/os/-$$Lambda$IncidentManager$mfBTEJgu7VPkoPMTQdf1KC7oi5g;
 Landroid/os/-$$Lambda$IyvVQC-0mKtsfXbnO0kDL64hrk0;
+Landroid/os/-$$Lambda$PowerManager$1$-RL9hKNKSaGL1mmR-EjQ-Cm9KuA;
 Landroid/os/-$$Lambda$PowerManager$WakeLock$VvFzmRZ4ZGlXx7u3lSAJ_T-YUjw;
 Landroid/os/-$$Lambda$StrictMode$1yH8AK0bTwVwZOb9x8HoiSBdzr0;
 Landroid/os/-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I;
@@ -26009,6 +27645,7 @@
 Landroid/os/-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg;
 Landroid/os/-$$Lambda$ThreadLocalWorkSource$IP9vRFCDG5YwbWbXAEGHH52B9IE;
 Landroid/os/-$$Lambda$q1UvBdLgHRZVzc68BxdksTmbuCw;
+Landroid/os/AppZygote;
 Landroid/os/AsyncResult;
 Landroid/os/AsyncTask$1;
 Landroid/os/AsyncTask$2;
@@ -26032,6 +27669,7 @@
 Landroid/os/BatteryProperty;
 Landroid/os/BatterySaverPolicyConfig$1;
 Landroid/os/BatterySaverPolicyConfig;
+Landroid/os/BatteryStats$1;
 Landroid/os/BatteryStats$2;
 Landroid/os/BatteryStats$BitDescription;
 Landroid/os/BatteryStats$ControllerActivityCounter;
@@ -26048,6 +27686,7 @@
 Landroid/os/BatteryStats$LongCounterArray;
 Landroid/os/BatteryStats$PackageChange;
 Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$TimerEntry;
 Landroid/os/BatteryStats$Uid$Pid;
 Landroid/os/BatteryStats$Uid$Pkg$Serv;
 Landroid/os/BatteryStats$Uid$Pkg;
@@ -26076,6 +27715,8 @@
 Landroid/os/CancellationSignal;
 Landroid/os/ChildZygoteProcess;
 Landroid/os/ConditionVariable;
+Landroid/os/CoolingDevice$1;
+Landroid/os/CoolingDevice;
 Landroid/os/CpuUsageInfo$1;
 Landroid/os/CpuUsageInfo;
 Landroid/os/DeadObjectException;
@@ -26090,8 +27731,10 @@
 Landroid/os/Environment$UserEnvironment;
 Landroid/os/Environment;
 Landroid/os/EventLogTags;
+Landroid/os/ExternalVibration;
 Landroid/os/FactoryTest;
 Landroid/os/FileBridge$FileBridgeOutputStream;
+Landroid/os/FileBridge;
 Landroid/os/FileObserver$ObserverThread;
 Landroid/os/FileObserver;
 Landroid/os/FileUtils$1;
@@ -26127,15 +27770,24 @@
 Landroid/os/IDeviceIdleController$Stub$Proxy;
 Landroid/os/IDeviceIdleController$Stub;
 Landroid/os/IDeviceIdleController;
+Landroid/os/IDumpstate$Stub$Proxy;
 Landroid/os/IDumpstate$Stub;
 Landroid/os/IDumpstate;
+Landroid/os/IDumpstateListener$Stub$Proxy;
+Landroid/os/IDumpstateListener$Stub;
+Landroid/os/IDumpstateListener;
 Landroid/os/IExternalVibratorService$Stub;
 Landroid/os/IExternalVibratorService;
+Landroid/os/IHardwarePropertiesManager$Stub$Proxy;
 Landroid/os/IHardwarePropertiesManager$Stub;
 Landroid/os/IHardwarePropertiesManager;
 Landroid/os/IHwBinder$DeathRecipient;
 Landroid/os/IHwBinder;
 Landroid/os/IHwInterface;
+Landroid/os/IIncidentAuthListener$Stub$Proxy;
+Landroid/os/IIncidentAuthListener$Stub;
+Landroid/os/IIncidentAuthListener;
+Landroid/os/IIncidentCompanion$Stub$Proxy;
 Landroid/os/IIncidentCompanion$Stub;
 Landroid/os/IIncidentCompanion;
 Landroid/os/IIncidentManager$Stub$Proxy;
@@ -26164,8 +27816,12 @@
 Landroid/os/IProgressListener$Stub$Proxy;
 Landroid/os/IProgressListener$Stub;
 Landroid/os/IProgressListener;
+Landroid/os/IPullAtomCallback$Stub;
+Landroid/os/IPullAtomCallback;
 Landroid/os/IRecoverySystem$Stub;
 Landroid/os/IRecoverySystem;
+Landroid/os/IRecoverySystemProgressListener$Stub;
+Landroid/os/IRecoverySystemProgressListener;
 Landroid/os/IRemoteCallback$Stub$Proxy;
 Landroid/os/IRemoteCallback$Stub;
 Landroid/os/IRemoteCallback;
@@ -26176,6 +27832,8 @@
 Landroid/os/IServiceManager;
 Landroid/os/IStatsCompanionService$Stub;
 Landroid/os/IStatsCompanionService;
+Landroid/os/IStatsManagerService$Stub;
+Landroid/os/IStatsManagerService;
 Landroid/os/IStatsd$Stub;
 Landroid/os/IStatsd;
 Landroid/os/IStoraged$Stub$Proxy;
@@ -26193,22 +27851,36 @@
 Landroid/os/IThermalStatusListener$Stub$Proxy;
 Landroid/os/IThermalStatusListener$Stub;
 Landroid/os/IThermalStatusListener;
+Landroid/os/IUpdateEngine$Stub$Proxy;
+Landroid/os/IUpdateEngine$Stub;
+Landroid/os/IUpdateEngine;
+Landroid/os/IUpdateEngineCallback$Stub;
+Landroid/os/IUpdateEngineCallback;
 Landroid/os/IUpdateLock$Stub;
 Landroid/os/IUpdateLock;
 Landroid/os/IUserManager$Stub$Proxy;
 Landroid/os/IUserManager$Stub;
 Landroid/os/IUserManager;
+Landroid/os/IUserRestrictionsListener$Stub$Proxy;
+Landroid/os/IUserRestrictionsListener$Stub;
+Landroid/os/IUserRestrictionsListener;
 Landroid/os/IVibratorService$Stub$Proxy;
 Landroid/os/IVibratorService$Stub;
 Landroid/os/IVibratorService;
+Landroid/os/IVibratorStateListener$Stub;
+Landroid/os/IVibratorStateListener;
 Landroid/os/IVold$Stub$Proxy;
 Landroid/os/IVold$Stub;
 Landroid/os/IVold;
 Landroid/os/IVoldListener$Stub;
 Landroid/os/IVoldListener;
+Landroid/os/IVoldMountCallback$Stub;
+Landroid/os/IVoldMountCallback;
 Landroid/os/IVoldTaskListener$Stub$Proxy;
 Landroid/os/IVoldTaskListener$Stub;
 Landroid/os/IVoldTaskListener;
+Landroid/os/IncidentManager$IncidentReport$1;
+Landroid/os/IncidentManager$IncidentReport;
 Landroid/os/IncidentManager;
 Landroid/os/LocaleList$1;
 Landroid/os/LocaleList;
@@ -26225,6 +27897,7 @@
 Landroid/os/Messenger;
 Landroid/os/NativeHandle;
 Landroid/os/NetworkOnMainThreadException;
+Landroid/os/NullVibrator;
 Landroid/os/OperationCanceledException;
 Landroid/os/Parcel$1;
 Landroid/os/Parcel$2;
@@ -26234,6 +27907,8 @@
 Landroid/os/ParcelFileDescriptor$2;
 Landroid/os/ParcelFileDescriptor$AutoCloseInputStream;
 Landroid/os/ParcelFileDescriptor$AutoCloseOutputStream;
+Landroid/os/ParcelFileDescriptor$OnCloseListener;
+Landroid/os/ParcelFileDescriptor$Status;
 Landroid/os/ParcelFileDescriptor;
 Landroid/os/ParcelFormatException;
 Landroid/os/ParcelUuid$1;
@@ -26252,6 +27927,9 @@
 Landroid/os/PersistableBundle;
 Landroid/os/PooledStringReader;
 Landroid/os/PooledStringWriter;
+Landroid/os/PowerManager$1;
+Landroid/os/PowerManager$OnThermalStatusChangedListener;
+Landroid/os/PowerManager$WakeData;
 Landroid/os/PowerManager$WakeLock$1;
 Landroid/os/PowerManager$WakeLock;
 Landroid/os/PowerManager;
@@ -26265,6 +27943,12 @@
 Landroid/os/Process$ProcessStartResult;
 Landroid/os/Process;
 Landroid/os/ProxyFileDescriptorCallback;
+Landroid/os/RecoverySystem$1;
+Landroid/os/RecoverySystem$2;
+Landroid/os/RecoverySystem$3;
+Landroid/os/RecoverySystem$4;
+Landroid/os/RecoverySystem$5;
+Landroid/os/RecoverySystem$ProgressListener;
 Landroid/os/RecoverySystem;
 Landroid/os/Registrant;
 Landroid/os/RegistrantList;
@@ -26296,6 +27980,10 @@
 Landroid/os/ShellCommand;
 Landroid/os/SimpleClock;
 Landroid/os/StatFs;
+Landroid/os/StatsDimensionsValue$1;
+Landroid/os/StatsDimensionsValue;
+Landroid/os/StatsServiceManager$ServiceRegisterer;
+Landroid/os/StatsServiceManager;
 Landroid/os/StrictMode$1;
 Landroid/os/StrictMode$2;
 Landroid/os/StrictMode$3;
@@ -26325,31 +28013,45 @@
 Landroid/os/SystemClock$2;
 Landroid/os/SystemClock$3;
 Landroid/os/SystemClock;
+Landroid/os/SystemConfigManager;
+Landroid/os/SystemProperties$Handle;
 Landroid/os/SystemProperties;
+Landroid/os/SystemService$1;
 Landroid/os/SystemService$State;
 Landroid/os/SystemService;
 Landroid/os/SystemUpdateManager;
 Landroid/os/SystemVibrator;
+Landroid/os/TelephonyServiceManager$ServiceRegisterer;
 Landroid/os/TelephonyServiceManager;
 Landroid/os/Temperature$1;
 Landroid/os/Temperature;
 Landroid/os/ThreadLocalWorkSource;
 Landroid/os/TokenWatcher$1;
+Landroid/os/TokenWatcher$Death;
 Landroid/os/TokenWatcher;
 Landroid/os/Trace;
 Landroid/os/TraceNameSupplier;
 Landroid/os/TransactionTooLargeException;
 Landroid/os/TransactionTracker;
+Landroid/os/UEventObserver$UEvent;
 Landroid/os/UEventObserver$UEventThread;
 Landroid/os/UEventObserver;
+Landroid/os/UpdateEngine$1$1;
+Landroid/os/UpdateEngine$1;
+Landroid/os/UpdateEngine;
+Landroid/os/UpdateEngineCallback;
 Landroid/os/UpdateLock;
 Landroid/os/UserHandle$1;
 Landroid/os/UserHandle;
+Landroid/os/UserManager$1;
 Landroid/os/UserManager$EnforcingUser$1;
 Landroid/os/UserManager$EnforcingUser;
 Landroid/os/UserManager$UserOperationException;
 Landroid/os/UserManager;
+Landroid/os/VibrationAttributes$Builder;
+Landroid/os/VibrationAttributes;
 Landroid/os/VibrationEffect$1;
+Landroid/os/VibrationEffect$Composed;
 Landroid/os/VibrationEffect$OneShot$1;
 Landroid/os/VibrationEffect$OneShot;
 Landroid/os/VibrationEffect$Prebaked$1;
@@ -26371,23 +28073,32 @@
 Landroid/os/connectivity/CellularBatteryStats;
 Landroid/os/connectivity/GpsBatteryStats$1;
 Landroid/os/connectivity/GpsBatteryStats;
+Landroid/os/connectivity/WifiActivityEnergyInfo$1;
 Landroid/os/connectivity/WifiActivityEnergyInfo;
 Landroid/os/connectivity/WifiBatteryStats$1;
 Landroid/os/connectivity/WifiBatteryStats;
 Landroid/os/health/HealthKeys$Constant;
+Landroid/os/health/HealthKeys$Constants;
 Landroid/os/health/HealthKeys$SortedIntArray;
 Landroid/os/health/HealthStats;
 Landroid/os/health/HealthStatsParceler$1;
 Landroid/os/health/HealthStatsParceler;
 Landroid/os/health/HealthStatsWriter;
+Landroid/os/health/PackageHealthStats;
+Landroid/os/health/PidHealthStats;
+Landroid/os/health/ProcessHealthStats;
+Landroid/os/health/ServiceHealthStats;
 Landroid/os/health/SystemHealthManager;
 Landroid/os/health/TimerStat$1;
 Landroid/os/health/TimerStat;
+Landroid/os/health/UidHealthStats;
 Landroid/os/image/DynamicSystemClient;
 Landroid/os/image/DynamicSystemManager;
 Landroid/os/image/IDynamicSystemService$Stub;
 Landroid/os/image/IDynamicSystemService;
 Landroid/os/incremental/IncrementalManager;
+Landroid/os/storage/-$$Lambda$StorageManager$StorageEventListenerDelegate$GoEFKT1rhv7KuSkGeH69DO738lA;
+Landroid/os/storage/-$$Lambda$StorageManager$StorageEventListenerDelegate$pyZP4UQS232-tqmtk5lSCyZx9qU;
 Landroid/os/storage/DiskInfo$1;
 Landroid/os/storage/DiskInfo;
 Landroid/os/storage/IObbActionListener$Stub$Proxy;
@@ -26435,7 +28146,17 @@
 Landroid/os/strictmode/UnbufferedIoViolation;
 Landroid/os/strictmode/UntaggedSocketViolation;
 Landroid/os/strictmode/Violation;
+Landroid/os/strictmode/WebViewMethodCalledOnWrongThreadViolation;
+Landroid/permission/-$$Lambda$PermissionControllerManager$2gyb4miANgsuR_Cn3HPTnP6sL54;
 Landroid/permission/-$$Lambda$PermissionControllerManager$Iy-7wiKMCV-MFSPGyIJxP_DSf8E;
+Landroid/permission/-$$Lambda$PermissionControllerManager$WcxnBH4VsthEHNc7qKClONaAHtQ;
+Landroid/permission/-$$Lambda$PermissionControllerManager$eHuRmDpRAUfA3qanHHMVMV_C0lI;
+Landroid/permission/-$$Lambda$PermissionControllerManager$u5bno-vHXoMY3ADbZMAlZp7v9oI;
+Landroid/permission/-$$Lambda$PermissionControllerManager$vBYanTuMAWBbfOp_XdHzQXYNpXY;
+Landroid/permission/-$$Lambda$PermissionControllerManager$wPNqW0yZff7KXoWmrKVyzMgY2jc;
+Landroid/permission/-$$Lambda$PermissionControllerManager$yqGWw4vOTpW9pDZRlfJdxzYUsF0;
+Landroid/permission/-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI;
+Landroid/permission/IOnPermissionsChangeListener$Stub$Proxy;
 Landroid/permission/IOnPermissionsChangeListener$Stub;
 Landroid/permission/IOnPermissionsChangeListener;
 Landroid/permission/IPermissionController$Stub$Proxy;
@@ -26444,6 +28165,7 @@
 Landroid/permission/IPermissionManager$Stub$Proxy;
 Landroid/permission/IPermissionManager$Stub;
 Landroid/permission/IPermissionManager;
+Landroid/permission/PermissionControllerManager$1;
 Landroid/permission/PermissionControllerManager;
 Landroid/permission/PermissionManager$SplitPermissionInfo;
 Landroid/permission/PermissionManager;
@@ -26460,28 +28182,55 @@
 Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener;
 Landroid/preference/PreferenceManager;
 Landroid/preference/PreferenceScreen;
+Landroid/print/IPrintDocumentAdapter$Stub;
+Landroid/print/IPrintDocumentAdapter;
+Landroid/print/IPrintJobStateChangeListener$Stub;
+Landroid/print/IPrintJobStateChangeListener;
+Landroid/print/IPrintManager$Stub$Proxy;
 Landroid/print/IPrintManager$Stub;
 Landroid/print/IPrintManager;
+Landroid/print/IPrintServicesChangeListener$Stub;
+Landroid/print/IPrintServicesChangeListener;
 Landroid/print/IPrintSpooler$Stub$Proxy;
 Landroid/print/IPrintSpooler$Stub;
 Landroid/print/IPrintSpooler;
+Landroid/print/IPrintSpoolerCallbacks$Stub;
+Landroid/print/IPrintSpoolerCallbacks;
+Landroid/print/IPrintSpoolerClient$Stub;
+Landroid/print/IPrintSpoolerClient;
+Landroid/print/IPrinterDiscoveryObserver$Stub;
+Landroid/print/IPrinterDiscoveryObserver;
+Landroid/print/PrintAttributes;
 Landroid/print/PrintDocumentAdapter;
+Landroid/print/PrintJobId;
 Landroid/print/PrintJobInfo$1;
 Landroid/print/PrintJobInfo;
+Landroid/print/PrintManager$1;
 Landroid/print/PrintManager;
+Landroid/print/PrinterId;
+Landroid/printservice/IPrintServiceClient$Stub;
+Landroid/printservice/IPrintServiceClient;
 Landroid/printservice/PrintServiceInfo$1;
 Landroid/printservice/PrintServiceInfo;
+Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub;
+Landroid/printservice/recommendation/IRecommendationsChangeListener;
 Landroid/privacy/DifferentialPrivacyConfig;
 Landroid/privacy/DifferentialPrivacyEncoder;
+Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;
 Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;
 Landroid/privacy/internal/rappor/RapporConfig;
 Landroid/privacy/internal/rappor/RapporEncoder;
+Landroid/provider/-$$Lambda$DeviceConfig$6U9gBH6h5Oab2DB_e83az4n_WEo;
 Landroid/provider/-$$Lambda$FontsContract$3FDNQd-WsglsyDhif-aHVbzkfrA;
 Landroid/provider/-$$Lambda$FontsContract$rqfIZKvP1frnI9vP1hVA8jQN_RE;
+Landroid/provider/-$$Lambda$Settings$NameValueCache$cLX_nUBDGp9SYpFxrABk-2ceeMI;
 Landroid/provider/-$$Lambda$Settings$NameValueCache$qSyMM6rUAHCa-5rsP-atfAqR3sA;
 Landroid/provider/BaseColumns;
+Landroid/provider/BlockedNumberContract$BlockedNumbers;
 Landroid/provider/BlockedNumberContract$SystemContract;
 Landroid/provider/BlockedNumberContract;
+Landroid/provider/CalendarContract$Attendees;
+Landroid/provider/CalendarContract$AttendeesColumns;
 Landroid/provider/CalendarContract$CalendarColumns;
 Landroid/provider/CalendarContract$CalendarSyncColumns;
 Landroid/provider/CalendarContract$Calendars;
@@ -26489,12 +28238,16 @@
 Landroid/provider/CalendarContract$EventsColumns;
 Landroid/provider/CalendarContract$Instances;
 Landroid/provider/CalendarContract$SyncColumns;
+Landroid/provider/CalendarContract;
 Landroid/provider/CallLog$Calls;
+Landroid/provider/CallLog;
+Landroid/provider/ContactsContract$BaseSyncColumns;
 Landroid/provider/ContactsContract$CommonDataKinds$BaseTypes;
 Landroid/provider/ContactsContract$CommonDataKinds$Callable;
 Landroid/provider/ContactsContract$CommonDataKinds$CommonColumns;
 Landroid/provider/ContactsContract$CommonDataKinds$Email;
 Landroid/provider/ContactsContract$CommonDataKinds$Phone;
+Landroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;
 Landroid/provider/ContactsContract$ContactCounts;
 Landroid/provider/ContactsContract$ContactNameColumns;
 Landroid/provider/ContactsContract$ContactOptionsColumns;
@@ -26504,15 +28257,38 @@
 Landroid/provider/ContactsContract$Data;
 Landroid/provider/ContactsContract$DataColumns;
 Landroid/provider/ContactsContract$DataColumnsWithJoins;
+Landroid/provider/ContactsContract$DataUsageFeedback;
 Landroid/provider/ContactsContract$DataUsageStatColumns;
+Landroid/provider/ContactsContract$DeletedContacts;
+Landroid/provider/ContactsContract$DeletedContactsColumns;
+Landroid/provider/ContactsContract$DisplayPhoto;
+Landroid/provider/ContactsContract$Groups;
+Landroid/provider/ContactsContract$GroupsColumns;
+Landroid/provider/ContactsContract$MetadataSync;
+Landroid/provider/ContactsContract$MetadataSyncColumns;
 Landroid/provider/ContactsContract$PhoneLookup;
 Landroid/provider/ContactsContract$PhoneLookupColumns;
+Landroid/provider/ContactsContract$Profile;
+Landroid/provider/ContactsContract$ProviderStatus;
+Landroid/provider/ContactsContract$RawContacts;
 Landroid/provider/ContactsContract$RawContactsColumns;
+Landroid/provider/ContactsContract$RawContactsEntity;
+Landroid/provider/ContactsContract$Settings;
+Landroid/provider/ContactsContract$SettingsColumns;
 Landroid/provider/ContactsContract$StatusColumns;
+Landroid/provider/ContactsContract$SyncColumns;
+Landroid/provider/ContactsContract$SyncState;
 Landroid/provider/ContactsContract;
 Landroid/provider/DeviceConfig$1;
+Landroid/provider/DeviceConfig$BadConfigException;
 Landroid/provider/DeviceConfig$OnPropertiesChangedListener;
+Landroid/provider/DeviceConfig$Properties$Builder;
+Landroid/provider/DeviceConfig$Properties;
 Landroid/provider/DeviceConfig;
+Landroid/provider/DocumentsContract$Path$1;
+Landroid/provider/DocumentsContract$Path;
+Landroid/provider/DocumentsContract;
+Landroid/provider/DocumentsProvider;
 Landroid/provider/Downloads$Impl;
 Landroid/provider/Downloads;
 Landroid/provider/FontRequest;
@@ -26520,8 +28296,10 @@
 Landroid/provider/FontsContract$FontFamilyResult;
 Landroid/provider/FontsContract$FontInfo;
 Landroid/provider/FontsContract;
+Landroid/provider/OpenableColumns;
 Landroid/provider/SearchIndexableData;
 Landroid/provider/SearchIndexableResource;
+Landroid/provider/SearchIndexablesContract;
 Landroid/provider/SearchIndexablesProvider;
 Landroid/provider/SearchRecentSuggestions;
 Landroid/provider/Settings$Config;
@@ -26534,21 +28312,49 @@
 Landroid/provider/Settings$SettingNotFoundException;
 Landroid/provider/Settings$System;
 Landroid/provider/Settings;
+Landroid/provider/SyncStateContract$Columns;
 Landroid/provider/Telephony$BaseMmsColumns;
 Landroid/provider/Telephony$CarrierColumns;
 Landroid/provider/Telephony$CarrierId$All;
 Landroid/provider/Telephony$CarrierId;
 Landroid/provider/Telephony$Carriers;
+Landroid/provider/Telephony$Mms$Inbox;
+Landroid/provider/Telephony$Mms$Sent;
 Landroid/provider/Telephony$Mms;
+Landroid/provider/Telephony$MmsSms;
 Landroid/provider/Telephony$ServiceStateTable;
 Landroid/provider/Telephony$SimInfo;
+Landroid/provider/Telephony$Sms$Sent;
 Landroid/provider/Telephony$Sms;
 Landroid/provider/Telephony$TextBasedSmsColumns;
+Landroid/provider/Telephony$Threads;
+Landroid/provider/Telephony$ThreadsColumns;
 Landroid/provider/UserDictionary$Words;
+Landroid/provider/VoicemailContract$Status;
+Landroid/provider/VoicemailContract$Voicemails;
+Landroid/renderscript/Allocation;
+Landroid/renderscript/BaseObj;
+Landroid/renderscript/Element$1;
+Landroid/renderscript/Element$DataKind;
+Landroid/renderscript/Element$DataType;
+Landroid/renderscript/Element;
+Landroid/renderscript/RSDriverException;
+Landroid/renderscript/RSIllegalArgumentException;
+Landroid/renderscript/RSInvalidStateException;
+Landroid/renderscript/RSRuntimeException;
+Landroid/renderscript/RenderScript$ContextType;
+Landroid/renderscript/RenderScript$MessageThread;
+Landroid/renderscript/RenderScript$RSErrorHandler;
+Landroid/renderscript/RenderScript$RSMessageHandler;
+Landroid/renderscript/RenderScript;
 Landroid/renderscript/RenderScriptCacheDir;
+Landroid/renderscript/Script;
+Landroid/renderscript/ScriptIntrinsic;
+Landroid/renderscript/ScriptIntrinsicBlur;
 Landroid/security/AttestedKeyPair;
 Landroid/security/Credentials;
 Landroid/security/FileIntegrityManager;
+Landroid/security/GateKeeper;
 Landroid/security/IKeyChainAliasCallback$Stub;
 Landroid/security/IKeyChainAliasCallback;
 Landroid/security/IKeyChainService$Stub$Proxy;
@@ -26560,6 +28366,10 @@
 Landroid/security/KeyChain;
 Landroid/security/KeyChainAliasCallback;
 Landroid/security/KeyChainException;
+Landroid/security/KeyPairGeneratorSpec;
+Landroid/security/KeyStore$CertificateChainPromise;
+Landroid/security/KeyStore$ExportKeyPromise;
+Landroid/security/KeyStore$KeyAttestationCallbackResult;
 Landroid/security/KeyStore$KeyCharacteristicsCallbackResult;
 Landroid/security/KeyStore$KeyCharacteristicsPromise;
 Landroid/security/KeyStore$KeystoreResultPromise;
@@ -26569,8 +28379,14 @@
 Landroid/security/KeyStoreException;
 Landroid/security/NetworkSecurityPolicy;
 Landroid/security/Scrypt;
+Landroid/security/keymaster/ExportResult$1;
+Landroid/security/keymaster/ExportResult;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider;
+Landroid/security/keymaster/KeyAttestationApplicationId$1;
+Landroid/security/keymaster/KeyAttestationApplicationId;
+Landroid/security/keymaster/KeyAttestationPackageInfo$1;
+Landroid/security/keymaster/KeyAttestationPackageInfo;
 Landroid/security/keymaster/KeyCharacteristics$1;
 Landroid/security/keymaster/KeyCharacteristics;
 Landroid/security/keymaster/KeymasterArgument$1;
@@ -26596,15 +28412,39 @@
 Landroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;
 Landroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;
 Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;
+Landroid/security/keystore/AndroidKeyStoreECDSASignatureSpi$SHA256;
+Landroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;
+Landroid/security/keystore/AndroidKeyStoreECPrivateKey;
+Landroid/security/keystore/AndroidKeyStoreECPublicKey;
+Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA256;
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;
 Landroid/security/keystore/AndroidKeyStoreKey;
 Landroid/security/keystore/AndroidKeyStoreKeyFactorySpi;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$EC;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$RSA;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;
 Landroid/security/keystore/AndroidKeyStoreLoadStoreParameter;
 Landroid/security/keystore/AndroidKeyStorePrivateKey;
 Landroid/security/keystore/AndroidKeyStoreProvider;
+Landroid/security/keystore/AndroidKeyStorePublicKey;
+Landroid/security/keystore/AndroidKeyStoreRSAPrivateKey;
+Landroid/security/keystore/AndroidKeyStoreRSAPublicKey;
 Landroid/security/keystore/AndroidKeyStoreSecretKey;
+Landroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;
+Landroid/security/keystore/AndroidKeyStoreSignatureSpiBase;
+Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;
 Landroid/security/keystore/AndroidKeyStoreSpi;
+Landroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC$PKCS7Padding;
+Landroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC;
+Landroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;
 Landroid/security/keystore/ArrayUtils;
 Landroid/security/keystore/AttestationUtils;
+Landroid/security/keystore/DelegatingX509Certificate;
+Landroid/security/keystore/DeviceIdAttestationException;
+Landroid/security/keystore/IKeystoreCertificateChainCallback$Stub;
+Landroid/security/keystore/IKeystoreCertificateChainCallback;
+Landroid/security/keystore/IKeystoreExportKeyCallback$Stub;
+Landroid/security/keystore/IKeystoreExportKeyCallback;
 Landroid/security/keystore/IKeystoreKeyCharacteristicsCallback$Stub;
 Landroid/security/keystore/IKeystoreKeyCharacteristicsCallback;
 Landroid/security/keystore/IKeystoreOperationResultCallback$Stub;
@@ -26615,10 +28455,22 @@
 Landroid/security/keystore/IKeystoreService$Stub;
 Landroid/security/keystore/IKeystoreService;
 Landroid/security/keystore/KeyAttestationException;
+Landroid/security/keystore/KeyExpiredException;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;
 Landroid/security/keystore/KeyGenParameterSpec;
+Landroid/security/keystore/KeyInfo;
+Landroid/security/keystore/KeyNotYetValidException;
 Landroid/security/keystore/KeyPermanentlyInvalidatedException;
+Landroid/security/keystore/KeyProperties$BlockMode;
 Landroid/security/keystore/KeyProperties$Digest;
+Landroid/security/keystore/KeyProperties$EncryptionPadding;
 Landroid/security/keystore/KeyProperties$KeyAlgorithm;
+Landroid/security/keystore/KeyProperties$Origin;
+Landroid/security/keystore/KeyProperties$Purpose;
+Landroid/security/keystore/KeyProperties$SignaturePadding;
+Landroid/security/keystore/KeyProperties;
+Landroid/security/keystore/KeyProtection$Builder;
+Landroid/security/keystore/KeyProtection;
 Landroid/security/keystore/KeyStoreConnectException;
 Landroid/security/keystore/KeyStoreCryptoOperation;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;
@@ -26626,24 +28478,33 @@
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;
 Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
 Landroid/security/keystore/KeyStoreCryptoOperationUtils;
+Landroid/security/keystore/KeymasterUtils;
 Landroid/security/keystore/KeystoreResponse$1;
 Landroid/security/keystore/KeystoreResponse;
 Landroid/security/keystore/ParcelableKeyGenParameterSpec$1;
 Landroid/security/keystore/ParcelableKeyGenParameterSpec;
+Landroid/security/keystore/SecureKeyImportUnavailableException;
 Landroid/security/keystore/StrongBoxUnavailableException;
 Landroid/security/keystore/UserAuthArgs;
 Landroid/security/keystore/UserNotAuthenticatedException;
 Landroid/security/keystore/Utils;
+Landroid/security/keystore/WrappedKeyEntry;
+Landroid/security/keystore/recovery/InternalRecoveryServiceException;
 Landroid/security/keystore/recovery/KeyChainProtectionParams$1;
+Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
 Landroid/security/keystore/recovery/KeyChainProtectionParams;
 Landroid/security/keystore/recovery/KeyChainSnapshot$1;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
 Landroid/security/keystore/recovery/KeyChainSnapshot;
 Landroid/security/keystore/recovery/KeyDerivationParams$1;
 Landroid/security/keystore/recovery/KeyDerivationParams;
+Landroid/security/keystore/recovery/LockScreenRequiredException;
 Landroid/security/keystore/recovery/RecoveryCertPath$1;
 Landroid/security/keystore/recovery/RecoveryCertPath;
 Landroid/security/keystore/recovery/RecoveryController;
+Landroid/security/keystore/recovery/TrustedRootCertificates;
 Landroid/security/keystore/recovery/WrappedApplicationKey$1;
+Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
 Landroid/security/keystore/recovery/WrappedApplicationKey;
 Landroid/security/keystore/recovery/X509CertificateParsingUtils;
 Landroid/security/net/config/ApplicationConfig;
@@ -26684,17 +28545,33 @@
 Landroid/service/appprediction/IPredictionService$Stub;
 Landroid/service/appprediction/IPredictionService;
 Landroid/service/autofill/AutofillServiceInfo;
+Landroid/service/autofill/Dataset;
 Landroid/service/autofill/FieldClassificationUserData;
+Landroid/service/autofill/FillContext$1;
+Landroid/service/autofill/FillContext;
+Landroid/service/autofill/FillEventHistory;
+Landroid/service/autofill/FillRequest$1;
+Landroid/service/autofill/FillRequest;
 Landroid/service/autofill/FillResponse$1;
 Landroid/service/autofill/FillResponse;
 Landroid/service/autofill/IAutoFillService$Stub$Proxy;
 Landroid/service/autofill/IAutoFillService$Stub;
 Landroid/service/autofill/IAutoFillService;
+Landroid/service/autofill/IFillCallback$Stub$Proxy;
+Landroid/service/autofill/IFillCallback$Stub;
+Landroid/service/autofill/IFillCallback;
+Landroid/service/autofill/ISaveCallback$Stub;
+Landroid/service/autofill/ISaveCallback;
+Landroid/service/autofill/SaveRequest;
 Landroid/service/autofill/UserData$1;
+Landroid/service/autofill/UserData$Builder;
 Landroid/service/autofill/UserData;
 Landroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;
 Landroid/service/autofill/augmented/IAugmentedAutofillService$Stub;
 Landroid/service/autofill/augmented/IAugmentedAutofillService;
+Landroid/service/autofill/augmented/IFillCallback$Stub$Proxy;
+Landroid/service/autofill/augmented/IFillCallback$Stub;
+Landroid/service/autofill/augmented/IFillCallback;
 Landroid/service/carrier/CarrierIdentifier$1;
 Landroid/service/carrier/CarrierIdentifier;
 Landroid/service/carrier/CarrierMessagingServiceWrapper$CarrierMessagingCallbackWrapper;
@@ -26702,12 +28579,21 @@
 Landroid/service/carrier/ICarrierService$Stub$Proxy;
 Landroid/service/carrier/ICarrierService$Stub;
 Landroid/service/carrier/ICarrierService;
+Landroid/service/contentcapture/ActivityEvent$1;
+Landroid/service/contentcapture/ActivityEvent;
 Landroid/service/contentcapture/ContentCaptureServiceInfo;
 Landroid/service/contentcapture/FlushMetrics$1;
 Landroid/service/contentcapture/FlushMetrics;
 Landroid/service/contentcapture/IContentCaptureService$Stub$Proxy;
 Landroid/service/contentcapture/IContentCaptureService$Stub;
 Landroid/service/contentcapture/IContentCaptureService;
+Landroid/service/contentcapture/IContentCaptureServiceCallback$Stub$Proxy;
+Landroid/service/contentcapture/IContentCaptureServiceCallback$Stub;
+Landroid/service/contentcapture/IContentCaptureServiceCallback;
+Landroid/service/contentcapture/IDataShareCallback$Stub;
+Landroid/service/contentcapture/IDataShareCallback;
+Landroid/service/contentcapture/SnapshotData$1;
+Landroid/service/contentcapture/SnapshotData;
 Landroid/service/dataloader/DataLoaderService;
 Landroid/service/dreams/DreamManagerInternal;
 Landroid/service/dreams/IDreamManager$Stub$Proxy;
@@ -26737,10 +28623,13 @@
 Landroid/service/euicc/IGetEidCallback;
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub;
 Landroid/service/euicc/IGetEuiccInfoCallback;
+Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub$Proxy;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback;
 Landroid/service/euicc/IGetOtaStatusCallback$Stub;
 Landroid/service/euicc/IGetOtaStatusCallback;
+Landroid/service/euicc/IOtaStatusChangedCallback$Stub;
+Landroid/service/euicc/IOtaStatusChangedCallback;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;
@@ -26798,6 +28687,7 @@
 Landroid/service/notification/NotificationRankingUpdate;
 Landroid/service/notification/NotificationStats$1;
 Landroid/service/notification/NotificationStats;
+Landroid/service/notification/NotifyingApp$1;
 Landroid/service/notification/ScheduleCalendar;
 Landroid/service/notification/SnoozeCriterion$1;
 Landroid/service/notification/SnoozeCriterion;
@@ -26813,6 +28703,7 @@
 Landroid/service/notification/ZenPolicy$1;
 Landroid/service/notification/ZenPolicy$Builder;
 Landroid/service/notification/ZenPolicy;
+Landroid/service/oemlock/IOemLockService$Stub$Proxy;
 Landroid/service/oemlock/IOemLockService$Stub;
 Landroid/service/oemlock/IOemLockService;
 Landroid/service/oemlock/OemLockManager;
@@ -26826,10 +28717,18 @@
 Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;
 Landroid/service/textclassifier/ITextClassifierService$Stub;
 Landroid/service/textclassifier/ITextClassifierService;
+Landroid/service/textclassifier/TextClassifierService$1;
 Landroid/service/textclassifier/TextClassifierService;
 Landroid/service/trust/ITrustAgentService$Stub$Proxy;
 Landroid/service/trust/ITrustAgentService$Stub;
 Landroid/service/trust/ITrustAgentService;
+Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;
+Landroid/service/trust/ITrustAgentServiceCallback$Stub;
+Landroid/service/trust/ITrustAgentServiceCallback;
+Landroid/service/trust/TrustAgentService$1;
+Landroid/service/trust/TrustAgentService$ConfigurationData;
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;
+Landroid/service/trust/TrustAgentService;
 Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;
 Landroid/service/voice/IVoiceInteractionService$Stub;
 Landroid/service/voice/IVoiceInteractionService;
@@ -26858,6 +28757,12 @@
 Landroid/service/wallpaper/IWallpaperService$Stub$Proxy;
 Landroid/service/wallpaper/IWallpaperService$Stub;
 Landroid/service/wallpaper/IWallpaperService;
+Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;
+Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;
+Landroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;
+Landroid/service/watchdog/IExplicitHealthCheckService$Stub;
+Landroid/service/watchdog/IExplicitHealthCheckService;
+Landroid/speech/SpeechRecognizer;
 Landroid/speech/tts/ITextToSpeechCallback$Stub;
 Landroid/speech/tts/ITextToSpeechCallback;
 Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;
@@ -26865,18 +28770,36 @@
 Landroid/speech/tts/TextToSpeech$Action;
 Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;
 Landroid/speech/tts/TextToSpeech$Connection;
+Landroid/speech/tts/TextToSpeech$EngineInfo;
 Landroid/speech/tts/TextToSpeech$OnInitListener;
 Landroid/speech/tts/TextToSpeech;
+Landroid/speech/tts/TtsEngines$EngineInfoComparator;
 Landroid/speech/tts/TtsEngines;
 Landroid/stats/devicepolicy/nano/StringList;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$0Zy6hglFVc-K9jiJWmuHmilIMkY;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;
 Landroid/sysprop/-$$Lambda$TelephonyProperties$H4jN0VIBNpZQBeWYt6qS3DCe_M8;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$fdR0mRnJd3OymvjDc_MI1AHnMwc;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$iJa3afMQmWbO1DX4jS9zkcOKZlY;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$kCQNtMqtfi6MMlFLqtIufNXwOS8;
 Landroid/sysprop/-$$Lambda$TelephonyProperties$kemQbl44ndTqXdQVvnYppJuQboQ;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$rKoNB08X7R8OCPq-VDCWDOm3lDM;
+Landroid/sysprop/-$$Lambda$TelephonyProperties$yK9cdPdkKXdcfM9Ey52BIE31a5M;
 Landroid/sysprop/AdbProperties;
+Landroid/sysprop/ApexProperties;
+Landroid/sysprop/ContactsProperties;
 Landroid/sysprop/CryptoProperties$state_values;
 Landroid/sysprop/CryptoProperties$type_values;
 Landroid/sysprop/CryptoProperties;
 Landroid/sysprop/DisplayProperties;
 Landroid/sysprop/TelephonyProperties;
+Landroid/sysprop/VndkProperties;
 Landroid/sysprop/VoldProperties;
 Landroid/system/ErrnoException;
 Landroid/system/GaiException;
@@ -26902,6 +28825,9 @@
 Landroid/system/StructUcred;
 Landroid/system/StructUtsname;
 Landroid/system/UnixSocketAddress;
+Landroid/system/suspend/ISuspendControlService$Stub$Proxy;
+Landroid/system/suspend/ISuspendControlService$Stub;
+Landroid/system/suspend/ISuspendControlService;
 Landroid/system/suspend/WakeLockInfo$1;
 Landroid/system/suspend/WakeLockInfo;
 Landroid/telecom/-$$Lambda$cyYWqCYT05eM23eLVm4oQ5DrYjw;
@@ -26910,13 +28836,16 @@
 Landroid/telecom/AudioState;
 Landroid/telecom/CallAudioState$1;
 Landroid/telecom/CallAudioState;
+Landroid/telecom/CallerInfo;
 Landroid/telecom/Conference$Listener;
 Landroid/telecom/Conference;
 Landroid/telecom/Conferenceable;
 Landroid/telecom/Connection$FailureSignalingConnection;
 Landroid/telecom/Connection$Listener;
+Landroid/telecom/Connection$VideoProvider;
 Landroid/telecom/Connection;
 Landroid/telecom/ConnectionRequest$1;
+Landroid/telecom/ConnectionRequest$Builder;
 Landroid/telecom/ConnectionRequest;
 Landroid/telecom/ConnectionService$1;
 Landroid/telecom/ConnectionService$2;
@@ -26935,6 +28864,8 @@
 Landroid/telecom/Logging/EventManager$Event;
 Landroid/telecom/Logging/EventManager$EventListener;
 Landroid/telecom/Logging/EventManager$EventRecord;
+Landroid/telecom/Logging/EventManager$Loggable;
+Landroid/telecom/Logging/EventManager$TimedEventPair;
 Landroid/telecom/Logging/EventManager;
 Landroid/telecom/Logging/Runnable$1;
 Landroid/telecom/Logging/Runnable;
@@ -26946,6 +28877,8 @@
 Landroid/telecom/Logging/SessionManager$ISessionIdQueryHandler;
 Landroid/telecom/Logging/SessionManager$ISessionListener;
 Landroid/telecom/Logging/SessionManager;
+Landroid/telecom/ParcelableCall$1;
+Landroid/telecom/ParcelableCall;
 Landroid/telecom/ParcelableConference$1;
 Landroid/telecom/ParcelableConference;
 Landroid/telecom/ParcelableConnection$1;
@@ -26958,28 +28891,79 @@
 Landroid/telecom/RemoteConnectionManager;
 Landroid/telecom/StatusHints$1;
 Landroid/telecom/StatusHints;
+Landroid/telecom/TelecomAnalytics$1;
+Landroid/telecom/TelecomAnalytics$SessionTiming$1;
+Landroid/telecom/TelecomAnalytics;
 Landroid/telecom/TelecomManager;
+Landroid/telecom/TimedEvent;
 Landroid/telecom/VideoProfile$1;
 Landroid/telecom/VideoProfile;
 Landroid/telephony/-$$Lambda$DataFailCause$djkZSxdG-s-w2L5rQKiGu6OudyY;
 Landroid/telephony/-$$Lambda$MLKtmRGKP3e0WU7x_KyS5-Vg8q4;
 Landroid/telephony/-$$Lambda$NetworkRegistrationInfo$1JuZmO5PoYGZY8bHhZYwvmqwOB0;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$1M3m0i6211i2YjWyTDT7l0bJm3I;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$1uNdvGRe99lTurQeP2pTQkZS7Vs;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2XBMUIj05jt4Xm08XAsE57q5gCc;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2cMrwdqnKBpixpApeIX38rmRLak;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$3AYVJXME-0OB4yixqaI-xr5L60o;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$4NHt5Shg_DHV-T1IxfcQLHP5-j0;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5J-sdvem6pUpdVwRdm8IbDhvuv8;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5Uf5OZWCyPD0lZtySzbYw18FWhU;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5rF2IFj8mrb7uZc0HMKiuCodUn0;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5uu-05j4ojTh9mEHkN-ynQqQRGM;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$6czWSGzxct0CXPVO54T0aq05qls;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$7gZpRKvFmk92UeW5ehgYjTU1VJo;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$BEnQPWSMGANn8JYkd7Z9ykD6hTU;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$BJFxSgUMHRSttswNjrMRkS82g_c;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$BmipTxlu2pSFr1wevj-6L899tUY;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$D3Qz69humkpMXm7JAHU36dMvoyY;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$DrpO57uI0Rz8zN_EPJ4-5BrkiWs;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$E9hw_LXFliykadzCB_mw8nukNGI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$F-YGB2a8GrHG6CB17lzASQZXVHI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$FBJGFGXoSvidKfm50cEzC3i9rVk;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$HEcWn-J1WRb0wLERu2qoMIZDfjY;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Hbn6-eZxY2p3rjOfStodI04A8E8;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$IU278K5QbmReF-mbpcNVAvVlhFI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$LLJobItLwgTRjD_KrTiT4U-xUz0;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$M39is_Zyt8D7Camw2NS4EGTDn-s;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$MtX5gtAKHxLcUp_ibya6VO1zuoE;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$NjMtWvO8dQakD688KRREWiYI4JI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$OfwFKKtcQHRmtv70FCopw6FDAAU;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Q2A8FgYlU8_D6PD78tThGut_rTc;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$RC2x2ijetA-pQrLa4QakzMBjh_k;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Rh4FuYaAZPAbrOYr6GGF6llSePE;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$TqrkuLPlaG_ucU7VbLS4tnf8hG8;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$VCD7izkh9A_sRz9zMUPYy-TktLo;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$W65ui1dCCc-JnQa7gon1I7Bz7Sk;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$WYWtWHdkZDxBd9anjoxyZozPWHc;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$YY3srkIkMm8vTSFJZHoiKzUUrGs;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$bELzxgwsPigyVKYkAXBO2BjcSm8;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$hxq77a5O_MUfoptHg15ipzFvMkI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$icX71zgNszuMfnDaCmahcqWacFM;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$j6NpsS_PE3VHutxIDEmwFHop7Yc;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jNtyZYh5ZAuvyDZA_6f30zhW_dI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jTFXkqSnWC3uzh7LwzUV3m1AFOQ;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jclAV5yU3RtV94suRvvhafvGuhw;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jlNX9JiqGSNg9W49vDcKucKdeCI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$l57DgyMDrONq3sajd_dBE967ClU;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$lP7_Xy6P82nXGbUQ_ZUY6rZR4bI;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$mezBWc8HrQF0w9M2UHZzIjv5b5A;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nR7W5ox6SCgPxtH9IRcENwKeFI4;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nrGqSRBJrc3_EwotCDNwfKeizIo;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nxFDy8UzMc58xiN0nXxhJfBQdMI;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$oDAZqs8paeefe_3k_uRKV5plQW4;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$okPCYOx4UxYuvUHlM2iS425QGIg;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$pLr-IfJJu1u_YG6I5LI0iHTuBi0;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$r8YFiJlM_z19hwrY4PtaILOH2wA;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$t2gWJ_jA36kAdNXSmlzw85aU-tM;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$uC5syhzl229gIpaK7Jfs__OCJxQ;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$vWj6-S8LaQStcrOXYYPgkxQlFg0;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$xyyTM70Sla35xFO0mn4N0yCuKGY;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$y-tK7my_uXPo_oQ7AytfnekGEbU;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$yGF2cJtJjwhRqDU8M4yzwgROulY;
+Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$ygzOWFRiY4sZQ4WYUPIefqgiGvM;
 Landroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$yvQnAlFGg5EWDG2vcA9X-4xnalA;
+Landroid/telephony/-$$Lambda$SubscriptionManager$D5_PmvQ13e0qLtSnBvNd4R7l2qA;
 Landroid/telephony/-$$Lambda$SubscriptionManager$R_uORt9bKcmEo6JnjiGP2KgjIOQ;
 Landroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$3Kis6wL1IbLustWe9A2o4-2YpGo;
 Landroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$MLDtRnX1dj1RKFdjgIsOvcQxhA0;
@@ -26987,11 +28971,14 @@
 Landroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$mpe0Kh92VEQmEtmo60oqykdvnBE;
 Landroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$o3geRfUaRT9tnqKKZbu1EbUxw4Q;
 Landroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$sQClc4rjc9ydh0nXpY79gr33av4;
+Landroid/telephony/-$$Lambda$TelephonyManager$2$l6Pazxfi7QghMr2Z0MpduhNe6yc;
+Landroid/telephony/-$$Lambda$TelephonyRegistryManager$1$cLzLZB4oGnI-HG_-4MhxcXoHys8;
 Landroid/telephony/AccessNetworkConstants$AccessNetworkType;
 Landroid/telephony/AccessNetworkConstants$TransportType;
 Landroid/telephony/AccessNetworkConstants;
 Landroid/telephony/AccessNetworkUtils;
 Landroid/telephony/AnomalyReporter;
+Landroid/telephony/AvailableNetworkInfo;
 Landroid/telephony/CallAttributes$1;
 Landroid/telephony/CallAttributes;
 Landroid/telephony/CallQuality$1;
@@ -26999,6 +28986,7 @@
 Landroid/telephony/CarrierConfigManager$Gps;
 Landroid/telephony/CarrierConfigManager;
 Landroid/telephony/CarrierRestrictionRules$1;
+Landroid/telephony/CarrierRestrictionRules$Builder;
 Landroid/telephony/CarrierRestrictionRules;
 Landroid/telephony/CellConfigLte$1;
 Landroid/telephony/CellConfigLte;
@@ -27052,12 +29040,14 @@
 Landroid/telephony/DataFailCause;
 Landroid/telephony/DataSpecificRegistrationInfo$1;
 Landroid/telephony/DataSpecificRegistrationInfo;
+Landroid/telephony/DisconnectCause;
 Landroid/telephony/ICellInfoCallback$Stub$Proxy;
 Landroid/telephony/ICellInfoCallback$Stub;
 Landroid/telephony/ICellInfoCallback;
 Landroid/telephony/INetworkService$Stub$Proxy;
 Landroid/telephony/INetworkService$Stub;
 Landroid/telephony/INetworkService;
+Landroid/telephony/INetworkServiceCallback$Stub$Proxy;
 Landroid/telephony/INetworkServiceCallback$Stub;
 Landroid/telephony/INetworkServiceCallback;
 Landroid/telephony/IccOpenLogicalChannelResponse$1;
@@ -27071,14 +29061,18 @@
 Landroid/telephony/LocationAccessPolicy;
 Landroid/telephony/LteVopsSupportInfo$1;
 Landroid/telephony/LteVopsSupportInfo;
+Landroid/telephony/MmsManager;
 Landroid/telephony/ModemActivityInfo$1;
 Landroid/telephony/ModemActivityInfo$TransmitPower;
 Landroid/telephony/ModemActivityInfo;
+Landroid/telephony/ModemInfo$1;
+Landroid/telephony/ModemInfo;
 Landroid/telephony/NeighboringCellInfo$1;
 Landroid/telephony/NeighboringCellInfo;
 Landroid/telephony/NetworkRegistrationInfo$1;
 Landroid/telephony/NetworkRegistrationInfo$Builder;
 Landroid/telephony/NetworkRegistrationInfo;
+Landroid/telephony/NetworkScan;
 Landroid/telephony/NetworkScanRequest$1;
 Landroid/telephony/NetworkScanRequest;
 Landroid/telephony/NetworkService$INetworkServiceWrapper;
@@ -27086,6 +29080,7 @@
 Landroid/telephony/NetworkService$NetworkServiceProvider;
 Landroid/telephony/NetworkService;
 Landroid/telephony/NetworkServiceCallback;
+Landroid/telephony/NumberVerificationCallback;
 Landroid/telephony/PackageChangeReceiver;
 Landroid/telephony/PhoneCapability$1;
 Landroid/telephony/PhoneCapability;
@@ -27103,12 +29098,19 @@
 Landroid/telephony/PreciseDataConnectionState;
 Landroid/telephony/RadioAccessFamily$1;
 Landroid/telephony/RadioAccessFamily;
+Landroid/telephony/RadioAccessSpecifier;
 Landroid/telephony/Rlog;
 Landroid/telephony/ServiceState$1;
 Landroid/telephony/ServiceState;
 Landroid/telephony/SignalStrength$1;
 Landroid/telephony/SignalStrength;
+Landroid/telephony/SmsCbCmasInfo;
+Landroid/telephony/SmsCbEtwsInfo;
+Landroid/telephony/SmsCbLocation;
+Landroid/telephony/SmsCbMessage;
 Landroid/telephony/SmsManager;
+Landroid/telephony/SmsMessage$1;
+Landroid/telephony/SmsMessage$MessageClass;
 Landroid/telephony/SmsMessage;
 Landroid/telephony/SubscriptionInfo$1;
 Landroid/telephony/SubscriptionInfo;
@@ -27121,17 +29123,25 @@
 Landroid/telephony/TelephonyFrameworkInitializer;
 Landroid/telephony/TelephonyHistogram$1;
 Landroid/telephony/TelephonyHistogram;
+Landroid/telephony/TelephonyManager$1;
+Landroid/telephony/TelephonyManager$2;
 Landroid/telephony/TelephonyManager$5;
 Landroid/telephony/TelephonyManager$7;
+Landroid/telephony/TelephonyManager$CellInfoCallback;
 Landroid/telephony/TelephonyManager$MultiSimVariants;
+Landroid/telephony/TelephonyManager$UssdResponseCallback;
 Landroid/telephony/TelephonyManager;
+Landroid/telephony/TelephonyRegistryManager$1;
+Landroid/telephony/TelephonyRegistryManager$2;
 Landroid/telephony/TelephonyRegistryManager;
+Landroid/telephony/TelephonyScanManager$NetworkScanCallback;
 Landroid/telephony/UiccAccessRule$1;
 Landroid/telephony/UiccAccessRule;
 Landroid/telephony/UiccCardInfo$1;
 Landroid/telephony/UiccCardInfo;
 Landroid/telephony/UiccSlotInfo$1;
 Landroid/telephony/UiccSlotInfo;
+Landroid/telephony/UssdResponse;
 Landroid/telephony/VisualVoicemailSmsFilterSettings$1;
 Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;
 Landroid/telephony/VisualVoicemailSmsFilterSettings;
@@ -27159,15 +29169,30 @@
 Landroid/telephony/data/IDataService$Stub$Proxy;
 Landroid/telephony/data/IDataService$Stub;
 Landroid/telephony/data/IDataService;
+Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;
 Landroid/telephony/data/IDataServiceCallback$Stub;
 Landroid/telephony/data/IDataServiceCallback;
+Landroid/telephony/data/IQualifiedNetworksService$Stub$Proxy;
+Landroid/telephony/data/IQualifiedNetworksService$Stub;
+Landroid/telephony/data/IQualifiedNetworksService;
+Landroid/telephony/data/IQualifiedNetworksServiceCallback$Stub$Proxy;
+Landroid/telephony/data/IQualifiedNetworksServiceCallback$Stub;
+Landroid/telephony/data/IQualifiedNetworksServiceCallback;
 Landroid/telephony/emergency/EmergencyNumber$1;
 Landroid/telephony/emergency/EmergencyNumber;
+Landroid/telephony/euicc/DownloadableSubscription;
+Landroid/telephony/euicc/EuiccCardManager$13;
+Landroid/telephony/euicc/EuiccCardManager$1;
+Landroid/telephony/euicc/EuiccCardManager$ResultCallback;
 Landroid/telephony/euicc/EuiccCardManager;
+Landroid/telephony/euicc/EuiccInfo;
 Landroid/telephony/euicc/EuiccManager;
 Landroid/telephony/gsm/GsmCellLocation;
 Landroid/telephony/ims/-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$4YNlUy9HsD02E7Sbv2VeVtbao08;
 Landroid/telephony/ims/-$$Lambda$ProvisioningManager$Callback$CallbackBinder$R_8jXQuOM7aV7dIwYBzcWwV-YpM;
+Landroid/telephony/ims/-$$Lambda$RegistrationManager$RegistrationCallback$RegistrationBinder$APeqso3VzZZ0eUf5slP1k5xoCME;
+Landroid/telephony/ims/-$$Lambda$RegistrationManager$RegistrationCallback$RegistrationBinder$DX_-dWIBwwX2oqDoRnq49RndG7s;
+Landroid/telephony/ims/-$$Lambda$RegistrationManager$RegistrationCallback$RegistrationBinder$uTxkp6C02qJxic1W_dkZRCQ6aRw;
 Landroid/telephony/ims/ImsCallForwardInfo$1;
 Landroid/telephony/ims/ImsCallForwardInfo;
 Landroid/telephony/ims/ImsCallProfile$1;
@@ -27176,6 +29201,7 @@
 Landroid/telephony/ims/ImsExternalCallState$1;
 Landroid/telephony/ims/ImsExternalCallState;
 Landroid/telephony/ims/ImsManager;
+Landroid/telephony/ims/ImsMmTelManager$3;
 Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;
 Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback;
 Landroid/telephony/ims/ImsMmTelManager$RegistrationCallback;
@@ -27185,12 +29211,14 @@
 Landroid/telephony/ims/ImsService$1;
 Landroid/telephony/ims/ImsService$Listener;
 Landroid/telephony/ims/ImsService;
+Landroid/telephony/ims/ImsSsData;
 Landroid/telephony/ims/ImsSsInfo$1;
 Landroid/telephony/ims/ImsSsInfo;
 Landroid/telephony/ims/ImsUtListener;
 Landroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;
 Landroid/telephony/ims/ProvisioningManager$Callback;
 Landroid/telephony/ims/RegistrationManager$1;
+Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;
 Landroid/telephony/ims/RegistrationManager$RegistrationCallback;
 Landroid/telephony/ims/RegistrationManager;
 Landroid/telephony/ims/aidl/IImsCapabilityCallback$Stub$Proxy;
@@ -27208,6 +29236,7 @@
 Landroid/telephony/ims/aidl/IImsMmTelListener$Stub$Proxy;
 Landroid/telephony/ims/aidl/IImsMmTelListener$Stub;
 Landroid/telephony/ims/aidl/IImsMmTelListener;
+Landroid/telephony/ims/aidl/IImsRcsFeature$Stub;
 Landroid/telephony/ims/aidl/IImsRcsFeature;
 Landroid/telephony/ims/aidl/IImsRegistration$Stub;
 Landroid/telephony/ims/aidl/IImsRegistration;
@@ -27217,11 +29246,16 @@
 Landroid/telephony/ims/aidl/IImsServiceController$Stub$Proxy;
 Landroid/telephony/ims/aidl/IImsServiceController$Stub;
 Landroid/telephony/ims/aidl/IImsServiceController;
+Landroid/telephony/ims/aidl/IImsServiceControllerListener$Stub$Proxy;
 Landroid/telephony/ims/aidl/IImsServiceControllerListener$Stub;
 Landroid/telephony/ims/aidl/IImsServiceControllerListener;
 Landroid/telephony/ims/aidl/IImsSmsListener$Stub$Proxy;
 Landroid/telephony/ims/aidl/IImsSmsListener$Stub;
 Landroid/telephony/ims/aidl/IImsSmsListener;
+Landroid/telephony/ims/aidl/IRcsMessage$Stub;
+Landroid/telephony/ims/aidl/IRcsMessage;
+Landroid/telephony/ims/feature/-$$Lambda$ImsFeature$9bLETU1BeS-dFzQnbBBs3kwaz-8;
+Landroid/telephony/ims/feature/-$$Lambda$ImsFeature$rPSMsRhoup9jfT6nt1MV2qhomrM;
 Landroid/telephony/ims/feature/CapabilityChangeRequest$1;
 Landroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;
 Landroid/telephony/ims/feature/CapabilityChangeRequest;
@@ -27239,6 +29273,7 @@
 Landroid/telephony/ims/stub/-$$Lambda$ImsRegistrationImplBase$s7PspXVbCf1Q_WSzodP2glP9TjI;
 Landroid/telephony/ims/stub/-$$Lambda$ImsRegistrationImplBase$sbjuTvW-brOSWMR74UInSZEIQB0;
 Landroid/telephony/ims/stub/-$$Lambda$ImsRegistrationImplBase$wwtkoeOtGwMjG5I0-ZTfjNpGU-s;
+Landroid/telephony/ims/stub/ImsCallSessionImplBase;
 Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;
 Landroid/telephony/ims/stub/ImsConfigImplBase;
 Landroid/telephony/ims/stub/ImsEcbmImplBase$1;
@@ -27280,16 +29315,22 @@
 Landroid/text/GetChars;
 Landroid/text/GraphicsOperations;
 Landroid/text/Html$HtmlParser;
+Landroid/text/Html$ImageGetter;
 Landroid/text/Html$TagHandler;
 Landroid/text/Html;
+Landroid/text/HtmlToSpannedConverter$Alignment;
+Landroid/text/HtmlToSpannedConverter$Background;
 Landroid/text/HtmlToSpannedConverter$Big;
 Landroid/text/HtmlToSpannedConverter$Blockquote;
 Landroid/text/HtmlToSpannedConverter$Bold;
 Landroid/text/HtmlToSpannedConverter$Bullet;
+Landroid/text/HtmlToSpannedConverter$Font;
+Landroid/text/HtmlToSpannedConverter$Foreground;
 Landroid/text/HtmlToSpannedConverter$Heading;
 Landroid/text/HtmlToSpannedConverter$Href;
 Landroid/text/HtmlToSpannedConverter$Italic;
 Landroid/text/HtmlToSpannedConverter$Monospace;
+Landroid/text/HtmlToSpannedConverter$Newline;
 Landroid/text/HtmlToSpannedConverter$Small;
 Landroid/text/HtmlToSpannedConverter$Strikethrough;
 Landroid/text/HtmlToSpannedConverter$Sub;
@@ -27362,6 +29403,7 @@
 Landroid/text/format/Time$TimeCalculator;
 Landroid/text/format/Time;
 Landroid/text/format/TimeFormatter;
+Landroid/text/format/TimeMigrationUtils;
 Landroid/text/method/AllCapsTransformationMethod;
 Landroid/text/method/ArrowKeyMovementMethod;
 Landroid/text/method/BaseKeyListener;
@@ -27386,6 +29428,7 @@
 Landroid/text/method/TextKeyListener$SettingsObserver;
 Landroid/text/method/TextKeyListener;
 Landroid/text/method/TimeKeyListener;
+Landroid/text/method/Touch$DragState;
 Landroid/text/method/Touch;
 Landroid/text/method/TransformationMethod2;
 Landroid/text/method/TransformationMethod;
@@ -27393,11 +29436,14 @@
 Landroid/text/style/AbsoluteSizeSpan;
 Landroid/text/style/AccessibilityClickableSpan$1;
 Landroid/text/style/AccessibilityClickableSpan;
+Landroid/text/style/AccessibilityReplacementSpan$1;
+Landroid/text/style/AccessibilityReplacementSpan;
 Landroid/text/style/AccessibilityURLSpan;
 Landroid/text/style/AlignmentSpan$Standard;
 Landroid/text/style/AlignmentSpan;
 Landroid/text/style/BackgroundColorSpan;
 Landroid/text/style/BulletSpan;
+Landroid/text/style/CharacterStyle$Passthrough;
 Landroid/text/style/CharacterStyle;
 Landroid/text/style/ClickableSpan;
 Landroid/text/style/DynamicDrawableSpan;
@@ -27413,6 +29459,7 @@
 Landroid/text/style/LineHeightSpan$WithDensity;
 Landroid/text/style/LineHeightSpan;
 Landroid/text/style/LocaleSpan;
+Landroid/text/style/MetricAffectingSpan$Passthrough;
 Landroid/text/style/MetricAffectingSpan;
 Landroid/text/style/ParagraphStyle;
 Landroid/text/style/QuoteSpan;
@@ -27440,9 +29487,11 @@
 Landroid/text/style/UpdateLayout;
 Landroid/text/style/WrapTogetherSpan;
 Landroid/text/util/-$$Lambda$Linkify$7J_-cMhIF2bcttjkxA2jDFP8sKw;
+Landroid/text/util/LinkSpec;
 Landroid/text/util/Linkify$1;
 Landroid/text/util/Linkify$2;
 Landroid/text/util/Linkify$3;
+Landroid/text/util/Linkify$4;
 Landroid/text/util/Linkify$MatchFilter;
 Landroid/text/util/Linkify$TransformFilter;
 Landroid/text/util/Linkify;
@@ -27497,11 +29546,15 @@
 Landroid/transition/TransitionManager$MultiListener;
 Landroid/transition/TransitionManager;
 Landroid/transition/TransitionPropagation;
+Landroid/transition/TransitionSet$1;
 Landroid/transition/TransitionSet$TransitionSetListener;
 Landroid/transition/TransitionSet;
 Landroid/transition/TransitionUtils;
 Landroid/transition/TransitionValues;
 Landroid/transition/TransitionValuesMaps;
+Landroid/transition/Visibility$1;
+Landroid/transition/Visibility$DisappearListener;
+Landroid/transition/Visibility$VisibilityInfo;
 Landroid/transition/Visibility;
 Landroid/transition/VisibilityPropagation;
 Landroid/util/AndroidException;
@@ -27512,11 +29565,13 @@
 Landroid/util/ArraySet;
 Landroid/util/AtomicFile;
 Landroid/util/AttributeSet;
+Landroid/util/BackupUtils$BadVersionException;
 Landroid/util/BackupUtils;
 Landroid/util/Base64$Coder;
 Landroid/util/Base64$Decoder;
 Landroid/util/Base64$Encoder;
 Landroid/util/Base64;
+Landroid/util/CloseGuard;
 Landroid/util/ContainerHelpers;
 Landroid/util/DataUnit$1;
 Landroid/util/DataUnit$2;
@@ -27549,6 +29604,7 @@
 Landroid/util/KeyValueSettingObserver$SettingObserver;
 Landroid/util/KeyValueSettingObserver;
 Landroid/util/LauncherIcons;
+Landroid/util/LocalLog$ReadOnlyLocalLog;
 Landroid/util/LocalLog;
 Landroid/util/Log$1;
 Landroid/util/Log$ImmediateLogWriter;
@@ -27560,7 +29616,9 @@
 Landroid/util/LogWriter;
 Landroid/util/LongArray;
 Landroid/util/LongArrayQueue;
+Landroid/util/LongSparseArray$StringParcelling;
 Landroid/util/LongSparseArray;
+Landroid/util/LongSparseLongArray$Parcelling;
 Landroid/util/LongSparseLongArray;
 Landroid/util/LruCache;
 Landroid/util/MapCollections$ArrayIterator;
@@ -27577,6 +29635,9 @@
 Landroid/util/MutableBoolean;
 Landroid/util/MutableInt;
 Landroid/util/MutableLong;
+Landroid/util/NtpTrustedTime$1;
+Landroid/util/NtpTrustedTime$NtpConnectionInfo;
+Landroid/util/NtpTrustedTime$TimeResult;
 Landroid/util/NtpTrustedTime;
 Landroid/util/PackageUtils;
 Landroid/util/Pair;
@@ -27586,11 +29647,13 @@
 Landroid/util/Pools$Pool;
 Landroid/util/Pools$SimplePool;
 Landroid/util/Pools$SynchronizedPool;
+Landroid/util/PrefixPrinter;
 Landroid/util/PrintWriterPrinter;
 Landroid/util/Printer;
 Landroid/util/Property;
 Landroid/util/Range;
 Landroid/util/Rational;
+Landroid/util/RecurrenceRule$1;
 Landroid/util/RecurrenceRule$NonrecurringIterator;
 Landroid/util/RecurrenceRule$RecurringIterator;
 Landroid/util/RecurrenceRule;
@@ -27599,6 +29662,7 @@
 Landroid/util/SizeF;
 Landroid/util/Slog;
 Landroid/util/SparseArray;
+Landroid/util/SparseArrayMap;
 Landroid/util/SparseBooleanArray;
 Landroid/util/SparseIntArray;
 Landroid/util/SparseLongArray;
@@ -27609,7 +29673,9 @@
 Landroid/util/StateSet;
 Landroid/util/StatsLog;
 Landroid/util/StatsLogInternal;
+Landroid/util/StringBuilderPrinter;
 Landroid/util/SuperNotCalledException;
+Landroid/util/TimeFormatException;
 Landroid/util/TimeUtils;
 Landroid/util/TimedRemoteCaller;
 Landroid/util/TimingLogger;
@@ -27617,11 +29683,13 @@
 Landroid/util/TrustedTime;
 Landroid/util/TypedValue;
 Landroid/util/UtilConfig;
+Landroid/util/Xml$Encoding;
 Landroid/util/Xml;
 Landroid/util/XmlPullAttributes;
 Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
 Landroid/util/apk/ApkSignatureSchemeV2Verifier;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$PlatformNotSupportedException;
+Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier;
 Landroid/util/apk/ApkSignatureVerifier;
@@ -27656,24 +29724,37 @@
 Landroid/util/proto/ProtoOutputStream;
 Landroid/util/proto/ProtoParseException;
 Landroid/util/proto/ProtoStream;
+Landroid/util/proto/ProtoUtils;
 Landroid/util/proto/WireTypeMismatchException;
 Landroid/view/-$$Lambda$1kvF4JuyM42-wmyDVPAIYdPz1jE;
 Landroid/view/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;
+Landroid/view/-$$Lambda$CompositionSamplingListener$hrbPutjnKRv7VkkiY9eg32N6QA8;
 Landroid/view/-$$Lambda$FocusFinder$FocusSorter$h0f2ZYL6peSaaEeCCkAoYs_YZvU;
 Landroid/view/-$$Lambda$FocusFinder$FocusSorter$kW7K1t9q7Y62V38r-7g6xRzqqq8;
 Landroid/view/-$$Lambda$FocusFinder$P8rLvOJhymJH5ALAgUjGaM5gxKA;
 Landroid/view/-$$Lambda$FocusFinder$Pgx6IETuqCkrhJYdiBes48tolG4;
+Landroid/view/-$$Lambda$InsetsController$6uoSHBPvxV1C0JOZKhH1AyuNXmo;
 Landroid/view/-$$Lambda$InsetsController$Cj7UJrCkdHvJAZ_cYKrXuTMsjz8;
+Landroid/view/-$$Lambda$InsetsController$HI9QZ2HvGm6iykc-WONz2KPG61Q;
+Landroid/view/-$$Lambda$InsetsController$RZT3QkL9zMFTeHtZbfcaHIzvlsc;
+Landroid/view/-$$Lambda$InsetsController$zpmOxHfTFV_3me2u3C8YaXSUauQ;
 Landroid/view/-$$Lambda$PYGleuqIeCxjTD1pJqqx1opFv1g;
 Landroid/view/-$$Lambda$QI1s392qW8l6mC24bcy9050SkuY;
 Landroid/view/-$$Lambda$SurfaceView$SyyzxOgxKwZMRgiiTGcRYbOU5JY;
+Landroid/view/-$$Lambda$SurfaceView$TWz4D2u33ZlAmRtgKzbqqDue3iM;
 Landroid/view/-$$Lambda$SurfaceView$w68OV7dB_zKVNsA-r0IrAUtyWas;
+Landroid/view/-$$Lambda$TextureView$WAq1rgfoZeDSt6cBQga7iQDymYk;
 Landroid/view/-$$Lambda$ThreadedRenderer$ydBD-R1iP5u-97XYakm-jKvC1b4;
+Landroid/view/-$$Lambda$View$bhR1vB5ZYp3dv-Kth4jtLSS0KEs;
 Landroid/view/-$$Lambda$View$llq76MkPXP4bNcb9oJt_msw0fnQ;
+Landroid/view/-$$Lambda$ViewRootImpl$DJd0VUYJgsebcnSohO6h8zc_ONI;
 Landroid/view/-$$Lambda$ViewRootImpl$IReiNMSbDakZSGbIZuL_ifaFWn8;
+Landroid/view/-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI;
 Landroid/view/-$$Lambda$ViewRootImpl$dznxCZGM2R1fsBljsJKomLjBRoM;
+Landroid/view/-$$Lambda$ViewRootImpl$vBfxngTfPtkwcFoa96FB0CWn5ZI;
 Landroid/view/-$$Lambda$WindowManagerGlobal$2bR3FsEm4EdRwuXfttH0wA2xOW4;
 Landroid/view/-$$Lambda$WlJa6OPA72p3gYtA3nVKC7Z1tGY;
+Landroid/view/-$$Lambda$Y3lG3v_J32-xL0IjMGgNorZjESw;
 Landroid/view/-$$Lambda$cZhmLzK8aetUdx4VlP9w5jR7En0;
 Landroid/view/-$$Lambda$dj1hfDQd0iEp_uBDBPEUMMYJJwk;
 Landroid/view/AbsSavedState$1;
@@ -27688,6 +29769,8 @@
 Landroid/view/ActionProvider;
 Landroid/view/AppTransitionAnimationSpec$1;
 Landroid/view/AppTransitionAnimationSpec;
+Landroid/view/BatchedInputEventReceiver$BatchedInputRunnable;
+Landroid/view/BatchedInputEventReceiver;
 Landroid/view/Choreographer$1;
 Landroid/view/Choreographer$2;
 Landroid/view/Choreographer$3;
@@ -27737,15 +29820,28 @@
 Landroid/view/GestureDetector;
 Landroid/view/GestureExclusionTracker$GestureExclusionViewInfo;
 Landroid/view/GestureExclusionTracker;
+Landroid/view/GhostView;
 Landroid/view/Gravity;
 Landroid/view/HandlerActionQueue$HandlerAction;
 Landroid/view/HandlerActionQueue;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;
 Landroid/view/IAppTransitionAnimationSpecsFuture;
+Landroid/view/IApplicationToken$Stub;
+Landroid/view/IApplicationToken;
 Landroid/view/IDisplayFoldListener$Stub$Proxy;
 Landroid/view/IDisplayFoldListener$Stub;
 Landroid/view/IDisplayFoldListener;
+Landroid/view/IDisplayWindowInsetsController$Stub;
+Landroid/view/IDisplayWindowInsetsController;
+Landroid/view/IDisplayWindowListener$Stub$Proxy;
+Landroid/view/IDisplayWindowListener$Stub;
+Landroid/view/IDisplayWindowListener;
+Landroid/view/IDisplayWindowRotationCallback$Stub;
+Landroid/view/IDisplayWindowRotationCallback;
+Landroid/view/IDisplayWindowRotationController$Stub$Proxy;
+Landroid/view/IDisplayWindowRotationController$Stub;
+Landroid/view/IDisplayWindowRotationController;
 Landroid/view/IDockedStackListener$Stub$Proxy;
 Landroid/view/IDockedStackListener$Stub;
 Landroid/view/IDockedStackListener;
@@ -27755,6 +29851,9 @@
 Landroid/view/IGraphicsStatsCallback$Stub$Proxy;
 Landroid/view/IGraphicsStatsCallback$Stub;
 Landroid/view/IGraphicsStatsCallback;
+Landroid/view/IInputMonitorHost$Stub$Proxy;
+Landroid/view/IInputMonitorHost$Stub;
+Landroid/view/IInputMonitorHost;
 Landroid/view/IOnKeyguardExitResult$Stub$Proxy;
 Landroid/view/IOnKeyguardExitResult$Stub;
 Landroid/view/IOnKeyguardExitResult;
@@ -27764,9 +29863,15 @@
 Landroid/view/IPinnedStackListener$Stub$Proxy;
 Landroid/view/IPinnedStackListener$Stub;
 Landroid/view/IPinnedStackListener;
+Landroid/view/IRecentsAnimationController$Stub$Proxy;
+Landroid/view/IRecentsAnimationController$Stub;
+Landroid/view/IRecentsAnimationController;
 Landroid/view/IRecentsAnimationRunner$Stub$Proxy;
 Landroid/view/IRecentsAnimationRunner$Stub;
 Landroid/view/IRecentsAnimationRunner;
+Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;
+Landroid/view/IRemoteAnimationFinishedCallback$Stub;
+Landroid/view/IRemoteAnimationFinishedCallback;
 Landroid/view/IRemoteAnimationRunner$Stub$Proxy;
 Landroid/view/IRemoteAnimationRunner$Stub;
 Landroid/view/IRemoteAnimationRunner;
@@ -27782,6 +29887,13 @@
 Landroid/view/IWindow$Stub$Proxy;
 Landroid/view/IWindow$Stub;
 Landroid/view/IWindow;
+Landroid/view/IWindowContainer$Stub$Proxy;
+Landroid/view/IWindowContainer$Stub;
+Landroid/view/IWindowContainer;
+Landroid/view/IWindowFocusObserver$Stub;
+Landroid/view/IWindowFocusObserver;
+Landroid/view/IWindowId$Stub$Proxy;
+Landroid/view/IWindowId$Stub;
 Landroid/view/IWindowId;
 Landroid/view/IWindowManager$Stub$Proxy;
 Landroid/view/IWindowManager$Stub;
@@ -27792,6 +29904,8 @@
 Landroid/view/IWindowSessionCallback$Stub$Proxy;
 Landroid/view/IWindowSessionCallback$Stub;
 Landroid/view/IWindowSessionCallback;
+Landroid/view/ImeFocusController$InputMethodManagerDelegate;
+Landroid/view/ImeFocusController;
 Landroid/view/ImeInsetsSourceConsumer;
 Landroid/view/InflateException;
 Landroid/view/InputApplicationHandle;
@@ -27806,12 +29920,15 @@
 Landroid/view/InputEventConsistencyVerifier;
 Landroid/view/InputEventReceiver;
 Landroid/view/InputEventSender;
+Landroid/view/InputMonitor$1;
+Landroid/view/InputMonitor;
 Landroid/view/InputQueue$Callback;
 Landroid/view/InputQueue$FinishedInputEventCallback;
 Landroid/view/InputQueue;
 Landroid/view/InputWindowHandle;
 Landroid/view/InsetsAnimationControlCallbacks;
 Landroid/view/InsetsController;
+Landroid/view/InsetsFlags;
 Landroid/view/InsetsSource$1;
 Landroid/view/InsetsSource;
 Landroid/view/InsetsSourceConsumer;
@@ -27848,6 +29965,7 @@
 Landroid/view/NativeVectorDrawableAnimator;
 Landroid/view/OrientationEventListener$SensorEventListenerImpl;
 Landroid/view/OrientationEventListener;
+Landroid/view/OrientationListener;
 Landroid/view/PointerIcon$1;
 Landroid/view/PointerIcon$2;
 Landroid/view/PointerIcon;
@@ -27858,6 +29976,8 @@
 Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1;
 Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;
 Landroid/view/RemoteAnimationDefinition;
+Landroid/view/RemoteAnimationTarget$1;
+Landroid/view/RemoteAnimationTarget;
 Landroid/view/RenderNodeAnimator$1;
 Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;
 Landroid/view/RenderNodeAnimator;
@@ -27872,17 +29992,22 @@
 Landroid/view/SubMenu;
 Landroid/view/Surface$1;
 Landroid/view/Surface$CompatibleCanvas;
+Landroid/view/Surface$HwuiContext;
 Landroid/view/Surface$OutOfResourcesException;
 Landroid/view/Surface;
 Landroid/view/SurfaceControl$1;
 Landroid/view/SurfaceControl$Builder;
 Landroid/view/SurfaceControl$CieXyz;
 Landroid/view/SurfaceControl$DesiredDisplayConfigSpecs;
+Landroid/view/SurfaceControl$DisplayConfig;
+Landroid/view/SurfaceControl$DisplayInfo;
 Landroid/view/SurfaceControl$DisplayPrimaries;
+Landroid/view/SurfaceControl$PhysicalDisplayInfo;
 Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
 Landroid/view/SurfaceControl$Transaction$1;
 Landroid/view/SurfaceControl$Transaction;
 Landroid/view/SurfaceControl;
+Landroid/view/SurfaceControlViewHost$SurfacePackage;
 Landroid/view/SurfaceHolder$Callback2;
 Landroid/view/SurfaceHolder$Callback;
 Landroid/view/SurfaceHolder;
@@ -27936,10 +30061,12 @@
 Landroid/view/View$OnKeyListener;
 Landroid/view/View$OnLayoutChangeListener;
 Landroid/view/View$OnLongClickListener;
+Landroid/view/View$OnScrollChangeListener;
 Landroid/view/View$OnSystemUiVisibilityChangeListener;
 Landroid/view/View$OnTouchListener;
 Landroid/view/View$PerformClick;
 Landroid/view/View$ScrollabilityCache;
+Landroid/view/View$SendAccessibilityEventThrottle;
 Landroid/view/View$SendViewScrolledAccessibilityEvent;
 Landroid/view/View$TintInfo;
 Landroid/view/View$TooltipInfo;
@@ -27949,13 +30076,17 @@
 Landroid/view/View;
 Landroid/view/ViewAnimationHostBridge;
 Landroid/view/ViewConfiguration;
+Landroid/view/ViewDebug$ExportedProperty;
+Landroid/view/ViewDebug$FlagToString;
 Landroid/view/ViewDebug$HierarchyHandler;
+Landroid/view/ViewDebug$IntToString;
 Landroid/view/ViewDebug;
 Landroid/view/ViewGroup$1;
 Landroid/view/ViewGroup$2;
 Landroid/view/ViewGroup$4;
 Landroid/view/ViewGroup$ChildListForAccessibility;
 Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
+Landroid/view/ViewGroup$HoverTarget;
 Landroid/view/ViewGroup$LayoutParams;
 Landroid/view/ViewGroup$MarginLayoutParams;
 Landroid/view/ViewGroup$OnHierarchyChangeListener;
@@ -27990,6 +30121,7 @@
 Landroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;
 Landroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;
 Landroid/view/ViewRootImpl$EarlyPostImeInputStage;
+Landroid/view/ViewRootImpl$GfxInfo;
 Landroid/view/ViewRootImpl$HighContrastTextManager;
 Landroid/view/ViewRootImpl$ImeInputStage;
 Landroid/view/ViewRootImpl$InputStage;
@@ -28017,6 +30149,7 @@
 Landroid/view/ViewRootImpl$W;
 Landroid/view/ViewRootImpl$WindowInputEventReceiver;
 Landroid/view/ViewRootImpl;
+Landroid/view/ViewStructure$HtmlInfo$Builder;
 Landroid/view/ViewStructure$HtmlInfo;
 Landroid/view/ViewStructure;
 Landroid/view/ViewStub$OnInflateListener;
@@ -28038,6 +30171,7 @@
 Landroid/view/ViewTreeObserver$OnWindowShownListener;
 Landroid/view/ViewTreeObserver;
 Landroid/view/Window$Callback;
+Landroid/view/Window$OnContentApplyWindowInsetsListener;
 Landroid/view/Window$OnFrameMetricsAvailableListener;
 Landroid/view/Window$OnWindowDismissedCallback;
 Landroid/view/Window$OnWindowSwipeDismissedCallback;
@@ -28046,10 +30180,14 @@
 Landroid/view/WindowAnimationFrameStats$1;
 Landroid/view/WindowAnimationFrameStats;
 Landroid/view/WindowCallbacks;
+Landroid/view/WindowContainerTransaction$1;
+Landroid/view/WindowContainerTransaction;
 Landroid/view/WindowContentFrameStats$1;
 Landroid/view/WindowContentFrameStats;
 Landroid/view/WindowId$1;
+Landroid/view/WindowId;
 Landroid/view/WindowInsets$Builder;
+Landroid/view/WindowInsets$Side;
 Landroid/view/WindowInsets$Type;
 Landroid/view/WindowInsets;
 Landroid/view/WindowInsetsController;
@@ -28065,12 +30203,14 @@
 Landroid/view/WindowManagerImpl;
 Landroid/view/WindowManagerPolicyConstants$PointerEventListener;
 Landroid/view/WindowManagerPolicyConstants;
+Landroid/view/WindowMetrics;
 Landroid/view/accessibility/-$$Lambda$AccessibilityManager$1$o7fCplskH9NlBwJvkl6NoZ0L_BA;
 Landroid/view/accessibility/-$$Lambda$AccessibilityManager$yzw5NYY7_MfAQ9gLy3mVllchaXo;
 Landroid/view/accessibility/AccessibilityEvent$1;
 Landroid/view/accessibility/AccessibilityEvent;
 Landroid/view/accessibility/AccessibilityEventSource;
 Landroid/view/accessibility/AccessibilityManager$1;
+Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;
 Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;
 Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;
 Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;
@@ -28081,6 +30221,10 @@
 Landroid/view/accessibility/AccessibilityNodeInfo$1;
 Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction$1;
 Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo;
 Landroid/view/accessibility/AccessibilityNodeInfo;
 Landroid/view/accessibility/AccessibilityNodeProvider;
 Landroid/view/accessibility/AccessibilityRecord;
@@ -28101,6 +30245,8 @@
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub;
 Landroid/view/accessibility/IAccessibilityManagerClient;
+Landroid/view/accessibility/IWindowMagnificationConnection$Stub;
+Landroid/view/accessibility/IWindowMagnificationConnection;
 Landroid/view/accessibility/WeakSparseArray$WeakReferenceWithId;
 Landroid/view/accessibility/WeakSparseArray;
 Landroid/view/animation/AccelerateDecelerateInterpolator;
@@ -28134,36 +30280,57 @@
 Landroid/view/animation/ScaleAnimation;
 Landroid/view/animation/Transformation;
 Landroid/view/animation/TranslateAnimation;
+Landroid/view/autofill/-$$Lambda$AutofillManager$AutofillManagerClient$qH36EJk2Hkdja9ZZmTxqYPyr0YA;
+Landroid/view/autofill/-$$Lambda$AutofillManager$AutofillManagerClient$vxNm6RuuD-r5pkiSxNSBBd1w_Qc;
 Landroid/view/autofill/-$$Lambda$AutofillManager$V76JiQu509LCUz3-ckpb-nB3JhA;
 Landroid/view/autofill/-$$Lambda$AutofillManager$YfpJNFodEuj5lbXfPlc77fsEvC8;
 Landroid/view/autofill/AutofillId$1;
 Landroid/view/autofill/AutofillId;
+Landroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;
 Landroid/view/autofill/AutofillManager$AutofillCallback;
 Landroid/view/autofill/AutofillManager$AutofillClient;
 Landroid/view/autofill/AutofillManager$AutofillManagerClient;
+Landroid/view/autofill/AutofillManager$TrackedViews;
 Landroid/view/autofill/AutofillManager;
 Landroid/view/autofill/AutofillManagerInternal;
+Landroid/view/autofill/AutofillPopupWindow;
 Landroid/view/autofill/AutofillValue$1;
 Landroid/view/autofill/AutofillValue;
 Landroid/view/autofill/Helper;
+Landroid/view/autofill/IAugmentedAutofillManagerClient$Stub;
+Landroid/view/autofill/IAugmentedAutofillManagerClient;
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;
 Landroid/view/autofill/IAutoFillManager$Stub;
 Landroid/view/autofill/IAutoFillManager;
 Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;
 Landroid/view/autofill/IAutoFillManagerClient$Stub;
 Landroid/view/autofill/IAutoFillManagerClient;
+Landroid/view/autofill/IAutofillWindowPresenter$Stub;
 Landroid/view/autofill/IAutofillWindowPresenter;
+Landroid/view/autofill/ParcelableMap$1;
+Landroid/view/autofill/ParcelableMap;
 Landroid/view/contentcapture/ContentCaptureCondition$1;
 Landroid/view/contentcapture/ContentCaptureCondition;
 Landroid/view/contentcapture/ContentCaptureContext$1;
+Landroid/view/contentcapture/ContentCaptureContext$Builder;
 Landroid/view/contentcapture/ContentCaptureContext;
+Landroid/view/contentcapture/ContentCaptureEvent$1;
+Landroid/view/contentcapture/ContentCaptureEvent;
 Landroid/view/contentcapture/ContentCaptureHelper;
 Landroid/view/contentcapture/ContentCaptureManager$ContentCaptureClient;
 Landroid/view/contentcapture/ContentCaptureManager;
+Landroid/view/contentcapture/ContentCaptureSession;
+Landroid/view/contentcapture/ContentCaptureSessionId;
 Landroid/view/contentcapture/DataRemovalRequest$1;
 Landroid/view/contentcapture/DataRemovalRequest;
+Landroid/view/contentcapture/DataShareRequest;
+Landroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;
 Landroid/view/contentcapture/IContentCaptureManager$Stub;
 Landroid/view/contentcapture/IContentCaptureManager;
+Landroid/view/contentcapture/IDataShareWriteAdapter$Stub;
+Landroid/view/contentcapture/IDataShareWriteAdapter;
+Landroid/view/contentcapture/MainContentCaptureSession$1;
+Landroid/view/contentcapture/MainContentCaptureSession;
 Landroid/view/inputmethod/-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0;
 Landroid/view/inputmethod/-$$Lambda$InputMethodManager$iDWn3IGSUFqIcs8Py42UhfrshxI;
 Landroid/view/inputmethod/BaseInputConnection;
@@ -28176,11 +30343,13 @@
 Landroid/view/inputmethod/CursorAnchorInfo$Builder;
 Landroid/view/inputmethod/CursorAnchorInfo;
 Landroid/view/inputmethod/EditorInfo$1;
+Landroid/view/inputmethod/EditorInfo$InitialSurroundingText;
 Landroid/view/inputmethod/EditorInfo;
 Landroid/view/inputmethod/ExtractedText$1;
 Landroid/view/inputmethod/ExtractedText;
 Landroid/view/inputmethod/ExtractedTextRequest$1;
 Landroid/view/inputmethod/ExtractedTextRequest;
+Landroid/view/inputmethod/InlineSuggestionsRequest;
 Landroid/view/inputmethod/InputBinding$1;
 Landroid/view/inputmethod/InputBinding;
 Landroid/view/inputmethod/InputConnection;
@@ -28194,9 +30363,11 @@
 Landroid/view/inputmethod/InputMethodInfo;
 Landroid/view/inputmethod/InputMethodManager$1;
 Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;
+Landroid/view/inputmethod/InputMethodManager$DelegateImpl;
 Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;
 Landroid/view/inputmethod/InputMethodManager$H;
 Landroid/view/inputmethod/InputMethodManager$ImeInputEventSender;
+Landroid/view/inputmethod/InputMethodManager$ImeThreadFactory;
 Landroid/view/inputmethod/InputMethodManager$PendingEvent;
 Landroid/view/inputmethod/InputMethodManager;
 Landroid/view/inputmethod/InputMethodSession$EventCallback;
@@ -28207,19 +30378,24 @@
 Landroid/view/inputmethod/InputMethodSubtypeArray;
 Landroid/view/textclassifier/-$$Lambda$0biFK4yZBmWN1EO2wtnXskzuEcE;
 Landroid/view/textclassifier/-$$Lambda$9N8WImc0VBjy2oxI_Gk5_Pbye_A;
+Landroid/view/textclassifier/-$$Lambda$ActionsModelParamsSupplier$GCXILXtg_S2la6x__ANOhbYxetw;
+Landroid/view/textclassifier/-$$Lambda$ActionsModelParamsSupplier$zElxNeuL3A8paTXvw8GWdpp4rFo;
 Landroid/view/textclassifier/-$$Lambda$ActionsSuggestionsHelper$6oTtcn9bDE-u-8FbiyGdntqoQG0;
 Landroid/view/textclassifier/-$$Lambda$ActionsSuggestionsHelper$YTQv8oPvlmJL4tITUFD4z4JWKRk;
 Landroid/view/textclassifier/-$$Lambda$ActionsSuggestionsHelper$sY0w9od2zcl4YFel0lG4VB3vf7I;
 Landroid/view/textclassifier/-$$Lambda$EntityConfidence$YPh8hwgSYYK8OyQ1kFlQngc71Q0;
+Landroid/view/textclassifier/-$$Lambda$GenerateLinksLogger$vmbT_h7MLlbrIm0lJJwA-eHQhXk;
 Landroid/view/textclassifier/-$$Lambda$L_UQMPjXwBN0ch4zL2dD82nf9RI;
 Landroid/view/textclassifier/-$$Lambda$NxwbyZSxofZ4Z5SQhfXmtLQ1nxk;
 Landroid/view/textclassifier/-$$Lambda$OGSS2qx6njxlnp0dnKb4lA3jnw8;
+Landroid/view/textclassifier/-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE;
 Landroid/view/textclassifier/-$$Lambda$TextClassifierImpl$RRbXefHgcUymI9-P95ArUyMvfbw;
 Landroid/view/textclassifier/-$$Lambda$TextClassifierImpl$ftq-sQqJYwUdrdbbr9jz3p4AWos;
 Landroid/view/textclassifier/-$$Lambda$TextClassifierImpl$iSt_Guet-O6Vtdk0MA4z-Z4lzaM;
 Landroid/view/textclassifier/-$$Lambda$XeE_KI7QgMKzF9vYRSoFWAolyuA;
 Landroid/view/textclassifier/-$$Lambda$jJq8RXuVdjYF3lPq-77PEw1NJLM;
 Landroid/view/textclassifier/ActionsModelParamsSupplier$ActionsModelParams;
+Landroid/view/textclassifier/ActionsModelParamsSupplier$SettingsObserver;
 Landroid/view/textclassifier/ActionsModelParamsSupplier;
 Landroid/view/textclassifier/ActionsSuggestionsHelper$PersonEncoder;
 Landroid/view/textclassifier/ActionsSuggestionsHelper;
@@ -28228,13 +30404,16 @@
 Landroid/view/textclassifier/ConversationAction;
 Landroid/view/textclassifier/ConversationActions$1;
 Landroid/view/textclassifier/ConversationActions$Message$1;
+Landroid/view/textclassifier/ConversationActions$Message$Builder;
 Landroid/view/textclassifier/ConversationActions$Message;
 Landroid/view/textclassifier/ConversationActions$Request$1;
+Landroid/view/textclassifier/ConversationActions$Request$Builder;
 Landroid/view/textclassifier/ConversationActions$Request;
 Landroid/view/textclassifier/ConversationActions;
 Landroid/view/textclassifier/EntityConfidence$1;
 Landroid/view/textclassifier/EntityConfidence;
 Landroid/view/textclassifier/ExtrasUtils;
+Landroid/view/textclassifier/GenerateLinksLogger$LinkifyStats;
 Landroid/view/textclassifier/GenerateLinksLogger;
 Landroid/view/textclassifier/Log;
 Landroid/view/textclassifier/ModelFileManager$ModelFile;
@@ -28258,6 +30437,7 @@
 Landroid/view/textclassifier/TextClassificationContext;
 Landroid/view/textclassifier/TextClassificationManager$SettingsObserver;
 Landroid/view/textclassifier/TextClassificationManager;
+Landroid/view/textclassifier/TextClassificationSession;
 Landroid/view/textclassifier/TextClassificationSessionFactory;
 Landroid/view/textclassifier/TextClassificationSessionId$1;
 Landroid/view/textclassifier/TextClassificationSessionId;
@@ -28268,6 +30448,7 @@
 Landroid/view/textclassifier/TextClassifier$Utils;
 Landroid/view/textclassifier/TextClassifier;
 Landroid/view/textclassifier/TextClassifierEvent$1;
+Landroid/view/textclassifier/TextClassifierEvent$Builder;
 Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent$1;
 Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;
 Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent$1;
@@ -28285,8 +30466,12 @@
 Landroid/view/textclassifier/TextLanguage$Request$Builder;
 Landroid/view/textclassifier/TextLanguage$Request;
 Landroid/view/textclassifier/TextLanguage;
+Landroid/view/textclassifier/TextLinks$Builder;
 Landroid/view/textclassifier/TextLinks$Request$1;
 Landroid/view/textclassifier/TextLinks$Request;
+Landroid/view/textclassifier/TextLinks$TextLink;
+Landroid/view/textclassifier/TextLinks$TextLinkSpan;
+Landroid/view/textclassifier/TextLinks;
 Landroid/view/textclassifier/TextSelection$1;
 Landroid/view/textclassifier/TextSelection$Request$1;
 Landroid/view/textclassifier/TextSelection$Request;
@@ -28306,10 +30491,13 @@
 Landroid/view/textservice/SpellCheckerSession$1;
 Landroid/view/textservice/SpellCheckerSession$InternalListener;
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$1;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;
 Landroid/view/textservice/SpellCheckerSession;
 Landroid/view/textservice/SpellCheckerSubtype$1;
 Landroid/view/textservice/SpellCheckerSubtype;
+Landroid/view/textservice/TextInfo;
 Landroid/view/textservice/TextServicesManager;
 Landroid/webkit/ConsoleMessage$MessageLevel;
 Landroid/webkit/ConsoleMessage;
@@ -28321,6 +30509,7 @@
 Landroid/webkit/IWebViewUpdateService$Stub;
 Landroid/webkit/IWebViewUpdateService;
 Landroid/webkit/JavascriptInterface;
+Landroid/webkit/MimeTypeMap;
 Landroid/webkit/ServiceWorkerClient;
 Landroid/webkit/ServiceWorkerController;
 Landroid/webkit/ServiceWorkerWebSettings;
@@ -28335,7 +30524,9 @@
 Landroid/webkit/WebIconDatabase;
 Landroid/webkit/WebMessage;
 Landroid/webkit/WebMessagePort;
+Landroid/webkit/WebResourceError;
 Landroid/webkit/WebResourceRequest;
+Landroid/webkit/WebSettings$PluginState;
 Landroid/webkit/WebSettings;
 Landroid/webkit/WebStorage;
 Landroid/webkit/WebSyncManager;
@@ -28379,12 +30570,16 @@
 Landroid/widget/AbsListView$2;
 Landroid/widget/AbsListView$3;
 Landroid/widget/AbsListView$4;
+Landroid/widget/AbsListView$AbsPositionScroller;
 Landroid/widget/AbsListView$AdapterDataSetObserver;
+Landroid/widget/AbsListView$CheckForLongPress;
 Landroid/widget/AbsListView$CheckForTap;
 Landroid/widget/AbsListView$FlingRunnable$1;
 Landroid/widget/AbsListView$FlingRunnable;
 Landroid/widget/AbsListView$LayoutParams;
 Landroid/widget/AbsListView$ListItemAccessibilityDelegate;
+Landroid/widget/AbsListView$MultiChoiceModeListener;
+Landroid/widget/AbsListView$MultiChoiceModeWrapper;
 Landroid/widget/AbsListView$OnScrollListener;
 Landroid/widget/AbsListView$PerformClick;
 Landroid/widget/AbsListView$RecycleBin;
@@ -28398,12 +30593,15 @@
 Landroid/widget/AbsSpinner$RecycleBin;
 Landroid/widget/AbsSpinner$SavedState$1;
 Landroid/widget/AbsSpinner;
+Landroid/widget/AbsoluteLayout$LayoutParams;
 Landroid/widget/AbsoluteLayout;
 Landroid/widget/ActionMenuPresenter$1;
 Landroid/widget/ActionMenuPresenter$2;
+Landroid/widget/ActionMenuPresenter$ActionButtonSubmenu;
 Landroid/widget/ActionMenuPresenter$ActionMenuPopupCallback;
 Landroid/widget/ActionMenuPresenter$OverflowMenuButton$1;
 Landroid/widget/ActionMenuPresenter$OverflowMenuButton;
+Landroid/widget/ActionMenuPresenter$OverflowPopup;
 Landroid/widget/ActionMenuPresenter$PopupPresenterCallback;
 Landroid/widget/ActionMenuPresenter;
 Landroid/widget/ActionMenuView$ActionMenuChildView;
@@ -28416,11 +30614,13 @@
 Landroid/widget/AdapterView$AdapterDataSetObserver;
 Landroid/widget/AdapterView$OnItemClickListener;
 Landroid/widget/AdapterView$OnItemSelectedListener;
+Landroid/widget/AdapterView$SelectionNotifier;
 Landroid/widget/AdapterView;
 Landroid/widget/ArrayAdapter;
 Landroid/widget/AutoCompleteTextView$DropDownItemClickListener;
 Landroid/widget/AutoCompleteTextView$MyWatcher;
 Landroid/widget/AutoCompleteTextView$PassThroughClickListener;
+Landroid/widget/AutoCompleteTextView$Validator;
 Landroid/widget/AutoCompleteTextView;
 Landroid/widget/BaseAdapter;
 Landroid/widget/Button;
@@ -28428,8 +30628,10 @@
 Landroid/widget/Checkable;
 Landroid/widget/CheckedTextView;
 Landroid/widget/Chronometer$1;
+Landroid/widget/Chronometer$OnChronometerTickListener;
 Landroid/widget/Chronometer;
 Landroid/widget/CompoundButton$OnCheckedChangeListener;
+Landroid/widget/CompoundButton$SavedState;
 Landroid/widget/CompoundButton;
 Landroid/widget/EdgeEffect;
 Landroid/widget/EditText;
@@ -28438,36 +30640,45 @@
 Landroid/widget/Editor$3;
 Landroid/widget/Editor$5;
 Landroid/widget/Editor$Blink;
+Landroid/widget/Editor$CorrectionHighlighter;
 Landroid/widget/Editor$CursorAnchorInfoNotifier;
 Landroid/widget/Editor$CursorController;
 Landroid/widget/Editor$EasyEditDeleteListener;
 Landroid/widget/Editor$EasyEditPopupWindow;
 Landroid/widget/Editor$EditOperation$1;
 Landroid/widget/Editor$EditOperation;
+Landroid/widget/Editor$ErrorPopup;
+Landroid/widget/Editor$HandleView;
 Landroid/widget/Editor$InputContentType;
 Landroid/widget/Editor$InputMethodState;
+Landroid/widget/Editor$InsertionHandleView;
 Landroid/widget/Editor$InsertionPointCursorController;
 Landroid/widget/Editor$MagnifierMotionAnimator;
 Landroid/widget/Editor$PinnedPopupWindow;
 Landroid/widget/Editor$PositionListener;
 Landroid/widget/Editor$ProcessTextIntentActionsHandler;
+Landroid/widget/Editor$SelectionHandleView;
 Landroid/widget/Editor$SelectionModifierCursorController;
 Landroid/widget/Editor$SpanController$1;
 Landroid/widget/Editor$SpanController$2;
 Landroid/widget/Editor$SpanController;
 Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator;
 Landroid/widget/Editor$SuggestionHelper;
+Landroid/widget/Editor$SuggestionsPopupWindow;
 Landroid/widget/Editor$TextRenderNode;
 Landroid/widget/Editor$TextViewPositionListener;
 Landroid/widget/Editor$UndoInputFilter;
 Landroid/widget/Editor;
+Landroid/widget/EditorTouchState;
 Landroid/widget/FastScroller$1;
 Landroid/widget/FastScroller$2;
 Landroid/widget/FastScroller$3;
 Landroid/widget/FastScroller$4;
 Landroid/widget/FastScroller$5;
 Landroid/widget/FastScroller$6;
+Landroid/widget/FastScroller;
 Landroid/widget/Filter$FilterListener;
+Landroid/widget/Filter$ResultsHandler;
 Landroid/widget/Filter;
 Landroid/widget/Filterable;
 Landroid/widget/ForwardingListener;
@@ -28558,6 +30769,7 @@
 Landroid/widget/RemoteViews$MethodArgs;
 Landroid/widget/RemoteViews$MethodKey;
 Landroid/widget/RemoteViews$OnClickHandler;
+Landroid/widget/RemoteViews$OnViewAppliedListener;
 Landroid/widget/RemoteViews$OverrideTextColorsAction;
 Landroid/widget/RemoteViews$ReflectionAction;
 Landroid/widget/RemoteViews$RemoteResponse;
@@ -28577,11 +30789,16 @@
 Landroid/widget/RemoteViews$TextViewDrawableAction;
 Landroid/widget/RemoteViews$TextViewSizeAction;
 Landroid/widget/RemoteViews$ViewContentNavigation;
+Landroid/widget/RemoteViews$ViewGroupActionAdd$1;
 Landroid/widget/RemoteViews$ViewGroupActionAdd;
+Landroid/widget/RemoteViews$ViewGroupActionRemove$1;
 Landroid/widget/RemoteViews$ViewGroupActionRemove;
 Landroid/widget/RemoteViews$ViewPaddingAction;
+Landroid/widget/RemoteViews$ViewTree;
 Landroid/widget/RemoteViews;
 Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;
+Landroid/widget/RemoteViewsAdapter;
+Landroid/widget/RemoteViewsService;
 Landroid/widget/RtlSpacingHelper;
 Landroid/widget/ScrollBarDrawable;
 Landroid/widget/ScrollView$SavedState$1;
@@ -28623,6 +30840,9 @@
 Landroid/widget/TextView$ChangeWatcher;
 Landroid/widget/TextView$CharWrapper;
 Landroid/widget/TextView$Drawables;
+Landroid/widget/TextView$Marquee$1;
+Landroid/widget/TextView$Marquee$2;
+Landroid/widget/TextView$Marquee$3;
 Landroid/widget/TextView$Marquee;
 Landroid/widget/TextView$OnEditorActionListener;
 Landroid/widget/TextView$SavedState$1;
@@ -28630,6 +30850,8 @@
 Landroid/widget/TextView$TextAppearanceAttributes;
 Landroid/widget/TextView;
 Landroid/widget/ThemedSpinnerAdapter;
+Landroid/widget/Toast$Callback;
+Landroid/widget/Toast$CallbackBinder;
 Landroid/widget/Toast$TN$1;
 Landroid/widget/Toast$TN;
 Landroid/widget/Toast;
@@ -28661,6 +30883,7 @@
 Lcom/android/i18n/phonenumbers/MultiFileMetadataSourceImpl;
 Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType;
 Lcom/android/i18n/phonenumbers/NumberParseException;
+Lcom/android/i18n/phonenumbers/PhoneNumberMatch;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil$1;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil$2;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$1;
@@ -28696,6 +30919,7 @@
 Lcom/android/icu/util/LocaleNative;
 Lcom/android/icu/util/regex/MatcherNative;
 Lcom/android/icu/util/regex/PatternNative;
+Lcom/android/ims/-$$Lambda$ImsManager$CwzXIbVJZNvgdV2t7LH2gUKL7AA;
 Lcom/android/ims/-$$Lambda$ImsManager$D1JuJ3ba2jMHWDKlSpm03meBR1c;
 Lcom/android/ims/-$$Lambda$ImsManager$LiW49wt0wLMYHjgtAwL8NLIATfs;
 Lcom/android/ims/-$$Lambda$ImsManager$YhRaDrc3t9_7beNiU5gQcqZilOw;
@@ -28703,6 +30927,7 @@
 Lcom/android/ims/FeatureConnection$IFeatureUpdate;
 Lcom/android/ims/FeatureConnection;
 Lcom/android/ims/FeatureConnector$Listener;
+Lcom/android/ims/FeatureConnector;
 Lcom/android/ims/IFeatureConnector;
 Lcom/android/ims/ImsCall$Listener;
 Lcom/android/ims/ImsCall;
@@ -28718,6 +30943,7 @@
 Lcom/android/ims/ImsManager$2;
 Lcom/android/ims/ImsManager$3;
 Lcom/android/ims/ImsManager$ExecutorFactory;
+Lcom/android/ims/ImsManager$ImsExecutorFactory;
 Lcom/android/ims/ImsManager;
 Lcom/android/ims/ImsMultiEndpoint$ImsExternalCallStateListenerProxy;
 Lcom/android/ims/ImsMultiEndpoint;
@@ -28728,13 +30954,16 @@
 Lcom/android/ims/MmTelFeatureConnection$ImsRegistrationCallbackAdapter;
 Lcom/android/ims/MmTelFeatureConnection$ProvisioningCallbackManager;
 Lcom/android/ims/MmTelFeatureConnection;
+Lcom/android/ims/Registrant;
 Lcom/android/ims/internal/ICall;
+Lcom/android/ims/internal/IImsCallSession;
 Lcom/android/ims/internal/IImsEcbm$Stub;
 Lcom/android/ims/internal/IImsEcbm;
 Lcom/android/ims/internal/IImsEcbmListener$Stub;
 Lcom/android/ims/internal/IImsEcbmListener;
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub;
 Lcom/android/ims/internal/IImsExternalCallStateListener;
+Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy;
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub;
 Lcom/android/ims/internal/IImsFeatureStatusCallback;
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub;
@@ -28749,14 +30978,25 @@
 Lcom/android/ims/internal/ImsVideoCallProviderWrapper$ImsVideoProviderWrapperCallback;
 Lcom/android/ims/internal/uce/UceServiceBase$UceServiceBinder;
 Lcom/android/ims/internal/uce/UceServiceBase;
+Lcom/android/ims/internal/uce/common/CapInfo$1;
+Lcom/android/ims/internal/uce/common/CapInfo;
+Lcom/android/ims/internal/uce/common/StatusCode$1;
 Lcom/android/ims/internal/uce/common/UceLong$1;
 Lcom/android/ims/internal/uce/common/UceLong;
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;
 Lcom/android/ims/internal/uce/options/IOptionsListener;
+Lcom/android/ims/internal/uce/options/IOptionsService;
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;
 Lcom/android/ims/internal/uce/presence/IPresenceListener;
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;
+Lcom/android/ims/internal/uce/presence/IPresenceService;
+Lcom/android/ims/internal/uce/presence/PresCapInfo$1;
+Lcom/android/ims/internal/uce/presence/PresCmdId$1;
+Lcom/android/ims/internal/uce/presence/PresCmdStatus$1;
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType$1;
+Lcom/android/ims/internal/uce/presence/PresSipResponse$1;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;
 Lcom/android/ims/internal/uce/uceservice/IUceListener;
@@ -28767,8 +31007,10 @@
 Lcom/android/internal/accessibility/AccessibilityShortcutController$FrameworkObjectProvider;
 Lcom/android/internal/accessibility/AccessibilityShortcutController$ToggleableFrameworkFeatureInfo;
 Lcom/android/internal/accessibility/AccessibilityShortcutController;
+Lcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;
 Lcom/android/internal/alsa/AlsaCardsParser;
 Lcom/android/internal/alsa/LineTokenizer;
+Lcom/android/internal/app/AlertActivity;
 Lcom/android/internal/app/AlertController$1;
 Lcom/android/internal/app/AlertController$AlertParams;
 Lcom/android/internal/app/AlertController$ButtonHandler;
@@ -28778,6 +31020,9 @@
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub;
 Lcom/android/internal/app/IAppOpsActiveCallback;
+Lcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub$Proxy;
+Lcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;
+Lcom/android/internal/app/IAppOpsAsyncNotedCallback;
 Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;
 Lcom/android/internal/app/IAppOpsCallback$Stub;
 Lcom/android/internal/app/IAppOpsCallback;
@@ -28807,14 +31052,21 @@
 Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;
 Lcom/android/internal/app/IVoiceInteractor$Stub;
 Lcom/android/internal/app/IVoiceInteractor;
+Lcom/android/internal/app/IntentForwarderActivity;
 Lcom/android/internal/app/MicroAlertController;
+Lcom/android/internal/app/NetInitiatedActivity;
 Lcom/android/internal/app/ProcessMap;
 Lcom/android/internal/app/ResolverActivity$ActionTitle;
 Lcom/android/internal/app/ResolverActivity;
 Lcom/android/internal/app/ResolverListAdapter$ResolverListCommunicator;
 Lcom/android/internal/app/ToolbarActionBar;
+Lcom/android/internal/app/WindowDecorActionBar$1;
+Lcom/android/internal/app/WindowDecorActionBar$2;
+Lcom/android/internal/app/WindowDecorActionBar$3;
 Lcom/android/internal/app/WindowDecorActionBar;
 Lcom/android/internal/app/procstats/-$$Lambda$AssociationState$kgfxYpOOyQWCFPwGaRqRz0N4-zg;
+Lcom/android/internal/app/procstats/-$$Lambda$ProcessStats$6CxEiT4FvK_P75G9LzEfE1zL88Q;
+Lcom/android/internal/app/procstats/AssociationState$SourceDumpContainer;
 Lcom/android/internal/app/procstats/AssociationState$SourceKey;
 Lcom/android/internal/app/procstats/AssociationState$SourceState;
 Lcom/android/internal/app/procstats/AssociationState;
@@ -28827,7 +31079,9 @@
 Lcom/android/internal/app/procstats/ProcessState$PssAggr;
 Lcom/android/internal/app/procstats/ProcessState;
 Lcom/android/internal/app/procstats/ProcessStats$1;
+Lcom/android/internal/app/procstats/ProcessStats$AssociationDumpContainer;
 Lcom/android/internal/app/procstats/ProcessStats$PackageState;
+Lcom/android/internal/app/procstats/ProcessStats$ProcessDataCollection;
 Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
 Lcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;
 Lcom/android/internal/app/procstats/ProcessStats;
@@ -28845,7 +31099,22 @@
 Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;
 Lcom/android/internal/backup/IBackupTransport$Stub;
 Lcom/android/internal/backup/IBackupTransport;
+Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;
+Lcom/android/internal/colorextraction/types/ExtractionType;
+Lcom/android/internal/colorextraction/types/Tonal$ConfigParser;
+Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;
+Lcom/android/internal/colorextraction/types/Tonal;
+Lcom/android/internal/compat/ChangeReporter$ChangeReport;
 Lcom/android/internal/compat/ChangeReporter;
+Lcom/android/internal/compat/CompatibilityChangeConfig;
+Lcom/android/internal/compat/CompatibilityChangeInfo$1;
+Lcom/android/internal/compat/CompatibilityChangeInfo;
+Lcom/android/internal/compat/IOverrideValidator;
+Lcom/android/internal/compat/IPlatformCompat$Stub$Proxy;
+Lcom/android/internal/compat/IPlatformCompat$Stub;
+Lcom/android/internal/compat/IPlatformCompat;
+Lcom/android/internal/compat/IPlatformCompatNative$Stub;
+Lcom/android/internal/compat/IPlatformCompatNative;
 Lcom/android/internal/content/NativeLibraryHelper$Handle;
 Lcom/android/internal/content/NativeLibraryHelper;
 Lcom/android/internal/content/PackageHelper$1;
@@ -28855,6 +31124,8 @@
 Lcom/android/internal/content/ReferrerIntent$1;
 Lcom/android/internal/content/ReferrerIntent;
 Lcom/android/internal/database/SortCursor;
+Lcom/android/internal/graphics/-$$Lambda$ColorUtils$zbDH-52c8D9XBeqmvTHi3Boxl14;
+Lcom/android/internal/graphics/ColorUtils$ContrastCalculator;
 Lcom/android/internal/graphics/ColorUtils;
 Lcom/android/internal/graphics/SfVsyncFrameCallbackProvider;
 Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;
@@ -28866,8 +31137,16 @@
 Lcom/android/internal/infra/-$$Lambda$AbstractRemoteService$PendingRequest$IBoaBGXZQEXJr69u3aJF-LCJ42Y;
 Lcom/android/internal/infra/-$$Lambda$AbstractRemoteService$YSUzqqi1Pbrg2dlwMGMtKWbGXck;
 Lcom/android/internal/infra/-$$Lambda$AbstractRemoteService$ocrHd68Md9x6FfAzVQ6w8MAjFqY;
+Lcom/android/internal/infra/-$$Lambda$AndroidFuture$dkSvpmqaFOFKPCZgb7C7XLP_QpE;
 Lcom/android/internal/infra/-$$Lambda$EbzSql2RHkXox5Myj8A-7kLC4_A;
+Lcom/android/internal/infra/-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20;
+Lcom/android/internal/infra/-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s;
+Lcom/android/internal/infra/-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw;
+Lcom/android/internal/infra/-$$Lambda$aeiZbEpH6rq4kD9vJrlAnboJGDM;
+Lcom/android/internal/infra/-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA;
+Lcom/android/internal/infra/-$$Lambda$rAXGjry3wPGKviARzTYfDiY7xrs;
 Lcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;
+Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;
 Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;
 Lcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest;
 Lcom/android/internal/infra/AbstractRemoteService$PendingRequest;
@@ -28875,8 +31154,22 @@
 Lcom/android/internal/infra/AbstractRemoteService$VultureCallback;
 Lcom/android/internal/infra/AbstractRemoteService;
 Lcom/android/internal/infra/AbstractSinglePendingRequestRemoteService;
+Lcom/android/internal/infra/AndroidFuture$1;
+Lcom/android/internal/infra/AndroidFuture$2;
+Lcom/android/internal/infra/AndroidFuture;
+Lcom/android/internal/infra/GlobalWhitelistState;
+Lcom/android/internal/infra/IAndroidFuture$Stub;
+Lcom/android/internal/infra/IAndroidFuture;
+Lcom/android/internal/infra/RemoteStream$1;
+Lcom/android/internal/infra/RemoteStream;
+Lcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;
+Lcom/android/internal/infra/ServiceConnector$Impl;
 Lcom/android/internal/infra/ServiceConnector$Job;
+Lcom/android/internal/infra/ServiceConnector$VoidJob;
+Lcom/android/internal/infra/ServiceConnector;
+Lcom/android/internal/infra/ThrottledRunnable;
 Lcom/android/internal/infra/WhitelistHelper;
+Lcom/android/internal/inputmethod/IInputContentUriToken;
 Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;
 Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;
 Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;
@@ -28887,6 +31180,7 @@
 Lcom/android/internal/inputmethod/SubtypeLocaleUtils;
 Lcom/android/internal/location/GpsNetInitiatedHandler$1;
 Lcom/android/internal/location/GpsNetInitiatedHandler$2;
+Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;
 Lcom/android/internal/location/GpsNetInitiatedHandler;
 Lcom/android/internal/location/ILocationProvider$Stub$Proxy;
 Lcom/android/internal/location/ILocationProvider$Stub;
@@ -28907,10 +31201,13 @@
 Lcom/android/internal/logging/AndroidHandler$1;
 Lcom/android/internal/logging/AndroidHandler;
 Lcom/android/internal/logging/EventLogTags;
+Lcom/android/internal/logging/InstanceId;
 Lcom/android/internal/logging/MetricsLogger;
 Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;
 Lcom/android/internal/net/INetworkWatchlistManager$Stub;
 Lcom/android/internal/net/INetworkWatchlistManager;
+Lcom/android/internal/net/LegacyVpnInfo$1;
+Lcom/android/internal/net/LegacyVpnInfo;
 Lcom/android/internal/net/VpnConfig$1;
 Lcom/android/internal/net/VpnConfig;
 Lcom/android/internal/net/VpnInfo$1;
@@ -28923,13 +31220,20 @@
 Lcom/android/internal/os/-$$Lambda$BatteryStatsImpl$B-TmZhQb712ePnuJTxvMe7P-YwQ;
 Lcom/android/internal/os/-$$Lambda$BatteryStatsImpl$Xvt9xdVPtevMWGIjcbxXf0_mr_c;
 Lcom/android/internal/os/-$$Lambda$BatteryStatsImpl$_l2oiaRDRhjCXI_PwXPsAhrgegI;
+Lcom/android/internal/os/-$$Lambda$BinderCallsStats$-YP-7pwoNn8TN0iTmo5Q1r2lQz0;
+Lcom/android/internal/os/-$$Lambda$BinderCallsStats$233x_Qux4c_AiqShYaWwvFplEXs;
+Lcom/android/internal/os/-$$Lambda$BinderCallsStats$Vota0PqfoPWckjXH35wE48myGdk;
+Lcom/android/internal/os/-$$Lambda$BinderCallsStats$iPOmTqbqUiHzgsAugINuZgf9tls;
 Lcom/android/internal/os/-$$Lambda$BinderCallsStats$sqXweH5BoxhmZvI188ctqYiACRk;
+Lcom/android/internal/os/-$$Lambda$BinderCallsStats$xI0E0RpviGYsokEB7ojNx8LEbUc;
 Lcom/android/internal/os/-$$Lambda$RuntimeInit$ep4ioD9YINkHI5Q1wZ0N_7VFAOg;
 Lcom/android/internal/os/-$$Lambda$ZygoteConnection$KxVsZ-s4KsanePOHCU5JcuypPik;
 Lcom/android/internal/os/-$$Lambda$ZygoteConnection$xjqM7qW7vAjTqh2tR5XRF5Vn5mk;
 Lcom/android/internal/os/-$$Lambda$sHtqZgGVjxOf9IJdAdZO6gwD_Do;
 Lcom/android/internal/os/AndroidPrintStream;
+Lcom/android/internal/os/AppFuseMount$1;
 Lcom/android/internal/os/AppFuseMount;
+Lcom/android/internal/os/AppIdToPackageMap;
 Lcom/android/internal/os/AtomicDirectory;
 Lcom/android/internal/os/BackgroundThread;
 Lcom/android/internal/os/BatterySipper$DrainType;
@@ -28986,6 +31290,7 @@
 Lcom/android/internal/os/BinderCallsStats$UidEntry;
 Lcom/android/internal/os/BinderCallsStats;
 Lcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo;
+Lcom/android/internal/os/BinderDeathDispatcher;
 Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener;
 Lcom/android/internal/os/BinderInternal$BinderProxyLimitListenerDelegate;
 Lcom/android/internal/os/BinderInternal$CallSession;
@@ -28994,6 +31299,7 @@
 Lcom/android/internal/os/BinderInternal$WorkSourceProvider;
 Lcom/android/internal/os/BinderInternal;
 Lcom/android/internal/os/BluetoothPowerCalculator;
+Lcom/android/internal/os/ByteTransferPipe;
 Lcom/android/internal/os/CachedDeviceState$Readonly;
 Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;
 Lcom/android/internal/os/CachedDeviceState;
@@ -29024,6 +31330,8 @@
 Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;
 Lcom/android/internal/os/KernelCpuThreadReader$ThreadCpuUsage;
 Lcom/android/internal/os/KernelCpuThreadReader;
+Lcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;
+Lcom/android/internal/os/KernelCpuThreadReaderDiff;
 Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;
 Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver;
 Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;
@@ -29052,6 +31360,7 @@
 Lcom/android/internal/os/ProcStatsUtil;
 Lcom/android/internal/os/ProcTimeInStateReader;
 Lcom/android/internal/os/ProcessCpuTracker$1;
+Lcom/android/internal/os/ProcessCpuTracker$FilterStats;
 Lcom/android/internal/os/ProcessCpuTracker$Stats;
 Lcom/android/internal/os/ProcessCpuTracker;
 Lcom/android/internal/os/RailStats;
@@ -29065,6 +31374,7 @@
 Lcom/android/internal/os/RuntimeInit$KillApplicationHandler;
 Lcom/android/internal/os/RuntimeInit$LoggingHandler;
 Lcom/android/internal/os/RuntimeInit$MethodAndArgsCaller;
+Lcom/android/internal/os/RuntimeInit$RuntimeThreadPrioritySetter;
 Lcom/android/internal/os/RuntimeInit;
 Lcom/android/internal/os/SensorPowerCalculator;
 Lcom/android/internal/os/SomeArgs;
@@ -29082,6 +31392,9 @@
 Lcom/android/internal/os/ZygoteSecurityException;
 Lcom/android/internal/os/ZygoteServer$UsapPoolRefillAction;
 Lcom/android/internal/os/ZygoteServer;
+Lcom/android/internal/os/logging/MetricsLoggerWrapper;
+Lcom/android/internal/policy/-$$Lambda$PhoneWindow$9SyKQeTuaYx7qUIMJIr4Lk2OpYw;
+Lcom/android/internal/policy/BackdropFrameRenderer;
 Lcom/android/internal/policy/DecorContext;
 Lcom/android/internal/policy/DecorView$1;
 Lcom/android/internal/policy/DecorView$2;
@@ -29110,9 +31423,11 @@
 Lcom/android/internal/policy/IShortcutService$Stub$Proxy;
 Lcom/android/internal/policy/IShortcutService$Stub;
 Lcom/android/internal/policy/IShortcutService;
+Lcom/android/internal/policy/KeyInterceptionInfo;
 Lcom/android/internal/policy/PhoneFallbackEventHandler;
 Lcom/android/internal/policy/PhoneLayoutInflater;
 Lcom/android/internal/policy/PhoneWindow$1;
+Lcom/android/internal/policy/PhoneWindow$ActionMenuPresenterCallback;
 Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState$1;
 Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;
 Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
@@ -29130,11 +31445,17 @@
 Lcom/android/internal/statusbar/NotificationVisibility$1;
 Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;
 Lcom/android/internal/statusbar/NotificationVisibility;
+Lcom/android/internal/statusbar/RegisterStatusBarResult$1;
+Lcom/android/internal/statusbar/RegisterStatusBarResult;
 Lcom/android/internal/statusbar/StatusBarIcon$1;
 Lcom/android/internal/statusbar/StatusBarIcon;
 Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;
 Lcom/android/internal/telecom/IConnectionService$Stub;
 Lcom/android/internal/telecom/IConnectionService;
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;
+Lcom/android/internal/telecom/IConnectionServiceAdapter;
+Lcom/android/internal/telecom/IInCallAdapter$Stub;
+Lcom/android/internal/telecom/IInCallAdapter;
 Lcom/android/internal/telecom/IInCallService$Stub$Proxy;
 Lcom/android/internal/telecom/IInCallService$Stub;
 Lcom/android/internal/telecom/IInCallService;
@@ -29148,6 +31469,7 @@
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub;
 Lcom/android/internal/telecom/RemoteServiceCallback;
+Lcom/android/internal/telephony/-$$Lambda$CarrierAppUtils$oAca0vwfzY3MLxvgrejL5_ugnfc;
 Lcom/android/internal/telephony/-$$Lambda$MultiSimSettingController$55347QtGjuukX-px3jYZkJd_z3U;
 Lcom/android/internal/telephony/-$$Lambda$MultiSimSettingController$DcLtrTEtdlCd4WOev4Zk79vrSko;
 Lcom/android/internal/telephony/-$$Lambda$MultiSimSettingController$WtGtOenjqxSBoW5BUjT-VlNoSTM;
@@ -29160,6 +31482,7 @@
 Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$ZOtVAnuhxrXl2L906I6eTOentP0;
 Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$bWluhZvk2X-dQ0UidKfdpd0kwuw;
 Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$hh4N6_N4-PPm_vWjCdCRvS8--Cw;
+Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$knEK4mNNOqbx_h4hWVcDSbY5kHE;
 Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$rpyQeO7zACcc5v4krwU9_qRMHL8;
 Lcom/android/internal/telephony/-$$Lambda$PhoneSwitcher$WfAxZbJDpCUxBytiUchQ87aGijQ;
 Lcom/android/internal/telephony/-$$Lambda$RIL$803u4JiCud_JSoDndvAhT13ZZqU;
@@ -29170,6 +31493,8 @@
 Lcom/android/internal/telephony/-$$Lambda$RILConstants$zIAjDPNpW8a5C22QbMmMwM64vD8;
 Lcom/android/internal/telephony/-$$Lambda$RILRequest$VaC9ddQXT8qxCl7rcNKtUadFQoI;
 Lcom/android/internal/telephony/-$$Lambda$RadioIndication$GND6XxOOm1d_Ro76zEUFjA9OrEA;
+Lcom/android/internal/telephony/-$$Lambda$SmsApplication$5KAxbm71Dll9xmT5zeXi0i27A10;
+Lcom/android/internal/telephony/-$$Lambda$SmsApplication$gDx3W-UsTeTFaBSPU-Y_LFPZ9dE;
 Lcom/android/internal/telephony/-$$Lambda$SubscriptionController$Nt_ojdeqo4C2mbuwymYLvwgOLGo;
 Lcom/android/internal/telephony/-$$Lambda$SubscriptionController$VCQsMNqRHpN3RyoXYzh2YUwA2yc;
 Lcom/android/internal/telephony/-$$Lambda$SubscriptionController$u5xE-urXR6ElZ50305_6guo20Fc;
@@ -29187,6 +31512,7 @@
 Lcom/android/internal/telephony/-$$Lambda$TelephonyComponentFactory$InjectedComponents$nLdppNQT1Bv7QyIU3LwAwVD2K60;
 Lcom/android/internal/telephony/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;
 Lcom/android/internal/telephony/-$$Lambda$WWHOcG5P4-jgjzPPgLwm-wN15OM;
+Lcom/android/internal/telephony/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;
 Lcom/android/internal/telephony/ATParseEx;
 Lcom/android/internal/telephony/AppSmsManager;
 Lcom/android/internal/telephony/BaseCommands;
@@ -29228,6 +31554,7 @@
 Lcom/android/internal/telephony/CarrierSignalAgent$1;
 Lcom/android/internal/telephony/CarrierSignalAgent;
 Lcom/android/internal/telephony/CarrierSmsUtils;
+Lcom/android/internal/telephony/CellBroadcastServiceManager;
 Lcom/android/internal/telephony/CellNetworkScanResult$1;
 Lcom/android/internal/telephony/CellNetworkScanResult;
 Lcom/android/internal/telephony/CellularNetworkService$CellularNetworkServiceProvider$1;
@@ -29260,6 +31587,7 @@
 Lcom/android/internal/telephony/ExponentialBackoff$HandlerAdapter;
 Lcom/android/internal/telephony/ExponentialBackoff;
 Lcom/android/internal/telephony/GlobalSettingsHelper;
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
 Lcom/android/internal/telephony/GsmAlphabet;
 Lcom/android/internal/telephony/GsmCdmaCall;
 Lcom/android/internal/telephony/GsmCdmaCallTracker$1;
@@ -29274,7 +31602,10 @@
 Lcom/android/internal/telephony/GsmCdmaPhone;
 Lcom/android/internal/telephony/HalVersion;
 Lcom/android/internal/telephony/HardwareConfig;
+Lcom/android/internal/telephony/HbpcdLookup$MccIdd;
+Lcom/android/internal/telephony/HbpcdLookup$MccLookup;
 Lcom/android/internal/telephony/HbpcdUtils;
+Lcom/android/internal/telephony/HexDump;
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;
 Lcom/android/internal/telephony/ICarrierConfigLoader;
@@ -29293,6 +31624,9 @@
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;
+Lcom/android/internal/telephony/IOns$Stub$Proxy;
+Lcom/android/internal/telephony/IOns$Stub;
+Lcom/android/internal/telephony/IOns;
 Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;
 Lcom/android/internal/telephony/IPhoneStateListener;
@@ -29316,6 +31650,7 @@
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;
 Lcom/android/internal/telephony/ITelephonyRegistry;
+Lcom/android/internal/telephony/IUpdateAvailableNetworksCallback;
 Lcom/android/internal/telephony/IWapPushManager;
 Lcom/android/internal/telephony/IccCard;
 Lcom/android/internal/telephony/IccCardConstants$State;
@@ -29324,6 +31659,7 @@
 Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;
 Lcom/android/internal/telephony/IccProvider;
 Lcom/android/internal/telephony/IccSmsInterfaceManager$1;
+Lcom/android/internal/telephony/IccSmsInterfaceManager$2;
 Lcom/android/internal/telephony/IccSmsInterfaceManager$CdmaBroadcastRangeManager;
 Lcom/android/internal/telephony/IccSmsInterfaceManager$CellBroadcastRangeManager;
 Lcom/android/internal/telephony/IccSmsInterfaceManager;
@@ -29335,6 +31671,7 @@
 Lcom/android/internal/telephony/InboundSmsHandler$1;
 Lcom/android/internal/telephony/InboundSmsHandler$2;
 Lcom/android/internal/telephony/InboundSmsHandler$CarrierServicesSmsFilterCallback;
+Lcom/android/internal/telephony/InboundSmsHandler$CbTestBroadcastReceiver;
 Lcom/android/internal/telephony/InboundSmsHandler$DefaultState;
 Lcom/android/internal/telephony/InboundSmsHandler$DeliveringState;
 Lcom/android/internal/telephony/InboundSmsHandler$IdleState;
@@ -29355,11 +31692,13 @@
 Lcom/android/internal/telephony/LocaleTracker$1;
 Lcom/android/internal/telephony/LocaleTracker;
 Lcom/android/internal/telephony/MccTable$MccEntry;
+Lcom/android/internal/telephony/MccTable$MccMnc;
 Lcom/android/internal/telephony/MccTable;
 Lcom/android/internal/telephony/MmiCode;
 Lcom/android/internal/telephony/MultiSimSettingController$1;
 Lcom/android/internal/telephony/MultiSimSettingController$UpdateDefaultAction;
 Lcom/android/internal/telephony/MultiSimSettingController;
+Lcom/android/internal/telephony/NetworkFactory;
 Lcom/android/internal/telephony/NetworkRegistrationManager$1;
 Lcom/android/internal/telephony/NetworkRegistrationManager$NetworkRegStateCallback;
 Lcom/android/internal/telephony/NetworkRegistrationManager$NetworkServiceConnection;
@@ -29377,7 +31716,10 @@
 Lcom/android/internal/telephony/OperatorInfo$1;
 Lcom/android/internal/telephony/OperatorInfo$State;
 Lcom/android/internal/telephony/OperatorInfo;
+Lcom/android/internal/telephony/Phone$1;
 Lcom/android/internal/telephony/Phone;
+Lcom/android/internal/telephony/PhoneConfigurationManager$ConfigManagerHandler;
+Lcom/android/internal/telephony/PhoneConfigurationManager$MockableInterface;
 Lcom/android/internal/telephony/PhoneConfigurationManager;
 Lcom/android/internal/telephony/PhoneConstantConversions$1;
 Lcom/android/internal/telephony/PhoneConstantConversions;
@@ -29395,6 +31737,7 @@
 Lcom/android/internal/telephony/PhoneSubInfoController;
 Lcom/android/internal/telephony/PhoneSwitcher$1;
 Lcom/android/internal/telephony/PhoneSwitcher$2;
+Lcom/android/internal/telephony/PhoneSwitcher$3;
 Lcom/android/internal/telephony/PhoneSwitcher$DefaultNetworkCallback;
 Lcom/android/internal/telephony/PhoneSwitcher$EmergencyOverrideRequest;
 Lcom/android/internal/telephony/PhoneSwitcher$PhoneState;
@@ -29417,6 +31760,7 @@
 Lcom/android/internal/telephony/RadioResponse;
 Lcom/android/internal/telephony/RatRatcheter$1;
 Lcom/android/internal/telephony/RatRatcheter;
+Lcom/android/internal/telephony/Registrant;
 Lcom/android/internal/telephony/RegistrantList;
 Lcom/android/internal/telephony/RestrictedState;
 Lcom/android/internal/telephony/RetryManager$RetryRec;
@@ -29435,10 +31779,12 @@
 Lcom/android/internal/telephony/SettingsObserver;
 Lcom/android/internal/telephony/SimActivationTracker$1;
 Lcom/android/internal/telephony/SimActivationTracker;
+Lcom/android/internal/telephony/SmsAddress;
 Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
 Lcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;
 Lcom/android/internal/telephony/SmsApplication;
 Lcom/android/internal/telephony/SmsBroadcastUndelivered$1;
+Lcom/android/internal/telephony/SmsBroadcastUndelivered$2;
 Lcom/android/internal/telephony/SmsBroadcastUndelivered$ScanRawTableThread;
 Lcom/android/internal/telephony/SmsBroadcastUndelivered$SmsReferenceKey;
 Lcom/android/internal/telephony/SmsBroadcastUndelivered;
@@ -29446,7 +31792,12 @@
 Lcom/android/internal/telephony/SmsController;
 Lcom/android/internal/telephony/SmsDispatchersController$1;
 Lcom/android/internal/telephony/SmsDispatchersController;
+Lcom/android/internal/telephony/SmsHeader$ConcatRef;
+Lcom/android/internal/telephony/SmsHeader$PortAddrs;
+Lcom/android/internal/telephony/SmsHeader;
+Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;
 Lcom/android/internal/telephony/SmsMessageBase;
+Lcom/android/internal/telephony/SmsNumberUtils$NumberEntry;
 Lcom/android/internal/telephony/SmsNumberUtils;
 Lcom/android/internal/telephony/SmsPermissions;
 Lcom/android/internal/telephony/SmsResponse;
@@ -29455,13 +31806,17 @@
 Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserver;
 Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserverHandler;
 Lcom/android/internal/telephony/SmsUsageMonitor;
+Lcom/android/internal/telephony/SomeArgs;
 Lcom/android/internal/telephony/State;
+Lcom/android/internal/telephony/StateMachine$LogRecords;
+Lcom/android/internal/telephony/StateMachine$SmHandler;
 Lcom/android/internal/telephony/StateMachine;
 Lcom/android/internal/telephony/SubscriptionController;
 Lcom/android/internal/telephony/SubscriptionInfoUpdater$1;
 Lcom/android/internal/telephony/SubscriptionInfoUpdater$UpdateEmbeddedSubsCallback;
 Lcom/android/internal/telephony/SubscriptionInfoUpdater;
 Lcom/android/internal/telephony/TelephonyCapabilities;
+Lcom/android/internal/telephony/TelephonyCommonStatsLog;
 Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents;
 Lcom/android/internal/telephony/TelephonyComponentFactory;
 Lcom/android/internal/telephony/TelephonyDevController;
@@ -29469,7 +31824,9 @@
 Lcom/android/internal/telephony/TelephonyTester$1;
 Lcom/android/internal/telephony/TelephonyTester;
 Lcom/android/internal/telephony/TimeServiceHelper;
+Lcom/android/internal/telephony/TimeUtils;
 Lcom/android/internal/telephony/TimeZoneLookupHelper$CountryResult;
+Lcom/android/internal/telephony/TimeZoneLookupHelper$OffsetResult;
 Lcom/android/internal/telephony/TimeZoneLookupHelper;
 Lcom/android/internal/telephony/UUSInfo;
 Lcom/android/internal/telephony/UiccPhoneBookController;
@@ -29495,6 +31852,8 @@
 Lcom/android/internal/telephony/cat/CatResponseMessage;
 Lcom/android/internal/telephony/cat/CatService$1;
 Lcom/android/internal/telephony/cat/CatService;
+Lcom/android/internal/telephony/cat/CommandDetails$1;
+Lcom/android/internal/telephony/cat/CommandDetails;
 Lcom/android/internal/telephony/cat/CommandParams;
 Lcom/android/internal/telephony/cat/CommandParamsFactory$1;
 Lcom/android/internal/telephony/cat/CommandParamsFactory;
@@ -29513,8 +31872,14 @@
 Lcom/android/internal/telephony/cat/RilMessageDecoder$StateCmdParamsReady;
 Lcom/android/internal/telephony/cat/RilMessageDecoder$StateStart;
 Lcom/android/internal/telephony/cat/RilMessageDecoder;
+Lcom/android/internal/telephony/cat/TextMessage$1;
+Lcom/android/internal/telephony/cat/TextMessage;
+Lcom/android/internal/telephony/cat/ValueObject;
 Lcom/android/internal/telephony/cat/ValueParser;
+Lcom/android/internal/telephony/cdma/-$$Lambda$CdmaInboundSmsHandler$sD3UQ6e4SE9ZbPjDZ9bEr_XRoaA;
 Lcom/android/internal/telephony/cdma/CdmaCallWaitingNotification;
+Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaCbTestBroadcastReceiver;
+Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaScpTestBroadcastReceiver;
 Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler;
 Lcom/android/internal/telephony/cdma/CdmaSMSDispatcher;
 Lcom/android/internal/telephony/cdma/CdmaSmsBroadcastConfigInfo;
@@ -29523,6 +31888,12 @@
 Lcom/android/internal/telephony/cdma/EriManager$EriFile;
 Lcom/android/internal/telephony/cdma/EriManager;
 Lcom/android/internal/telephony/cdma/SmsMessage;
+Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp;
+Lcom/android/internal/telephony/cdma/sms/BearerData;
+Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;
+Lcom/android/internal/telephony/cdma/sms/CdmaSmsSubaddress;
+Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;
+Lcom/android/internal/telephony/cdma/sms/UserData;
 Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData$1;
 Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData$Builder;
 Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData;
@@ -29567,6 +31938,7 @@
 Lcom/android/internal/telephony/dataconnection/DcController$DccDefaultState;
 Lcom/android/internal/telephony/dataconnection/DcController;
 Lcom/android/internal/telephony/dataconnection/DcFailBringUp;
+Lcom/android/internal/telephony/dataconnection/DcNetworkAgent$DcKeepaliveTracker;
 Lcom/android/internal/telephony/dataconnection/DcNetworkAgent;
 Lcom/android/internal/telephony/dataconnection/DcRequest;
 Lcom/android/internal/telephony/dataconnection/DcTesterDeactivateAll$1;
@@ -29578,6 +31950,7 @@
 Lcom/android/internal/telephony/dataconnection/DcTracker$3;
 Lcom/android/internal/telephony/dataconnection/DcTracker$4;
 Lcom/android/internal/telephony/dataconnection/DcTracker$5;
+Lcom/android/internal/telephony/dataconnection/DcTracker$6;
 Lcom/android/internal/telephony/dataconnection/DcTracker$ApnChangeObserver;
 Lcom/android/internal/telephony/dataconnection/DcTracker$DataStallRecoveryHandler;
 Lcom/android/internal/telephony/dataconnection/DcTracker$DctOnSubscriptionsChangedListener;
@@ -29604,6 +31977,7 @@
 Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$11;
 Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$12;
 Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$13;
+Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$14;
 Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$1;
 Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$2;
 Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$3;
@@ -29627,16 +32001,24 @@
 Lcom/android/internal/telephony/euicc/EuiccConnector;
 Lcom/android/internal/telephony/euicc/EuiccController$3;
 Lcom/android/internal/telephony/euicc/EuiccController;
+Lcom/android/internal/telephony/euicc/IEuiccCardController$Stub$Proxy;
 Lcom/android/internal/telephony/euicc/IEuiccCardController$Stub;
 Lcom/android/internal/telephony/euicc/IEuiccCardController;
 Lcom/android/internal/telephony/euicc/IEuiccController$Stub$Proxy;
 Lcom/android/internal/telephony/euicc/IEuiccController$Stub;
 Lcom/android/internal/telephony/euicc/IEuiccController;
+Lcom/android/internal/telephony/euicc/IGetAllProfilesCallback$Stub;
+Lcom/android/internal/telephony/euicc/IGetAllProfilesCallback;
+Lcom/android/internal/telephony/euicc/IGetEuiccInfo1Callback$Stub;
+Lcom/android/internal/telephony/euicc/IGetEuiccInfo1Callback;
+Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler$GsmCbTestBroadcastReceiver;
 Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;
 Lcom/android/internal/telephony/gsm/GsmMmiCode;
 Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;
+Lcom/android/internal/telephony/gsm/GsmSmsAddress;
 Lcom/android/internal/telephony/gsm/SimTlv;
 Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;
+Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;
 Lcom/android/internal/telephony/gsm/SmsMessage;
 Lcom/android/internal/telephony/gsm/SuppServiceNotification;
 Lcom/android/internal/telephony/gsm/UsimDataDownloadHandler;
@@ -29672,6 +32054,11 @@
 Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager$ImsServiceFeatureQuery;
 Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager$Listener;
 Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager;
+Lcom/android/internal/telephony/ims/RcsEventQueryHelper;
+Lcom/android/internal/telephony/ims/RcsMessageController;
+Lcom/android/internal/telephony/ims/RcsMessageQueryHelper;
+Lcom/android/internal/telephony/ims/RcsMessageStoreUtil;
+Lcom/android/internal/telephony/ims/RcsParticipantQueryHelper;
 Lcom/android/internal/telephony/imsphone/-$$Lambda$ImsPhoneCallTracker$QlPVd_3u4_verjHUDnkn6zaSe54;
 Lcom/android/internal/telephony/imsphone/-$$Lambda$ImsPhoneCallTracker$Zw03itjXT6-LrhiYuD-9nKFg2Wg;
 Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$1;
@@ -29685,7 +32072,10 @@
 Lcom/android/internal/telephony/imsphone/ImsPhone$1;
 Lcom/android/internal/telephony/imsphone/ImsPhone$2;
 Lcom/android/internal/telephony/imsphone/ImsPhone$3;
+Lcom/android/internal/telephony/imsphone/ImsPhone$4;
+Lcom/android/internal/telephony/imsphone/ImsPhone$5;
 Lcom/android/internal/telephony/imsphone/ImsPhone$Cf;
+Lcom/android/internal/telephony/imsphone/ImsPhone$ImsDialArgs$Builder;
 Lcom/android/internal/telephony/imsphone/ImsPhone;
 Lcom/android/internal/telephony/imsphone/ImsPhoneBase;
 Lcom/android/internal/telephony/imsphone/ImsPhoneCall;
@@ -29738,6 +32128,7 @@
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatching;
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatchingResult;
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$DataSwitch;
+Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$NetworkCapabilitiesInfo;
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$OnDemandDataSwitch;
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilDeactivateDataCall;
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCall;
@@ -29749,10 +32140,13 @@
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState;
 Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings;
 Lcom/android/internal/telephony/nano/TelephonyProto$Time;
+Lcom/android/internal/telephony/nitz/NewNitzStateMachineImpl;
 Lcom/android/internal/telephony/protobuf/nano/CodedInputByteBufferNano;
 Lcom/android/internal/telephony/protobuf/nano/CodedOutputByteBufferNano$OutOfSpaceException;
 Lcom/android/internal/telephony/protobuf/nano/CodedOutputByteBufferNano;
 Lcom/android/internal/telephony/protobuf/nano/ExtendableMessageNano;
+Lcom/android/internal/telephony/protobuf/nano/FieldArray;
+Lcom/android/internal/telephony/protobuf/nano/FieldData;
 Lcom/android/internal/telephony/protobuf/nano/InternalNano;
 Lcom/android/internal/telephony/protobuf/nano/InvalidProtocolBufferNanoException;
 Lcom/android/internal/telephony/protobuf/nano/MessageNano;
@@ -29840,14 +32234,21 @@
 Lcom/android/internal/telephony/uicc/asn1/TagNotFoundException;
 Lcom/android/internal/telephony/uicc/euicc/EuiccCard;
 Lcom/android/internal/telephony/uicc/euicc/EuiccSpecVersion;
+Lcom/android/internal/telephony/util/ArrayUtils;
+Lcom/android/internal/telephony/util/HandlerExecutor;
 Lcom/android/internal/telephony/util/NotificationChannelController$1;
 Lcom/android/internal/telephony/util/NotificationChannelController;
+Lcom/android/internal/telephony/util/RemoteCallbackListExt;
 Lcom/android/internal/telephony/util/SMSDispatcherUtil;
 Lcom/android/internal/telephony/util/TelephonyUtils;
 Lcom/android/internal/telephony/util/VoicemailNotificationSettingsUtil;
+Lcom/android/internal/telephony/util/XmlUtils;
 Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;
 Lcom/android/internal/textservice/ISpellCheckerService$Stub;
 Lcom/android/internal/textservice/ISpellCheckerService;
+Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy;
+Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;
+Lcom/android/internal/textservice/ISpellCheckerServiceCallback;
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub;
 Lcom/android/internal/textservice/ISpellCheckerSession;
@@ -29861,15 +32262,18 @@
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub;
 Lcom/android/internal/textservice/ITextServicesSessionListener;
 Lcom/android/internal/transition/EpicenterTranslateClipReveal;
+Lcom/android/internal/usb/DumpUtils;
 Lcom/android/internal/util/-$$Lambda$DumpUtils$D1OlZP6xIpu72ypnJd0fzx0wd6I;
 Lcom/android/internal/util/-$$Lambda$DumpUtils$X8irOs5hfloCKy89_l1HRA1QeG0;
 Lcom/android/internal/util/-$$Lambda$DumpUtils$vCLO_0ezRxkpSERUWCFrJ0ph5jg;
 Lcom/android/internal/util/-$$Lambda$FunctionalUtils$koCSI8D7Nu5vOJTVTEj0m3leo_U;
 Lcom/android/internal/util/-$$Lambda$JwOUSWW2-Jzu15y4Kn4JuPh8tWM;
+Lcom/android/internal/util/-$$Lambda$ProviderAccessStats$9AhC6lKURctNKuYjVd-wu7jn6_c;
 Lcom/android/internal/util/-$$Lambda$TCbPpgWlKJUHZgFKCczglAvxLfw;
 Lcom/android/internal/util/-$$Lambda$eRa1rlfDk6Og2yFeXGHqUGPzRF0;
 Lcom/android/internal/util/-$$Lambda$grRTg3idX3yJe9Zyx-tmLBiD1DM;
 Lcom/android/internal/util/-$$Lambda$kVylv1rl9MOSbHFZoVyK5dl1kfY;
+Lcom/android/internal/util/AnnotationValidations;
 Lcom/android/internal/util/ArrayUtils;
 Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
 Lcom/android/internal/util/AsyncChannel$DeathMonitor;
@@ -29877,6 +32281,7 @@
 Lcom/android/internal/util/AsyncChannel$SyncMessenger;
 Lcom/android/internal/util/AsyncChannel;
 Lcom/android/internal/util/BitUtils;
+Lcom/android/internal/util/BitwiseInputStream$AccessException;
 Lcom/android/internal/util/CollectionUtils;
 Lcom/android/internal/util/ConcurrentUtils$1$1;
 Lcom/android/internal/util/ConcurrentUtils$1;
@@ -29884,6 +32289,7 @@
 Lcom/android/internal/util/ConcurrentUtils;
 Lcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;
 Lcom/android/internal/util/ContrastColorUtil;
+Lcom/android/internal/util/DumpUtils$1;
 Lcom/android/internal/util/DumpUtils$Dump;
 Lcom/android/internal/util/DumpUtils;
 Lcom/android/internal/util/ExponentiallyBucketedHistogram;
@@ -29896,7 +32302,10 @@
 Lcom/android/internal/util/FileRotator$Rewriter;
 Lcom/android/internal/util/FileRotator$Writer;
 Lcom/android/internal/util/FileRotator;
+Lcom/android/internal/util/FrameworkStatsLog;
+Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;
 Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;
+Lcom/android/internal/util/FunctionalUtils$ThrowingFunction;
 Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;
 Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;
 Lcom/android/internal/util/FunctionalUtils;
@@ -29916,12 +32325,19 @@
 Lcom/android/internal/util/NotificationMessagingUtil$1;
 Lcom/android/internal/util/NotificationMessagingUtil;
 Lcom/android/internal/util/ObjectUtils;
+Lcom/android/internal/util/Parcelling$Cache;
+Lcom/android/internal/util/Parcelling;
 Lcom/android/internal/util/ParseUtils;
 Lcom/android/internal/util/Preconditions;
 Lcom/android/internal/util/ProcFileReader;
 Lcom/android/internal/util/ProgressReporter;
+Lcom/android/internal/util/ProviderAccessStats$PerThreadData;
+Lcom/android/internal/util/ProviderAccessStats;
 Lcom/android/internal/util/RingBuffer;
 Lcom/android/internal/util/RingBufferIndices;
+Lcom/android/internal/util/ScreenshotHelper$1;
+Lcom/android/internal/util/ScreenshotHelper$2$1;
+Lcom/android/internal/util/ScreenshotHelper$2;
 Lcom/android/internal/util/ScreenshotHelper;
 Lcom/android/internal/util/StatLogger;
 Lcom/android/internal/util/State;
@@ -29942,8 +32358,14 @@
 Lcom/android/internal/util/XmlUtils$ReadMapCallback;
 Lcom/android/internal/util/XmlUtils$WriteMapCallback;
 Lcom/android/internal/util/XmlUtils;
+Lcom/android/internal/util/dump/DualDumpOutputStream$DumpField;
+Lcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;
+Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;
+Lcom/android/internal/util/dump/DualDumpOutputStream;
+Lcom/android/internal/util/dump/DumpUtils;
 Lcom/android/internal/util/function/DecConsumer;
 Lcom/android/internal/util/function/DecFunction;
+Lcom/android/internal/util/function/DecPredicate;
 Lcom/android/internal/util/function/HeptConsumer;
 Lcom/android/internal/util/function/HeptFunction;
 Lcom/android/internal/util/function/HeptPredicate;
@@ -29967,11 +32389,13 @@
 Lcom/android/internal/util/function/TriPredicate;
 Lcom/android/internal/util/function/UndecConsumer;
 Lcom/android/internal/util/function/UndecFunction;
+Lcom/android/internal/util/function/UndecPredicate;
 Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;
 Lcom/android/internal/util/function/pooled/OmniFunction;
 Lcom/android/internal/util/function/pooled/PooledConsumer;
 Lcom/android/internal/util/function/pooled/PooledFunction;
 Lcom/android/internal/util/function/pooled/PooledLambda;
+Lcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType$ReturnType;
 Lcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;
 Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;
 Lcom/android/internal/util/function/pooled/PooledLambdaImpl;
@@ -29982,7 +32406,12 @@
 Lcom/android/internal/util/function/pooled/PooledSupplier$OfLong;
 Lcom/android/internal/util/function/pooled/PooledSupplier;
 Lcom/android/internal/view/ActionBarPolicy;
+Lcom/android/internal/view/AppearanceRegion$1;
+Lcom/android/internal/view/AppearanceRegion;
+Lcom/android/internal/view/BaseIWindow;
 Lcom/android/internal/view/BaseSurfaceHolder;
+Lcom/android/internal/view/IInlineSuggestionsRequestCallback$Stub;
+Lcom/android/internal/view/IInlineSuggestionsRequestCallback;
 Lcom/android/internal/view/IInputConnectionWrapper$MyHandler;
 Lcom/android/internal/view/IInputConnectionWrapper;
 Lcom/android/internal/view/IInputContext$Stub$Proxy;
@@ -30013,9 +32442,12 @@
 Lcom/android/internal/view/OneShotPreDrawListener;
 Lcom/android/internal/view/RootViewSurfaceTaker;
 Lcom/android/internal/view/RotationPolicy$1;
+Lcom/android/internal/view/RotationPolicy$RotationPolicyListener$1;
+Lcom/android/internal/view/RotationPolicy$RotationPolicyListener;
 Lcom/android/internal/view/RotationPolicy;
 Lcom/android/internal/view/SurfaceCallbackHelper$1;
 Lcom/android/internal/view/SurfaceCallbackHelper;
+Lcom/android/internal/view/TooltipPopup;
 Lcom/android/internal/view/WindowManagerPolicyThread;
 Lcom/android/internal/view/animation/FallbackLUTInterpolator;
 Lcom/android/internal/view/animation/HasNativeInterpolator;
@@ -30026,6 +32458,9 @@
 Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback;
 Lcom/android/internal/view/menu/ActionMenuItemView;
 Lcom/android/internal/view/menu/BaseMenuPresenter;
+Lcom/android/internal/view/menu/ContextMenuBuilder;
+Lcom/android/internal/view/menu/IconMenuPresenter;
+Lcom/android/internal/view/menu/ListMenuPresenter;
 Lcom/android/internal/view/menu/MenuBuilder$Callback;
 Lcom/android/internal/view/menu/MenuBuilder$ItemInvoker;
 Lcom/android/internal/view/menu/MenuBuilder;
@@ -30038,6 +32473,7 @@
 Lcom/android/internal/view/menu/MenuView$ItemView;
 Lcom/android/internal/view/menu/MenuView;
 Lcom/android/internal/view/menu/ShowableListMenu;
+Lcom/android/internal/widget/-$$Lambda$FloatingToolbar$7-enOzxeypZYfdFYr1HzBLfj47k;
 Lcom/android/internal/widget/AbsActionBarView$VisibilityAnimListener;
 Lcom/android/internal/widget/AbsActionBarView;
 Lcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;
@@ -30057,20 +32493,31 @@
 Lcom/android/internal/widget/DecorToolbar;
 Lcom/android/internal/widget/DialogTitle;
 Lcom/android/internal/widget/EditableInputConnection;
+Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;
+Lcom/android/internal/widget/FloatingToolbar;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback;
 Lcom/android/internal/widget/ILockSettings$Stub$Proxy;
 Lcom/android/internal/widget/ILockSettings$Stub;
 Lcom/android/internal/widget/ILockSettings;
+Lcom/android/internal/widget/LockPatternUtils$2;
+Lcom/android/internal/widget/LockPatternUtils$RequestThrottledException;
 Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;
 Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;
 Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;
 Lcom/android/internal/widget/LockPatternUtils;
+Lcom/android/internal/widget/LockPatternView$Cell;
 Lcom/android/internal/widget/LockSettingsInternal;
+Lcom/android/internal/widget/LockscreenCredential$1;
+Lcom/android/internal/widget/LockscreenCredential;
+Lcom/android/internal/widget/PasswordValidationError;
 Lcom/android/internal/widget/ScrollBarUtils;
+Lcom/android/internal/widget/ScrollingTabContainerView;
 Lcom/android/internal/widget/ToolbarWidgetWrapper$1;
 Lcom/android/internal/widget/ToolbarWidgetWrapper;
+Lcom/android/internal/widget/VerifyCredentialResponse$1;
+Lcom/android/internal/widget/VerifyCredentialResponse;
 Lcom/android/okhttp/Address;
 Lcom/android/okhttp/AndroidShimResponseCache;
 Lcom/android/okhttp/Authenticator;
@@ -30170,7 +32617,9 @@
 Lcom/android/okhttp/internal/tls/OkHostnameVerifier;
 Lcom/android/okhttp/internal/tls/RealTrustRootIndex;
 Lcom/android/okhttp/internal/tls/TrustRootIndex;
+Lcom/android/okhttp/internalandroidapi/AndroidResponseCacheAdapter;
 Lcom/android/okhttp/internalandroidapi/Dns;
+Lcom/android/okhttp/internalandroidapi/HasCacheHolder$CacheHolder;
 Lcom/android/okhttp/internalandroidapi/HasCacheHolder;
 Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;
 Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;
@@ -30203,6 +32652,7 @@
 Lcom/android/okhttp/okio/Timeout;
 Lcom/android/okhttp/okio/Util;
 Lcom/android/org/bouncycastle/asn1/ASN1BitString;
+Lcom/android/org/bouncycastle/asn1/ASN1Choice;
 Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
 Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
 Lcom/android/org/bouncycastle/asn1/ASN1InputStream;
@@ -30220,6 +32670,7 @@
 Lcom/android/org/bouncycastle/asn1/BERTags;
 Lcom/android/org/bouncycastle/asn1/DERBitString;
 Lcom/android/org/bouncycastle/asn1/DERFactory;
+Lcom/android/org/bouncycastle/asn1/DERInteger;
 Lcom/android/org/bouncycastle/asn1/DERNull;
 Lcom/android/org/bouncycastle/asn1/DEROutputStream;
 Lcom/android/org/bouncycastle/asn1/DERSequence;
@@ -30238,8 +32689,12 @@
 Lcom/android/org/bouncycastle/asn1/oiw/OIWObjectIdentifiers;
 Lcom/android/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers;
 Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;
+Lcom/android/org/bouncycastle/asn1/x509/Certificate;
 Lcom/android/org/bouncycastle/asn1/x509/DSAParameter;
 Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
+Lcom/android/org/bouncycastle/asn1/x509/Time;
+Lcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;
+Lcom/android/org/bouncycastle/asn1/x509/X509Name;
 Lcom/android/org/bouncycastle/asn1/x509/X509ObjectIdentifiers;
 Lcom/android/org/bouncycastle/asn1/x9/X9ECParameters;
 Lcom/android/org/bouncycastle/asn1/x9/X9ObjectIdentifiers;
@@ -30364,11 +32819,14 @@
 Lcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;
 Lcom/android/org/bouncycastle/jcajce/util/JcaJceHelper;
 Lcom/android/org/bouncycastle/jcajce/util/ProviderJcaJceHelper;
+Lcom/android/org/bouncycastle/jce/X509Principal;
 Lcom/android/org/bouncycastle/jce/interfaces/BCKeyStore;
+Lcom/android/org/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
 Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider$1;
 Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;
 Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProviderConfiguration;
 Lcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;
+Lcom/android/org/bouncycastle/jce/provider/X509CertificateObject;
 Lcom/android/org/bouncycastle/jce/spec/ECKeySpec;
 Lcom/android/org/bouncycastle/jce/spec/ECPublicKeySpec;
 Lcom/android/org/bouncycastle/util/Arrays;
@@ -30384,6 +32842,8 @@
 Lcom/android/org/bouncycastle/util/encoders/Hex;
 Lcom/android/org/bouncycastle/util/encoders/HexEncoder;
 Lcom/android/org/bouncycastle/util/io/Streams;
+Lcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;
+Lcom/android/org/kxml2/io/KXmlParser$ContentSource;
 Lcom/android/org/kxml2/io/KXmlParser$ValueContext;
 Lcom/android/org/kxml2/io/KXmlParser;
 Lcom/android/org/kxml2/io/KXmlSerializer;
@@ -30415,8 +32875,22 @@
 Lcom/android/server/backup/PreferredActivityBackupHelper;
 Lcom/android/server/backup/ShortcutBackupHelper;
 Lcom/android/server/backup/SliceBackupHelper;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;
 Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;
 Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;
+Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;
+Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;
 Lcom/android/server/net/BaseNetdEventCallback;
 Lcom/android/server/net/BaseNetworkObserver;
 Lcom/android/server/sip/SipService$1;
@@ -30430,6 +32904,8 @@
 Lcom/android/server/sip/SipWakeLock;
 Lcom/android/server/sip/SipWakeupTimer$MyEventComparator;
 Lcom/android/server/sip/SipWakeupTimer;
+Lcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener;
+Lcom/android/server/usage/AppStandbyInternal;
 Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
 Lcom/android/telephony/Rlog;
 Lcom/google/android/collect/Lists;
@@ -30444,11 +32920,19 @@
 Lcom/google/android/mms/MmsException;
 Lcom/google/android/rappor/Encoder;
 Lcom/google/android/rappor/HmacDrbg;
+Lcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;
 Lcom/google/android/textclassifier/ActionsSuggestionsModel$Conversation;
 Lcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;
 Lcom/google/android/textclassifier/ActionsSuggestionsModel;
+Lcom/google/android/textclassifier/AnnotatorModel$AnnotatedSpan;
+Lcom/google/android/textclassifier/AnnotatorModel$AnnotationOptions;
+Lcom/google/android/textclassifier/AnnotatorModel$AnnotationUsecase;
+Lcom/google/android/textclassifier/AnnotatorModel$ClassificationResult;
 Lcom/google/android/textclassifier/AnnotatorModel;
+Lcom/google/android/textclassifier/LangIdModel$LanguageResult;
 Lcom/google/android/textclassifier/LangIdModel;
+Lcom/google/android/textclassifier/NamedVariant;
+Lcom/google/android/textclassifier/RemoteActionTemplate;
 Lcom/sun/security/cert/internal/x509/X509V1CertImpl;
 Ldalvik/annotation/optimization/CriticalNative;
 Ldalvik/annotation/optimization/FastNative;
@@ -30485,6 +32969,7 @@
 Ldalvik/system/RuntimeHooks;
 Ldalvik/system/SocketTagger$1;
 Ldalvik/system/SocketTagger;
+Ldalvik/system/ThreadPrioritySetter;
 Ldalvik/system/VMDebug;
 Ldalvik/system/VMRuntime$HiddenApiUsageLogger;
 Ldalvik/system/VMRuntime;
@@ -30567,6 +33052,7 @@
 Ljava/io/ObjectStreamConstants;
 Ljava/io/ObjectStreamException;
 Ljava/io/ObjectStreamField;
+Ljava/io/OptionalDataException;
 Ljava/io/OutputStream;
 Ljava/io/OutputStreamWriter;
 Ljava/io/PrintStream;
@@ -30582,6 +33068,7 @@
 Ljava/io/StreamCorruptedException;
 Ljava/io/StringReader;
 Ljava/io/StringWriter;
+Ljava/io/UTFDataFormatException;
 Ljava/io/UncheckedIOException;
 Ljava/io/UnixFileSystem;
 Ljava/io/UnsupportedEncodingException;
@@ -30613,6 +33100,7 @@
 Ljava/lang/Class$Caches;
 Ljava/lang/Class;
 Ljava/lang/ClassCastException;
+Ljava/lang/ClassFormatError;
 Ljava/lang/ClassLoader$SystemClassLoader;
 Ljava/lang/ClassLoader;
 Ljava/lang/ClassNotFoundException;
@@ -30644,6 +33132,7 @@
 Ljava/lang/IncompatibleClassChangeError;
 Ljava/lang/IndexOutOfBoundsException;
 Ljava/lang/InheritableThreadLocal;
+Ljava/lang/InstantiationError;
 Ljava/lang/InstantiationException;
 Ljava/lang/Integer$IntegerCache;
 Ljava/lang/Integer;
@@ -30802,6 +33291,7 @@
 Ljava/lang/reflect/Field;
 Ljava/lang/reflect/GenericArrayType;
 Ljava/lang/reflect/GenericDeclaration;
+Ljava/lang/reflect/GenericSignatureFormatError;
 Ljava/lang/reflect/InvocationHandler;
 Ljava/lang/reflect/InvocationTargetException;
 Ljava/lang/reflect/MalformedParametersException;
@@ -30842,6 +33332,8 @@
 Ljava/net/AddressCache$AddressCacheEntry;
 Ljava/net/AddressCache$AddressCacheKey;
 Ljava/net/AddressCache;
+Ljava/net/Authenticator$RequestorType;
+Ljava/net/Authenticator;
 Ljava/net/ConnectException;
 Ljava/net/CookieHandler;
 Ljava/net/CookieManager$CookiePathComparator;
@@ -30870,6 +33362,7 @@
 Ljava/net/HttpCookie$9;
 Ljava/net/HttpCookie$CookieAttributeAssignor;
 Ljava/net/HttpCookie;
+Ljava/net/HttpRetryException;
 Ljava/net/HttpURLConnection;
 Ljava/net/IDN;
 Ljava/net/InMemoryCookieStore;
@@ -30892,6 +33385,7 @@
 Ljava/net/NetworkInterface;
 Ljava/net/NoRouteToHostException;
 Ljava/net/Parts;
+Ljava/net/PasswordAuthentication;
 Ljava/net/PlainDatagramSocketImpl;
 Ljava/net/PlainSocketImpl;
 Ljava/net/PortUnreachableException;
@@ -30909,6 +33403,7 @@
 Ljava/net/SocketAddress;
 Ljava/net/SocketException;
 Ljava/net/SocketImpl;
+Ljava/net/SocketImplFactory;
 Ljava/net/SocketInputStream;
 Ljava/net/SocketOptions;
 Ljava/net/SocketOutputStream;
@@ -30993,6 +33488,7 @@
 Ljava/nio/charset/Charset;
 Ljava/nio/charset/CharsetDecoder;
 Ljava/nio/charset/CharsetEncoder;
+Ljava/nio/charset/CoderMalfunctionError;
 Ljava/nio/charset/CoderResult$1;
 Ljava/nio/charset/CoderResult$2;
 Ljava/nio/charset/CoderResult$Cache;
@@ -31002,6 +33498,7 @@
 Ljava/nio/charset/StandardCharsets;
 Ljava/nio/charset/UnsupportedCharsetException;
 Ljava/nio/file/AccessMode;
+Ljava/nio/file/CopyMoveHelper;
 Ljava/nio/file/CopyOption;
 Ljava/nio/file/DirectoryStream$Filter;
 Ljava/nio/file/DirectoryStream;
@@ -31013,6 +33510,7 @@
 Ljava/nio/file/FileSystems;
 Ljava/nio/file/Files$AcceptAllFilter;
 Ljava/nio/file/Files;
+Ljava/nio/file/InvalidPathException;
 Ljava/nio/file/LinkOption;
 Ljava/nio/file/NoSuchFileException;
 Ljava/nio/file/OpenOption;
@@ -31059,6 +33557,8 @@
 Ljava/security/KeyStore$PasswordProtection;
 Ljava/security/KeyStore$PrivateKeyEntry;
 Ljava/security/KeyStore$ProtectionParameter;
+Ljava/security/KeyStore$SecretKeyEntry;
+Ljava/security/KeyStore$TrustedCertificateEntry;
 Ljava/security/KeyStore;
 Ljava/security/KeyStoreException;
 Ljava/security/KeyStoreSpi;
@@ -31147,6 +33647,7 @@
 Ljava/security/spec/DSAPublicKeySpec;
 Ljava/security/spec/ECField;
 Ljava/security/spec/ECFieldFp;
+Ljava/security/spec/ECGenParameterSpec;
 Ljava/security/spec/ECParameterSpec;
 Ljava/security/spec/ECPoint;
 Ljava/security/spec/ECPrivateKeySpec;
@@ -31159,6 +33660,7 @@
 Ljava/security/spec/MGF1ParameterSpec;
 Ljava/security/spec/PKCS8EncodedKeySpec;
 Ljava/security/spec/PSSParameterSpec;
+Ljava/security/spec/RSAKeyGenParameterSpec;
 Ljava/security/spec/RSAPrivateCrtKeySpec;
 Ljava/security/spec/RSAPrivateKeySpec;
 Ljava/security/spec/RSAPublicKeySpec;
@@ -31172,6 +33674,7 @@
 Ljava/text/BreakIterator;
 Ljava/text/CalendarBuilder;
 Ljava/text/CharacterIterator;
+Ljava/text/CollationKey;
 Ljava/text/Collator;
 Ljava/text/DateFormat$Field;
 Ljava/text/DateFormat;
@@ -31304,6 +33807,9 @@
 Ljava/util/AbstractList$1;
 Ljava/util/AbstractList$Itr;
 Ljava/util/AbstractList$ListItr;
+Ljava/util/AbstractList$RandomAccessSpliterator;
+Ljava/util/AbstractList$RandomAccessSubList;
+Ljava/util/AbstractList$SubList;
 Ljava/util/AbstractList;
 Ljava/util/AbstractMap$1;
 Ljava/util/AbstractMap$2;
@@ -31406,6 +33912,7 @@
 Ljava/util/Deque;
 Ljava/util/Dictionary;
 Ljava/util/DualPivotQuicksort;
+Ljava/util/DuplicateFormatFlagsException;
 Ljava/util/EnumMap$1;
 Ljava/util/EnumMap$EntryIterator$Entry;
 Ljava/util/EnumMap$EntryIterator;
@@ -31421,6 +33928,7 @@
 Ljava/util/Enumeration;
 Ljava/util/EventListener;
 Ljava/util/EventObject;
+Ljava/util/FormatFlagsConversionMismatchException;
 Ljava/util/Formattable;
 Ljava/util/Formatter$Conversion;
 Ljava/util/Formatter$DateTime;
@@ -31462,10 +33970,26 @@
 Ljava/util/IdentityHashMap$Values;
 Ljava/util/IdentityHashMap;
 Ljava/util/IllegalFormatException;
+Ljava/util/IllegalFormatPrecisionException;
 Ljava/util/IllformedLocaleException;
+Ljava/util/ImmutableCollections$AbstractImmutableList;
+Ljava/util/ImmutableCollections$AbstractImmutableMap;
+Ljava/util/ImmutableCollections$AbstractImmutableSet;
+Ljava/util/ImmutableCollections$List0;
+Ljava/util/ImmutableCollections$List1;
+Ljava/util/ImmutableCollections$List2;
+Ljava/util/ImmutableCollections$ListN;
+Ljava/util/ImmutableCollections$Map0;
+Ljava/util/ImmutableCollections$Map1;
+Ljava/util/ImmutableCollections$MapN;
+Ljava/util/ImmutableCollections$Set0;
+Ljava/util/ImmutableCollections$Set1;
+Ljava/util/ImmutableCollections$Set2;
+Ljava/util/ImmutableCollections$SetN;
 Ljava/util/Iterator;
 Ljava/util/JumboEnumSet$EnumSetIterator;
 Ljava/util/JumboEnumSet;
+Ljava/util/KeyValueHolder;
 Ljava/util/LinkedHashMap$LinkedEntryIterator;
 Ljava/util/LinkedHashMap$LinkedEntrySet;
 Ljava/util/LinkedHashMap$LinkedHashIterator;
@@ -31493,6 +34017,7 @@
 Ljava/util/Map$Entry;
 Ljava/util/Map;
 Ljava/util/MissingFormatArgumentException;
+Ljava/util/MissingFormatWidthException;
 Ljava/util/MissingResourceException;
 Ljava/util/NavigableMap;
 Ljava/util/NavigableSet;
@@ -31512,6 +34037,7 @@
 Ljava/util/Queue;
 Ljava/util/Random;
 Ljava/util/RandomAccess;
+Ljava/util/RandomAccessSubList;
 Ljava/util/RegularEnumSet$EnumSetIterator;
 Ljava/util/RegularEnumSet;
 Ljava/util/ResourceBundle$1;
@@ -31520,6 +34046,7 @@
 Ljava/util/ResourceBundle$CacheKeyReference;
 Ljava/util/ResourceBundle$Control$1;
 Ljava/util/ResourceBundle$Control$CandidateListCache;
+Ljava/util/ResourceBundle$Control;
 Ljava/util/ResourceBundle$LoaderReference;
 Ljava/util/ResourceBundle;
 Ljava/util/Scanner$1;
@@ -31549,6 +34076,8 @@
 Ljava/util/Stack;
 Ljava/util/StringJoiner;
 Ljava/util/StringTokenizer;
+Ljava/util/SubList$1;
+Ljava/util/SubList;
 Ljava/util/TaskQueue;
 Ljava/util/TimSort;
 Ljava/util/TimeZone;
@@ -31576,6 +34105,7 @@
 Ljava/util/TreeSet;
 Ljava/util/UUID$Holder;
 Ljava/util/UUID;
+Ljava/util/UnknownFormatConversionException;
 Ljava/util/Vector$1;
 Ljava/util/Vector$Itr;
 Ljava/util/Vector;
@@ -31599,6 +34129,9 @@
 Ljava/util/concurrent/CompletableFuture$AltResult;
 Ljava/util/concurrent/CompletableFuture$AsynchronousCompletionTask;
 Ljava/util/concurrent/CompletableFuture$Completion;
+Ljava/util/concurrent/CompletableFuture$Signaller;
+Ljava/util/concurrent/CompletableFuture$UniCompletion;
+Ljava/util/concurrent/CompletableFuture$UniWhenComplete;
 Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletionStage;
 Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;
@@ -31645,6 +34178,7 @@
 Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;
 Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;
 Ljava/util/concurrent/ConcurrentHashMap$Segment;
+Ljava/util/concurrent/ConcurrentHashMap$TableStack;
 Ljava/util/concurrent/ConcurrentHashMap$Traverser;
 Ljava/util/concurrent/ConcurrentHashMap$TreeBin;
 Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
@@ -31691,6 +34225,7 @@
 Ljava/util/concurrent/ForkJoinPool;
 Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
 Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinWorkerThread;
 Ljava/util/concurrent/Future;
 Ljava/util/concurrent/FutureTask$WaitNode;
 Ljava/util/concurrent/FutureTask;
@@ -31779,6 +34314,7 @@
 Ljava/util/function/BiFunction;
 Ljava/util/function/BiPredicate;
 Ljava/util/function/BinaryOperator;
+Ljava/util/function/BooleanSupplier;
 Ljava/util/function/Consumer;
 Ljava/util/function/DoubleBinaryOperator;
 Ljava/util/function/DoubleSupplier;
@@ -31837,6 +34373,7 @@
 Ljava/util/logging/LogRecord;
 Ljava/util/logging/Logger$1;
 Ljava/util/logging/Logger$LoggerBundle;
+Ljava/util/logging/Logger$SystemLoggerHelper$1;
 Ljava/util/logging/Logger$SystemLoggerHelper;
 Ljava/util/logging/Logger;
 Ljava/util/logging/LoggingPermission;
@@ -31997,11 +34534,14 @@
 Ljava/util/zip/ZipCoder;
 Ljava/util/zip/ZipConstants;
 Ljava/util/zip/ZipEntry;
+Ljava/util/zip/ZipError;
 Ljava/util/zip/ZipException;
 Ljava/util/zip/ZipFile$ZipEntryIterator;
 Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;
 Ljava/util/zip/ZipFile$ZipFileInputStream;
 Ljava/util/zip/ZipFile;
+Ljava/util/zip/ZipInputStream;
+Ljava/util/zip/ZipOutputStream;
 Ljava/util/zip/ZipUtils;
 Ljavax/crypto/AEADBadTagException;
 Ljavax/crypto/BadPaddingException;
@@ -32013,6 +34553,7 @@
 Ljavax/crypto/Cipher$SpiAndProviderUpdater;
 Ljavax/crypto/Cipher$Transform;
 Ljavax/crypto/Cipher;
+Ljavax/crypto/CipherOutputStream;
 Ljavax/crypto/CipherSpi;
 Ljavax/crypto/IllegalBlockSizeException;
 Ljavax/crypto/JceSecurity;
@@ -32062,10 +34603,13 @@
 Ljavax/net/ssl/KeyManagerFactorySpi;
 Ljavax/net/ssl/ManagerFactoryParameters;
 Ljavax/net/ssl/SNIHostName;
+Ljavax/net/ssl/SNIMatcher;
 Ljavax/net/ssl/SNIServerName;
 Ljavax/net/ssl/SSLContext;
 Ljavax/net/ssl/SSLContextSpi;
 Ljavax/net/ssl/SSLEngine;
+Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
+Ljavax/net/ssl/SSLEngineResult$Status;
 Ljavax/net/ssl/SSLEngineResult;
 Ljavax/net/ssl/SSLException;
 Ljavax/net/ssl/SSLHandshakeException;
@@ -32102,6 +34646,7 @@
 Ljavax/xml/parsers/ParserConfigurationException;
 Ljavax/xml/parsers/SAXParser;
 Ljavax/xml/parsers/SAXParserFactory;
+Ljdk/internal/util/Preconditions;
 Llibcore/content/type/-$$Lambda$MimeMap$xJ95jeANwfbnj45hvSUmlPtZWWg;
 Llibcore/content/type/MimeMap$MemoizingSupplier;
 Llibcore/content/type/MimeMap;
@@ -32161,11 +34706,18 @@
 Llibcore/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;
 Llibcore/timezone/TimeZoneFinder$TimeZonesProcessor;
 Llibcore/timezone/TimeZoneFinder;
+Llibcore/timezone/ZoneInfoDB$1;
+Llibcore/timezone/ZoneInfoDB$TzData$1;
+Llibcore/timezone/ZoneInfoDB$TzData;
+Llibcore/timezone/ZoneInfoDB;
+Llibcore/timezone/ZoneInfoDb$1;
+Llibcore/timezone/ZoneInfoDb;
 Llibcore/util/ArrayUtils;
 Llibcore/util/BasicLruCache;
 Llibcore/util/CharsetUtils;
 Llibcore/util/CollectionUtils;
 Llibcore/util/EmptyArray;
+Llibcore/util/FP16;
 Llibcore/util/HexEncoding;
 Llibcore/util/NativeAllocationRegistry$CleanerRunner;
 Llibcore/util/NativeAllocationRegistry$CleanerThunk;
@@ -32200,12 +34752,14 @@
 Lorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;
 Lorg/apache/harmony/xml/parsers/SAXParserImpl;
 Lorg/apache/http/conn/ConnectTimeoutException;
+Lorg/apache/http/conn/scheme/HostNameResolver;
 Lorg/apache/http/conn/scheme/LayeredSocketFactory;
 Lorg/apache/http/conn/scheme/SocketFactory;
 Lorg/apache/http/conn/ssl/AbstractVerifier;
 Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier;
 Lorg/apache/http/conn/ssl/AndroidDistinguishedNameParser;
 Lorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier;
+Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder;
 Lorg/apache/http/conn/ssl/SSLSocketFactory;
 Lorg/apache/http/conn/ssl/StrictHostnameVerifier;
 Lorg/apache/http/conn/ssl/X509HostnameVerifier;
@@ -32265,6 +34819,7 @@
 Lsun/invoke/util/Wrapper$Format;
 Lsun/invoke/util/Wrapper;
 Lsun/misc/ASCIICaseInsensitiveComparator;
+Lsun/misc/Cleaner$1;
 Lsun/misc/Cleaner;
 Lsun/misc/CompoundEnumeration;
 Lsun/misc/FDBigInteger;
@@ -32344,6 +34899,7 @@
 Lsun/nio/ch/SocketDispatcher;
 Lsun/nio/ch/Util$1;
 Lsun/nio/ch/Util$2;
+Lsun/nio/ch/Util$3;
 Lsun/nio/ch/Util$BufferCache;
 Lsun/nio/ch/Util;
 Lsun/nio/cs/ArrayDecoder;
@@ -32416,6 +34972,7 @@
 Lsun/security/provider/certpath/KeyChecker;
 Lsun/security/provider/certpath/OCSP$RevocationStatus$CertStatus;
 Lsun/security/provider/certpath/OCSP$RevocationStatus;
+Lsun/security/provider/certpath/OCSPResponse$1;
 Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
 Lsun/security/provider/certpath/OCSPResponse$SingleResponse;
 Lsun/security/provider/certpath/OCSPResponse;
@@ -32426,6 +34983,7 @@
 Lsun/security/provider/certpath/PolicyChecker;
 Lsun/security/provider/certpath/PolicyNodeImpl;
 Lsun/security/provider/certpath/RevocationChecker$1;
+Lsun/security/provider/certpath/RevocationChecker$2;
 Lsun/security/provider/certpath/RevocationChecker$Mode;
 Lsun/security/provider/certpath/RevocationChecker$RevocationProperties;
 Lsun/security/provider/certpath/RevocationChecker;
@@ -32536,9 +35094,11 @@
 Lsun/util/locale/BaseLocale$Cache;
 Lsun/util/locale/BaseLocale$Key;
 Lsun/util/locale/BaseLocale;
+Lsun/util/locale/Extension;
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;
 Lsun/util/locale/InternalLocaleBuilder;
 Lsun/util/locale/LanguageTag;
+Lsun/util/locale/LocaleExtensions;
 Lsun/util/locale/LocaleMatcher;
 Lsun/util/locale/LocaleObjectCache$CacheEntry;
 Lsun/util/locale/LocaleObjectCache;
@@ -32546,10 +35106,12 @@
 Lsun/util/locale/LocaleUtils;
 Lsun/util/locale/ParseStatus;
 Lsun/util/locale/StringTokenIterator;
+Lsun/util/locale/UnicodeLocaleExtension;
 Lsun/util/logging/LoggingProxy;
 Lsun/util/logging/LoggingSupport$1;
 Lsun/util/logging/LoggingSupport;
 Lsun/util/logging/PlatformLogger$1;
+Lsun/util/logging/PlatformLogger$JavaLoggerProxy;
 Lsun/util/logging/PlatformLogger$Level;
 Lsun/util/logging/PlatformLogger$LoggerProxy;
 Lsun/util/logging/PlatformLogger;
diff --git a/config/preloaded-classes b/config/preloaded-classes
index 64fd65f..c6b10ed 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -27,17 +27,24 @@
 android.accessibilityservice.IAccessibilityServiceClient$Stub$Proxy
 android.accessibilityservice.IAccessibilityServiceClient$Stub
 android.accessibilityservice.IAccessibilityServiceClient
+android.accounts.AbstractAccountAuthenticator$Transport
+android.accounts.AbstractAccountAuthenticator
 android.accounts.Account$1
 android.accounts.Account
 android.accounts.AccountAndUser
+android.accounts.AccountAuthenticatorResponse$1
+android.accounts.AccountAuthenticatorResponse
 android.accounts.AccountManager$10
 android.accounts.AccountManager$11
+android.accounts.AccountManager$15
+android.accounts.AccountManager$16
 android.accounts.AccountManager$17
 android.accounts.AccountManager$18
 android.accounts.AccountManager$1
 android.accounts.AccountManager$20
 android.accounts.AccountManager$2
 android.accounts.AccountManager$3
+android.accounts.AccountManager$8
 android.accounts.AccountManager$AmsTask$1
 android.accounts.AccountManager$AmsTask$Response
 android.accounts.AccountManager$AmsTask
@@ -58,6 +65,9 @@
 android.accounts.IAccountAuthenticator$Stub$Proxy
 android.accounts.IAccountAuthenticator$Stub
 android.accounts.IAccountAuthenticator
+android.accounts.IAccountAuthenticatorResponse$Stub$Proxy
+android.accounts.IAccountAuthenticatorResponse$Stub
+android.accounts.IAccountAuthenticatorResponse
 android.accounts.IAccountManager$Stub$Proxy
 android.accounts.IAccountManager$Stub
 android.accounts.IAccountManager
@@ -136,8 +146,13 @@
 android.animation.TypeEvaluator
 android.animation.ValueAnimator$AnimatorUpdateListener
 android.animation.ValueAnimator
+android.annotation.IntRange
+android.annotation.NonNull
+android.annotation.SystemApi
 android.apex.ApexInfo$1
 android.apex.ApexInfo
+android.apex.ApexSessionInfo$1
+android.apex.ApexSessionInfo
 android.apex.IApexService$Stub$Proxy
 android.apex.IApexService$Stub
 android.apex.IApexService
@@ -149,15 +164,19 @@
 android.app.-$$Lambda$ActivityThread$FmvGY8exyv0L0oqZrnunpl8OFI8
 android.app.-$$Lambda$ActivityThread$Wg40iAoNYFxps_KmrqtgptTB054
 android.app.-$$Lambda$ActivityTransitionState$yioLR6wQWjZ9DcWK5bibElIbsXc
+android.app.-$$Lambda$AppOpsManager$2$t9yQjThS21ls97TonVuHm6nv4N8
+android.app.-$$Lambda$AppOpsManager$4Zbi7CSLEt0nvOmfJBVYtJkauTQ
 android.app.-$$Lambda$AppOpsManager$HistoricalOp$DkVcBvqB32SMHlxw0sWQPh3GL1A
 android.app.-$$Lambda$AppOpsManager$HistoricalOp$HUOLFYs8TiaQIOXcrq6JzjxA6gs
 android.app.-$$Lambda$AppOpsManager$HistoricalOp$Vs6pDL0wjOBTquwNnreWVbPQrn4
+android.app.-$$Lambda$AppOpsManager$frSyqmhVUmNbhMckfMS3PSwTMlw
 android.app.-$$Lambda$Dialog$zXRzrq3I7H1_zmZ8d_W7t2CQN0I
 android.app.-$$Lambda$FragmentTransition$jurn0WXuKw3bRQ_2d5zCWdeZWuI
 android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA
 android.app.-$$Lambda$Notification$hOCsSZH8tWalFSbIzQ9x9IcPa9M
 android.app.-$$Lambda$ResourcesManager$QJ7UiVk_XS90KuXAsIjIEym1DnM
 android.app.-$$Lambda$SharedPreferencesImpl$EditorImpl$3CAjkhzA131V3V-sLfP2uy0FWZ0
+android.app.-$$Lambda$SystemServiceRegistry$17$DBwvhMLzjNnBFkaOY1OxllrybH4
 android.app.-$$Lambda$WallpaperManager$Globals$1AcnQUORvPlCjJoNqdxfQT4o4Nw
 android.app.-$$Lambda$WallpaperManager$Globals$2yG7V1sbMECCnlFTLyjKWKqNoYI
 android.app.-$$Lambda$ZsFzoG2loyqNOR2cNbo-thrNK5c
@@ -169,12 +188,15 @@
 android.app.Activity$ManagedCursor
 android.app.Activity$ManagedDialog
 android.app.Activity$NonConfigurationInstances
+android.app.Activity$RequestFinishCallback
 android.app.Activity
 android.app.ActivityManager$1
 android.app.ActivityManager$AppTask
 android.app.ActivityManager$MemoryInfo$1
 android.app.ActivityManager$MemoryInfo
 android.app.ActivityManager$OnUidImportanceListener
+android.app.ActivityManager$ProcessErrorStateInfo$1
+android.app.ActivityManager$ProcessErrorStateInfo
 android.app.ActivityManager$RecentTaskInfo$1
 android.app.ActivityManager$RecentTaskInfo
 android.app.ActivityManager$RunningAppProcessInfo$1
@@ -192,8 +214,10 @@
 android.app.ActivityManager$UidObserver
 android.app.ActivityManager
 android.app.ActivityManagerInternal
+android.app.ActivityOptions$1
 android.app.ActivityOptions
 android.app.ActivityTaskManager$1
+android.app.ActivityTaskManager$2
 android.app.ActivityTaskManager
 android.app.ActivityThread$1
 android.app.ActivityThread$ActivityClientRecord
@@ -238,35 +262,55 @@
 android.app.AppOpsManager$1
 android.app.AppOpsManager$2
 android.app.AppOpsManager$3
+android.app.AppOpsManager$HistoricalFeatureOps
 android.app.AppOpsManager$HistoricalOp$1
 android.app.AppOpsManager$HistoricalOp
 android.app.AppOpsManager$HistoricalOps$1
 android.app.AppOpsManager$HistoricalOps
+android.app.AppOpsManager$HistoricalOpsRequest$Builder
+android.app.AppOpsManager$HistoricalOpsRequest
 android.app.AppOpsManager$HistoricalPackageOps$1
 android.app.AppOpsManager$HistoricalPackageOps
 android.app.AppOpsManager$HistoricalUidOps$1
 android.app.AppOpsManager$HistoricalUidOps
+android.app.AppOpsManager$NoteOpEvent
+android.app.AppOpsManager$OnOpActiveChangedInternalListener
+android.app.AppOpsManager$OnOpActiveChangedListener
 android.app.AppOpsManager$OnOpChangedInternalListener
 android.app.AppOpsManager$OnOpChangedListener
+android.app.AppOpsManager$OnOpNotedListener
 android.app.AppOpsManager$OpEntry$1
 android.app.AppOpsManager$OpEntry
+android.app.AppOpsManager$OpFeatureEntry$1
+android.app.AppOpsManager$OpFeatureEntry$LongSparseArrayParceling
+android.app.AppOpsManager$OpFeatureEntry
 android.app.AppOpsManager$PackageOps$1
 android.app.AppOpsManager$PackageOps
+android.app.AppOpsManager$PausedNotedAppOpsCollection
 android.app.AppOpsManager
 android.app.AppOpsManagerInternal
 android.app.Application$ActivityLifecycleCallbacks
+android.app.Application$OnProvideAssistDataListener
 android.app.Application
 android.app.ApplicationErrorReport$1
+android.app.ApplicationErrorReport$AnrInfo
+android.app.ApplicationErrorReport$BatteryInfo
 android.app.ApplicationErrorReport$CrashInfo
 android.app.ApplicationErrorReport$ParcelableCrashInfo$1
 android.app.ApplicationErrorReport$ParcelableCrashInfo
+android.app.ApplicationErrorReport$RunningServiceInfo
 android.app.ApplicationErrorReport
 android.app.ApplicationLoaders$CachedClassLoader
 android.app.ApplicationLoaders
+android.app.ApplicationPackageManager$1
+android.app.ApplicationPackageManager$HasSystemFeatureQuery
 android.app.ApplicationPackageManager$MoveCallbackDelegate
 android.app.ApplicationPackageManager$OnPermissionsChangeListenerDelegate
 android.app.ApplicationPackageManager$ResourceName
+android.app.ApplicationPackageManager$SystemFeatureQuery
 android.app.ApplicationPackageManager
+android.app.AsyncNotedAppOp$1
+android.app.AsyncNotedAppOp
 android.app.AutomaticZenRule$1
 android.app.AutomaticZenRule
 android.app.BackStackRecord$Op
@@ -284,12 +328,14 @@
 android.app.Dialog$ListenersHandler
 android.app.Dialog
 android.app.DialogFragment
+android.app.DirectAction$1
 android.app.DirectAction
 android.app.DownloadManager$CursorTranslator
 android.app.DownloadManager$Query
 android.app.DownloadManager$Request
 android.app.DownloadManager
 android.app.EnterTransitionCoordinator
+android.app.EventLogTags
 android.app.ExitTransitionCoordinator
 android.app.Fragment$1
 android.app.Fragment$AnimationInfo
@@ -364,6 +410,7 @@
 android.app.IRequestFinishCallback$Stub$Proxy
 android.app.IRequestFinishCallback$Stub
 android.app.IRequestFinishCallback
+android.app.ISearchManager$Stub$Proxy
 android.app.ISearchManager$Stub
 android.app.ISearchManager
 android.app.IServiceConnection$Stub$Proxy
@@ -372,12 +419,15 @@
 android.app.IStopUserCallback$Stub$Proxy
 android.app.IStopUserCallback$Stub
 android.app.IStopUserCallback
+android.app.ITaskOrganizerController
 android.app.ITaskStackListener$Stub$Proxy
 android.app.ITaskStackListener$Stub
 android.app.ITaskStackListener
 android.app.ITransientNotification$Stub$Proxy
 android.app.ITransientNotification$Stub
 android.app.ITransientNotification
+android.app.ITransientNotificationCallback$Stub
+android.app.ITransientNotificationCallback
 android.app.IUiAutomationConnection$Stub$Proxy
 android.app.IUiAutomationConnection$Stub
 android.app.IUiAutomationConnection
@@ -399,8 +449,13 @@
 android.app.IWallpaperManagerCallback$Stub$Proxy
 android.app.IWallpaperManagerCallback$Stub
 android.app.IWallpaperManagerCallback
+android.app.InstantAppResolverService$1
+android.app.InstantAppResolverService$InstantAppResolutionCallback
+android.app.InstantAppResolverService$ServiceHandler
+android.app.InstantAppResolverService
 android.app.Instrumentation$ActivityGoing
 android.app.Instrumentation$ActivityMonitor
+android.app.Instrumentation$ActivityResult
 android.app.Instrumentation$ActivityWaiter
 android.app.Instrumentation
 android.app.IntentReceiverLeaked
@@ -437,22 +492,30 @@
 android.app.Notification$BuilderRemoteViews
 android.app.Notification$DecoratedCustomViewStyle
 android.app.Notification$DecoratedMediaCustomViewStyle
+android.app.Notification$Extender
 android.app.Notification$InboxStyle
 android.app.Notification$MediaStyle
 android.app.Notification$MessagingStyle$Message
 android.app.Notification$MessagingStyle
 android.app.Notification$StandardTemplateParams
 android.app.Notification$Style
+android.app.Notification$TemplateBindResult
+android.app.Notification$TvExtender
 android.app.Notification
 android.app.NotificationChannel$1
 android.app.NotificationChannel
 android.app.NotificationChannelGroup$1
 android.app.NotificationChannelGroup
+android.app.NotificationHistory$1
+android.app.NotificationHistory$HistoricalNotification$Builder
+android.app.NotificationHistory$HistoricalNotification
+android.app.NotificationHistory
 android.app.NotificationManager$Policy$1
 android.app.NotificationManager$Policy
 android.app.NotificationManager
 android.app.OnActivityPausedListener
 android.app.PackageInstallObserver$1
+android.app.PackageInstallObserver
 android.app.PendingIntent$1
 android.app.PendingIntent$2
 android.app.PendingIntent$CanceledException
@@ -464,23 +527,33 @@
 android.app.Person$Builder
 android.app.Person
 android.app.PictureInPictureParams$1
+android.app.PictureInPictureParams$Builder
 android.app.PictureInPictureParams
+android.app.ProcessMemoryState$1
+android.app.ProcessMemoryState
 android.app.ProfilerInfo$1
 android.app.ProfilerInfo
+android.app.ProgressDialog
+android.app.PropertyInvalidatedCache$1
+android.app.PropertyInvalidatedCache
 android.app.QueuedWork$QueuedWorkHandler
 android.app.QueuedWork
 android.app.ReceiverRestrictedContext
 android.app.RemoteAction$1
 android.app.RemoteAction
 android.app.RemoteInput$1
+android.app.RemoteInput$Builder
 android.app.RemoteInput
+android.app.RemoteInputHistoryItem
 android.app.RemoteServiceException
 android.app.ResourcesManager$1
 android.app.ResourcesManager$ActivityResources
 android.app.ResourcesManager$ApkKey
+android.app.ResourcesManager$UpdateHandler
 android.app.ResourcesManager
 android.app.ResultInfo$1
 android.app.ResultInfo
+android.app.SearchDialog
 android.app.SearchManager
 android.app.SearchableInfo$1
 android.app.SearchableInfo$ActionKeyInfo
@@ -498,6 +571,9 @@
 android.app.SharedPreferencesImpl$EditorImpl
 android.app.SharedPreferencesImpl$MemoryCommitResult
 android.app.SharedPreferencesImpl
+android.app.StatsManager$StatsUnavailableException
+android.app.StatsManager$StatsdDeathRecipient
+android.app.StatsManager
 android.app.StatusBarManager
 android.app.SynchronousUserSwitchObserver
 android.app.SystemServiceRegistry$100
@@ -517,7 +593,12 @@
 android.app.SystemServiceRegistry$113
 android.app.SystemServiceRegistry$114
 android.app.SystemServiceRegistry$115
+android.app.SystemServiceRegistry$116
+android.app.SystemServiceRegistry$117
+android.app.SystemServiceRegistry$118
+android.app.SystemServiceRegistry$119
 android.app.SystemServiceRegistry$11
+android.app.SystemServiceRegistry$120
 android.app.SystemServiceRegistry$12
 android.app.SystemServiceRegistry$13
 android.app.SystemServiceRegistry$14
@@ -635,10 +716,13 @@
 android.app.Vr2dDisplayProperties$1
 android.app.Vr2dDisplayProperties
 android.app.VrManager
+android.app.WaitResult$1
+android.app.WaitResult
 android.app.WallpaperColors$1
 android.app.WallpaperColors
 android.app.WallpaperInfo$1
 android.app.WallpaperInfo
+android.app.WallpaperManager$ColorManagementProxy
 android.app.WallpaperManager$Globals
 android.app.WallpaperManager$OnColorsChangedListener
 android.app.WallpaperManager
@@ -660,13 +744,23 @@
 android.app.admin.DevicePolicyManager
 android.app.admin.DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener
 android.app.admin.DevicePolicyManagerInternal
+android.app.admin.DeviceStateCache
+android.app.admin.FactoryResetProtectionPolicy
 android.app.admin.IDeviceAdminService$Stub$Proxy
+android.app.admin.IDeviceAdminService$Stub
 android.app.admin.IDeviceAdminService
 android.app.admin.IDevicePolicyManager$Stub$Proxy
 android.app.admin.IDevicePolicyManager$Stub
 android.app.admin.IDevicePolicyManager
+android.app.admin.NetworkEvent
 android.app.admin.PasswordMetrics$1
+android.app.admin.PasswordMetrics$ComplexityBucket$1
+android.app.admin.PasswordMetrics$ComplexityBucket$2
+android.app.admin.PasswordMetrics$ComplexityBucket$3
+android.app.admin.PasswordMetrics$ComplexityBucket$4
+android.app.admin.PasswordMetrics$ComplexityBucket
 android.app.admin.PasswordMetrics
+android.app.admin.PasswordPolicy
 android.app.admin.SecurityLog$SecurityEvent$1
 android.app.admin.SecurityLog$SecurityEvent
 android.app.admin.SecurityLog
@@ -680,6 +774,10 @@
 android.app.assist.AssistContent$1
 android.app.assist.AssistContent
 android.app.assist.AssistStructure$1
+android.app.assist.AssistStructure$AutofillOverlay
+android.app.assist.AssistStructure$HtmlInfoNode$1
+android.app.assist.AssistStructure$HtmlInfoNode
+android.app.assist.AssistStructure$HtmlInfoNodeBuilder
 android.app.assist.AssistStructure$ParcelTransferReader
 android.app.assist.AssistStructure$ParcelTransferWriter
 android.app.assist.AssistStructure$SendChannel
@@ -699,10 +797,18 @@
 android.app.backup.BackupHelper
 android.app.backup.BackupHelperDispatcher$Header
 android.app.backup.BackupHelperDispatcher
+android.app.backup.BackupManager$BackupManagerMonitorWrapper
+android.app.backup.BackupManager$BackupObserverWrapper$1
+android.app.backup.BackupManager$BackupObserverWrapper
 android.app.backup.BackupManager
+android.app.backup.BackupManagerMonitor
+android.app.backup.BackupObserver
+android.app.backup.BackupProgress$1
+android.app.backup.BackupProgress
 android.app.backup.BackupTransport$TransportImpl
 android.app.backup.BackupTransport
 android.app.backup.BlobBackupHelper
+android.app.backup.FileBackupHelper
 android.app.backup.FileBackupHelperBase
 android.app.backup.FullBackup
 android.app.backup.FullBackupDataOutput
@@ -721,16 +827,29 @@
 android.app.backup.IFullBackupRestoreObserver$Stub$Proxy
 android.app.backup.IFullBackupRestoreObserver$Stub
 android.app.backup.IFullBackupRestoreObserver
+android.app.backup.IRestoreSession
 android.app.backup.ISelectBackupTransportCallback$Stub$Proxy
 android.app.backup.ISelectBackupTransportCallback$Stub
 android.app.backup.ISelectBackupTransportCallback
+android.app.backup.RestoreDescription$1
+android.app.backup.RestoreDescription
 android.app.backup.SharedPreferencesBackupHelper
 android.app.blob.-$$Lambda$BlobStoreManagerFrameworkInitializer$WjSRSHMmxWPF4Fq-7TpX23MBh2U
+android.app.blob.BlobHandle
 android.app.blob.BlobStoreManager
 android.app.blob.BlobStoreManagerFrameworkInitializer
+android.app.blob.IBlobStoreManager$Stub
+android.app.blob.IBlobStoreManager
+android.app.blob.IBlobStoreSession
+android.app.contentsuggestions.ClassificationsRequest
 android.app.contentsuggestions.ContentSuggestionsManager
+android.app.contentsuggestions.IClassificationsCallback$Stub
+android.app.contentsuggestions.IClassificationsCallback
 android.app.contentsuggestions.IContentSuggestionsManager$Stub
 android.app.contentsuggestions.IContentSuggestionsManager
+android.app.contentsuggestions.ISelectionsCallback$Stub
+android.app.contentsuggestions.ISelectionsCallback
+android.app.contentsuggestions.SelectionsRequest
 android.app.job.-$$Lambda$FpGlzN9oJcl8o5soW-gU-DyTvXM
 android.app.job.-$$Lambda$JobSchedulerFrameworkInitializer$PtYe8PQc1PVJQXRnpm3iSxcWTR0
 android.app.job.-$$Lambda$JobSchedulerFrameworkInitializer$RHUxgww0pZFMmfQWKgaRAx0YFqA
@@ -759,13 +878,16 @@
 android.app.job.JobServiceEngine
 android.app.job.JobWorkItem$1
 android.app.job.JobWorkItem
+android.app.prediction.-$$Lambda$1lqxDplfWlUwgBrOynX9L0oK_uA
 android.app.prediction.AppPredictionContext$1
 android.app.prediction.AppPredictionContext
 android.app.prediction.AppPredictionManager
 android.app.prediction.AppPredictionSessionId$1
 android.app.prediction.AppPredictionSessionId
+android.app.prediction.AppPredictor$CallbackWrapper
 android.app.prediction.AppPredictor
 android.app.prediction.AppTarget$1
+android.app.prediction.AppTarget$Builder
 android.app.prediction.AppTarget
 android.app.prediction.AppTargetEvent$1
 android.app.prediction.AppTargetEvent
@@ -777,17 +899,23 @@
 android.app.prediction.IPredictionManager$Stub$Proxy
 android.app.prediction.IPredictionManager$Stub
 android.app.prediction.IPredictionManager
+android.app.role.-$$Lambda$9DeAxmM9lUVr3-FTSefyo-BW8DY
 android.app.role.-$$Lambda$RoleControllerManager$Jsb4ev7pHUqel8_lglNSRLiUzpg
+android.app.role.-$$Lambda$RoleControllerManager$hbh627Rh8mtJykW3vb1FWR34mIQ
+android.app.role.-$$Lambda$RoleControllerManager$mCMKfoPdye0sMu6efs963HCR1Xk
+android.app.role.-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE
 android.app.role.-$$Lambda$o94o2jK_ei-IVw-3oY_QJ49zpAA
 android.app.role.IOnRoleHoldersChangedListener$Stub$Proxy
 android.app.role.IOnRoleHoldersChangedListener$Stub
 android.app.role.IOnRoleHoldersChangedListener
+android.app.role.IRoleController$Stub$Proxy
 android.app.role.IRoleController$Stub
 android.app.role.IRoleController
 android.app.role.IRoleManager$Stub$Proxy
 android.app.role.IRoleManager$Stub
 android.app.role.IRoleManager
 android.app.role.OnRoleHoldersChangedListener
+android.app.role.RoleControllerManager$1
 android.app.role.RoleControllerManager
 android.app.role.RoleManager$OnRoleHoldersChangedListenerDelegate
 android.app.role.RoleManager
@@ -808,6 +936,8 @@
 android.app.servertransaction.DestroyActivityItem
 android.app.servertransaction.LaunchActivityItem$1
 android.app.servertransaction.LaunchActivityItem
+android.app.servertransaction.MultiWindowModeChangeItem$1
+android.app.servertransaction.MultiWindowModeChangeItem
 android.app.servertransaction.NewIntentItem$1
 android.app.servertransaction.NewIntentItem
 android.app.servertransaction.ObjectPool
@@ -816,6 +946,8 @@
 android.app.servertransaction.PauseActivityItem
 android.app.servertransaction.PendingTransactionActions$StopInfo
 android.app.servertransaction.PendingTransactionActions
+android.app.servertransaction.PipModeChangeItem$1
+android.app.servertransaction.PipModeChangeItem
 android.app.servertransaction.ResumeActivityItem$1
 android.app.servertransaction.ResumeActivityItem
 android.app.servertransaction.StopActivityItem$1
@@ -840,8 +972,19 @@
 android.app.timedetector.ITimeDetectorService$Stub$Proxy
 android.app.timedetector.ITimeDetectorService$Stub
 android.app.timedetector.ITimeDetectorService
+android.app.timedetector.ManualTimeSuggestion$1
+android.app.timedetector.ManualTimeSuggestion
+android.app.timedetector.NetworkTimeSuggestion
+android.app.timedetector.PhoneTimeSuggestion$1
+android.app.timedetector.PhoneTimeSuggestion
+android.app.timedetector.TelephonyTimeSuggestion
 android.app.timedetector.TimeDetector
 android.app.timezone.RulesManager
+android.app.timezonedetector.ITimeZoneDetectorService$Stub$Proxy
+android.app.timezonedetector.ITimeZoneDetectorService$Stub
+android.app.timezonedetector.ITimeZoneDetectorService
+android.app.timezonedetector.ManualTimeZoneSuggestion
+android.app.timezonedetector.TelephonyTimeZoneSuggestion
 android.app.timezonedetector.TimeZoneDetector
 android.app.trust.IStrongAuthTracker$Stub$Proxy
 android.app.trust.IStrongAuthTracker$Stub
@@ -867,6 +1010,8 @@
 android.app.usage.ConfigurationStats$1
 android.app.usage.ConfigurationStats
 android.app.usage.EventList
+android.app.usage.ExternalStorageStats$1
+android.app.usage.ExternalStorageStats
 android.app.usage.ICacheQuotaService$Stub$Proxy
 android.app.usage.ICacheQuotaService$Stub
 android.app.usage.ICacheQuotaService
@@ -876,6 +1021,8 @@
 android.app.usage.IUsageStatsManager$Stub$Proxy
 android.app.usage.IUsageStatsManager$Stub
 android.app.usage.IUsageStatsManager
+android.app.usage.NetworkStats$Bucket
+android.app.usage.NetworkStats
 android.app.usage.NetworkStatsManager$CallbackHandler
 android.app.usage.NetworkStatsManager$UsageCallback
 android.app.usage.NetworkStatsManager
@@ -904,6 +1051,9 @@
 android.bluetooth.BluetoothActivityEnergyInfo
 android.bluetooth.BluetoothAdapter$1
 android.bluetooth.BluetoothAdapter$2
+android.bluetooth.BluetoothAdapter$3
+android.bluetooth.BluetoothAdapter$4
+android.bluetooth.BluetoothAdapter$5
 android.bluetooth.BluetoothAdapter
 android.bluetooth.BluetoothAvrcpController
 android.bluetooth.BluetoothClass$1
@@ -915,6 +1065,7 @@
 android.bluetooth.BluetoothDevice$1
 android.bluetooth.BluetoothDevice$2
 android.bluetooth.BluetoothDevice
+android.bluetooth.BluetoothGattCallback
 android.bluetooth.BluetoothGattService$1
 android.bluetooth.BluetoothGattService
 android.bluetooth.BluetoothHeadset$1
@@ -981,6 +1132,7 @@
 android.bluetooth.IBluetoothHeadsetPhone$Stub$Proxy
 android.bluetooth.IBluetoothHeadsetPhone$Stub
 android.bluetooth.IBluetoothHeadsetPhone
+android.bluetooth.IBluetoothHearingAid$Stub$Proxy
 android.bluetooth.IBluetoothHearingAid$Stub
 android.bluetooth.IBluetoothHearingAid
 android.bluetooth.IBluetoothHidDevice$Stub$Proxy
@@ -1030,7 +1182,10 @@
 android.bluetooth.le.AdvertiseData
 android.bluetooth.le.AdvertisingSetParameters$1
 android.bluetooth.le.AdvertisingSetParameters
+android.bluetooth.le.BluetoothLeScanner$1
+android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper
 android.bluetooth.le.BluetoothLeScanner
+android.bluetooth.le.BluetoothLeUtils
 android.bluetooth.le.IAdvertisingSetCallback$Stub$Proxy
 android.bluetooth.le.IAdvertisingSetCallback$Stub
 android.bluetooth.le.IAdvertisingSetCallback
@@ -1042,6 +1197,7 @@
 android.bluetooth.le.IScannerCallback
 android.bluetooth.le.PeriodicAdvertisingParameters$1
 android.bluetooth.le.PeriodicAdvertisingParameters
+android.bluetooth.le.ScanCallback
 android.bluetooth.le.ScanFilter$1
 android.bluetooth.le.ScanFilter$Builder
 android.bluetooth.le.ScanFilter
@@ -1063,6 +1219,7 @@
 android.compat.Compatibility$Callbacks
 android.compat.Compatibility
 android.content.-$$Lambda$AbstractThreadedSyncAdapter$ISyncAdapterImpl$L6ZtOCe8gjKwJj0908ytPlrD8Rc
+android.content.-$$Lambda$ClipboardManager$1$hQk8olbGAgUi4WWNG4ZuDZsM39s
 android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl
 android.content.AbstractThreadedSyncAdapter$SyncThread
 android.content.AbstractThreadedSyncAdapter
@@ -1092,6 +1249,7 @@
 android.content.ContentCaptureOptions$1
 android.content.ContentCaptureOptions
 android.content.ContentInterface
+android.content.ContentProvider$CallingIdentity
 android.content.ContentProvider$PipeDataWriter
 android.content.ContentProvider$Transport
 android.content.ContentProvider
@@ -1100,13 +1258,18 @@
 android.content.ContentProviderClient
 android.content.ContentProviderNative
 android.content.ContentProviderOperation$1
+android.content.ContentProviderOperation$BackReference$1
+android.content.ContentProviderOperation$BackReference
 android.content.ContentProviderOperation$Builder
 android.content.ContentProviderOperation
 android.content.ContentProviderProxy
 android.content.ContentProviderResult$1
 android.content.ContentProviderResult
 android.content.ContentResolver$1
+android.content.ContentResolver$2
 android.content.ContentResolver$CursorWrapperInner
+android.content.ContentResolver$GetTypeResultListener
+android.content.ContentResolver$OpenResourceIdResult
 android.content.ContentResolver$ParcelFileDescriptorInner
 android.content.ContentResolver
 android.content.ContentUris
@@ -1153,6 +1316,7 @@
 android.content.ISyncStatusObserver$Stub
 android.content.ISyncStatusObserver
 android.content.Intent$1
+android.content.Intent$CommandOptionHandler
 android.content.Intent$FilterComparison
 android.content.Intent
 android.content.IntentFilter$1
@@ -1169,9 +1333,14 @@
 android.content.Loader
 android.content.LocusId$1
 android.content.LocusId
+android.content.LoggingContentInterface
+android.content.MutableContextWrapper
 android.content.OperationApplicationException
 android.content.PeriodicSync$1
+android.content.PeriodicSync
+android.content.PermissionChecker
 android.content.ReceiverCallNotAllowedException
+android.content.RestrictionEntry
 android.content.RestrictionsManager
 android.content.SearchRecentSuggestionsProvider$DatabaseHelper
 android.content.SearchRecentSuggestionsProvider
@@ -1184,6 +1353,8 @@
 android.content.SyncAdaptersCache$MySerializer
 android.content.SyncAdaptersCache
 android.content.SyncContext
+android.content.SyncInfo$1
+android.content.SyncInfo
 android.content.SyncRequest$1
 android.content.SyncRequest$Builder
 android.content.SyncRequest
@@ -1200,6 +1371,8 @@
 android.content.UndoOperation
 android.content.UndoOwner
 android.content.UriMatcher
+android.content.UriPermission$1
+android.content.UriPermission
 android.content.integrity.AppIntegrityManager
 android.content.om.IOverlayManager$Stub$Proxy
 android.content.om.IOverlayManager$Stub
@@ -1208,32 +1381,46 @@
 android.content.om.OverlayInfo
 android.content.om.OverlayManager
 android.content.om.OverlayableInfo
+android.content.pm.-$$Lambda$B12dZLpdwpXn89QSesmkaZjD72Q
 android.content.pm.-$$Lambda$PackageParser$0DZRgzfgaIMpCOhJqjw6PUiU5vw
 android.content.pm.-$$Lambda$PackageParser$0aobsT7Zf7WVZCqMZ5z2clAuQf4
 android.content.pm.-$$Lambda$PackageParser$M-9fHqS_eEp1oYkuKJhRHOGUxf8
 android.content.pm.-$$Lambda$T1UQAuePWRRmVQ1KzTyMAktZUPM
 android.content.pm.-$$Lambda$ciir_QAmv6RwJro4I58t77dPnxU
+android.content.pm.-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8
 android.content.pm.-$$Lambda$n3uXeb1v-YRmq_BWTfosEqUUr9g
 android.content.pm.-$$Lambda$zO9HBUVgPeroyDQPLJE-MNMvSqc
 android.content.pm.ActivityInfo$1
 android.content.pm.ActivityInfo$WindowLayout
 android.content.pm.ActivityInfo
+android.content.pm.ActivityPresentationInfo
 android.content.pm.ApplicationInfo$1
 android.content.pm.ApplicationInfo
+android.content.pm.AuxiliaryResolveInfo$AuxiliaryFilter
 android.content.pm.BaseParceledListSlice$1
 android.content.pm.BaseParceledListSlice
+android.content.pm.ChangedPackages$1
+android.content.pm.ChangedPackages
 android.content.pm.ComponentInfo
 android.content.pm.ConfigurationInfo$1
 android.content.pm.ConfigurationInfo
 android.content.pm.CrossProfileApps
 android.content.pm.DataLoaderManager
+android.content.pm.DataLoaderParams
+android.content.pm.DataLoaderParamsParcel
 android.content.pm.FallbackCategoryProvider
 android.content.pm.FeatureGroupInfo$1
 android.content.pm.FeatureGroupInfo
 android.content.pm.FeatureInfo$1
 android.content.pm.FeatureInfo
+android.content.pm.ICrossProfileApps$Stub$Proxy
 android.content.pm.ICrossProfileApps$Stub
 android.content.pm.ICrossProfileApps
+android.content.pm.IDataLoader
+android.content.pm.IDataLoaderManager$Stub
+android.content.pm.IDataLoaderManager
+android.content.pm.IDataLoaderStatusListener$Stub
+android.content.pm.IDataLoaderStatusListener
 android.content.pm.IDexModuleRegisterCallback$Stub$Proxy
 android.content.pm.IDexModuleRegisterCallback$Stub
 android.content.pm.IDexModuleRegisterCallback
@@ -1263,6 +1450,7 @@
 android.content.pm.IPackageInstallerCallback$Stub
 android.content.pm.IPackageInstallerCallback
 android.content.pm.IPackageInstallerSession$Stub$Proxy
+android.content.pm.IPackageInstallerSession$Stub
 android.content.pm.IPackageInstallerSession
 android.content.pm.IPackageManager$Stub$Proxy
 android.content.pm.IPackageManager$Stub
@@ -1275,12 +1463,19 @@
 android.content.pm.IPackageStatsObserver$Stub$Proxy
 android.content.pm.IPackageStatsObserver$Stub
 android.content.pm.IPackageStatsObserver
+android.content.pm.IShortcutChangeCallback$Stub
+android.content.pm.IShortcutChangeCallback
 android.content.pm.IShortcutService$Stub$Proxy
 android.content.pm.IShortcutService$Stub
 android.content.pm.IShortcutService
+android.content.pm.InstallSourceInfo$1
+android.content.pm.InstallSourceInfo
 android.content.pm.InstantAppIntentFilter$1
 android.content.pm.InstantAppIntentFilter
+android.content.pm.InstantAppRequest
+android.content.pm.InstantAppRequestInfo
 android.content.pm.InstantAppResolveInfo$1
+android.content.pm.InstantAppResolveInfo$InstantAppDigest$1
 android.content.pm.InstantAppResolveInfo$InstantAppDigest
 android.content.pm.InstantAppResolveInfo
 android.content.pm.InstrumentationInfo$1
@@ -1291,12 +1486,19 @@
 android.content.pm.KeySet
 android.content.pm.LauncherActivityInfo
 android.content.pm.LauncherApps$1
+android.content.pm.LauncherApps$AppUsageLimit$1
+android.content.pm.LauncherApps$AppUsageLimit
+android.content.pm.LauncherApps$Callback
+android.content.pm.LauncherApps$CallbackMessageHandler$CallbackInfo
 android.content.pm.LauncherApps$CallbackMessageHandler
+android.content.pm.LauncherApps$ShortcutQuery
 android.content.pm.LauncherApps
 android.content.pm.ModuleInfo$1
 android.content.pm.ModuleInfo
 android.content.pm.PackageInfo$1
 android.content.pm.PackageInfo
+android.content.pm.PackageInfoLite$1
+android.content.pm.PackageInfoLite
 android.content.pm.PackageInstaller$Session
 android.content.pm.PackageInstaller$SessionCallback
 android.content.pm.PackageInstaller$SessionCallbackDelegate
@@ -1375,6 +1577,8 @@
 android.content.pm.ShortcutInfo$1
 android.content.pm.ShortcutInfo$Builder
 android.content.pm.ShortcutInfo
+android.content.pm.ShortcutManager$ShareShortcutInfo$1
+android.content.pm.ShortcutManager$ShareShortcutInfo
 android.content.pm.ShortcutManager
 android.content.pm.ShortcutServiceInternal$ShortcutChangeListener
 android.content.pm.ShortcutServiceInternal
@@ -1385,22 +1589,76 @@
 android.content.pm.StringParceledListSlice$1
 android.content.pm.StringParceledListSlice
 android.content.pm.SuspendDialogInfo$1
+android.content.pm.SuspendDialogInfo$Builder
 android.content.pm.SuspendDialogInfo
 android.content.pm.UserInfo$1
 android.content.pm.UserInfo
+android.content.pm.VerifierDeviceIdentity$1
+android.content.pm.VerifierDeviceIdentity
 android.content.pm.VerifierInfo$1
 android.content.pm.VerifierInfo
 android.content.pm.VersionedPackage$1
 android.content.pm.VersionedPackage
 android.content.pm.XmlSerializerAndParser
+android.content.pm.dex.ArtManager$SnapshotRuntimeProfileCallbackDelegate
 android.content.pm.dex.ArtManager
 android.content.pm.dex.ArtManagerInternal
 android.content.pm.dex.DexMetadataHelper
+android.content.pm.dex.IArtManager$Stub$Proxy
 android.content.pm.dex.IArtManager$Stub
 android.content.pm.dex.IArtManager
 android.content.pm.dex.ISnapshotRuntimeProfileCallback$Stub$Proxy
 android.content.pm.dex.ISnapshotRuntimeProfileCallback$Stub
 android.content.pm.dex.ISnapshotRuntimeProfileCallback
+android.content.pm.dex.PackageOptimizationInfo
+android.content.pm.parsing.AndroidPackage
+android.content.pm.parsing.AndroidPackageWrite
+android.content.pm.parsing.ApkLiteParseUtils
+android.content.pm.parsing.ApkParseUtils$ParseInput
+android.content.pm.parsing.ApkParseUtils$ParseResult
+android.content.pm.parsing.ApkParseUtils
+android.content.pm.parsing.ComponentParseUtils$ParsedActivity$1
+android.content.pm.parsing.ComponentParseUtils$ParsedActivity
+android.content.pm.parsing.ComponentParseUtils$ParsedActivityIntentInfo$1
+android.content.pm.parsing.ComponentParseUtils$ParsedActivityIntentInfo
+android.content.pm.parsing.ComponentParseUtils$ParsedComponent
+android.content.pm.parsing.ComponentParseUtils$ParsedFeature
+android.content.pm.parsing.ComponentParseUtils$ParsedInstrumentation$1
+android.content.pm.parsing.ComponentParseUtils$ParsedInstrumentation
+android.content.pm.parsing.ComponentParseUtils$ParsedIntentInfo
+android.content.pm.parsing.ComponentParseUtils$ParsedMainComponent$1
+android.content.pm.parsing.ComponentParseUtils$ParsedMainComponent
+android.content.pm.parsing.ComponentParseUtils$ParsedPermission$1
+android.content.pm.parsing.ComponentParseUtils$ParsedPermission
+android.content.pm.parsing.ComponentParseUtils$ParsedPermissionGroup$1
+android.content.pm.parsing.ComponentParseUtils$ParsedPermissionGroup
+android.content.pm.parsing.ComponentParseUtils$ParsedProcess
+android.content.pm.parsing.ComponentParseUtils$ParsedProvider$1
+android.content.pm.parsing.ComponentParseUtils$ParsedProvider
+android.content.pm.parsing.ComponentParseUtils$ParsedProviderIntentInfo$1
+android.content.pm.parsing.ComponentParseUtils$ParsedProviderIntentInfo
+android.content.pm.parsing.ComponentParseUtils$ParsedQueriesIntentInfo
+android.content.pm.parsing.ComponentParseUtils$ParsedService$1
+android.content.pm.parsing.ComponentParseUtils$ParsedService
+android.content.pm.parsing.ComponentParseUtils$ParsedServiceIntentInfo$1
+android.content.pm.parsing.ComponentParseUtils$ParsedServiceIntentInfo
+android.content.pm.parsing.ComponentParseUtils
+android.content.pm.parsing.PackageImpl$1
+android.content.pm.parsing.PackageImpl
+android.content.pm.parsing.PackageInfoUtils
+android.content.pm.parsing.ParsedPackage$PackageSettingCallback
+android.content.pm.parsing.ParsedPackage
+android.content.pm.parsing.ParsingPackage
+android.content.pm.parsing.library.-$$Lambda$WrPVuoVJehE45tfhLfe_8Tcc-Nw
+android.content.pm.parsing.library.AndroidHidlUpdater
+android.content.pm.parsing.library.AndroidTestBaseUpdater
+android.content.pm.parsing.library.OrgApacheHttpLegacyUpdater
+android.content.pm.parsing.library.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater
+android.content.pm.parsing.library.PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary
+android.content.pm.parsing.library.PackageBackwardCompatibility
+android.content.pm.parsing.library.PackageSharedLibraryUpdater
+android.content.pm.permission.SplitPermissionInfoParcelable$1
+android.content.pm.permission.SplitPermissionInfoParcelable
 android.content.pm.split.DefaultSplitAssetLoader
 android.content.pm.split.SplitAssetDependencyLoader
 android.content.pm.split.SplitAssetLoader
@@ -1444,6 +1702,7 @@
 android.content.res.Resources$NotFoundException
 android.content.res.Resources$Theme
 android.content.res.Resources$ThemeKey
+android.content.res.Resources$UpdateCallbacks
 android.content.res.Resources
 android.content.res.ResourcesImpl$LookupStack
 android.content.res.ResourcesImpl$ThemeImpl
@@ -1457,10 +1716,15 @@
 android.content.res.XmlBlock$Parser
 android.content.res.XmlBlock
 android.content.res.XmlResourceParser
+android.content.res.loader.AssetsProvider
+android.content.res.loader.ResourcesLoader$UpdateCallbacks
+android.content.res.loader.ResourcesLoader
+android.content.res.loader.ResourcesProvider
 android.content.rollback.IRollbackManager$Stub$Proxy
 android.content.rollback.IRollbackManager$Stub
 android.content.rollback.IRollbackManager
 android.content.rollback.RollbackManager
+android.content.type.DefaultMimeMapFactory
 android.database.AbstractCursor$SelfContentObserver
 android.database.AbstractCursor
 android.database.AbstractWindowedCursor
@@ -1486,6 +1750,7 @@
 android.database.DataSetObservable
 android.database.DataSetObserver
 android.database.DatabaseErrorHandler
+android.database.DatabaseUtils$InsertHelper
 android.database.DatabaseUtils
 android.database.DefaultDatabaseErrorHandler
 android.database.IBulkCursor
@@ -1500,8 +1765,13 @@
 android.database.SQLException
 android.database.StaleDataException
 android.database.sqlite.-$$Lambda$RBWjWVyGrOTsQrLCYzJ_G8Uk25Q
+android.database.sqlite.-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE
+android.database.sqlite.-$$Lambda$SQLiteQueryBuilder$W2yQ6UjYGqGIu6HEomKgdgvGNKI
 android.database.sqlite.DatabaseObjectNotClosedException
+android.database.sqlite.SQLiteAbortException
+android.database.sqlite.SQLiteAccessPermException
 android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException
+android.database.sqlite.SQLiteBlobTooBigException
 android.database.sqlite.SQLiteCantOpenDatabaseException
 android.database.sqlite.SQLiteClosable
 android.database.sqlite.SQLiteCompatibilityWalFlags
@@ -1531,11 +1801,13 @@
 android.database.sqlite.SQLiteDebug$PagerStats
 android.database.sqlite.SQLiteDebug
 android.database.sqlite.SQLiteDirectCursorDriver
+android.database.sqlite.SQLiteDiskIOException
 android.database.sqlite.SQLiteDoneException
 android.database.sqlite.SQLiteException
 android.database.sqlite.SQLiteFullException
 android.database.sqlite.SQLiteGlobal
 android.database.sqlite.SQLiteOpenHelper
+android.database.sqlite.SQLiteOutOfMemoryException
 android.database.sqlite.SQLiteProgram
 android.database.sqlite.SQLiteQuery
 android.database.sqlite.SQLiteQueryBuilder
@@ -1543,6 +1815,8 @@
 android.database.sqlite.SQLiteSession
 android.database.sqlite.SQLiteStatement
 android.database.sqlite.SQLiteStatementInfo
+android.database.sqlite.SQLiteTableLockedException
+android.database.sqlite.SQLiteTokenizer
 android.database.sqlite.SQLiteTransactionListener
 android.database.sqlite.SqliteWrapper
 android.ddm.DdmHandleAppName$Names
@@ -1557,6 +1831,7 @@
 android.ddm.DdmRegister
 android.debug.AdbManager
 android.debug.AdbManagerInternal
+android.debug.IAdbManager$Stub$Proxy
 android.debug.IAdbManager$Stub
 android.debug.IAdbManager
 android.debug.IAdbTransport$Stub
@@ -1598,6 +1873,7 @@
 android.graphics.ColorMatrix
 android.graphics.ColorMatrixColorFilter
 android.graphics.ColorSpace$Adaptation
+android.graphics.ColorSpace$Connector
 android.graphics.ColorSpace$Lab
 android.graphics.ColorSpace$Model
 android.graphics.ColorSpace$Named
@@ -1662,10 +1938,12 @@
 android.graphics.PaintFlagsDrawFilter
 android.graphics.Path$Direction
 android.graphics.Path$FillType
+android.graphics.Path$Op
 android.graphics.Path
 android.graphics.PathDashPathEffect
 android.graphics.PathEffect
 android.graphics.PathMeasure
+android.graphics.Picture$PictureCanvas
 android.graphics.Picture
 android.graphics.PixelFormat
 android.graphics.Point$1
@@ -1715,6 +1993,7 @@
 android.graphics.drawable.AdaptiveIconDrawable$ChildDrawable
 android.graphics.drawable.AdaptiveIconDrawable$LayerState
 android.graphics.drawable.AdaptiveIconDrawable
+android.graphics.drawable.Animatable2$AnimationCallback
 android.graphics.drawable.Animatable2
 android.graphics.drawable.Animatable
 android.graphics.drawable.AnimatedImageDrawable$State
@@ -1726,6 +2005,7 @@
 android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState
 android.graphics.drawable.AnimatedStateListDrawable$AnimatedVectorDrawableTransition
 android.graphics.drawable.AnimatedStateListDrawable$AnimationDrawableTransition
+android.graphics.drawable.AnimatedStateListDrawable$FrameInterpolator
 android.graphics.drawable.AnimatedStateListDrawable$Transition
 android.graphics.drawable.AnimatedStateListDrawable
 android.graphics.drawable.AnimatedVectorDrawable$1
@@ -1761,6 +2041,7 @@
 android.graphics.drawable.GradientDrawable$Orientation
 android.graphics.drawable.GradientDrawable
 android.graphics.drawable.Icon$1
+android.graphics.drawable.Icon$LoadDrawableTask
 android.graphics.drawable.Icon
 android.graphics.drawable.InsetDrawable$InsetState
 android.graphics.drawable.InsetDrawable$InsetValue
@@ -1788,6 +2069,7 @@
 android.graphics.drawable.RotateDrawable
 android.graphics.drawable.ScaleDrawable$ScaleState
 android.graphics.drawable.ScaleDrawable
+android.graphics.drawable.ShapeDrawable$ShaderFactory
 android.graphics.drawable.ShapeDrawable$ShapeState
 android.graphics.drawable.ShapeDrawable
 android.graphics.drawable.StateListDrawable$StateListState
@@ -1823,6 +2105,7 @@
 android.graphics.drawable.VectorDrawable$VectorDrawableState
 android.graphics.drawable.VectorDrawable
 android.graphics.drawable.shapes.OvalShape
+android.graphics.drawable.shapes.PathShape
 android.graphics.drawable.shapes.RectShape
 android.graphics.drawable.shapes.RoundRectShape
 android.graphics.drawable.shapes.Shape
@@ -1845,9 +2128,14 @@
 android.graphics.text.LineBreaker
 android.graphics.text.MeasuredText$Builder
 android.graphics.text.MeasuredText
+android.gsi.GsiProgress$1
+android.gsi.GsiProgress
 android.gsi.IGsiService$Stub$Proxy
 android.gsi.IGsiService$Stub
 android.gsi.IGsiService
+android.gsi.IGsid$Stub$Proxy
+android.gsi.IGsid$Stub
+android.gsi.IGsid
 android.hardware.Camera$CameraInfo
 android.hardware.Camera$Face
 android.hardware.Camera
@@ -1878,7 +2166,10 @@
 android.hardware.Sensor
 android.hardware.SensorAdditionalInfo
 android.hardware.SensorEvent
+android.hardware.SensorEventCallback
+android.hardware.SensorEventListener2
 android.hardware.SensorEventListener
+android.hardware.SensorListener
 android.hardware.SensorManager
 android.hardware.SensorPrivacyManager$1
 android.hardware.SensorPrivacyManager
@@ -1890,6 +2181,7 @@
 android.hardware.SystemSensorManager
 android.hardware.TriggerEvent
 android.hardware.TriggerEventListener
+android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback
 android.hardware.biometrics.BiometricAuthenticator$Identifier
 android.hardware.biometrics.BiometricAuthenticator
 android.hardware.biometrics.BiometricFaceConstants
@@ -1897,9 +2189,17 @@
 android.hardware.biometrics.BiometricManager
 android.hardware.biometrics.BiometricSourceType$1
 android.hardware.biometrics.BiometricSourceType
+android.hardware.biometrics.CryptoObject
+android.hardware.biometrics.IAuthService$Stub$Proxy
+android.hardware.biometrics.IAuthService$Stub
+android.hardware.biometrics.IAuthService
+android.hardware.biometrics.IBiometricAuthenticator$Stub$Proxy
+android.hardware.biometrics.IBiometricAuthenticator$Stub
+android.hardware.biometrics.IBiometricAuthenticator
 android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback$Stub$Proxy
 android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback$Stub
 android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback
+android.hardware.biometrics.IBiometricNativeHandle
 android.hardware.biometrics.IBiometricService$Stub$Proxy
 android.hardware.biometrics.IBiometricService$Stub
 android.hardware.biometrics.IBiometricService
@@ -1912,6 +2212,8 @@
 android.hardware.biometrics.IBiometricServiceReceiverInternal$Stub$Proxy
 android.hardware.biometrics.IBiometricServiceReceiverInternal$Stub
 android.hardware.biometrics.IBiometricServiceReceiverInternal
+android.hardware.camera2.-$$Lambda$CameraManager$CameraManagerGlobal$6Ptxoe4wF_VCkE_pml8t66mklao
+android.hardware.camera2.-$$Lambda$CameraManager$CameraManagerGlobal$CONvadOBAEkcHSpx8j61v67qRGM
 android.hardware.camera2.CameraAccessException
 android.hardware.camera2.CameraCharacteristics$1
 android.hardware.camera2.CameraCharacteristics$2
@@ -1924,6 +2226,7 @@
 android.hardware.camera2.CameraDevice
 android.hardware.camera2.CameraManager$AvailabilityCallback
 android.hardware.camera2.CameraManager$CameraManagerGlobal$1
+android.hardware.camera2.CameraManager$CameraManagerGlobal$3
 android.hardware.camera2.CameraManager$CameraManagerGlobal
 android.hardware.camera2.CameraManager$TorchCallback
 android.hardware.camera2.CameraManager
@@ -1954,6 +2257,7 @@
 android.hardware.camera2.impl.CameraMetadataNative$20
 android.hardware.camera2.impl.CameraMetadataNative$21
 android.hardware.camera2.impl.CameraMetadataNative$22
+android.hardware.camera2.impl.CameraMetadataNative$23
 android.hardware.camera2.impl.CameraMetadataNative$2
 android.hardware.camera2.impl.CameraMetadataNative$3
 android.hardware.camera2.impl.CameraMetadataNative$4
@@ -1975,6 +2279,7 @@
 android.hardware.camera2.marshal.MarshalRegistry$MarshalToken
 android.hardware.camera2.marshal.MarshalRegistry
 android.hardware.camera2.marshal.Marshaler
+android.hardware.camera2.marshal.impl.MarshalQueryableArray$MarshalerArray
 android.hardware.camera2.marshal.impl.MarshalQueryableArray
 android.hardware.camera2.marshal.impl.MarshalQueryableBlackLevelPattern
 android.hardware.camera2.marshal.impl.MarshalQueryableBoolean$MarshalerBoolean
@@ -1987,12 +2292,14 @@
 android.hardware.camera2.marshal.impl.MarshalQueryableNativeByteToInteger
 android.hardware.camera2.marshal.impl.MarshalQueryablePair
 android.hardware.camera2.marshal.impl.MarshalQueryableParcelable
+android.hardware.camera2.marshal.impl.MarshalQueryablePrimitive$MarshalerPrimitive
 android.hardware.camera2.marshal.impl.MarshalQueryablePrimitive
 android.hardware.camera2.marshal.impl.MarshalQueryableRange
 android.hardware.camera2.marshal.impl.MarshalQueryableRecommendedStreamConfiguration
 android.hardware.camera2.marshal.impl.MarshalQueryableRect
 android.hardware.camera2.marshal.impl.MarshalQueryableReprocessFormatsMap
 android.hardware.camera2.marshal.impl.MarshalQueryableRggbChannelVector
+android.hardware.camera2.marshal.impl.MarshalQueryableSize$MarshalerSize
 android.hardware.camera2.marshal.impl.MarshalQueryableSize
 android.hardware.camera2.marshal.impl.MarshalQueryableSizeF
 android.hardware.camera2.marshal.impl.MarshalQueryableStreamConfiguration
@@ -2019,6 +2326,8 @@
 android.hardware.camera2.params.StreamConfigurationMap
 android.hardware.camera2.params.TonemapCurve
 android.hardware.camera2.utils.ArrayUtils
+android.hardware.camera2.utils.ConcurrentCameraIdCombination
+android.hardware.camera2.utils.TypeReference$SpecializedBaseTypeReference
 android.hardware.camera2.utils.TypeReference$SpecializedTypeReference
 android.hardware.camera2.utils.TypeReference
 android.hardware.contexthub.V1_0.ContextHub
@@ -2029,12 +2338,14 @@
 android.hardware.contexthub.V1_0.IContexthubCallback$Stub
 android.hardware.contexthub.V1_0.IContexthubCallback
 android.hardware.contexthub.V1_0.MemRange
+android.hardware.contexthub.V1_0.NanoAppBinary
 android.hardware.contexthub.V1_0.PhysicalSensor
 android.hardware.display.-$$Lambda$NightDisplayListener$sOK1HmSbMnFLzc4SdDD1WpVWJiI
 android.hardware.display.AmbientBrightnessDayStats$1
 android.hardware.display.AmbientBrightnessDayStats
 android.hardware.display.AmbientDisplayConfiguration
 android.hardware.display.BrightnessChangeEvent$1
+android.hardware.display.BrightnessChangeEvent$Builder
 android.hardware.display.BrightnessChangeEvent
 android.hardware.display.BrightnessConfiguration$1
 android.hardware.display.BrightnessConfiguration$Builder
@@ -2081,7 +2392,22 @@
 android.hardware.display.WifiDisplaySessionInfo
 android.hardware.display.WifiDisplayStatus$1
 android.hardware.display.WifiDisplayStatus
+android.hardware.face.Face$1
+android.hardware.face.Face
+android.hardware.face.FaceManager$1
+android.hardware.face.FaceManager$AuthenticationCallback
+android.hardware.face.FaceManager$AuthenticationResult
+android.hardware.face.FaceManager$EnrollmentCallback
+android.hardware.face.FaceManager$MyHandler
+android.hardware.face.FaceManager$OnAuthenticationCancelListener
+android.hardware.face.FaceManager$RemovalCallback
 android.hardware.face.FaceManager
+android.hardware.face.IFaceService$Stub$Proxy
+android.hardware.face.IFaceService$Stub
+android.hardware.face.IFaceService
+android.hardware.face.IFaceServiceReceiver$Stub$Proxy
+android.hardware.face.IFaceServiceReceiver$Stub
+android.hardware.face.IFaceServiceReceiver
 android.hardware.fingerprint.Fingerprint$1
 android.hardware.fingerprint.Fingerprint
 android.hardware.fingerprint.FingerprintManager$1
@@ -2112,6 +2438,7 @@
 android.hardware.input.InputDeviceIdentifier
 android.hardware.input.InputManager$InputDeviceListener
 android.hardware.input.InputManager$InputDeviceListenerDelegate
+android.hardware.input.InputManager$InputDeviceVibrator
 android.hardware.input.InputManager$InputDevicesChangedListener
 android.hardware.input.InputManager
 android.hardware.input.InputManagerInternal
@@ -2120,23 +2447,37 @@
 android.hardware.input.TouchCalibration$1
 android.hardware.input.TouchCalibration
 android.hardware.iris.IrisManager
+android.hardware.lights.LightsManager
+android.hardware.location.-$$Lambda$ContextHubManager$3$U9x_HK_GdADIEQ3mS5mDWMNWMu8
+android.hardware.location.-$$Lambda$ContextHubManager$4$sylEfC1Rx_cxuQRnKuthZXmV8KI
+android.hardware.location.-$$Lambda$ContextHubTransaction$7a5H6DrY_dOy9M3qnYHhlmDHRNQ
+android.hardware.location.-$$Lambda$ContextHubTransaction$RNVGnle3xCUm9u68syzn6-2znnU
 android.hardware.location.ActivityRecognitionHardware
 android.hardware.location.ContextHubClient
+android.hardware.location.ContextHubClientCallback
 android.hardware.location.ContextHubInfo$1
 android.hardware.location.ContextHubInfo
 android.hardware.location.ContextHubManager$2
 android.hardware.location.ContextHubManager$3
 android.hardware.location.ContextHubManager$4
+android.hardware.location.ContextHubManager$Callback
+android.hardware.location.ContextHubManager$ICallback
 android.hardware.location.ContextHubManager
 android.hardware.location.ContextHubMessage$1
 android.hardware.location.ContextHubMessage
+android.hardware.location.ContextHubTransaction$OnCompleteListener
+android.hardware.location.ContextHubTransaction$Response
 android.hardware.location.ContextHubTransaction
+android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper
+android.hardware.location.GeofenceHardware
+android.hardware.location.GeofenceHardwareCallback
 android.hardware.location.GeofenceHardwareImpl$1
 android.hardware.location.GeofenceHardwareImpl$2
 android.hardware.location.GeofenceHardwareImpl$3
 android.hardware.location.GeofenceHardwareImpl$GeofenceTransition
 android.hardware.location.GeofenceHardwareImpl$Reaper
 android.hardware.location.GeofenceHardwareImpl
+android.hardware.location.GeofenceHardwareMonitorCallback
 android.hardware.location.GeofenceHardwareMonitorEvent$1
 android.hardware.location.GeofenceHardwareMonitorEvent
 android.hardware.location.GeofenceHardwareRequest
@@ -2219,6 +2560,7 @@
 android.hardware.radio.V1_0.Call
 android.hardware.radio.V1_0.CallForwardInfo
 android.hardware.radio.V1_0.CardStatus
+android.hardware.radio.V1_0.Carrier
 android.hardware.radio.V1_0.CarrierRestrictions
 android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo
 android.hardware.radio.V1_0.CdmaCallWaiting
@@ -2235,6 +2577,7 @@
 android.hardware.radio.V1_0.CellIdentityTdscdma
 android.hardware.radio.V1_0.CellIdentityWcdma
 android.hardware.radio.V1_0.CellInfo
+android.hardware.radio.V1_0.CellInfoCdma
 android.hardware.radio.V1_0.CellInfoGsm
 android.hardware.radio.V1_0.CellInfoLte
 android.hardware.radio.V1_0.CellInfoTdscdma
@@ -2315,20 +2658,39 @@
 android.hardware.radio.V1_3.IRadioResponse
 android.hardware.radio.V1_4.CardStatus
 android.hardware.radio.V1_4.CarrierRestrictionsWithPriority
+android.hardware.radio.V1_4.CellConfigLte
+android.hardware.radio.V1_4.CellIdentityNr
+android.hardware.radio.V1_4.CellInfo$Info
 android.hardware.radio.V1_4.CellInfo
+android.hardware.radio.V1_4.CellInfoLte
+android.hardware.radio.V1_4.CellInfoNr
+android.hardware.radio.V1_4.DataRegStateResult$VopsInfo$hidl_discriminator
 android.hardware.radio.V1_4.DataRegStateResult$VopsInfo
 android.hardware.radio.V1_4.DataRegStateResult
 android.hardware.radio.V1_4.EmergencyNumber
+android.hardware.radio.V1_4.IRadio$Proxy
 android.hardware.radio.V1_4.IRadio
 android.hardware.radio.V1_4.IRadioIndication$Stub
 android.hardware.radio.V1_4.IRadioIndication
 android.hardware.radio.V1_4.IRadioResponse$Stub
 android.hardware.radio.V1_4.IRadioResponse
+android.hardware.radio.V1_4.LteVopsInfo
 android.hardware.radio.V1_4.NetworkScanResult
 android.hardware.radio.V1_4.NrIndicators
+android.hardware.radio.V1_4.NrSignalStrength
 android.hardware.radio.V1_4.PhysicalChannelConfig
+android.hardware.radio.V1_4.RadioFrequencyInfo
 android.hardware.radio.V1_4.SetupDataCallResult
 android.hardware.radio.V1_4.SignalStrength
+android.hardware.radio.V1_5.CellIdentity
+android.hardware.radio.V1_5.CellIdentityGsm
+android.hardware.radio.V1_5.CellIdentityLte
+android.hardware.radio.V1_5.CellIdentityNr
+android.hardware.radio.V1_5.CellIdentityTdscdma
+android.hardware.radio.V1_5.CellIdentityWcdma
+android.hardware.radio.V1_5.ClosedSubscriberGroupInfo
+android.hardware.radio.V1_5.IRadio
+android.hardware.radio.V1_5.OptionalCsgInfo
 android.hardware.radio.config.V1_0.IRadioConfig
 android.hardware.radio.config.V1_0.IRadioConfigIndication
 android.hardware.radio.config.V1_0.IRadioConfigResponse
@@ -2352,9 +2714,11 @@
 android.hardware.radio.deprecated.V1_0.IOemHookResponse$Stub
 android.hardware.radio.deprecated.V1_0.IOemHookResponse
 android.hardware.sidekick.SidekickInternal
+android.hardware.soundtrigger.ConversionUtil
 android.hardware.soundtrigger.IRecognitionStatusCallback$Stub$Proxy
 android.hardware.soundtrigger.IRecognitionStatusCallback$Stub
 android.hardware.soundtrigger.IRecognitionStatusCallback
+android.hardware.soundtrigger.KeyphraseMetadata
 android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel$1
 android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel
 android.hardware.soundtrigger.SoundTrigger$GenericRecognitionEvent$1
@@ -2369,6 +2733,8 @@
 android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra
 android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel$1
 android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel
+android.hardware.soundtrigger.SoundTrigger$ModelParamRange$1
+android.hardware.soundtrigger.SoundTrigger$ModelParamRange
 android.hardware.soundtrigger.SoundTrigger$ModuleProperties$1
 android.hardware.soundtrigger.SoundTrigger$ModuleProperties
 android.hardware.soundtrigger.SoundTrigger$RecognitionConfig$1
@@ -2380,25 +2746,36 @@
 android.hardware.soundtrigger.SoundTrigger$SoundModelEvent
 android.hardware.soundtrigger.SoundTrigger$StatusListener
 android.hardware.soundtrigger.SoundTrigger
+android.hardware.soundtrigger.SoundTriggerModule$EventHandlerDelegate
 android.hardware.soundtrigger.SoundTriggerModule
 android.hardware.thermal.V1_0.IThermal
 android.hardware.thermal.V1_0.ThermalStatus
+android.hardware.thermal.V2_0.CoolingDevice
 android.hardware.thermal.V2_0.IThermal$Proxy
+android.hardware.thermal.V2_0.IThermal$getCurrentCoolingDevicesCallback
 android.hardware.thermal.V2_0.IThermal$getCurrentTemperaturesCallback
 android.hardware.thermal.V2_0.IThermal
 android.hardware.thermal.V2_0.IThermalChangedCallback$Stub
 android.hardware.thermal.V2_0.IThermalChangedCallback
 android.hardware.thermal.V2_0.Temperature
+android.hardware.usb.AccessoryFilter
+android.hardware.usb.DeviceFilter
 android.hardware.usb.IUsbManager$Stub$Proxy
 android.hardware.usb.IUsbManager$Stub
 android.hardware.usb.IUsbManager
+android.hardware.usb.IUsbSerialReader$Stub
+android.hardware.usb.IUsbSerialReader
 android.hardware.usb.ParcelableUsbPort$1
 android.hardware.usb.ParcelableUsbPort
 android.hardware.usb.UsbAccessory$2
 android.hardware.usb.UsbAccessory
+android.hardware.usb.UsbConfiguration$1
+android.hardware.usb.UsbConfiguration
 android.hardware.usb.UsbDevice$1
+android.hardware.usb.UsbDevice$Builder
 android.hardware.usb.UsbDevice
 android.hardware.usb.UsbDeviceConnection
+android.hardware.usb.UsbInterface
 android.hardware.usb.UsbManager
 android.hardware.usb.UsbPort
 android.hardware.usb.UsbPortStatus$1
@@ -2411,8 +2788,18 @@
 android.icu.impl.BMPSet
 android.icu.impl.CacheBase
 android.icu.impl.CacheValue$NullValue
+android.icu.impl.CacheValue$SoftValue
 android.icu.impl.CacheValue$Strength
+android.icu.impl.CacheValue$StrongValue
 android.icu.impl.CacheValue
+android.icu.impl.CalType
+android.icu.impl.CalendarUtil$CalendarPreferences
+android.icu.impl.CalendarUtil
+android.icu.impl.CaseMapImpl$StringContextIterator
+android.icu.impl.CaseMapImpl
+android.icu.impl.CharTrie
+android.icu.impl.CharacterIteration
+android.icu.impl.CharacterPropertiesImpl
 android.icu.impl.ClassLoaderUtil
 android.icu.impl.CurrencyData$CurrencyDisplayInfo
 android.icu.impl.CurrencyData$CurrencyDisplayInfoProvider
@@ -2420,6 +2807,11 @@
 android.icu.impl.CurrencyData$CurrencySpacingInfo$SpacingType
 android.icu.impl.CurrencyData$CurrencySpacingInfo
 android.icu.impl.CurrencyData
+android.icu.impl.DateNumberFormat
+android.icu.impl.FormattedStringBuilder
+android.icu.impl.FormattedValueStringBuilderImpl$NullField
+android.icu.impl.FormattedValueStringBuilderImpl
+android.icu.impl.Grego
 android.icu.impl.ICUBinary$Authenticate
 android.icu.impl.ICUBinary$DatPackageReader$IsAcceptable
 android.icu.impl.ICUBinary$DatPackageReader
@@ -2441,20 +2833,26 @@
 android.icu.impl.ICUData
 android.icu.impl.ICUDebug
 android.icu.impl.ICULocaleService$ICUResourceBundleFactory
+android.icu.impl.ICULocaleService$LocaleKey
 android.icu.impl.ICULocaleService$LocaleKeyFactory
 android.icu.impl.ICULocaleService
 android.icu.impl.ICUNotifier
 android.icu.impl.ICURWLock
 android.icu.impl.ICUResourceBundle$1
+android.icu.impl.ICUResourceBundle$2$1
+android.icu.impl.ICUResourceBundle$2
 android.icu.impl.ICUResourceBundle$3
 android.icu.impl.ICUResourceBundle$4
+android.icu.impl.ICUResourceBundle$AvailEntry
 android.icu.impl.ICUResourceBundle$Loader
 android.icu.impl.ICUResourceBundle$OpenType
 android.icu.impl.ICUResourceBundle$WholeBundle
 android.icu.impl.ICUResourceBundle
 android.icu.impl.ICUResourceBundleImpl$ResourceArray
+android.icu.impl.ICUResourceBundleImpl$ResourceBinary
 android.icu.impl.ICUResourceBundleImpl$ResourceContainer
 android.icu.impl.ICUResourceBundleImpl$ResourceInt
+android.icu.impl.ICUResourceBundleImpl$ResourceIntVector
 android.icu.impl.ICUResourceBundleImpl$ResourceString
 android.icu.impl.ICUResourceBundleImpl$ResourceTable
 android.icu.impl.ICUResourceBundleImpl
@@ -2472,25 +2870,79 @@
 android.icu.impl.ICUResourceBundleReader$Table16
 android.icu.impl.ICUResourceBundleReader$Table
 android.icu.impl.ICUResourceBundleReader
+android.icu.impl.ICUService$CacheEntry
 android.icu.impl.ICUService$Factory
+android.icu.impl.ICUService$Key
 android.icu.impl.ICUService
+android.icu.impl.IDNA2003
+android.icu.impl.JavaTimeZone
 android.icu.impl.LocaleIDParser
+android.icu.impl.LocaleIDs
+android.icu.impl.Norm2AllModes$1
+android.icu.impl.Norm2AllModes$ComposeNormalizer2
+android.icu.impl.Norm2AllModes$DecomposeNormalizer2
+android.icu.impl.Norm2AllModes$FCDNormalizer2
+android.icu.impl.Norm2AllModes$NFCSingleton
+android.icu.impl.Norm2AllModes$NFKCSingleton
+android.icu.impl.Norm2AllModes$NoopNormalizer2
+android.icu.impl.Norm2AllModes$Norm2AllModesSingleton
+android.icu.impl.Norm2AllModes$Normalizer2WithImpl
+android.icu.impl.Norm2AllModes
+android.icu.impl.Normalizer2Impl$1
+android.icu.impl.Normalizer2Impl$IsAcceptable
+android.icu.impl.Normalizer2Impl$ReorderingBuffer
+android.icu.impl.Normalizer2Impl$UTF16Plus
+android.icu.impl.Normalizer2Impl
+android.icu.impl.OlsonTimeZone
 android.icu.impl.Pair
+android.icu.impl.PatternProps
+android.icu.impl.PatternTokenizer
+android.icu.impl.PluralRulesLoader
 android.icu.impl.RBBIDataWrapper$IsAcceptable
 android.icu.impl.RBBIDataWrapper$RBBIDataHeader
 android.icu.impl.RBBIDataWrapper$RBBIStateTable
 android.icu.impl.RBBIDataWrapper
+android.icu.impl.ReplaceableUCharacterIterator
+android.icu.impl.RuleCharacterIterator
 android.icu.impl.SimpleCache
+android.icu.impl.SimpleFormatterImpl
 android.icu.impl.SoftCache
+android.icu.impl.StandardPlural
+android.icu.impl.StaticUnicodeSets$Key
+android.icu.impl.StaticUnicodeSets$ParseDataSink
+android.icu.impl.StaticUnicodeSets
+android.icu.impl.StringPrepDataReader
+android.icu.impl.StringSegment
+android.icu.impl.TextTrieMap$Node
+android.icu.impl.TextTrieMap
+android.icu.impl.TimeZoneNamesFactoryImpl
+android.icu.impl.TimeZoneNamesImpl$1
+android.icu.impl.TimeZoneNamesImpl$MZ2TZsCache
+android.icu.impl.TimeZoneNamesImpl$MZMapEntry
+android.icu.impl.TimeZoneNamesImpl$TZ2MZsCache
+android.icu.impl.TimeZoneNamesImpl$ZNames$NameTypeIndex
+android.icu.impl.TimeZoneNamesImpl$ZNames
+android.icu.impl.TimeZoneNamesImpl$ZNamesLoader
+android.icu.impl.TimeZoneNamesImpl
+android.icu.impl.Trie$DataManipulate
+android.icu.impl.Trie$DefaultGetFoldingOffset
 android.icu.impl.Trie2$1
 android.icu.impl.Trie2$2
+android.icu.impl.Trie2$Range
+android.icu.impl.Trie2$Trie2Iterator
 android.icu.impl.Trie2$UTrie2Header
 android.icu.impl.Trie2$ValueMapper
 android.icu.impl.Trie2$ValueWidth
 android.icu.impl.Trie2
 android.icu.impl.Trie2_16
+android.icu.impl.Trie2_32
+android.icu.impl.Trie
 android.icu.impl.UBiDiProps$IsAcceptable
 android.icu.impl.UBiDiProps
+android.icu.impl.UCaseProps$ContextIterator
+android.icu.impl.UCaseProps$IsAcceptable
+android.icu.impl.UCaseProps$LatinCase
+android.icu.impl.UCaseProps
 android.icu.impl.UCharacterProperty$10
 android.icu.impl.UCharacterProperty$11
 android.icu.impl.UCharacterProperty$12
@@ -2527,48 +2979,118 @@
 android.icu.impl.UCharacterProperty$NormInertBinaryProperty
 android.icu.impl.UCharacterProperty$NormQuickCheckIntProperty
 android.icu.impl.UCharacterProperty
+android.icu.impl.UPropertyAliases$IsAcceptable
+android.icu.impl.UPropertyAliases
+android.icu.impl.URLHandler$URLVisitor
 android.icu.impl.UResource$Array
 android.icu.impl.UResource$Key
 android.icu.impl.UResource$Sink
 android.icu.impl.UResource$Table
 android.icu.impl.UResource$Value
 android.icu.impl.UResource
+android.icu.impl.USerializedSet
+android.icu.impl.UnicodeSetStringSpan$OffsetList
+android.icu.impl.UnicodeSetStringSpan
 android.icu.impl.Utility
 android.icu.impl.ZoneMeta$1
 android.icu.impl.ZoneMeta$CustomTimeZoneCache
 android.icu.impl.ZoneMeta$SystemTimeZoneCache
 android.icu.impl.ZoneMeta
+android.icu.impl.coll.CollationData
+android.icu.impl.coll.CollationDataReader$IsAcceptable
+android.icu.impl.coll.CollationDataReader
+android.icu.impl.coll.CollationFastLatin
+android.icu.impl.coll.CollationIterator$CEBuffer
+android.icu.impl.coll.CollationLoader
+android.icu.impl.coll.CollationRoot
+android.icu.impl.coll.CollationSettings
+android.icu.impl.coll.CollationTailoring
+android.icu.impl.coll.SharedObject$Reference
+android.icu.impl.coll.SharedObject
+android.icu.impl.locale.AsciiUtil$CaseInsensitiveKey
 android.icu.impl.locale.AsciiUtil
 android.icu.impl.locale.BaseLocale$Cache
 android.icu.impl.locale.BaseLocale$Key
 android.icu.impl.locale.BaseLocale
+android.icu.impl.locale.InternalLocaleBuilder$CaseInsensitiveChar
+android.icu.impl.locale.InternalLocaleBuilder
+android.icu.impl.locale.LanguageTag
 android.icu.impl.locale.LocaleObjectCache$CacheEntry
 android.icu.impl.locale.LocaleObjectCache
 android.icu.impl.locale.LocaleSyntaxException
+android.icu.impl.number.AdoptingModifierStore
 android.icu.impl.number.AffixPatternProvider
+android.icu.impl.number.AffixUtils$SymbolProvider
+android.icu.impl.number.AffixUtils$TokenConsumer
 android.icu.impl.number.AffixUtils
+android.icu.impl.number.ConstantAffixModifier
+android.icu.impl.number.ConstantMultiFieldModifier
+android.icu.impl.number.CurrencySpacingEnabledModifier
 android.icu.impl.number.CustomSymbolCurrency
 android.icu.impl.number.DecimalFormatProperties$ParseMode
 android.icu.impl.number.DecimalFormatProperties
+android.icu.impl.number.DecimalQuantity
+android.icu.impl.number.DecimalQuantity_AbstractBCD
+android.icu.impl.number.DecimalQuantity_DualStorageBCD
 android.icu.impl.number.Grouper
 android.icu.impl.number.MacroProps
+android.icu.impl.number.MicroProps
+android.icu.impl.number.MicroPropsGenerator
+android.icu.impl.number.Modifier
+android.icu.impl.number.ModifierStore
+android.icu.impl.number.MultiplierFormatHandler
+android.icu.impl.number.MutablePatternModifier$ImmutablePatternModifier
+android.icu.impl.number.MutablePatternModifier
 android.icu.impl.number.Padder$PadPosition
+android.icu.impl.number.Padder
 android.icu.impl.number.PatternStringParser$ParsedPatternInfo
 android.icu.impl.number.PatternStringParser$ParsedSubpatternInfo
 android.icu.impl.number.PatternStringParser$ParserState
 android.icu.impl.number.PatternStringParser
+android.icu.impl.number.PatternStringUtils
 android.icu.impl.number.PropertiesAffixPatternProvider
 android.icu.impl.number.RoundingUtils
+android.icu.impl.number.parse.AffixMatcher$1
+android.icu.impl.number.parse.AffixMatcher
+android.icu.impl.number.parse.AffixPatternMatcher
+android.icu.impl.number.parse.AffixTokenMatcherFactory
+android.icu.impl.number.parse.DecimalMatcher
+android.icu.impl.number.parse.IgnorablesMatcher
+android.icu.impl.number.parse.InfinityMatcher
+android.icu.impl.number.parse.MinusSignMatcher
+android.icu.impl.number.parse.NanMatcher
+android.icu.impl.number.parse.NumberParseMatcher$Flexible
+android.icu.impl.number.parse.NumberParseMatcher
+android.icu.impl.number.parse.NumberParserImpl
+android.icu.impl.number.parse.ParsedNumber$1
+android.icu.impl.number.parse.ParsedNumber
+android.icu.impl.number.parse.ParsingUtils
+android.icu.impl.number.parse.RequireAffixValidator
+android.icu.impl.number.parse.RequireNumberValidator
+android.icu.impl.number.parse.ScientificMatcher
+android.icu.impl.number.parse.SeriesMatcher
+android.icu.impl.number.parse.SymbolMatcher
+android.icu.impl.number.parse.ValidationMatcher
+android.icu.lang.CharacterProperties
 android.icu.lang.UCharacter
 android.icu.lang.UCharacterEnums$ECharacterCategory
 android.icu.lang.UCharacterEnums$ECharacterDirection
+android.icu.lang.UScript$ScriptUsage
+android.icu.lang.UScript
+android.icu.math.BigDecimal
+android.icu.math.MathContext
+android.icu.number.CompactNotation
 android.icu.number.CurrencyPrecision
+android.icu.number.FormattedNumber
 android.icu.number.FractionPrecision
 android.icu.number.IntegerWidth
 android.icu.number.LocalizedNumberFormatter
+android.icu.number.Notation
 android.icu.number.NumberFormatter$DecimalSeparatorDisplay
 android.icu.number.NumberFormatter$SignDisplay
+android.icu.number.NumberFormatter$UnitWidth
 android.icu.number.NumberFormatter
+android.icu.number.NumberFormatterImpl
 android.icu.number.NumberFormatterSettings
 android.icu.number.NumberPropertyMapper
 android.icu.number.Precision$CurrencyRounderImpl
@@ -2580,18 +3102,66 @@
 android.icu.number.Precision$PassThroughRounderImpl
 android.icu.number.Precision$SignificantRounderImpl
 android.icu.number.Precision
+android.icu.number.Scale
+android.icu.number.ScientificNotation
 android.icu.number.UnlocalizedNumberFormatter
+android.icu.text.AlphabeticIndex$1
+android.icu.text.AlphabeticIndex$Bucket
+android.icu.text.AlphabeticIndex$BucketList
+android.icu.text.AlphabeticIndex$ImmutableIndex
+android.icu.text.Bidi$ImpTabPair
+android.icu.text.Bidi
 android.icu.text.BidiClassifier
+android.icu.text.BidiLine
 android.icu.text.BreakIterator$BreakIteratorCache
 android.icu.text.BreakIterator$BreakIteratorServiceShim
 android.icu.text.BreakIterator
 android.icu.text.BreakIteratorFactory$BFService$1RBBreakIteratorFactory
 android.icu.text.BreakIteratorFactory$BFService
 android.icu.text.BreakIteratorFactory
+android.icu.text.CaseMap$Title
+android.icu.text.CaseMap$Upper
+android.icu.text.CaseMap
+android.icu.text.Collator$ServiceShim
+android.icu.text.Collator
+android.icu.text.CollatorServiceShim$CService$1CollatorFactory
+android.icu.text.CollatorServiceShim$CService
+android.icu.text.CollatorServiceShim
+android.icu.text.ConstrainedFieldPosition$1
+android.icu.text.ConstrainedFieldPosition$ConstraintType
+android.icu.text.ConstrainedFieldPosition
 android.icu.text.CurrencyDisplayNames
 android.icu.text.CurrencyMetaInfo$CurrencyDigits
 android.icu.text.CurrencyMetaInfo$CurrencyFilter
 android.icu.text.CurrencyMetaInfo
+android.icu.text.DateFormat$BooleanAttribute
+android.icu.text.DateFormat$Field
+android.icu.text.DateFormat
+android.icu.text.DateFormatSymbols$1
+android.icu.text.DateFormatSymbols$CalendarDataSink$AliasType
+android.icu.text.DateFormatSymbols$CalendarDataSink
+android.icu.text.DateFormatSymbols$CapitalizationContextUsage
+android.icu.text.DateFormatSymbols
+android.icu.text.DateIntervalFormat$BestMatchInfo
+android.icu.text.DateIntervalFormat
+android.icu.text.DateIntervalInfo$DateIntervalSink
+android.icu.text.DateIntervalInfo$PatternInfo
+android.icu.text.DateIntervalInfo
+android.icu.text.DateTimePatternGenerator$AppendItemFormatsSink
+android.icu.text.DateTimePatternGenerator$AppendItemNamesSink
+android.icu.text.DateTimePatternGenerator$AvailableFormatsSink
+android.icu.text.DateTimePatternGenerator$DTPGflags
+android.icu.text.DateTimePatternGenerator$DateTimeMatcher
+android.icu.text.DateTimePatternGenerator$DayPeriodAllowedHoursSink
+android.icu.text.DateTimePatternGenerator$DisplayWidth
+android.icu.text.DateTimePatternGenerator$DistanceInfo
+android.icu.text.DateTimePatternGenerator$FormatParser
+android.icu.text.DateTimePatternGenerator$PatternInfo
+android.icu.text.DateTimePatternGenerator$PatternWithMatcher
+android.icu.text.DateTimePatternGenerator$PatternWithSkeletonFlag
+android.icu.text.DateTimePatternGenerator$SkeletonFields
+android.icu.text.DateTimePatternGenerator$VariableField
+android.icu.text.DateTimePatternGenerator
 android.icu.text.DecimalFormat
 android.icu.text.DecimalFormatSymbols$1
 android.icu.text.DecimalFormatSymbols$CacheData
@@ -2601,50 +3171,144 @@
 android.icu.text.DictionaryBreakEngine
 android.icu.text.DisplayContext$Type
 android.icu.text.DisplayContext
+android.icu.text.Edits$Iterator
+android.icu.text.Edits
+android.icu.text.FormattedValue
+android.icu.text.IDNA
 android.icu.text.LanguageBreakEngine
+android.icu.text.MeasureFormat$FormatWidth
+android.icu.text.MeasureFormat
 android.icu.text.Normalizer$FCDMode
 android.icu.text.Normalizer$Mode
+android.icu.text.Normalizer$ModeImpl
 android.icu.text.Normalizer$NFCMode
 android.icu.text.Normalizer$NFDMode
 android.icu.text.Normalizer$NFKCMode
 android.icu.text.Normalizer$NFKDMode
+android.icu.text.Normalizer$NFKDModeImpl
 android.icu.text.Normalizer$NONEMode
 android.icu.text.Normalizer$QuickCheckResult
+android.icu.text.Normalizer2
 android.icu.text.Normalizer
+android.icu.text.NumberFormat$Field
+android.icu.text.NumberFormat$NumberFormatShim
 android.icu.text.NumberFormat
+android.icu.text.NumberFormatServiceShim$NFService$1RBNumberFormatFactory
+android.icu.text.NumberFormatServiceShim$NFService
 android.icu.text.NumberingSystem$1
 android.icu.text.NumberingSystem$2
 android.icu.text.NumberingSystem$LocaleLookupData
 android.icu.text.NumberingSystem
+android.icu.text.PluralRanges$Matrix
+android.icu.text.PluralRanges
+android.icu.text.PluralRules$1
+android.icu.text.PluralRules$2
+android.icu.text.PluralRules$AndConstraint
+android.icu.text.PluralRules$BinaryConstraint
+android.icu.text.PluralRules$Constraint
+android.icu.text.PluralRules$Factory
+android.icu.text.PluralRules$FixedDecimal
+android.icu.text.PluralRules$FixedDecimalRange
+android.icu.text.PluralRules$FixedDecimalSamples
+android.icu.text.PluralRules$IFixedDecimal
+android.icu.text.PluralRules$Operand
+android.icu.text.PluralRules$PluralType
+android.icu.text.PluralRules$RangeConstraint
+android.icu.text.PluralRules$Rule
+android.icu.text.PluralRules$RuleList
+android.icu.text.PluralRules$SampleType
+android.icu.text.PluralRules$SimpleTokenizer
+android.icu.text.PluralRules
+android.icu.text.RelativeDateTimeFormatter$Cache$1
+android.icu.text.RelativeDateTimeFormatter$Cache
+android.icu.text.RelativeDateTimeFormatter$Loader
+android.icu.text.RelativeDateTimeFormatter$RelDateTimeDataSink
+android.icu.text.Replaceable
+android.icu.text.ReplaceableString
 android.icu.text.RuleBasedBreakIterator$BreakCache
 android.icu.text.RuleBasedBreakIterator$DictionaryCache
 android.icu.text.RuleBasedBreakIterator$LookAheadResults
 android.icu.text.RuleBasedBreakIterator
+android.icu.text.RuleBasedCollator$CollationBuffer
+android.icu.text.RuleBasedCollator$FCDUTF16NFDIterator
+android.icu.text.RuleBasedCollator$NFDIterator
+android.icu.text.RuleBasedCollator$UTF16NFDIterator
+android.icu.text.RuleBasedCollator
+android.icu.text.SimpleDateFormat$PatternItem
+android.icu.text.SimpleDateFormat
+android.icu.text.StringPrep
 android.icu.text.StringPrepParseException
 android.icu.text.StringTransform
+android.icu.text.TimeZoneNames$Cache
+android.icu.text.TimeZoneNames$Factory
 android.icu.text.TimeZoneNames$NameType
+android.icu.text.TimeZoneNames
 android.icu.text.Transform
 android.icu.text.Transliterator
+android.icu.text.UCharacterIterator
+android.icu.text.UFieldPosition
 android.icu.text.UFormat
+android.icu.text.UForwardCharacterIterator
+android.icu.text.UTF16$StringComparator
 android.icu.text.UTF16
 android.icu.text.UnhandledBreakEngine
 android.icu.text.UnicodeFilter
 android.icu.text.UnicodeMatcher
+android.icu.text.UnicodeSet$Filter
+android.icu.text.UnicodeSet$GeneralCategoryMaskFilter
+android.icu.text.UnicodeSet$IntPropertyFilter
+android.icu.text.UnicodeSet$SpanCondition
+android.icu.text.UnicodeSet$UnicodeSetIterator2
 android.icu.text.UnicodeSet
+android.icu.util.AnnualTimeZoneRule
+android.icu.util.BasicTimeZone
+android.icu.util.BytesTrie$Result
+android.icu.util.BytesTrie
+android.icu.util.Calendar$1
+android.icu.util.Calendar$FormatConfiguration
+android.icu.util.Calendar$PatternData
+android.icu.util.Calendar$WeekData
+android.icu.util.Calendar$WeekDataCache
+android.icu.util.Calendar
+android.icu.util.CharsTrie$Entry
+android.icu.util.CharsTrie$Iterator
+android.icu.util.CodePointMap$Range
+android.icu.util.CodePointMap$RangeOption
+android.icu.util.CodePointMap$ValueFilter
+android.icu.util.CodePointMap
+android.icu.util.CodePointTrie$1
+android.icu.util.CodePointTrie$Data16
+android.icu.util.CodePointTrie$Data
+android.icu.util.CodePointTrie$Fast16
+android.icu.util.CodePointTrie$Fast
+android.icu.util.CodePointTrie$Type
+android.icu.util.CodePointTrie$ValueWidth
+android.icu.util.CodePointTrie
 android.icu.util.Currency$1
 android.icu.util.Currency$CurrencyUsage
 android.icu.util.Currency
+android.icu.util.DateTimeRule
 android.icu.util.Freezable
+android.icu.util.GregorianCalendar
+android.icu.util.ICUException
+android.icu.util.InitialTimeZoneRule
+android.icu.util.Measure
 android.icu.util.MeasureUnit$1
 android.icu.util.MeasureUnit$2
 android.icu.util.MeasureUnit$3
 android.icu.util.MeasureUnit$4
 android.icu.util.MeasureUnit$Factory
 android.icu.util.MeasureUnit
+android.icu.util.Output
+android.icu.util.STZInfo
+android.icu.util.SimpleTimeZone
+android.icu.util.TimeArrayTimeZoneRule
 android.icu.util.TimeUnit
 android.icu.util.TimeZone$ConstantZone
 android.icu.util.TimeZone$SystemTimeZoneType
 android.icu.util.TimeZone
+android.icu.util.TimeZoneRule
+android.icu.util.TimeZoneTransition
 android.icu.util.ULocale$1
 android.icu.util.ULocale$2
 android.icu.util.ULocale$3
@@ -2655,17 +3319,21 @@
 android.icu.util.UResourceBundle$1
 android.icu.util.UResourceBundle$RootType
 android.icu.util.UResourceBundle
+android.icu.util.UResourceBundleIterator
 android.icu.util.UResourceTypeMismatchException
 android.icu.util.VersionInfo
 android.inputmethodservice.-$$Lambda$InputMethodService$8T9TmAUIN7vW9eU6kTg8309_d4E
+android.inputmethodservice.-$$Lambda$InputMethodService$TvVfWDKZ3ljQdrU87qYykg6uD-I
 android.inputmethodservice.-$$Lambda$InputMethodService$wp8DeVGx_WDOPw4F6an7QbwVxf0
 android.inputmethodservice.AbstractInputMethodService$AbstractInputMethodImpl
 android.inputmethodservice.AbstractInputMethodService$AbstractInputMethodSessionImpl
 android.inputmethodservice.AbstractInputMethodService
+android.inputmethodservice.ExtractEditText
 android.inputmethodservice.IInputMethodSessionWrapper$ImeInputEventReceiver
 android.inputmethodservice.IInputMethodSessionWrapper
 android.inputmethodservice.IInputMethodWrapper$InputMethodSessionCallbackWrapper
 android.inputmethodservice.IInputMethodWrapper
+android.inputmethodservice.InputMethodService$InputMethodImpl
 android.inputmethodservice.InputMethodService$InputMethodSessionImpl
 android.inputmethodservice.InputMethodService$Insets
 android.inputmethodservice.InputMethodService$SettingsObserver
@@ -2673,6 +3341,22 @@
 android.inputmethodservice.SoftInputWindow
 android.internal.hidl.base.V1_0.DebugInfo
 android.internal.hidl.base.V1_0.IBase
+android.internal.hidl.safe_union.V1_0.Monostate
+android.internal.telephony.sysprop.TelephonyProperties
+android.location.-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0
+android.location.-$$Lambda$AbstractListenerManager$Registration$TnkXgyOd99JHl00GzK6Oay_sYms
+android.location.-$$Lambda$GpsStatus$RTSonBp9m0T0NWA3SCfYgWf1mTo
+android.location.-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$4EPi22o4xuVnpNhFHnDvebH4TG8
+android.location.-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$7Fi5XkeF81eL_OKPS2GJMvyc3-8
+android.location.-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$gYcH61KCtV_OcJJszI1TfvnrJHY
+android.location.-$$Lambda$LocationManager$LocationListenerTransport$JzcdERl3Ha8sYr9NxFhb3gNOoCM
+android.location.-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps
+android.location.-$$Lambda$LocationManager$LocationListenerTransport$vDJFuk-DvyNgQEXUO2Jkf2ZFeE8
+android.location.-$$Lambda$LocationManager$LocationListenerTransport$vtBApnyHdgybRqRKlCt1NFEyfeQ
+android.location.-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY
+android.location.-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo
+android.location.AbstractListenerManager$Registration
+android.location.AbstractListenerManager
 android.location.Address$1
 android.location.Address
 android.location.Country$1
@@ -2682,6 +3366,7 @@
 android.location.CountryListener
 android.location.Criteria$1
 android.location.Criteria
+android.location.FusedBatchOptions$SourceTechnologies
 android.location.Geocoder
 android.location.GeocoderParams$1
 android.location.GeocoderParams
@@ -2693,7 +3378,21 @@
 android.location.GnssMeasurement
 android.location.GnssMeasurementCorrections$1
 android.location.GnssMeasurementCorrections
+android.location.GnssMeasurementsEvent$1
+android.location.GnssMeasurementsEvent
+android.location.GnssNavigationMessage$1
+android.location.GnssNavigationMessage
+android.location.GnssReflectingPlane$1
+android.location.GnssReflectingPlane
+android.location.GnssRequest
+android.location.GnssSingleSatCorrection$1
+android.location.GnssSingleSatCorrection
+android.location.GnssStatus$Callback
+android.location.GnssStatus
+android.location.GpsSatellite
 android.location.GpsStatus$Listener
+android.location.GpsStatus$SatelliteIterator
+android.location.GpsStatus
 android.location.IBatchedLocationCallback$Stub$Proxy
 android.location.IBatchedLocationCallback$Stub
 android.location.IBatchedLocationCallback
@@ -2712,6 +3411,8 @@
 android.location.IGeofenceProvider$Stub$Proxy
 android.location.IGeofenceProvider$Stub
 android.location.IGeofenceProvider
+android.location.IGnssAntennaInfoListener$Stub
+android.location.IGnssAntennaInfoListener
 android.location.IGnssMeasurementsListener$Stub$Proxy
 android.location.IGnssMeasurementsListener$Stub
 android.location.IGnssMeasurementsListener
@@ -2737,14 +3438,31 @@
 android.location.Location$BearingDistanceCache
 android.location.Location
 android.location.LocationListener
+android.location.LocationManager$BatchedLocationCallbackManager
+android.location.LocationManager$GnssAntennaInfoListenerManager
+android.location.LocationManager$GnssMeasurementsListenerManager
+android.location.LocationManager$GnssNavigationMessageListenerManager
+android.location.LocationManager$GnssStatusListenerManager$1
+android.location.LocationManager$GnssStatusListenerManager$GnssStatusListener
+android.location.LocationManager$GnssStatusListenerManager
+android.location.LocationManager$LocationListenerTransport
+android.location.LocationManager$NmeaAdapter
 android.location.LocationManager
 android.location.LocationProvider
 android.location.LocationRequest$1
 android.location.LocationRequest
+android.location.LocationTime$1
+android.location.LocationTime
+android.location.OnNmeaMessageListener
 android.media.-$$Lambda$MediaCodecInfo$VideoCapabilities$DpgwEn-gVFZT9EtP3qcxpiA2G0M
+android.media.-$$Lambda$MediaDrm$8rRollK1F3eENvuaBGoS8u_-heQ
+android.media.-$$Lambda$MediaDrm$IvEWhXQgSYABwC6_1bdnhTJ4V2I
+android.media.-$$Lambda$MediaDrm$UPVWCanGo24eu9-1S_t6PvJ1Zno
 android.media.AudioAttributes$1
 android.media.AudioAttributes$Builder
 android.media.AudioAttributes
+android.media.AudioDevice$1
+android.media.AudioDevice
 android.media.AudioDeviceAddress$1
 android.media.AudioDeviceAddress
 android.media.AudioDeviceCallback
@@ -2767,6 +3485,8 @@
 android.media.AudioManager$4
 android.media.AudioManager$AudioPlaybackCallback
 android.media.AudioManager$AudioPlaybackCallbackInfo
+android.media.AudioManager$AudioRecordingCallback
+android.media.AudioManager$AudioRecordingCallbackInfo
 android.media.AudioManager$BlockingFocusResultReceiver
 android.media.AudioManager$FocusRequestInfo
 android.media.AudioManager$NativeEventHandlerDelegate$1
@@ -2774,6 +3494,8 @@
 android.media.AudioManager$OnAmPortUpdateListener
 android.media.AudioManager$OnAudioFocusChangeListener
 android.media.AudioManager$OnAudioPortUpdateListener
+android.media.AudioManager$PlaybackConfigChangeCallbackData
+android.media.AudioManager$RecordConfigChangeCallbackData
 android.media.AudioManager$SafeWaitObject
 android.media.AudioManager$ServiceEventHandlerDelegate$1
 android.media.AudioManager$ServiceEventHandlerDelegate
@@ -2794,6 +3516,8 @@
 android.media.AudioPresentation
 android.media.AudioRecord
 android.media.AudioRecordRoutingProxy
+android.media.AudioRecordingConfiguration$1
+android.media.AudioRecordingConfiguration
 android.media.AudioRecordingMonitor
 android.media.AudioRecordingMonitorClient
 android.media.AudioRecordingMonitorImpl$1
@@ -2806,6 +3530,8 @@
 android.media.AudioSystem$ErrorCallback
 android.media.AudioSystem
 android.media.AudioTimestamp
+android.media.AudioTrack$1
+android.media.AudioTrack$TunerConfiguration
 android.media.AudioTrack
 android.media.AudioTrackRoutingProxy
 android.media.CamcorderProfile
@@ -2813,6 +3539,7 @@
 android.media.DecoderCapabilities
 android.media.EncoderCapabilities
 android.media.ExifInterface$ByteOrderedDataInputStream
+android.media.ExifInterface$ByteOrderedDataOutputStream
 android.media.ExifInterface$ExifAttribute
 android.media.ExifInterface$ExifTag
 android.media.ExifInterface$Rational
@@ -2865,6 +3592,8 @@
 android.media.IRingtonePlayer$Stub$Proxy
 android.media.IRingtonePlayer$Stub
 android.media.IRingtonePlayer
+android.media.IStrategyPreferredDeviceDispatcher$Stub
+android.media.IStrategyPreferredDeviceDispatcher
 android.media.IVolumeController$Stub$Proxy
 android.media.IVolumeController$Stub
 android.media.IVolumeController
@@ -2885,7 +3614,11 @@
 android.media.MediaCodec$CryptoInfo$Pattern
 android.media.MediaCodec$CryptoInfo
 android.media.MediaCodec$EventHandler
+android.media.MediaCodec$GraphicBlock
+android.media.MediaCodec$LinearBlock
+android.media.MediaCodec$OutputFrame
 android.media.MediaCodec$PersistentSurface
+android.media.MediaCodec$QueueRequest
 android.media.MediaCodec
 android.media.MediaCodecInfo$AudioCapabilities
 android.media.MediaCodecInfo$CodecCapabilities
@@ -2897,13 +3630,18 @@
 android.media.MediaCodecInfo
 android.media.MediaCodecList
 android.media.MediaCrypto
+android.media.MediaCryptoException
 android.media.MediaDescrambler
 android.media.MediaDescription$1
+android.media.MediaDescription$Builder
 android.media.MediaDescription
 android.media.MediaDrm$Certificate
+android.media.MediaDrm$CryptoSession
 android.media.MediaDrm$KeyRequest
 android.media.MediaDrm$KeyStatus
+android.media.MediaDrm$ListenerWithExecutor
 android.media.MediaDrm$MediaDrmStateException
+android.media.MediaDrm$OnEventListener
 android.media.MediaDrm$ProvisionRequest
 android.media.MediaDrm$SessionException
 android.media.MediaDrm
@@ -2929,11 +3667,19 @@
 android.media.MediaPlayer$EventHandler$1
 android.media.MediaPlayer$EventHandler$2
 android.media.MediaPlayer$EventHandler
+android.media.MediaPlayer$OnBufferingUpdateListener
 android.media.MediaPlayer$OnCompletionListener
+android.media.MediaPlayer$OnDrmInfoHandlerDelegate
 android.media.MediaPlayer$OnErrorListener
+android.media.MediaPlayer$OnInfoListener
+android.media.MediaPlayer$OnMediaTimeDiscontinuityListener
 android.media.MediaPlayer$OnPreparedListener
 android.media.MediaPlayer$OnSeekCompleteListener
 android.media.MediaPlayer$OnSubtitleDataListener
+android.media.MediaPlayer$OnTimedMetaDataAvailableListener
+android.media.MediaPlayer$OnTimedTextListener
+android.media.MediaPlayer$OnVideoSizeChangedListener
+android.media.MediaPlayer$ProvisioningThread
 android.media.MediaPlayer$TimeProvider$EventHandler
 android.media.MediaPlayer$TimeProvider
 android.media.MediaPlayer$TrackInfo$1
@@ -2955,8 +3701,10 @@
 android.media.MediaRouter$Static$Client$2
 android.media.MediaRouter$Static$Client
 android.media.MediaRouter$Static
+android.media.MediaRouter$UserRouteInfo$SessionVolumeProvider
 android.media.MediaRouter$UserRouteInfo
 android.media.MediaRouter$VolumeCallback
+android.media.MediaRouter$VolumeCallbackInfo
 android.media.MediaRouter$VolumeChangeReceiver
 android.media.MediaRouter$WifiDisplayStatusChangedReceiver
 android.media.MediaRouter
@@ -2971,6 +3719,7 @@
 android.media.MediaTimeProvider$OnMediaTimeListener
 android.media.MediaTimeProvider
 android.media.MediaTimestamp
+android.media.MediaTranscodeManager
 android.media.MicrophoneDirection
 android.media.MicrophoneInfo$Coordinate3F
 android.media.MicrophoneInfo
@@ -2985,11 +3734,14 @@
 android.media.PlayerBase
 android.media.Rating$1
 android.media.Rating
+android.media.RemoteControlClient
 android.media.RemoteDisplay
 android.media.ResampleInputStream
 android.media.Ringtone$MyOnCompletionListener
 android.media.Ringtone
 android.media.RingtoneManager
+android.media.RouteDiscoveryPreference
+android.media.RoutingSessionInfo
 android.media.SoundPool$Builder
 android.media.SoundPool$EventHandler
 android.media.SoundPool$OnLoadCompleteListener
@@ -3002,6 +3754,7 @@
 android.media.SubtitleData
 android.media.SubtitleTrack
 android.media.SyncParams
+android.media.ThumbnailUtils
 android.media.TimedMetaData
 android.media.TimedText
 android.media.ToneGenerator
@@ -3011,6 +3764,7 @@
 android.media.VolumeAutomation
 android.media.VolumePolicy$1
 android.media.VolumePolicy
+android.media.VolumeProvider
 android.media.VolumeShaper$Configuration$1
 android.media.VolumeShaper$Configuration$Builder
 android.media.VolumeShaper$Configuration
@@ -3019,10 +3773,18 @@
 android.media.VolumeShaper$Operation
 android.media.VolumeShaper$State$1
 android.media.VolumeShaper$State
+android.media.VolumeShaper
 android.media.audiofx.AudioEffect$Descriptor
+android.media.audiopolicy.-$$Lambda$AudioPolicy$-ztOT0FT3tzGMUr4lm1gv6dBE4c
+android.media.audiopolicy.AudioMix$Builder
 android.media.audiopolicy.AudioMix
 android.media.audiopolicy.AudioMixingRule$AudioMixMatchCriterion
+android.media.audiopolicy.AudioMixingRule$Builder
 android.media.audiopolicy.AudioMixingRule
+android.media.audiopolicy.AudioPolicy$1
+android.media.audiopolicy.AudioPolicy$AudioPolicyStatusListener
+android.media.audiopolicy.AudioPolicy$EventHandler
+android.media.audiopolicy.AudioPolicy
 android.media.audiopolicy.AudioPolicyConfig$1
 android.media.audiopolicy.AudioPolicyConfig
 android.media.audiopolicy.AudioProductStrategy$1
@@ -3050,11 +3812,18 @@
 android.media.browse.MediaBrowser$SubscriptionCallback
 android.media.browse.MediaBrowser
 android.media.browse.MediaBrowserUtils
+android.media.midi.IMidiDeviceListener$Stub
+android.media.midi.IMidiDeviceListener
+android.media.midi.IMidiDeviceOpenCallback$Stub
+android.media.midi.IMidiDeviceOpenCallback
+android.media.midi.IMidiDeviceServer$Stub
+android.media.midi.IMidiDeviceServer
 android.media.midi.IMidiManager$Stub
 android.media.midi.IMidiManager
 android.media.midi.MidiDevice
 android.media.midi.MidiDeviceInfo$1
 android.media.midi.MidiDeviceInfo
+android.media.midi.MidiDeviceStatus
 android.media.midi.MidiManager
 android.media.projection.IMediaProjection$Stub$Proxy
 android.media.projection.IMediaProjection$Stub
@@ -3065,6 +3834,9 @@
 android.media.projection.IMediaProjectionWatcherCallback$Stub$Proxy
 android.media.projection.IMediaProjectionWatcherCallback$Stub
 android.media.projection.IMediaProjectionWatcherCallback
+android.media.projection.MediaProjection
+android.media.projection.MediaProjectionInfo$1
+android.media.projection.MediaProjectionInfo
 android.media.projection.MediaProjectionManager$CallbackDelegate
 android.media.projection.MediaProjectionManager
 android.media.session.-$$Lambda$MediaSessionManager$IEuWPZ528guBgmyKPMUWhBwnMCE
@@ -3114,6 +3886,7 @@
 android.media.session.MediaSession$Token$1
 android.media.session.MediaSession$Token
 android.media.session.MediaSession
+android.media.session.MediaSessionLegacyHelper
 android.media.session.MediaSessionManager$1
 android.media.session.MediaSessionManager$OnActiveSessionsChangedListener
 android.media.session.MediaSessionManager$OnMediaKeyEventDispatchedListener
@@ -3136,13 +3909,22 @@
 android.media.session.PlaybackState$CustomAction$1
 android.media.session.PlaybackState$CustomAction
 android.media.session.PlaybackState
+android.media.soundtrigger.ISoundTriggerDetectionServiceClient$Stub
+android.media.soundtrigger.ISoundTriggerDetectionServiceClient
 android.media.soundtrigger.SoundTriggerManager
+android.media.soundtrigger_middleware.ISoundTriggerCallback$Stub
+android.media.soundtrigger_middleware.ISoundTriggerCallback
+android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService
+android.media.soundtrigger_middleware.ISoundTriggerModule
 android.media.tv.TvInputHardwareInfo$Builder
 android.media.tv.TvInputManager
 android.media.tv.TvStreamConfig$1
 android.media.tv.TvStreamConfig$Builder
 android.media.tv.TvStreamConfig
 android.metrics.LogMaker
+android.metrics.MetricsReader$Event
+android.metrics.MetricsReader$LogReader
+android.metrics.MetricsReader
 android.mtp.MtpDatabase$1
 android.mtp.MtpDatabase$2
 android.mtp.MtpDatabase
@@ -3160,13 +3942,23 @@
 android.mtp.MtpStorageManager
 android.net.-$$Lambda$FpGXkd3pLxeXY58eJ_84mi1PLWQ
 android.net.-$$Lambda$Network$KD6DxaMRJIcajhj36TU1K7lJnHQ
+android.net.-$$Lambda$NetworkFactory$HfslgqyaKc_n0wXX5_qRYVZoGfI
+android.net.-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$PGkg1UrNyisY0wAts4zoVuYRgkw
+android.net.-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$TEOhIiY2C9y8yDWwRR6zm_12TGY
+android.net.-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY
 android.net.-$$Lambda$NetworkStats$xvFSsVoR0k5s7Fhw1yPDPVIpx8A
 android.net.-$$Lambda$p1_56lwnt1xBuY1muPblbN1Dtkw
+android.net.CaptivePortal$1
+android.net.CaptivePortal
+android.net.CaptivePortalData
 android.net.ConnectionInfo$1
 android.net.ConnectionInfo
+android.net.ConnectivityDiagnosticsManager
 android.net.ConnectivityManager$1
 android.net.ConnectivityManager$2
 android.net.ConnectivityManager$3
+android.net.ConnectivityManager$4
+android.net.ConnectivityManager$5
 android.net.ConnectivityManager$CallbackHandler
 android.net.ConnectivityManager$LegacyRequest
 android.net.ConnectivityManager$NetworkCallback
@@ -3190,11 +3982,17 @@
 android.net.DhcpResults
 android.net.EthernetManager
 android.net.EventLogTags
+android.net.ICaptivePortal$Stub
+android.net.ICaptivePortal
+android.net.IConnectivityDiagnosticsCallback$Stub
+android.net.IConnectivityDiagnosticsCallback
 android.net.IConnectivityManager$Stub$Proxy
 android.net.IConnectivityManager$Stub
 android.net.IConnectivityManager
 android.net.IEthernetManager$Stub
 android.net.IEthernetManager
+android.net.IEthernetServiceListener$Stub
+android.net.IEthernetServiceListener
 android.net.IIpConnectivityMetrics$Stub$Proxy
 android.net.IIpConnectivityMetrics$Stub
 android.net.IIpConnectivityMetrics
@@ -3224,14 +4022,20 @@
 android.net.INetworkStatsService$Stub$Proxy
 android.net.INetworkStatsService$Stub
 android.net.INetworkStatsService
+android.net.INetworkStatsSession$Stub$Proxy
+android.net.INetworkStatsSession$Stub
+android.net.INetworkStatsSession
 android.net.ISocketKeepaliveCallback$Stub$Proxy
 android.net.ISocketKeepaliveCallback$Stub
 android.net.ISocketKeepaliveCallback
 android.net.ITestNetworkManager$Stub
 android.net.ITestNetworkManager
+android.net.ITetheredInterfaceCallback$Stub
+android.net.ITetheredInterfaceCallback
 android.net.ITetheringStatsProvider$Stub$Proxy
 android.net.ITetheringStatsProvider$Stub
 android.net.ITetheringStatsProvider
+android.net.InetAddresses
 android.net.InterfaceConfiguration$1
 android.net.InterfaceConfiguration
 android.net.IpConfiguration$1
@@ -3241,13 +4045,19 @@
 android.net.IpPrefix$1
 android.net.IpPrefix$2
 android.net.IpPrefix
+android.net.IpSecConfig
 android.net.IpSecManager$SpiUnavailableException
 android.net.IpSecManager$UdpEncapsulationSocket
 android.net.IpSecManager
+android.net.IpSecSpiResponse
+android.net.IpSecTransformResponse
+android.net.IpSecTunnelInterfaceResponse
+android.net.IpSecUdpEncapResponse
 android.net.KeepalivePacketData
 android.net.LinkAddress$1
 android.net.LinkAddress
 android.net.LinkProperties$1
+android.net.LinkProperties$CompareResult
 android.net.LinkProperties
 android.net.LocalServerSocket
 android.net.LocalSocket
@@ -3265,10 +4075,14 @@
 android.net.Network$NetworkBoundSocketFactory
 android.net.Network
 android.net.NetworkAgent
+android.net.NetworkAgentConfig
 android.net.NetworkCapabilities$1
 android.net.NetworkCapabilities$NameOf
 android.net.NetworkCapabilities
 android.net.NetworkConfig
+android.net.NetworkFactory$NetworkRequestInfo
+android.net.NetworkFactory$SerialNumber
+android.net.NetworkFactory
 android.net.NetworkIdentity
 android.net.NetworkInfo$1
 android.net.NetworkInfo$DetailedState
@@ -3280,15 +4094,30 @@
 android.net.NetworkPolicy
 android.net.NetworkPolicyManager$1
 android.net.NetworkPolicyManager$Listener
+android.net.NetworkPolicyManager$SubscriptionCallback
+android.net.NetworkPolicyManager$SubscriptionCallbackProxy
 android.net.NetworkPolicyManager
 android.net.NetworkProvider
+android.net.NetworkQuotaInfo$1
 android.net.NetworkQuotaInfo
+android.net.NetworkRecommendationProvider$ServiceWrapper$1
+android.net.NetworkRecommendationProvider$ServiceWrapper
+android.net.NetworkRecommendationProvider
 android.net.NetworkRequest$1
+android.net.NetworkRequest$2
 android.net.NetworkRequest$Builder
 android.net.NetworkRequest$Type
 android.net.NetworkRequest
+android.net.NetworkScore$1
+android.net.NetworkScore$Builder
+android.net.NetworkScore
+android.net.NetworkScoreManager$NetworkScoreCallback
+android.net.NetworkScoreManager$NetworkScoreCallbackProxy
 android.net.NetworkScoreManager
+android.net.NetworkScorerAppData$1
+android.net.NetworkScorerAppData
 android.net.NetworkSpecifier
+android.net.NetworkStack
 android.net.NetworkState$1
 android.net.NetworkState
 android.net.NetworkStats$1
@@ -3330,6 +4159,8 @@
 android.net.StringNetworkSpecifier$1
 android.net.StringNetworkSpecifier
 android.net.TcpSocketKeepalive
+android.net.TelephonyNetworkSpecifier$1
+android.net.TelephonyNetworkSpecifier
 android.net.TestNetworkManager
 android.net.TrafficStats
 android.net.TransportInfo
@@ -3349,6 +4180,7 @@
 android.net.Uri$StringUri
 android.net.Uri
 android.net.UriCodec
+android.net.VpnManager
 android.net.WebAddress
 android.net.WifiKey$1
 android.net.WifiKey
@@ -3358,6 +4190,7 @@
 android.net.http.X509TrustManagerExtensions
 android.net.lowpan.LowpanManager
 android.net.metrics.ApfProgramEvent$1
+android.net.metrics.ApfProgramEvent$Decoder
 android.net.metrics.ApfProgramEvent
 android.net.metrics.ApfStats$1
 android.net.metrics.ApfStats
@@ -3365,23 +4198,34 @@
 android.net.metrics.DefaultNetworkEvent
 android.net.metrics.DhcpClientEvent$1
 android.net.metrics.DhcpClientEvent
+android.net.metrics.DhcpErrorEvent$1
+android.net.metrics.DhcpErrorEvent$Decoder
+android.net.metrics.DhcpErrorEvent
 android.net.metrics.DnsEvent
 android.net.metrics.IpConnectivityLog$Event
 android.net.metrics.IpConnectivityLog
 android.net.metrics.IpManagerEvent$1
+android.net.metrics.IpManagerEvent$Decoder
 android.net.metrics.IpManagerEvent
 android.net.metrics.IpReachabilityEvent$1
+android.net.metrics.IpReachabilityEvent$Decoder
 android.net.metrics.IpReachabilityEvent
 android.net.metrics.NetworkEvent$1
+android.net.metrics.NetworkEvent$Decoder
 android.net.metrics.NetworkEvent
 android.net.metrics.NetworkMetrics$Metrics
 android.net.metrics.NetworkMetrics$Summary
+android.net.metrics.NetworkMetrics
 android.net.metrics.RaEvent$1
 android.net.metrics.RaEvent
 android.net.metrics.ValidationProbeEvent$1
+android.net.metrics.ValidationProbeEvent$Decoder
 android.net.metrics.ValidationProbeEvent
 android.net.metrics.WakeupEvent
 android.net.metrics.WakeupStats
+android.net.netstats.provider.INetworkStatsProvider$Stub
+android.net.netstats.provider.INetworkStatsProvider
+android.net.netstats.provider.INetworkStatsProviderCallback
 android.net.nsd.INsdManager$Stub$Proxy
 android.net.nsd.INsdManager$Stub
 android.net.nsd.INsdManager
@@ -3400,12 +4244,33 @@
 android.net.sip.SipManager
 android.net.sip.SipProfile
 android.net.sip.SipSessionAdapter
+android.net.util.-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E
+android.net.util.KeepaliveUtils$KeepaliveDeviceConfigurationException
+android.net.util.KeepaliveUtils
+android.net.util.LinkPropertiesUtils
+android.net.util.MacAddressUtils
 android.net.util.MultinetworkPolicyTracker$1
+android.net.util.MultinetworkPolicyTracker$2
 android.net.util.MultinetworkPolicyTracker$SettingObserver
 android.net.util.MultinetworkPolicyTracker
+android.net.util.NetUtils
 android.net.wifi.WifiNetworkScoreCache$CacheListener$1
 android.net.wifi.WifiNetworkScoreCache$CacheListener
 android.net.wifi.WifiNetworkScoreCache
+android.net.wifi.wificond.ChannelSettings$1
+android.net.wifi.wificond.ChannelSettings
+android.net.wifi.wificond.HiddenNetwork$1
+android.net.wifi.wificond.HiddenNetwork
+android.net.wifi.wificond.NativeScanResult$1
+android.net.wifi.wificond.NativeScanResult
+android.net.wifi.wificond.PnoNetwork$1
+android.net.wifi.wificond.PnoNetwork
+android.net.wifi.wificond.PnoSettings$1
+android.net.wifi.wificond.PnoSettings
+android.net.wifi.wificond.RadioChainInfo$1
+android.net.wifi.wificond.RadioChainInfo
+android.net.wifi.wificond.SingleScanSettings$1
+android.net.wifi.wificond.SingleScanSettings
 android.net.wifi.wificond.WifiCondManager
 android.nfc.BeamShareData$1
 android.nfc.BeamShareData
@@ -3415,9 +4280,11 @@
 android.nfc.INfcAdapter$Stub$Proxy
 android.nfc.INfcAdapter$Stub
 android.nfc.INfcAdapter
+android.nfc.INfcAdapterExtras
 android.nfc.INfcCardEmulation$Stub$Proxy
 android.nfc.INfcCardEmulation$Stub
 android.nfc.INfcCardEmulation
+android.nfc.INfcDta
 android.nfc.INfcFCardEmulation$Stub$Proxy
 android.nfc.INfcFCardEmulation$Stub
 android.nfc.INfcFCardEmulation
@@ -3441,6 +4308,10 @@
 android.nfc.Tag
 android.nfc.TechListParcel$1
 android.nfc.TechListParcel
+android.nfc.cardemulation.AidGroup$1
+android.nfc.cardemulation.AidGroup
+android.nfc.cardemulation.ApduServiceInfo
+android.nfc.cardemulation.CardEmulation
 android.opengl.EGL14
 android.opengl.EGL15
 android.opengl.EGLConfig
@@ -3467,9 +4338,13 @@
 android.opengl.Visibility
 android.os.-$$Lambda$Binder$IYUHVkWouPK_9CG2s8VwyWBt5_I
 android.os.-$$Lambda$Build$WrC6eL7oW2Zm9UDTcXXKr0DnOMw
+android.os.-$$Lambda$FileUtils$0SBPRWOXcbR9EMG_p-55sUuxJ_0
+android.os.-$$Lambda$FileUtils$TJeD9NeX5giO-5vlBrurGI-g4IY
 android.os.-$$Lambda$HidlSupport$CwwfmHPEvZaybUxpLzKdwrpQRfA
 android.os.-$$Lambda$HidlSupport$GHxmwrIWiKN83tl6aMQt_nV5hiw
+android.os.-$$Lambda$IncidentManager$mfBTEJgu7VPkoPMTQdf1KC7oi5g
 android.os.-$$Lambda$IyvVQC-0mKtsfXbnO0kDL64hrk0
+android.os.-$$Lambda$PowerManager$1$-RL9hKNKSaGL1mmR-EjQ-Cm9KuA
 android.os.-$$Lambda$PowerManager$WakeLock$VvFzmRZ4ZGlXx7u3lSAJ_T-YUjw
 android.os.-$$Lambda$StrictMode$1yH8AK0bTwVwZOb9x8HoiSBdzr0
 android.os.-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I
@@ -3479,6 +4354,7 @@
 android.os.-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg
 android.os.-$$Lambda$ThreadLocalWorkSource$IP9vRFCDG5YwbWbXAEGHH52B9IE
 android.os.-$$Lambda$q1UvBdLgHRZVzc68BxdksTmbuCw
+android.os.AppZygote
 android.os.AsyncResult
 android.os.AsyncTask$1
 android.os.AsyncTask$2
@@ -3502,6 +4378,7 @@
 android.os.BatteryProperty
 android.os.BatterySaverPolicyConfig$1
 android.os.BatterySaverPolicyConfig
+android.os.BatteryStats$1
 android.os.BatteryStats$2
 android.os.BatteryStats$BitDescription
 android.os.BatteryStats$ControllerActivityCounter
@@ -3518,6 +4395,7 @@
 android.os.BatteryStats$LongCounterArray
 android.os.BatteryStats$PackageChange
 android.os.BatteryStats$Timer
+android.os.BatteryStats$TimerEntry
 android.os.BatteryStats$Uid$Pid
 android.os.BatteryStats$Uid$Pkg$Serv
 android.os.BatteryStats$Uid$Pkg
@@ -3546,6 +4424,8 @@
 android.os.CancellationSignal
 android.os.ChildZygoteProcess
 android.os.ConditionVariable
+android.os.CoolingDevice$1
+android.os.CoolingDevice
 android.os.CpuUsageInfo$1
 android.os.CpuUsageInfo
 android.os.DeadObjectException
@@ -3560,8 +4440,10 @@
 android.os.Environment$UserEnvironment
 android.os.Environment
 android.os.EventLogTags
+android.os.ExternalVibration
 android.os.FactoryTest
 android.os.FileBridge$FileBridgeOutputStream
+android.os.FileBridge
 android.os.FileObserver$ObserverThread
 android.os.FileUtils$1
 android.os.FileUtils
@@ -3596,15 +4478,24 @@
 android.os.IDeviceIdleController$Stub$Proxy
 android.os.IDeviceIdleController$Stub
 android.os.IDeviceIdleController
+android.os.IDumpstate$Stub$Proxy
 android.os.IDumpstate$Stub
 android.os.IDumpstate
+android.os.IDumpstateListener$Stub$Proxy
+android.os.IDumpstateListener$Stub
+android.os.IDumpstateListener
 android.os.IExternalVibratorService$Stub
 android.os.IExternalVibratorService
+android.os.IHardwarePropertiesManager$Stub$Proxy
 android.os.IHardwarePropertiesManager$Stub
 android.os.IHardwarePropertiesManager
 android.os.IHwBinder$DeathRecipient
 android.os.IHwBinder
 android.os.IHwInterface
+android.os.IIncidentAuthListener$Stub$Proxy
+android.os.IIncidentAuthListener$Stub
+android.os.IIncidentAuthListener
+android.os.IIncidentCompanion$Stub$Proxy
 android.os.IIncidentCompanion$Stub
 android.os.IIncidentCompanion
 android.os.IIncidentManager$Stub$Proxy
@@ -3633,8 +4524,12 @@
 android.os.IProgressListener$Stub$Proxy
 android.os.IProgressListener$Stub
 android.os.IProgressListener
+android.os.IPullAtomCallback$Stub
+android.os.IPullAtomCallback
 android.os.IRecoverySystem$Stub
 android.os.IRecoverySystem
+android.os.IRecoverySystemProgressListener$Stub
+android.os.IRecoverySystemProgressListener
 android.os.IRemoteCallback$Stub$Proxy
 android.os.IRemoteCallback$Stub
 android.os.IRemoteCallback
@@ -3645,6 +4540,8 @@
 android.os.IServiceManager
 android.os.IStatsCompanionService$Stub
 android.os.IStatsCompanionService
+android.os.IStatsManagerService$Stub
+android.os.IStatsManagerService
 android.os.IStatsd$Stub
 android.os.IStatsd
 android.os.IStoraged$Stub$Proxy
@@ -3662,22 +4559,36 @@
 android.os.IThermalStatusListener$Stub$Proxy
 android.os.IThermalStatusListener$Stub
 android.os.IThermalStatusListener
+android.os.IUpdateEngine$Stub$Proxy
+android.os.IUpdateEngine$Stub
+android.os.IUpdateEngine
+android.os.IUpdateEngineCallback$Stub
+android.os.IUpdateEngineCallback
 android.os.IUpdateLock$Stub
 android.os.IUpdateLock
 android.os.IUserManager$Stub$Proxy
 android.os.IUserManager$Stub
 android.os.IUserManager
+android.os.IUserRestrictionsListener$Stub$Proxy
+android.os.IUserRestrictionsListener$Stub
+android.os.IUserRestrictionsListener
 android.os.IVibratorService$Stub$Proxy
 android.os.IVibratorService$Stub
 android.os.IVibratorService
+android.os.IVibratorStateListener$Stub
+android.os.IVibratorStateListener
 android.os.IVold$Stub$Proxy
 android.os.IVold$Stub
 android.os.IVold
 android.os.IVoldListener$Stub
 android.os.IVoldListener
+android.os.IVoldMountCallback$Stub
+android.os.IVoldMountCallback
 android.os.IVoldTaskListener$Stub$Proxy
 android.os.IVoldTaskListener$Stub
 android.os.IVoldTaskListener
+android.os.IncidentManager$IncidentReport$1
+android.os.IncidentManager$IncidentReport
 android.os.IncidentManager
 android.os.LocaleList$1
 android.os.LocaleList
@@ -3703,6 +4614,8 @@
 android.os.ParcelFileDescriptor$2
 android.os.ParcelFileDescriptor$AutoCloseInputStream
 android.os.ParcelFileDescriptor$AutoCloseOutputStream
+android.os.ParcelFileDescriptor$OnCloseListener
+android.os.ParcelFileDescriptor$Status
 android.os.ParcelFileDescriptor
 android.os.ParcelFormatException
 android.os.ParcelUuid$1
@@ -3721,6 +4634,9 @@
 android.os.PersistableBundle
 android.os.PooledStringReader
 android.os.PooledStringWriter
+android.os.PowerManager$1
+android.os.PowerManager$OnThermalStatusChangedListener
+android.os.PowerManager$WakeData
 android.os.PowerManager$WakeLock$1
 android.os.PowerManager$WakeLock
 android.os.PowerManager
@@ -3734,6 +4650,12 @@
 android.os.Process$ProcessStartResult
 android.os.Process
 android.os.ProxyFileDescriptorCallback
+android.os.RecoverySystem$1
+android.os.RecoverySystem$2
+android.os.RecoverySystem$3
+android.os.RecoverySystem$4
+android.os.RecoverySystem$5
+android.os.RecoverySystem$ProgressListener
 android.os.RecoverySystem
 android.os.Registrant
 android.os.RegistrantList
@@ -3765,6 +4687,10 @@
 android.os.ShellCommand
 android.os.SimpleClock
 android.os.StatFs
+android.os.StatsDimensionsValue$1
+android.os.StatsDimensionsValue
+android.os.StatsServiceManager$ServiceRegisterer
+android.os.StatsServiceManager
 android.os.StrictMode$1
 android.os.StrictMode$2
 android.os.StrictMode$3
@@ -3794,31 +4720,45 @@
 android.os.SystemClock$2
 android.os.SystemClock$3
 android.os.SystemClock
+android.os.SystemConfigManager
+android.os.SystemProperties$Handle
 android.os.SystemProperties
+android.os.SystemService$1
 android.os.SystemService$State
 android.os.SystemService
 android.os.SystemUpdateManager
 android.os.SystemVibrator
+android.os.TelephonyServiceManager$ServiceRegisterer
 android.os.TelephonyServiceManager
 android.os.Temperature$1
 android.os.Temperature
 android.os.ThreadLocalWorkSource
 android.os.TokenWatcher$1
+android.os.TokenWatcher$Death
 android.os.TokenWatcher
 android.os.Trace
 android.os.TraceNameSupplier
 android.os.TransactionTooLargeException
 android.os.TransactionTracker
+android.os.UEventObserver$UEvent
 android.os.UEventObserver$UEventThread
 android.os.UEventObserver
+android.os.UpdateEngine$1$1
+android.os.UpdateEngine$1
+android.os.UpdateEngine
+android.os.UpdateEngineCallback
 android.os.UpdateLock
 android.os.UserHandle$1
 android.os.UserHandle
+android.os.UserManager$1
 android.os.UserManager$EnforcingUser$1
 android.os.UserManager$EnforcingUser
 android.os.UserManager$UserOperationException
 android.os.UserManager
+android.os.VibrationAttributes$Builder
+android.os.VibrationAttributes
 android.os.VibrationEffect$1
+android.os.VibrationEffect$Composed
 android.os.VibrationEffect$OneShot$1
 android.os.VibrationEffect$OneShot
 android.os.VibrationEffect$Prebaked$1
@@ -3840,23 +4780,32 @@
 android.os.connectivity.CellularBatteryStats
 android.os.connectivity.GpsBatteryStats$1
 android.os.connectivity.GpsBatteryStats
+android.os.connectivity.WifiActivityEnergyInfo$1
 android.os.connectivity.WifiActivityEnergyInfo
 android.os.connectivity.WifiBatteryStats$1
 android.os.connectivity.WifiBatteryStats
 android.os.health.HealthKeys$Constant
+android.os.health.HealthKeys$Constants
 android.os.health.HealthKeys$SortedIntArray
 android.os.health.HealthStats
 android.os.health.HealthStatsParceler$1
 android.os.health.HealthStatsParceler
 android.os.health.HealthStatsWriter
+android.os.health.PackageHealthStats
+android.os.health.PidHealthStats
+android.os.health.ProcessHealthStats
+android.os.health.ServiceHealthStats
 android.os.health.SystemHealthManager
 android.os.health.TimerStat$1
 android.os.health.TimerStat
+android.os.health.UidHealthStats
 android.os.image.DynamicSystemClient
 android.os.image.DynamicSystemManager
 android.os.image.IDynamicSystemService$Stub
 android.os.image.IDynamicSystemService
 android.os.incremental.IncrementalManager
+android.os.storage.-$$Lambda$StorageManager$StorageEventListenerDelegate$GoEFKT1rhv7KuSkGeH69DO738lA
+android.os.storage.-$$Lambda$StorageManager$StorageEventListenerDelegate$pyZP4UQS232-tqmtk5lSCyZx9qU
 android.os.storage.DiskInfo$1
 android.os.storage.DiskInfo
 android.os.storage.IObbActionListener$Stub$Proxy
@@ -3904,7 +4853,17 @@
 android.os.strictmode.UnbufferedIoViolation
 android.os.strictmode.UntaggedSocketViolation
 android.os.strictmode.Violation
+android.os.strictmode.WebViewMethodCalledOnWrongThreadViolation
+android.permission.-$$Lambda$PermissionControllerManager$2gyb4miANgsuR_Cn3HPTnP6sL54
 android.permission.-$$Lambda$PermissionControllerManager$Iy-7wiKMCV-MFSPGyIJxP_DSf8E
+android.permission.-$$Lambda$PermissionControllerManager$WcxnBH4VsthEHNc7qKClONaAHtQ
+android.permission.-$$Lambda$PermissionControllerManager$eHuRmDpRAUfA3qanHHMVMV_C0lI
+android.permission.-$$Lambda$PermissionControllerManager$u5bno-vHXoMY3ADbZMAlZp7v9oI
+android.permission.-$$Lambda$PermissionControllerManager$vBYanTuMAWBbfOp_XdHzQXYNpXY
+android.permission.-$$Lambda$PermissionControllerManager$wPNqW0yZff7KXoWmrKVyzMgY2jc
+android.permission.-$$Lambda$PermissionControllerManager$yqGWw4vOTpW9pDZRlfJdxzYUsF0
+android.permission.-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI
+android.permission.IOnPermissionsChangeListener$Stub$Proxy
 android.permission.IOnPermissionsChangeListener$Stub
 android.permission.IOnPermissionsChangeListener
 android.permission.IPermissionController$Stub$Proxy
@@ -3913,6 +4872,7 @@
 android.permission.IPermissionManager$Stub$Proxy
 android.permission.IPermissionManager$Stub
 android.permission.IPermissionManager
+android.permission.PermissionControllerManager$1
 android.permission.PermissionControllerManager
 android.permission.PermissionManager$SplitPermissionInfo
 android.permission.PermissionManagerInternal
@@ -3928,28 +4888,55 @@
 android.preference.PreferenceManager$OnPreferenceTreeClickListener
 android.preference.PreferenceManager
 android.preference.PreferenceScreen
+android.print.IPrintDocumentAdapter$Stub
+android.print.IPrintDocumentAdapter
+android.print.IPrintJobStateChangeListener$Stub
+android.print.IPrintJobStateChangeListener
+android.print.IPrintManager$Stub$Proxy
 android.print.IPrintManager$Stub
 android.print.IPrintManager
+android.print.IPrintServicesChangeListener$Stub
+android.print.IPrintServicesChangeListener
 android.print.IPrintSpooler$Stub$Proxy
 android.print.IPrintSpooler$Stub
 android.print.IPrintSpooler
+android.print.IPrintSpoolerCallbacks$Stub
+android.print.IPrintSpoolerCallbacks
+android.print.IPrintSpoolerClient$Stub
+android.print.IPrintSpoolerClient
+android.print.IPrinterDiscoveryObserver$Stub
+android.print.IPrinterDiscoveryObserver
+android.print.PrintAttributes
 android.print.PrintDocumentAdapter
+android.print.PrintJobId
 android.print.PrintJobInfo$1
 android.print.PrintJobInfo
+android.print.PrintManager$1
 android.print.PrintManager
+android.print.PrinterId
+android.printservice.IPrintServiceClient$Stub
+android.printservice.IPrintServiceClient
 android.printservice.PrintServiceInfo$1
 android.printservice.PrintServiceInfo
+android.printservice.recommendation.IRecommendationsChangeListener$Stub
+android.printservice.recommendation.IRecommendationsChangeListener
 android.privacy.DifferentialPrivacyConfig
 android.privacy.DifferentialPrivacyEncoder
+android.privacy.internal.longitudinalreporting.LongitudinalReportingConfig
 android.privacy.internal.longitudinalreporting.LongitudinalReportingEncoder
 android.privacy.internal.rappor.RapporConfig
 android.privacy.internal.rappor.RapporEncoder
+android.provider.-$$Lambda$DeviceConfig$6U9gBH6h5Oab2DB_e83az4n_WEo
 android.provider.-$$Lambda$FontsContract$3FDNQd-WsglsyDhif-aHVbzkfrA
 android.provider.-$$Lambda$FontsContract$rqfIZKvP1frnI9vP1hVA8jQN_RE
+android.provider.-$$Lambda$Settings$NameValueCache$cLX_nUBDGp9SYpFxrABk-2ceeMI
 android.provider.-$$Lambda$Settings$NameValueCache$qSyMM6rUAHCa-5rsP-atfAqR3sA
 android.provider.BaseColumns
+android.provider.BlockedNumberContract$BlockedNumbers
 android.provider.BlockedNumberContract$SystemContract
 android.provider.BlockedNumberContract
+android.provider.CalendarContract$Attendees
+android.provider.CalendarContract$AttendeesColumns
 android.provider.CalendarContract$CalendarColumns
 android.provider.CalendarContract$CalendarSyncColumns
 android.provider.CalendarContract$Calendars
@@ -3957,12 +4944,16 @@
 android.provider.CalendarContract$EventsColumns
 android.provider.CalendarContract$Instances
 android.provider.CalendarContract$SyncColumns
+android.provider.CalendarContract
 android.provider.CallLog$Calls
+android.provider.CallLog
+android.provider.ContactsContract$BaseSyncColumns
 android.provider.ContactsContract$CommonDataKinds$BaseTypes
 android.provider.ContactsContract$CommonDataKinds$Callable
 android.provider.ContactsContract$CommonDataKinds$CommonColumns
 android.provider.ContactsContract$CommonDataKinds$Email
 android.provider.ContactsContract$CommonDataKinds$Phone
+android.provider.ContactsContract$CommonDataKinds$StructuredPostal
 android.provider.ContactsContract$ContactCounts
 android.provider.ContactsContract$ContactNameColumns
 android.provider.ContactsContract$ContactOptionsColumns
@@ -3972,15 +4963,38 @@
 android.provider.ContactsContract$Data
 android.provider.ContactsContract$DataColumns
 android.provider.ContactsContract$DataColumnsWithJoins
+android.provider.ContactsContract$DataUsageFeedback
 android.provider.ContactsContract$DataUsageStatColumns
+android.provider.ContactsContract$DeletedContacts
+android.provider.ContactsContract$DeletedContactsColumns
+android.provider.ContactsContract$DisplayPhoto
+android.provider.ContactsContract$Groups
+android.provider.ContactsContract$GroupsColumns
+android.provider.ContactsContract$MetadataSync
+android.provider.ContactsContract$MetadataSyncColumns
 android.provider.ContactsContract$PhoneLookup
 android.provider.ContactsContract$PhoneLookupColumns
+android.provider.ContactsContract$Profile
+android.provider.ContactsContract$ProviderStatus
+android.provider.ContactsContract$RawContacts
 android.provider.ContactsContract$RawContactsColumns
+android.provider.ContactsContract$RawContactsEntity
+android.provider.ContactsContract$Settings
+android.provider.ContactsContract$SettingsColumns
 android.provider.ContactsContract$StatusColumns
+android.provider.ContactsContract$SyncColumns
+android.provider.ContactsContract$SyncState
 android.provider.ContactsContract
 android.provider.DeviceConfig$1
+android.provider.DeviceConfig$BadConfigException
 android.provider.DeviceConfig$OnPropertiesChangedListener
+android.provider.DeviceConfig$Properties$Builder
+android.provider.DeviceConfig$Properties
 android.provider.DeviceConfig
+android.provider.DocumentsContract$Path$1
+android.provider.DocumentsContract$Path
+android.provider.DocumentsContract
+android.provider.DocumentsProvider
 android.provider.Downloads$Impl
 android.provider.Downloads
 android.provider.FontRequest
@@ -3988,8 +5002,10 @@
 android.provider.FontsContract$FontFamilyResult
 android.provider.FontsContract$FontInfo
 android.provider.FontsContract
+android.provider.OpenableColumns
 android.provider.SearchIndexableData
 android.provider.SearchIndexableResource
+android.provider.SearchIndexablesContract
 android.provider.SearchIndexablesProvider
 android.provider.SearchRecentSuggestions
 android.provider.Settings$Config
@@ -4002,21 +5018,49 @@
 android.provider.Settings$SettingNotFoundException
 android.provider.Settings$System
 android.provider.Settings
+android.provider.SyncStateContract$Columns
 android.provider.Telephony$BaseMmsColumns
 android.provider.Telephony$CarrierColumns
 android.provider.Telephony$CarrierId$All
 android.provider.Telephony$CarrierId
 android.provider.Telephony$Carriers
+android.provider.Telephony$Mms$Inbox
+android.provider.Telephony$Mms$Sent
 android.provider.Telephony$Mms
+android.provider.Telephony$MmsSms
 android.provider.Telephony$ServiceStateTable
 android.provider.Telephony$SimInfo
+android.provider.Telephony$Sms$Sent
 android.provider.Telephony$Sms
 android.provider.Telephony$TextBasedSmsColumns
+android.provider.Telephony$Threads
+android.provider.Telephony$ThreadsColumns
 android.provider.UserDictionary$Words
+android.provider.VoicemailContract$Status
+android.provider.VoicemailContract$Voicemails
+android.renderscript.Allocation
+android.renderscript.BaseObj
+android.renderscript.Element$1
+android.renderscript.Element$DataKind
+android.renderscript.Element$DataType
+android.renderscript.Element
+android.renderscript.RSDriverException
+android.renderscript.RSIllegalArgumentException
+android.renderscript.RSInvalidStateException
+android.renderscript.RSRuntimeException
+android.renderscript.RenderScript$ContextType
+android.renderscript.RenderScript$MessageThread
+android.renderscript.RenderScript$RSErrorHandler
+android.renderscript.RenderScript$RSMessageHandler
+android.renderscript.RenderScript
 android.renderscript.RenderScriptCacheDir
+android.renderscript.Script
+android.renderscript.ScriptIntrinsic
+android.renderscript.ScriptIntrinsicBlur
 android.security.AttestedKeyPair
 android.security.Credentials
 android.security.FileIntegrityManager
+android.security.GateKeeper
 android.security.IKeyChainAliasCallback$Stub
 android.security.IKeyChainAliasCallback
 android.security.IKeyChainService$Stub$Proxy
@@ -4028,6 +5072,10 @@
 android.security.KeyChain
 android.security.KeyChainAliasCallback
 android.security.KeyChainException
+android.security.KeyPairGeneratorSpec
+android.security.KeyStore$CertificateChainPromise
+android.security.KeyStore$ExportKeyPromise
+android.security.KeyStore$KeyAttestationCallbackResult
 android.security.KeyStore$KeyCharacteristicsCallbackResult
 android.security.KeyStore$KeyCharacteristicsPromise
 android.security.KeyStore$KeystoreResultPromise
@@ -4037,8 +5085,14 @@
 android.security.KeyStoreException
 android.security.NetworkSecurityPolicy
 android.security.Scrypt
+android.security.keymaster.ExportResult$1
+android.security.keymaster.ExportResult
 android.security.keymaster.IKeyAttestationApplicationIdProvider$Stub
 android.security.keymaster.IKeyAttestationApplicationIdProvider
+android.security.keymaster.KeyAttestationApplicationId$1
+android.security.keymaster.KeyAttestationApplicationId
+android.security.keymaster.KeyAttestationPackageInfo$1
+android.security.keymaster.KeyAttestationPackageInfo
 android.security.keymaster.KeyCharacteristics$1
 android.security.keymaster.KeyCharacteristics
 android.security.keymaster.KeymasterArgument$1
@@ -4064,15 +5118,39 @@
 android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi
 android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
 android.security.keystore.AndroidKeyStoreCipherSpiBase
+android.security.keystore.AndroidKeyStoreECDSASignatureSpi$SHA256
+android.security.keystore.AndroidKeyStoreECDSASignatureSpi
+android.security.keystore.AndroidKeyStoreECPrivateKey
+android.security.keystore.AndroidKeyStoreECPublicKey
+android.security.keystore.AndroidKeyStoreHmacSpi$HmacSHA256
+android.security.keystore.AndroidKeyStoreHmacSpi
 android.security.keystore.AndroidKeyStoreKey
 android.security.keystore.AndroidKeyStoreKeyFactorySpi
+android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi$EC
+android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi$RSA
+android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi
 android.security.keystore.AndroidKeyStoreLoadStoreParameter
 android.security.keystore.AndroidKeyStorePrivateKey
 android.security.keystore.AndroidKeyStoreProvider
+android.security.keystore.AndroidKeyStorePublicKey
+android.security.keystore.AndroidKeyStoreRSAPrivateKey
+android.security.keystore.AndroidKeyStoreRSAPublicKey
 android.security.keystore.AndroidKeyStoreSecretKey
+android.security.keystore.AndroidKeyStoreSecretKeyFactorySpi
+android.security.keystore.AndroidKeyStoreSignatureSpiBase
+android.security.keystore.AndroidKeyStoreSpi$KeyStoreX509Certificate
 android.security.keystore.AndroidKeyStoreSpi
+android.security.keystore.AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC$PKCS7Padding
+android.security.keystore.AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC
+android.security.keystore.AndroidKeyStoreUnauthenticatedAESCipherSpi
 android.security.keystore.ArrayUtils
 android.security.keystore.AttestationUtils
+android.security.keystore.DelegatingX509Certificate
+android.security.keystore.DeviceIdAttestationException
+android.security.keystore.IKeystoreCertificateChainCallback$Stub
+android.security.keystore.IKeystoreCertificateChainCallback
+android.security.keystore.IKeystoreExportKeyCallback$Stub
+android.security.keystore.IKeystoreExportKeyCallback
 android.security.keystore.IKeystoreKeyCharacteristicsCallback$Stub
 android.security.keystore.IKeystoreKeyCharacteristicsCallback
 android.security.keystore.IKeystoreOperationResultCallback$Stub
@@ -4083,10 +5161,22 @@
 android.security.keystore.IKeystoreService$Stub
 android.security.keystore.IKeystoreService
 android.security.keystore.KeyAttestationException
+android.security.keystore.KeyExpiredException
+android.security.keystore.KeyGenParameterSpec$Builder
 android.security.keystore.KeyGenParameterSpec
+android.security.keystore.KeyInfo
+android.security.keystore.KeyNotYetValidException
 android.security.keystore.KeyPermanentlyInvalidatedException
+android.security.keystore.KeyProperties$BlockMode
 android.security.keystore.KeyProperties$Digest
+android.security.keystore.KeyProperties$EncryptionPadding
 android.security.keystore.KeyProperties$KeyAlgorithm
+android.security.keystore.KeyProperties$Origin
+android.security.keystore.KeyProperties$Purpose
+android.security.keystore.KeyProperties$SignaturePadding
+android.security.keystore.KeyProperties
+android.security.keystore.KeyProtection$Builder
+android.security.keystore.KeyProtection
 android.security.keystore.KeyStoreConnectException
 android.security.keystore.KeyStoreCryptoOperation
 android.security.keystore.KeyStoreCryptoOperationChunkedStreamer$MainDataStream
@@ -4094,24 +5184,33 @@
 android.security.keystore.KeyStoreCryptoOperationChunkedStreamer
 android.security.keystore.KeyStoreCryptoOperationStreamer
 android.security.keystore.KeyStoreCryptoOperationUtils
+android.security.keystore.KeymasterUtils
 android.security.keystore.KeystoreResponse$1
 android.security.keystore.KeystoreResponse
 android.security.keystore.ParcelableKeyGenParameterSpec$1
 android.security.keystore.ParcelableKeyGenParameterSpec
+android.security.keystore.SecureKeyImportUnavailableException
 android.security.keystore.StrongBoxUnavailableException
 android.security.keystore.UserAuthArgs
 android.security.keystore.UserNotAuthenticatedException
 android.security.keystore.Utils
+android.security.keystore.WrappedKeyEntry
+android.security.keystore.recovery.InternalRecoveryServiceException
 android.security.keystore.recovery.KeyChainProtectionParams$1
+android.security.keystore.recovery.KeyChainProtectionParams$Builder
 android.security.keystore.recovery.KeyChainProtectionParams
 android.security.keystore.recovery.KeyChainSnapshot$1
+android.security.keystore.recovery.KeyChainSnapshot$Builder
 android.security.keystore.recovery.KeyChainSnapshot
 android.security.keystore.recovery.KeyDerivationParams$1
 android.security.keystore.recovery.KeyDerivationParams
+android.security.keystore.recovery.LockScreenRequiredException
 android.security.keystore.recovery.RecoveryCertPath$1
 android.security.keystore.recovery.RecoveryCertPath
 android.security.keystore.recovery.RecoveryController
+android.security.keystore.recovery.TrustedRootCertificates
 android.security.keystore.recovery.WrappedApplicationKey$1
+android.security.keystore.recovery.WrappedApplicationKey$Builder
 android.security.keystore.recovery.WrappedApplicationKey
 android.security.keystore.recovery.X509CertificateParsingUtils
 android.security.net.config.ApplicationConfig
@@ -4149,17 +5248,33 @@
 android.service.appprediction.IPredictionService$Stub
 android.service.appprediction.IPredictionService
 android.service.autofill.AutofillServiceInfo
+android.service.autofill.Dataset
 android.service.autofill.FieldClassificationUserData
+android.service.autofill.FillContext$1
+android.service.autofill.FillContext
+android.service.autofill.FillEventHistory
+android.service.autofill.FillRequest$1
+android.service.autofill.FillRequest
 android.service.autofill.FillResponse$1
 android.service.autofill.FillResponse
 android.service.autofill.IAutoFillService$Stub$Proxy
 android.service.autofill.IAutoFillService$Stub
 android.service.autofill.IAutoFillService
+android.service.autofill.IFillCallback$Stub$Proxy
+android.service.autofill.IFillCallback$Stub
+android.service.autofill.IFillCallback
+android.service.autofill.ISaveCallback$Stub
+android.service.autofill.ISaveCallback
+android.service.autofill.SaveRequest
 android.service.autofill.UserData$1
+android.service.autofill.UserData$Builder
 android.service.autofill.UserData
 android.service.autofill.augmented.IAugmentedAutofillService$Stub$Proxy
 android.service.autofill.augmented.IAugmentedAutofillService$Stub
 android.service.autofill.augmented.IAugmentedAutofillService
+android.service.autofill.augmented.IFillCallback$Stub$Proxy
+android.service.autofill.augmented.IFillCallback$Stub
+android.service.autofill.augmented.IFillCallback
 android.service.carrier.CarrierIdentifier$1
 android.service.carrier.CarrierIdentifier
 android.service.carrier.CarrierMessagingServiceWrapper$CarrierMessagingCallbackWrapper
@@ -4167,12 +5282,21 @@
 android.service.carrier.ICarrierService$Stub$Proxy
 android.service.carrier.ICarrierService$Stub
 android.service.carrier.ICarrierService
+android.service.contentcapture.ActivityEvent$1
+android.service.contentcapture.ActivityEvent
 android.service.contentcapture.ContentCaptureServiceInfo
 android.service.contentcapture.FlushMetrics$1
 android.service.contentcapture.FlushMetrics
 android.service.contentcapture.IContentCaptureService$Stub$Proxy
 android.service.contentcapture.IContentCaptureService$Stub
 android.service.contentcapture.IContentCaptureService
+android.service.contentcapture.IContentCaptureServiceCallback$Stub$Proxy
+android.service.contentcapture.IContentCaptureServiceCallback$Stub
+android.service.contentcapture.IContentCaptureServiceCallback
+android.service.contentcapture.IDataShareCallback$Stub
+android.service.contentcapture.IDataShareCallback
+android.service.contentcapture.SnapshotData$1
+android.service.contentcapture.SnapshotData
 android.service.dataloader.DataLoaderService
 android.service.dreams.DreamManagerInternal
 android.service.dreams.IDreamManager$Stub$Proxy
@@ -4202,10 +5326,13 @@
 android.service.euicc.IGetEidCallback
 android.service.euicc.IGetEuiccInfoCallback$Stub
 android.service.euicc.IGetEuiccInfoCallback
+android.service.euicc.IGetEuiccProfileInfoListCallback$Stub$Proxy
 android.service.euicc.IGetEuiccProfileInfoListCallback$Stub
 android.service.euicc.IGetEuiccProfileInfoListCallback
 android.service.euicc.IGetOtaStatusCallback$Stub
 android.service.euicc.IGetOtaStatusCallback
+android.service.euicc.IOtaStatusChangedCallback$Stub
+android.service.euicc.IOtaStatusChangedCallback
 android.service.euicc.IRetainSubscriptionsForFactoryResetCallback$Stub
 android.service.euicc.IRetainSubscriptionsForFactoryResetCallback
 android.service.euicc.ISwitchToSubscriptionCallback$Stub
@@ -4263,6 +5390,7 @@
 android.service.notification.NotificationRankingUpdate
 android.service.notification.NotificationStats$1
 android.service.notification.NotificationStats
+android.service.notification.NotifyingApp$1
 android.service.notification.ScheduleCalendar
 android.service.notification.SnoozeCriterion$1
 android.service.notification.SnoozeCriterion
@@ -4278,6 +5406,7 @@
 android.service.notification.ZenPolicy$1
 android.service.notification.ZenPolicy$Builder
 android.service.notification.ZenPolicy
+android.service.oemlock.IOemLockService$Stub$Proxy
 android.service.oemlock.IOemLockService$Stub
 android.service.oemlock.IOemLockService
 android.service.oemlock.OemLockManager
@@ -4291,10 +5420,18 @@
 android.service.textclassifier.ITextClassifierService$Stub$Proxy
 android.service.textclassifier.ITextClassifierService$Stub
 android.service.textclassifier.ITextClassifierService
+android.service.textclassifier.TextClassifierService$1
 android.service.textclassifier.TextClassifierService
 android.service.trust.ITrustAgentService$Stub$Proxy
 android.service.trust.ITrustAgentService$Stub
 android.service.trust.ITrustAgentService
+android.service.trust.ITrustAgentServiceCallback$Stub$Proxy
+android.service.trust.ITrustAgentServiceCallback$Stub
+android.service.trust.ITrustAgentServiceCallback
+android.service.trust.TrustAgentService$1
+android.service.trust.TrustAgentService$ConfigurationData
+android.service.trust.TrustAgentService$TrustAgentServiceWrapper
+android.service.trust.TrustAgentService
 android.service.voice.IVoiceInteractionService$Stub$Proxy
 android.service.voice.IVoiceInteractionService$Stub
 android.service.voice.IVoiceInteractionService
@@ -4323,24 +5460,48 @@
 android.service.wallpaper.IWallpaperService$Stub$Proxy
 android.service.wallpaper.IWallpaperService$Stub
 android.service.wallpaper.IWallpaperService
+android.service.watchdog.ExplicitHealthCheckService$PackageConfig$1
+android.service.watchdog.ExplicitHealthCheckService$PackageConfig
+android.service.watchdog.IExplicitHealthCheckService$Stub$Proxy
+android.service.watchdog.IExplicitHealthCheckService$Stub
+android.service.watchdog.IExplicitHealthCheckService
+android.speech.SpeechRecognizer
 android.speech.tts.ITextToSpeechCallback$Stub
 android.speech.tts.ITextToSpeechCallback
 android.speech.tts.ITextToSpeechService$Stub$Proxy
 android.speech.tts.ITextToSpeechService
 android.speech.tts.TextToSpeech$Action
 android.speech.tts.TextToSpeech$Connection
+android.speech.tts.TextToSpeech$EngineInfo
 android.speech.tts.TextToSpeech$OnInitListener
 android.speech.tts.TextToSpeech
+android.speech.tts.TtsEngines$EngineInfoComparator
 android.speech.tts.TtsEngines
 android.stats.devicepolicy.nano.StringList
+android.sysprop.-$$Lambda$TelephonyProperties$0Zy6hglFVc-K9jiJWmuHmilIMkY
+android.sysprop.-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c
+android.sysprop.-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc
+android.sysprop.-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I
 android.sysprop.-$$Lambda$TelephonyProperties$H4jN0VIBNpZQBeWYt6qS3DCe_M8
+android.sysprop.-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI
+android.sysprop.-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34
+android.sysprop.-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU
+android.sysprop.-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0
+android.sysprop.-$$Lambda$TelephonyProperties$fdR0mRnJd3OymvjDc_MI1AHnMwc
+android.sysprop.-$$Lambda$TelephonyProperties$iJa3afMQmWbO1DX4jS9zkcOKZlY
+android.sysprop.-$$Lambda$TelephonyProperties$kCQNtMqtfi6MMlFLqtIufNXwOS8
 android.sysprop.-$$Lambda$TelephonyProperties$kemQbl44ndTqXdQVvnYppJuQboQ
+android.sysprop.-$$Lambda$TelephonyProperties$rKoNB08X7R8OCPq-VDCWDOm3lDM
+android.sysprop.-$$Lambda$TelephonyProperties$yK9cdPdkKXdcfM9Ey52BIE31a5M
 android.sysprop.AdbProperties
+android.sysprop.ApexProperties
+android.sysprop.ContactsProperties
 android.sysprop.CryptoProperties$state_values
 android.sysprop.CryptoProperties$type_values
 android.sysprop.CryptoProperties
 android.sysprop.DisplayProperties
 android.sysprop.TelephonyProperties
+android.sysprop.VndkProperties
 android.sysprop.VoldProperties
 android.system.ErrnoException
 android.system.GaiException
@@ -4366,6 +5527,9 @@
 android.system.StructUcred
 android.system.StructUtsname
 android.system.UnixSocketAddress
+android.system.suspend.ISuspendControlService$Stub$Proxy
+android.system.suspend.ISuspendControlService$Stub
+android.system.suspend.ISuspendControlService
 android.system.suspend.WakeLockInfo$1
 android.system.suspend.WakeLockInfo
 android.telecom.-$$Lambda$cyYWqCYT05eM23eLVm4oQ5DrYjw
@@ -4374,13 +5538,16 @@
 android.telecom.AudioState
 android.telecom.CallAudioState$1
 android.telecom.CallAudioState
+android.telecom.CallerInfo
 android.telecom.Conference$Listener
 android.telecom.Conference
 android.telecom.Conferenceable
 android.telecom.Connection$FailureSignalingConnection
 android.telecom.Connection$Listener
+android.telecom.Connection$VideoProvider
 android.telecom.Connection
 android.telecom.ConnectionRequest$1
+android.telecom.ConnectionRequest$Builder
 android.telecom.ConnectionRequest
 android.telecom.ConnectionService$1
 android.telecom.ConnectionService$2
@@ -4399,6 +5566,8 @@
 android.telecom.Logging.EventManager$Event
 android.telecom.Logging.EventManager$EventListener
 android.telecom.Logging.EventManager$EventRecord
+android.telecom.Logging.EventManager$Loggable
+android.telecom.Logging.EventManager$TimedEventPair
 android.telecom.Logging.EventManager
 android.telecom.Logging.Runnable$1
 android.telecom.Logging.Runnable
@@ -4410,6 +5579,8 @@
 android.telecom.Logging.SessionManager$ISessionIdQueryHandler
 android.telecom.Logging.SessionManager$ISessionListener
 android.telecom.Logging.SessionManager
+android.telecom.ParcelableCall$1
+android.telecom.ParcelableCall
 android.telecom.ParcelableConference$1
 android.telecom.ParcelableConference
 android.telecom.ParcelableConnection$1
@@ -4422,28 +5593,79 @@
 android.telecom.RemoteConnectionManager
 android.telecom.StatusHints$1
 android.telecom.StatusHints
+android.telecom.TelecomAnalytics$1
+android.telecom.TelecomAnalytics$SessionTiming$1
+android.telecom.TelecomAnalytics
 android.telecom.TelecomManager
+android.telecom.TimedEvent
 android.telecom.VideoProfile$1
 android.telecom.VideoProfile
 android.telephony.-$$Lambda$DataFailCause$djkZSxdG-s-w2L5rQKiGu6OudyY
 android.telephony.-$$Lambda$MLKtmRGKP3e0WU7x_KyS5-Vg8q4
 android.telephony.-$$Lambda$NetworkRegistrationInfo$1JuZmO5PoYGZY8bHhZYwvmqwOB0
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$1M3m0i6211i2YjWyTDT7l0bJm3I
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$1uNdvGRe99lTurQeP2pTQkZS7Vs
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2XBMUIj05jt4Xm08XAsE57q5gCc
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2cMrwdqnKBpixpApeIX38rmRLak
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$3AYVJXME-0OB4yixqaI-xr5L60o
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$4NHt5Shg_DHV-T1IxfcQLHP5-j0
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5J-sdvem6pUpdVwRdm8IbDhvuv8
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5Uf5OZWCyPD0lZtySzbYw18FWhU
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5rF2IFj8mrb7uZc0HMKiuCodUn0
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$5uu-05j4ojTh9mEHkN-ynQqQRGM
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$6czWSGzxct0CXPVO54T0aq05qls
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$7gZpRKvFmk92UeW5ehgYjTU1VJo
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$BEnQPWSMGANn8JYkd7Z9ykD6hTU
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$BJFxSgUMHRSttswNjrMRkS82g_c
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$BmipTxlu2pSFr1wevj-6L899tUY
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$D3Qz69humkpMXm7JAHU36dMvoyY
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$DrpO57uI0Rz8zN_EPJ4-5BrkiWs
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$E9hw_LXFliykadzCB_mw8nukNGI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$F-YGB2a8GrHG6CB17lzASQZXVHI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$FBJGFGXoSvidKfm50cEzC3i9rVk
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$HEcWn-J1WRb0wLERu2qoMIZDfjY
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Hbn6-eZxY2p3rjOfStodI04A8E8
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$IU278K5QbmReF-mbpcNVAvVlhFI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$LLJobItLwgTRjD_KrTiT4U-xUz0
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$M39is_Zyt8D7Camw2NS4EGTDn-s
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$MtX5gtAKHxLcUp_ibya6VO1zuoE
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$NjMtWvO8dQakD688KRREWiYI4JI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$OfwFKKtcQHRmtv70FCopw6FDAAU
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Q2A8FgYlU8_D6PD78tThGut_rTc
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$RC2x2ijetA-pQrLa4QakzMBjh_k
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Rh4FuYaAZPAbrOYr6GGF6llSePE
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$TqrkuLPlaG_ucU7VbLS4tnf8hG8
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$VCD7izkh9A_sRz9zMUPYy-TktLo
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$W65ui1dCCc-JnQa7gon1I7Bz7Sk
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$WYWtWHdkZDxBd9anjoxyZozPWHc
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$YY3srkIkMm8vTSFJZHoiKzUUrGs
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$bELzxgwsPigyVKYkAXBO2BjcSm8
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$hxq77a5O_MUfoptHg15ipzFvMkI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$icX71zgNszuMfnDaCmahcqWacFM
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$j6NpsS_PE3VHutxIDEmwFHop7Yc
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jNtyZYh5ZAuvyDZA_6f30zhW_dI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jTFXkqSnWC3uzh7LwzUV3m1AFOQ
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jclAV5yU3RtV94suRvvhafvGuhw
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$jlNX9JiqGSNg9W49vDcKucKdeCI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$l57DgyMDrONq3sajd_dBE967ClU
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$lP7_Xy6P82nXGbUQ_ZUY6rZR4bI
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$mezBWc8HrQF0w9M2UHZzIjv5b5A
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nR7W5ox6SCgPxtH9IRcENwKeFI4
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nrGqSRBJrc3_EwotCDNwfKeizIo
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nxFDy8UzMc58xiN0nXxhJfBQdMI
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$oDAZqs8paeefe_3k_uRKV5plQW4
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$okPCYOx4UxYuvUHlM2iS425QGIg
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$pLr-IfJJu1u_YG6I5LI0iHTuBi0
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$r8YFiJlM_z19hwrY4PtaILOH2wA
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$t2gWJ_jA36kAdNXSmlzw85aU-tM
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$uC5syhzl229gIpaK7Jfs__OCJxQ
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$vWj6-S8LaQStcrOXYYPgkxQlFg0
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$xyyTM70Sla35xFO0mn4N0yCuKGY
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$y-tK7my_uXPo_oQ7AytfnekGEbU
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$yGF2cJtJjwhRqDU8M4yzwgROulY
+android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$ygzOWFRiY4sZQ4WYUPIefqgiGvM
 android.telephony.-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$yvQnAlFGg5EWDG2vcA9X-4xnalA
+android.telephony.-$$Lambda$SubscriptionManager$D5_PmvQ13e0qLtSnBvNd4R7l2qA
 android.telephony.-$$Lambda$SubscriptionManager$R_uORt9bKcmEo6JnjiGP2KgjIOQ
 android.telephony.-$$Lambda$TelephonyFrameworkInitializer$3Kis6wL1IbLustWe9A2o4-2YpGo
 android.telephony.-$$Lambda$TelephonyFrameworkInitializer$MLDtRnX1dj1RKFdjgIsOvcQxhA0
@@ -4451,11 +5673,14 @@
 android.telephony.-$$Lambda$TelephonyFrameworkInitializer$mpe0Kh92VEQmEtmo60oqykdvnBE
 android.telephony.-$$Lambda$TelephonyFrameworkInitializer$o3geRfUaRT9tnqKKZbu1EbUxw4Q
 android.telephony.-$$Lambda$TelephonyFrameworkInitializer$sQClc4rjc9ydh0nXpY79gr33av4
+android.telephony.-$$Lambda$TelephonyManager$2$l6Pazxfi7QghMr2Z0MpduhNe6yc
+android.telephony.-$$Lambda$TelephonyRegistryManager$1$cLzLZB4oGnI-HG_-4MhxcXoHys8
 android.telephony.AccessNetworkConstants$AccessNetworkType
 android.telephony.AccessNetworkConstants$TransportType
 android.telephony.AccessNetworkConstants
 android.telephony.AccessNetworkUtils
 android.telephony.AnomalyReporter
+android.telephony.AvailableNetworkInfo
 android.telephony.CallAttributes$1
 android.telephony.CallAttributes
 android.telephony.CallQuality$1
@@ -4463,6 +5688,7 @@
 android.telephony.CarrierConfigManager$Gps
 android.telephony.CarrierConfigManager
 android.telephony.CarrierRestrictionRules$1
+android.telephony.CarrierRestrictionRules$Builder
 android.telephony.CarrierRestrictionRules
 android.telephony.CellConfigLte$1
 android.telephony.CellConfigLte
@@ -4516,12 +5742,14 @@
 android.telephony.DataFailCause
 android.telephony.DataSpecificRegistrationInfo$1
 android.telephony.DataSpecificRegistrationInfo
+android.telephony.DisconnectCause
 android.telephony.ICellInfoCallback$Stub$Proxy
 android.telephony.ICellInfoCallback$Stub
 android.telephony.ICellInfoCallback
 android.telephony.INetworkService$Stub$Proxy
 android.telephony.INetworkService$Stub
 android.telephony.INetworkService
+android.telephony.INetworkServiceCallback$Stub$Proxy
 android.telephony.INetworkServiceCallback$Stub
 android.telephony.INetworkServiceCallback
 android.telephony.IccOpenLogicalChannelResponse$1
@@ -4535,14 +5763,18 @@
 android.telephony.LocationAccessPolicy
 android.telephony.LteVopsSupportInfo$1
 android.telephony.LteVopsSupportInfo
+android.telephony.MmsManager
 android.telephony.ModemActivityInfo$1
 android.telephony.ModemActivityInfo$TransmitPower
 android.telephony.ModemActivityInfo
+android.telephony.ModemInfo$1
+android.telephony.ModemInfo
 android.telephony.NeighboringCellInfo$1
 android.telephony.NeighboringCellInfo
 android.telephony.NetworkRegistrationInfo$1
 android.telephony.NetworkRegistrationInfo$Builder
 android.telephony.NetworkRegistrationInfo
+android.telephony.NetworkScan
 android.telephony.NetworkScanRequest$1
 android.telephony.NetworkScanRequest
 android.telephony.NetworkService$INetworkServiceWrapper
@@ -4550,6 +5782,7 @@
 android.telephony.NetworkService$NetworkServiceProvider
 android.telephony.NetworkService
 android.telephony.NetworkServiceCallback
+android.telephony.NumberVerificationCallback
 android.telephony.PackageChangeReceiver
 android.telephony.PhoneCapability$1
 android.telephony.PhoneCapability
@@ -4567,12 +5800,19 @@
 android.telephony.PreciseDataConnectionState
 android.telephony.RadioAccessFamily$1
 android.telephony.RadioAccessFamily
+android.telephony.RadioAccessSpecifier
 android.telephony.Rlog
 android.telephony.ServiceState$1
 android.telephony.ServiceState
 android.telephony.SignalStrength$1
 android.telephony.SignalStrength
+android.telephony.SmsCbCmasInfo
+android.telephony.SmsCbEtwsInfo
+android.telephony.SmsCbLocation
+android.telephony.SmsCbMessage
 android.telephony.SmsManager
+android.telephony.SmsMessage$1
+android.telephony.SmsMessage$MessageClass
 android.telephony.SmsMessage
 android.telephony.SubscriptionInfo$1
 android.telephony.SubscriptionInfo
@@ -4585,17 +5825,25 @@
 android.telephony.TelephonyFrameworkInitializer
 android.telephony.TelephonyHistogram$1
 android.telephony.TelephonyHistogram
+android.telephony.TelephonyManager$1
+android.telephony.TelephonyManager$2
 android.telephony.TelephonyManager$5
 android.telephony.TelephonyManager$7
+android.telephony.TelephonyManager$CellInfoCallback
 android.telephony.TelephonyManager$MultiSimVariants
+android.telephony.TelephonyManager$UssdResponseCallback
 android.telephony.TelephonyManager
+android.telephony.TelephonyRegistryManager$1
+android.telephony.TelephonyRegistryManager$2
 android.telephony.TelephonyRegistryManager
+android.telephony.TelephonyScanManager$NetworkScanCallback
 android.telephony.UiccAccessRule$1
 android.telephony.UiccAccessRule
 android.telephony.UiccCardInfo$1
 android.telephony.UiccCardInfo
 android.telephony.UiccSlotInfo$1
 android.telephony.UiccSlotInfo
+android.telephony.UssdResponse
 android.telephony.VisualVoicemailSmsFilterSettings$1
 android.telephony.VisualVoicemailSmsFilterSettings$Builder
 android.telephony.VisualVoicemailSmsFilterSettings
@@ -4623,15 +5871,30 @@
 android.telephony.data.IDataService$Stub$Proxy
 android.telephony.data.IDataService$Stub
 android.telephony.data.IDataService
+android.telephony.data.IDataServiceCallback$Stub$Proxy
 android.telephony.data.IDataServiceCallback$Stub
 android.telephony.data.IDataServiceCallback
+android.telephony.data.IQualifiedNetworksService$Stub$Proxy
+android.telephony.data.IQualifiedNetworksService$Stub
+android.telephony.data.IQualifiedNetworksService
+android.telephony.data.IQualifiedNetworksServiceCallback$Stub$Proxy
+android.telephony.data.IQualifiedNetworksServiceCallback$Stub
+android.telephony.data.IQualifiedNetworksServiceCallback
 android.telephony.emergency.EmergencyNumber$1
 android.telephony.emergency.EmergencyNumber
+android.telephony.euicc.DownloadableSubscription
+android.telephony.euicc.EuiccCardManager$13
+android.telephony.euicc.EuiccCardManager$1
+android.telephony.euicc.EuiccCardManager$ResultCallback
 android.telephony.euicc.EuiccCardManager
+android.telephony.euicc.EuiccInfo
 android.telephony.euicc.EuiccManager
 android.telephony.gsm.GsmCellLocation
 android.telephony.ims.-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$4YNlUy9HsD02E7Sbv2VeVtbao08
 android.telephony.ims.-$$Lambda$ProvisioningManager$Callback$CallbackBinder$R_8jXQuOM7aV7dIwYBzcWwV-YpM
+android.telephony.ims.-$$Lambda$RegistrationManager$RegistrationCallback$RegistrationBinder$APeqso3VzZZ0eUf5slP1k5xoCME
+android.telephony.ims.-$$Lambda$RegistrationManager$RegistrationCallback$RegistrationBinder$DX_-dWIBwwX2oqDoRnq49RndG7s
+android.telephony.ims.-$$Lambda$RegistrationManager$RegistrationCallback$RegistrationBinder$uTxkp6C02qJxic1W_dkZRCQ6aRw
 android.telephony.ims.ImsCallForwardInfo$1
 android.telephony.ims.ImsCallForwardInfo
 android.telephony.ims.ImsCallProfile$1
@@ -4640,6 +5903,7 @@
 android.telephony.ims.ImsExternalCallState$1
 android.telephony.ims.ImsExternalCallState
 android.telephony.ims.ImsManager
+android.telephony.ims.ImsMmTelManager$3
 android.telephony.ims.ImsMmTelManager$CapabilityCallback$CapabilityBinder
 android.telephony.ims.ImsMmTelManager$CapabilityCallback
 android.telephony.ims.ImsMmTelManager$RegistrationCallback
@@ -4649,12 +5913,14 @@
 android.telephony.ims.ImsService$1
 android.telephony.ims.ImsService$Listener
 android.telephony.ims.ImsService
+android.telephony.ims.ImsSsData
 android.telephony.ims.ImsSsInfo$1
 android.telephony.ims.ImsSsInfo
 android.telephony.ims.ImsUtListener
 android.telephony.ims.ProvisioningManager$Callback$CallbackBinder
 android.telephony.ims.ProvisioningManager$Callback
 android.telephony.ims.RegistrationManager$1
+android.telephony.ims.RegistrationManager$RegistrationCallback$RegistrationBinder
 android.telephony.ims.RegistrationManager$RegistrationCallback
 android.telephony.ims.RegistrationManager
 android.telephony.ims.aidl.IImsCapabilityCallback$Stub$Proxy
@@ -4672,6 +5938,7 @@
 android.telephony.ims.aidl.IImsMmTelListener$Stub$Proxy
 android.telephony.ims.aidl.IImsMmTelListener$Stub
 android.telephony.ims.aidl.IImsMmTelListener
+android.telephony.ims.aidl.IImsRcsFeature$Stub
 android.telephony.ims.aidl.IImsRcsFeature
 android.telephony.ims.aidl.IImsRegistration$Stub
 android.telephony.ims.aidl.IImsRegistration
@@ -4681,11 +5948,16 @@
 android.telephony.ims.aidl.IImsServiceController$Stub$Proxy
 android.telephony.ims.aidl.IImsServiceController$Stub
 android.telephony.ims.aidl.IImsServiceController
+android.telephony.ims.aidl.IImsServiceControllerListener$Stub$Proxy
 android.telephony.ims.aidl.IImsServiceControllerListener$Stub
 android.telephony.ims.aidl.IImsServiceControllerListener
 android.telephony.ims.aidl.IImsSmsListener$Stub$Proxy
 android.telephony.ims.aidl.IImsSmsListener$Stub
 android.telephony.ims.aidl.IImsSmsListener
+android.telephony.ims.aidl.IRcsMessage$Stub
+android.telephony.ims.aidl.IRcsMessage
+android.telephony.ims.feature.-$$Lambda$ImsFeature$9bLETU1BeS-dFzQnbBBs3kwaz-8
+android.telephony.ims.feature.-$$Lambda$ImsFeature$rPSMsRhoup9jfT6nt1MV2qhomrM
 android.telephony.ims.feature.CapabilityChangeRequest$1
 android.telephony.ims.feature.CapabilityChangeRequest$CapabilityPair
 android.telephony.ims.feature.CapabilityChangeRequest
@@ -4703,6 +5975,7 @@
 android.telephony.ims.stub.-$$Lambda$ImsRegistrationImplBase$s7PspXVbCf1Q_WSzodP2glP9TjI
 android.telephony.ims.stub.-$$Lambda$ImsRegistrationImplBase$sbjuTvW-brOSWMR74UInSZEIQB0
 android.telephony.ims.stub.-$$Lambda$ImsRegistrationImplBase$wwtkoeOtGwMjG5I0-ZTfjNpGU-s
+android.telephony.ims.stub.ImsCallSessionImplBase
 android.telephony.ims.stub.ImsConfigImplBase$ImsConfigStub
 android.telephony.ims.stub.ImsConfigImplBase
 android.telephony.ims.stub.ImsEcbmImplBase$1
@@ -4744,16 +6017,22 @@
 android.text.GetChars
 android.text.GraphicsOperations
 android.text.Html$HtmlParser
+android.text.Html$ImageGetter
 android.text.Html$TagHandler
 android.text.Html
+android.text.HtmlToSpannedConverter$Alignment
+android.text.HtmlToSpannedConverter$Background
 android.text.HtmlToSpannedConverter$Big
 android.text.HtmlToSpannedConverter$Blockquote
 android.text.HtmlToSpannedConverter$Bold
 android.text.HtmlToSpannedConverter$Bullet
+android.text.HtmlToSpannedConverter$Font
+android.text.HtmlToSpannedConverter$Foreground
 android.text.HtmlToSpannedConverter$Heading
 android.text.HtmlToSpannedConverter$Href
 android.text.HtmlToSpannedConverter$Italic
 android.text.HtmlToSpannedConverter$Monospace
+android.text.HtmlToSpannedConverter$Newline
 android.text.HtmlToSpannedConverter$Small
 android.text.HtmlToSpannedConverter$Strikethrough
 android.text.HtmlToSpannedConverter$Sub
@@ -4826,6 +6105,7 @@
 android.text.format.Time$TimeCalculator
 android.text.format.Time
 android.text.format.TimeFormatter
+android.text.format.TimeMigrationUtils
 android.text.method.AllCapsTransformationMethod
 android.text.method.ArrowKeyMovementMethod
 android.text.method.BaseKeyListener
@@ -4850,6 +6130,7 @@
 android.text.method.TextKeyListener$SettingsObserver
 android.text.method.TextKeyListener
 android.text.method.TimeKeyListener
+android.text.method.Touch$DragState
 android.text.method.Touch
 android.text.method.TransformationMethod2
 android.text.method.TransformationMethod
@@ -4857,11 +6138,14 @@
 android.text.style.AbsoluteSizeSpan
 android.text.style.AccessibilityClickableSpan$1
 android.text.style.AccessibilityClickableSpan
+android.text.style.AccessibilityReplacementSpan$1
+android.text.style.AccessibilityReplacementSpan
 android.text.style.AccessibilityURLSpan
 android.text.style.AlignmentSpan$Standard
 android.text.style.AlignmentSpan
 android.text.style.BackgroundColorSpan
 android.text.style.BulletSpan
+android.text.style.CharacterStyle$Passthrough
 android.text.style.CharacterStyle
 android.text.style.ClickableSpan
 android.text.style.DynamicDrawableSpan
@@ -4877,6 +6161,7 @@
 android.text.style.LineHeightSpan$WithDensity
 android.text.style.LineHeightSpan
 android.text.style.LocaleSpan
+android.text.style.MetricAffectingSpan$Passthrough
 android.text.style.MetricAffectingSpan
 android.text.style.ParagraphStyle
 android.text.style.QuoteSpan
@@ -4904,9 +6189,11 @@
 android.text.style.UpdateLayout
 android.text.style.WrapTogetherSpan
 android.text.util.-$$Lambda$Linkify$7J_-cMhIF2bcttjkxA2jDFP8sKw
+android.text.util.LinkSpec
 android.text.util.Linkify$1
 android.text.util.Linkify$2
 android.text.util.Linkify$3
+android.text.util.Linkify$4
 android.text.util.Linkify$MatchFilter
 android.text.util.Linkify$TransformFilter
 android.text.util.Linkify
@@ -4961,11 +6248,15 @@
 android.transition.TransitionManager$MultiListener
 android.transition.TransitionManager
 android.transition.TransitionPropagation
+android.transition.TransitionSet$1
 android.transition.TransitionSet$TransitionSetListener
 android.transition.TransitionSet
 android.transition.TransitionUtils
 android.transition.TransitionValues
 android.transition.TransitionValuesMaps
+android.transition.Visibility$1
+android.transition.Visibility$DisappearListener
+android.transition.Visibility$VisibilityInfo
 android.transition.Visibility
 android.transition.VisibilityPropagation
 android.util.AndroidException
@@ -4976,11 +6267,13 @@
 android.util.ArraySet
 android.util.AtomicFile
 android.util.AttributeSet
+android.util.BackupUtils$BadVersionException
 android.util.BackupUtils
 android.util.Base64$Coder
 android.util.Base64$Decoder
 android.util.Base64$Encoder
 android.util.Base64
+android.util.CloseGuard
 android.util.ContainerHelpers
 android.util.DataUnit$1
 android.util.DataUnit$2
@@ -5013,6 +6306,7 @@
 android.util.KeyValueSettingObserver$SettingObserver
 android.util.KeyValueSettingObserver
 android.util.LauncherIcons
+android.util.LocalLog$ReadOnlyLocalLog
 android.util.LocalLog
 android.util.Log$1
 android.util.Log$ImmediateLogWriter
@@ -5024,7 +6318,9 @@
 android.util.LogWriter
 android.util.LongArray
 android.util.LongArrayQueue
+android.util.LongSparseArray$StringParcelling
 android.util.LongSparseArray
+android.util.LongSparseLongArray$Parcelling
 android.util.LongSparseLongArray
 android.util.LruCache
 android.util.MapCollections$ArrayIterator
@@ -5041,6 +6337,9 @@
 android.util.MutableBoolean
 android.util.MutableInt
 android.util.MutableLong
+android.util.NtpTrustedTime$1
+android.util.NtpTrustedTime$NtpConnectionInfo
+android.util.NtpTrustedTime$TimeResult
 android.util.NtpTrustedTime
 android.util.PackageUtils
 android.util.Pair
@@ -5050,11 +6349,13 @@
 android.util.Pools$Pool
 android.util.Pools$SimplePool
 android.util.Pools$SynchronizedPool
+android.util.PrefixPrinter
 android.util.PrintWriterPrinter
 android.util.Printer
 android.util.Property
 android.util.Range
 android.util.Rational
+android.util.RecurrenceRule$1
 android.util.RecurrenceRule$NonrecurringIterator
 android.util.RecurrenceRule$RecurringIterator
 android.util.RecurrenceRule
@@ -5063,6 +6364,7 @@
 android.util.SizeF
 android.util.Slog
 android.util.SparseArray
+android.util.SparseArrayMap
 android.util.SparseBooleanArray
 android.util.SparseIntArray
 android.util.SparseLongArray
@@ -5073,7 +6375,9 @@
 android.util.StateSet
 android.util.StatsLog
 android.util.StatsLogInternal
+android.util.StringBuilderPrinter
 android.util.SuperNotCalledException
+android.util.TimeFormatException
 android.util.TimeUtils
 android.util.TimedRemoteCaller
 android.util.TimingLogger
@@ -5081,11 +6385,13 @@
 android.util.TrustedTime
 android.util.TypedValue
 android.util.UtilConfig
+android.util.Xml$Encoding
 android.util.Xml
 android.util.XmlPullAttributes
 android.util.apk.ApkSignatureSchemeV2Verifier$VerifiedSigner
 android.util.apk.ApkSignatureSchemeV2Verifier
 android.util.apk.ApkSignatureSchemeV3Verifier$PlatformNotSupportedException
+android.util.apk.ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation
 android.util.apk.ApkSignatureSchemeV3Verifier$VerifiedSigner
 android.util.apk.ApkSignatureSchemeV3Verifier
 android.util.apk.ApkSignatureVerifier
@@ -5120,24 +6426,37 @@
 android.util.proto.ProtoOutputStream
 android.util.proto.ProtoParseException
 android.util.proto.ProtoStream
+android.util.proto.ProtoUtils
 android.util.proto.WireTypeMismatchException
 android.view.-$$Lambda$1kvF4JuyM42-wmyDVPAIYdPz1jE
 android.view.-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc
+android.view.-$$Lambda$CompositionSamplingListener$hrbPutjnKRv7VkkiY9eg32N6QA8
 android.view.-$$Lambda$FocusFinder$FocusSorter$h0f2ZYL6peSaaEeCCkAoYs_YZvU
 android.view.-$$Lambda$FocusFinder$FocusSorter$kW7K1t9q7Y62V38r-7g6xRzqqq8
 android.view.-$$Lambda$FocusFinder$P8rLvOJhymJH5ALAgUjGaM5gxKA
 android.view.-$$Lambda$FocusFinder$Pgx6IETuqCkrhJYdiBes48tolG4
+android.view.-$$Lambda$InsetsController$6uoSHBPvxV1C0JOZKhH1AyuNXmo
 android.view.-$$Lambda$InsetsController$Cj7UJrCkdHvJAZ_cYKrXuTMsjz8
+android.view.-$$Lambda$InsetsController$HI9QZ2HvGm6iykc-WONz2KPG61Q
+android.view.-$$Lambda$InsetsController$RZT3QkL9zMFTeHtZbfcaHIzvlsc
+android.view.-$$Lambda$InsetsController$zpmOxHfTFV_3me2u3C8YaXSUauQ
 android.view.-$$Lambda$PYGleuqIeCxjTD1pJqqx1opFv1g
 android.view.-$$Lambda$QI1s392qW8l6mC24bcy9050SkuY
 android.view.-$$Lambda$SurfaceView$SyyzxOgxKwZMRgiiTGcRYbOU5JY
+android.view.-$$Lambda$SurfaceView$TWz4D2u33ZlAmRtgKzbqqDue3iM
 android.view.-$$Lambda$SurfaceView$w68OV7dB_zKVNsA-r0IrAUtyWas
+android.view.-$$Lambda$TextureView$WAq1rgfoZeDSt6cBQga7iQDymYk
 android.view.-$$Lambda$ThreadedRenderer$ydBD-R1iP5u-97XYakm-jKvC1b4
+android.view.-$$Lambda$View$bhR1vB5ZYp3dv-Kth4jtLSS0KEs
 android.view.-$$Lambda$View$llq76MkPXP4bNcb9oJt_msw0fnQ
+android.view.-$$Lambda$ViewRootImpl$DJd0VUYJgsebcnSohO6h8zc_ONI
 android.view.-$$Lambda$ViewRootImpl$IReiNMSbDakZSGbIZuL_ifaFWn8
+android.view.-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI
 android.view.-$$Lambda$ViewRootImpl$dznxCZGM2R1fsBljsJKomLjBRoM
+android.view.-$$Lambda$ViewRootImpl$vBfxngTfPtkwcFoa96FB0CWn5ZI
 android.view.-$$Lambda$WindowManagerGlobal$2bR3FsEm4EdRwuXfttH0wA2xOW4
 android.view.-$$Lambda$WlJa6OPA72p3gYtA3nVKC7Z1tGY
+android.view.-$$Lambda$Y3lG3v_J32-xL0IjMGgNorZjESw
 android.view.-$$Lambda$cZhmLzK8aetUdx4VlP9w5jR7En0
 android.view.-$$Lambda$dj1hfDQd0iEp_uBDBPEUMMYJJwk
 android.view.AbsSavedState$1
@@ -5152,6 +6471,8 @@
 android.view.ActionProvider
 android.view.AppTransitionAnimationSpec$1
 android.view.AppTransitionAnimationSpec
+android.view.BatchedInputEventReceiver$BatchedInputRunnable
+android.view.BatchedInputEventReceiver
 android.view.Choreographer$1
 android.view.Choreographer$2
 android.view.Choreographer$3
@@ -5201,15 +6522,28 @@
 android.view.GestureDetector
 android.view.GestureExclusionTracker$GestureExclusionViewInfo
 android.view.GestureExclusionTracker
+android.view.GhostView
 android.view.Gravity
 android.view.HandlerActionQueue$HandlerAction
 android.view.HandlerActionQueue
 android.view.IAppTransitionAnimationSpecsFuture$Stub$Proxy
 android.view.IAppTransitionAnimationSpecsFuture$Stub
 android.view.IAppTransitionAnimationSpecsFuture
+android.view.IApplicationToken$Stub
+android.view.IApplicationToken
 android.view.IDisplayFoldListener$Stub$Proxy
 android.view.IDisplayFoldListener$Stub
 android.view.IDisplayFoldListener
+android.view.IDisplayWindowInsetsController$Stub
+android.view.IDisplayWindowInsetsController
+android.view.IDisplayWindowListener$Stub$Proxy
+android.view.IDisplayWindowListener$Stub
+android.view.IDisplayWindowListener
+android.view.IDisplayWindowRotationCallback$Stub
+android.view.IDisplayWindowRotationCallback
+android.view.IDisplayWindowRotationController$Stub$Proxy
+android.view.IDisplayWindowRotationController$Stub
+android.view.IDisplayWindowRotationController
 android.view.IDockedStackListener$Stub$Proxy
 android.view.IDockedStackListener$Stub
 android.view.IDockedStackListener
@@ -5219,6 +6553,9 @@
 android.view.IGraphicsStatsCallback$Stub$Proxy
 android.view.IGraphicsStatsCallback$Stub
 android.view.IGraphicsStatsCallback
+android.view.IInputMonitorHost$Stub$Proxy
+android.view.IInputMonitorHost$Stub
+android.view.IInputMonitorHost
 android.view.IOnKeyguardExitResult$Stub$Proxy
 android.view.IOnKeyguardExitResult$Stub
 android.view.IOnKeyguardExitResult
@@ -5228,9 +6565,15 @@
 android.view.IPinnedStackListener$Stub$Proxy
 android.view.IPinnedStackListener$Stub
 android.view.IPinnedStackListener
+android.view.IRecentsAnimationController$Stub$Proxy
+android.view.IRecentsAnimationController$Stub
+android.view.IRecentsAnimationController
 android.view.IRecentsAnimationRunner$Stub$Proxy
 android.view.IRecentsAnimationRunner$Stub
 android.view.IRecentsAnimationRunner
+android.view.IRemoteAnimationFinishedCallback$Stub$Proxy
+android.view.IRemoteAnimationFinishedCallback$Stub
+android.view.IRemoteAnimationFinishedCallback
 android.view.IRemoteAnimationRunner$Stub$Proxy
 android.view.IRemoteAnimationRunner$Stub
 android.view.IRemoteAnimationRunner
@@ -5246,6 +6589,13 @@
 android.view.IWindow$Stub$Proxy
 android.view.IWindow$Stub
 android.view.IWindow
+android.view.IWindowContainer$Stub$Proxy
+android.view.IWindowContainer$Stub
+android.view.IWindowContainer
+android.view.IWindowFocusObserver$Stub
+android.view.IWindowFocusObserver
+android.view.IWindowId$Stub$Proxy
+android.view.IWindowId$Stub
 android.view.IWindowId
 android.view.IWindowManager$Stub$Proxy
 android.view.IWindowManager$Stub
@@ -5256,6 +6606,8 @@
 android.view.IWindowSessionCallback$Stub$Proxy
 android.view.IWindowSessionCallback$Stub
 android.view.IWindowSessionCallback
+android.view.ImeFocusController$InputMethodManagerDelegate
+android.view.ImeFocusController
 android.view.ImeInsetsSourceConsumer
 android.view.InflateException
 android.view.InputApplicationHandle
@@ -5270,12 +6622,15 @@
 android.view.InputEventConsistencyVerifier
 android.view.InputEventReceiver
 android.view.InputEventSender
+android.view.InputMonitor$1
+android.view.InputMonitor
 android.view.InputQueue$Callback
 android.view.InputQueue$FinishedInputEventCallback
 android.view.InputQueue
 android.view.InputWindowHandle
 android.view.InsetsAnimationControlCallbacks
 android.view.InsetsController
+android.view.InsetsFlags
 android.view.InsetsSource$1
 android.view.InsetsSource
 android.view.InsetsSourceConsumer
@@ -5312,6 +6667,7 @@
 android.view.NativeVectorDrawableAnimator
 android.view.OrientationEventListener$SensorEventListenerImpl
 android.view.OrientationEventListener
+android.view.OrientationListener
 android.view.PointerIcon$1
 android.view.PointerIcon$2
 android.view.PointerIcon
@@ -5322,6 +6678,8 @@
 android.view.RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1
 android.view.RemoteAnimationDefinition$RemoteAnimationAdapterEntry
 android.view.RemoteAnimationDefinition
+android.view.RemoteAnimationTarget$1
+android.view.RemoteAnimationTarget
 android.view.RenderNodeAnimator$1
 android.view.RenderNodeAnimator$DelayedAnimationHelper
 android.view.RenderNodeAnimator
@@ -5336,17 +6694,22 @@
 android.view.SubMenu
 android.view.Surface$1
 android.view.Surface$CompatibleCanvas
+android.view.Surface$HwuiContext
 android.view.Surface$OutOfResourcesException
 android.view.Surface
 android.view.SurfaceControl$1
 android.view.SurfaceControl$Builder
 android.view.SurfaceControl$CieXyz
 android.view.SurfaceControl$DesiredDisplayConfigSpecs
+android.view.SurfaceControl$DisplayConfig
+android.view.SurfaceControl$DisplayInfo
 android.view.SurfaceControl$DisplayPrimaries
+android.view.SurfaceControl$PhysicalDisplayInfo
 android.view.SurfaceControl$ScreenshotGraphicBuffer
 android.view.SurfaceControl$Transaction$1
 android.view.SurfaceControl$Transaction
 android.view.SurfaceControl
+android.view.SurfaceControlViewHost$SurfacePackage
 android.view.SurfaceHolder$Callback2
 android.view.SurfaceHolder$Callback
 android.view.SurfaceHolder
@@ -5400,10 +6763,12 @@
 android.view.View$OnKeyListener
 android.view.View$OnLayoutChangeListener
 android.view.View$OnLongClickListener
+android.view.View$OnScrollChangeListener
 android.view.View$OnSystemUiVisibilityChangeListener
 android.view.View$OnTouchListener
 android.view.View$PerformClick
 android.view.View$ScrollabilityCache
+android.view.View$SendAccessibilityEventThrottle
 android.view.View$SendViewScrolledAccessibilityEvent
 android.view.View$TintInfo
 android.view.View$TooltipInfo
@@ -5413,13 +6778,17 @@
 android.view.View
 android.view.ViewAnimationHostBridge
 android.view.ViewConfiguration
+android.view.ViewDebug$ExportedProperty
+android.view.ViewDebug$FlagToString
 android.view.ViewDebug$HierarchyHandler
+android.view.ViewDebug$IntToString
 android.view.ViewDebug
 android.view.ViewGroup$1
 android.view.ViewGroup$2
 android.view.ViewGroup$4
 android.view.ViewGroup$ChildListForAccessibility
 android.view.ViewGroup$ChildListForAutoFillOrContentCapture
+android.view.ViewGroup$HoverTarget
 android.view.ViewGroup$LayoutParams
 android.view.ViewGroup$MarginLayoutParams
 android.view.ViewGroup$OnHierarchyChangeListener
@@ -5454,6 +6823,7 @@
 android.view.ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable
 android.view.ViewRootImpl$ConsumeBatchedInputRunnable
 android.view.ViewRootImpl$EarlyPostImeInputStage
+android.view.ViewRootImpl$GfxInfo
 android.view.ViewRootImpl$HighContrastTextManager
 android.view.ViewRootImpl$ImeInputStage
 android.view.ViewRootImpl$InputStage
@@ -5481,6 +6851,7 @@
 android.view.ViewRootImpl$W
 android.view.ViewRootImpl$WindowInputEventReceiver
 android.view.ViewRootImpl
+android.view.ViewStructure$HtmlInfo$Builder
 android.view.ViewStructure$HtmlInfo
 android.view.ViewStructure
 android.view.ViewStub$OnInflateListener
@@ -5502,6 +6873,7 @@
 android.view.ViewTreeObserver$OnWindowShownListener
 android.view.ViewTreeObserver
 android.view.Window$Callback
+android.view.Window$OnContentApplyWindowInsetsListener
 android.view.Window$OnFrameMetricsAvailableListener
 android.view.Window$OnWindowDismissedCallback
 android.view.Window$OnWindowSwipeDismissedCallback
@@ -5510,10 +6882,14 @@
 android.view.WindowAnimationFrameStats$1
 android.view.WindowAnimationFrameStats
 android.view.WindowCallbacks
+android.view.WindowContainerTransaction$1
+android.view.WindowContainerTransaction
 android.view.WindowContentFrameStats$1
 android.view.WindowContentFrameStats
 android.view.WindowId$1
+android.view.WindowId
 android.view.WindowInsets$Builder
+android.view.WindowInsets$Side
 android.view.WindowInsets$Type
 android.view.WindowInsets
 android.view.WindowInsetsController
@@ -5529,12 +6905,14 @@
 android.view.WindowManagerImpl
 android.view.WindowManagerPolicyConstants$PointerEventListener
 android.view.WindowManagerPolicyConstants
+android.view.WindowMetrics
 android.view.accessibility.-$$Lambda$AccessibilityManager$1$o7fCplskH9NlBwJvkl6NoZ0L_BA
 android.view.accessibility.-$$Lambda$AccessibilityManager$yzw5NYY7_MfAQ9gLy3mVllchaXo
 android.view.accessibility.AccessibilityEvent$1
 android.view.accessibility.AccessibilityEvent
 android.view.accessibility.AccessibilityEventSource
 android.view.accessibility.AccessibilityManager$1
+android.view.accessibility.AccessibilityManager$AccessibilityPolicy
 android.view.accessibility.AccessibilityManager$AccessibilityServicesStateChangeListener
 android.view.accessibility.AccessibilityManager$AccessibilityStateChangeListener
 android.view.accessibility.AccessibilityManager$HighTextContrastChangeListener
@@ -5545,6 +6923,10 @@
 android.view.accessibility.AccessibilityNodeInfo$1
 android.view.accessibility.AccessibilityNodeInfo$AccessibilityAction$1
 android.view.accessibility.AccessibilityNodeInfo$AccessibilityAction
+android.view.accessibility.AccessibilityNodeInfo$CollectionInfo
+android.view.accessibility.AccessibilityNodeInfo$CollectionItemInfo
+android.view.accessibility.AccessibilityNodeInfo$RangeInfo
+android.view.accessibility.AccessibilityNodeInfo$TouchDelegateInfo
 android.view.accessibility.AccessibilityNodeInfo
 android.view.accessibility.AccessibilityNodeProvider
 android.view.accessibility.AccessibilityRecord
@@ -5565,6 +6947,8 @@
 android.view.accessibility.IAccessibilityManagerClient$Stub$Proxy
 android.view.accessibility.IAccessibilityManagerClient$Stub
 android.view.accessibility.IAccessibilityManagerClient
+android.view.accessibility.IWindowMagnificationConnection$Stub
+android.view.accessibility.IWindowMagnificationConnection
 android.view.accessibility.WeakSparseArray$WeakReferenceWithId
 android.view.accessibility.WeakSparseArray
 android.view.animation.AccelerateDecelerateInterpolator
@@ -5598,36 +6982,57 @@
 android.view.animation.ScaleAnimation
 android.view.animation.Transformation
 android.view.animation.TranslateAnimation
+android.view.autofill.-$$Lambda$AutofillManager$AutofillManagerClient$qH36EJk2Hkdja9ZZmTxqYPyr0YA
+android.view.autofill.-$$Lambda$AutofillManager$AutofillManagerClient$vxNm6RuuD-r5pkiSxNSBBd1w_Qc
 android.view.autofill.-$$Lambda$AutofillManager$V76JiQu509LCUz3-ckpb-nB3JhA
 android.view.autofill.-$$Lambda$AutofillManager$YfpJNFodEuj5lbXfPlc77fsEvC8
 android.view.autofill.AutofillId$1
 android.view.autofill.AutofillId
+android.view.autofill.AutofillManager$AugmentedAutofillManagerClient
 android.view.autofill.AutofillManager$AutofillCallback
 android.view.autofill.AutofillManager$AutofillClient
 android.view.autofill.AutofillManager$AutofillManagerClient
+android.view.autofill.AutofillManager$TrackedViews
 android.view.autofill.AutofillManager
 android.view.autofill.AutofillManagerInternal
+android.view.autofill.AutofillPopupWindow
 android.view.autofill.AutofillValue$1
 android.view.autofill.AutofillValue
 android.view.autofill.Helper
+android.view.autofill.IAugmentedAutofillManagerClient$Stub
+android.view.autofill.IAugmentedAutofillManagerClient
 android.view.autofill.IAutoFillManager$Stub$Proxy
 android.view.autofill.IAutoFillManager$Stub
 android.view.autofill.IAutoFillManager
 android.view.autofill.IAutoFillManagerClient$Stub$Proxy
 android.view.autofill.IAutoFillManagerClient$Stub
 android.view.autofill.IAutoFillManagerClient
+android.view.autofill.IAutofillWindowPresenter$Stub
 android.view.autofill.IAutofillWindowPresenter
+android.view.autofill.ParcelableMap$1
+android.view.autofill.ParcelableMap
 android.view.contentcapture.ContentCaptureCondition$1
 android.view.contentcapture.ContentCaptureCondition
 android.view.contentcapture.ContentCaptureContext$1
+android.view.contentcapture.ContentCaptureContext$Builder
 android.view.contentcapture.ContentCaptureContext
+android.view.contentcapture.ContentCaptureEvent$1
+android.view.contentcapture.ContentCaptureEvent
 android.view.contentcapture.ContentCaptureHelper
 android.view.contentcapture.ContentCaptureManager$ContentCaptureClient
 android.view.contentcapture.ContentCaptureManager
+android.view.contentcapture.ContentCaptureSession
+android.view.contentcapture.ContentCaptureSessionId
 android.view.contentcapture.DataRemovalRequest$1
 android.view.contentcapture.DataRemovalRequest
+android.view.contentcapture.DataShareRequest
+android.view.contentcapture.IContentCaptureManager$Stub$Proxy
 android.view.contentcapture.IContentCaptureManager$Stub
 android.view.contentcapture.IContentCaptureManager
+android.view.contentcapture.IDataShareWriteAdapter$Stub
+android.view.contentcapture.IDataShareWriteAdapter
+android.view.contentcapture.MainContentCaptureSession$1
+android.view.contentcapture.MainContentCaptureSession
 android.view.inputmethod.-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0
 android.view.inputmethod.-$$Lambda$InputMethodManager$iDWn3IGSUFqIcs8Py42UhfrshxI
 android.view.inputmethod.BaseInputConnection
@@ -5640,11 +7045,13 @@
 android.view.inputmethod.CursorAnchorInfo$Builder
 android.view.inputmethod.CursorAnchorInfo
 android.view.inputmethod.EditorInfo$1
+android.view.inputmethod.EditorInfo$InitialSurroundingText
 android.view.inputmethod.EditorInfo
 android.view.inputmethod.ExtractedText$1
 android.view.inputmethod.ExtractedText
 android.view.inputmethod.ExtractedTextRequest$1
 android.view.inputmethod.ExtractedTextRequest
+android.view.inputmethod.InlineSuggestionsRequest
 android.view.inputmethod.InputBinding$1
 android.view.inputmethod.InputBinding
 android.view.inputmethod.InputConnection
@@ -5658,9 +7065,11 @@
 android.view.inputmethod.InputMethodInfo
 android.view.inputmethod.InputMethodManager$1
 android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper
+android.view.inputmethod.InputMethodManager$DelegateImpl
 android.view.inputmethod.InputMethodManager$FinishedInputEventCallback
 android.view.inputmethod.InputMethodManager$H
 android.view.inputmethod.InputMethodManager$ImeInputEventSender
+android.view.inputmethod.InputMethodManager$ImeThreadFactory
 android.view.inputmethod.InputMethodManager$PendingEvent
 android.view.inputmethod.InputMethodManager
 android.view.inputmethod.InputMethodSession$EventCallback
@@ -5671,19 +7080,24 @@
 android.view.inputmethod.InputMethodSubtypeArray
 android.view.textclassifier.-$$Lambda$0biFK4yZBmWN1EO2wtnXskzuEcE
 android.view.textclassifier.-$$Lambda$9N8WImc0VBjy2oxI_Gk5_Pbye_A
+android.view.textclassifier.-$$Lambda$ActionsModelParamsSupplier$GCXILXtg_S2la6x__ANOhbYxetw
+android.view.textclassifier.-$$Lambda$ActionsModelParamsSupplier$zElxNeuL3A8paTXvw8GWdpp4rFo
 android.view.textclassifier.-$$Lambda$ActionsSuggestionsHelper$6oTtcn9bDE-u-8FbiyGdntqoQG0
 android.view.textclassifier.-$$Lambda$ActionsSuggestionsHelper$YTQv8oPvlmJL4tITUFD4z4JWKRk
 android.view.textclassifier.-$$Lambda$ActionsSuggestionsHelper$sY0w9od2zcl4YFel0lG4VB3vf7I
 android.view.textclassifier.-$$Lambda$EntityConfidence$YPh8hwgSYYK8OyQ1kFlQngc71Q0
+android.view.textclassifier.-$$Lambda$GenerateLinksLogger$vmbT_h7MLlbrIm0lJJwA-eHQhXk
 android.view.textclassifier.-$$Lambda$L_UQMPjXwBN0ch4zL2dD82nf9RI
 android.view.textclassifier.-$$Lambda$NxwbyZSxofZ4Z5SQhfXmtLQ1nxk
 android.view.textclassifier.-$$Lambda$OGSS2qx6njxlnp0dnKb4lA3jnw8
+android.view.textclassifier.-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE
 android.view.textclassifier.-$$Lambda$TextClassifierImpl$RRbXefHgcUymI9-P95ArUyMvfbw
 android.view.textclassifier.-$$Lambda$TextClassifierImpl$ftq-sQqJYwUdrdbbr9jz3p4AWos
 android.view.textclassifier.-$$Lambda$TextClassifierImpl$iSt_Guet-O6Vtdk0MA4z-Z4lzaM
 android.view.textclassifier.-$$Lambda$XeE_KI7QgMKzF9vYRSoFWAolyuA
 android.view.textclassifier.-$$Lambda$jJq8RXuVdjYF3lPq-77PEw1NJLM
 android.view.textclassifier.ActionsModelParamsSupplier$ActionsModelParams
+android.view.textclassifier.ActionsModelParamsSupplier$SettingsObserver
 android.view.textclassifier.ActionsModelParamsSupplier
 android.view.textclassifier.ActionsSuggestionsHelper$PersonEncoder
 android.view.textclassifier.ActionsSuggestionsHelper
@@ -5692,13 +7106,16 @@
 android.view.textclassifier.ConversationAction
 android.view.textclassifier.ConversationActions$1
 android.view.textclassifier.ConversationActions$Message$1
+android.view.textclassifier.ConversationActions$Message$Builder
 android.view.textclassifier.ConversationActions$Message
 android.view.textclassifier.ConversationActions$Request$1
+android.view.textclassifier.ConversationActions$Request$Builder
 android.view.textclassifier.ConversationActions$Request
 android.view.textclassifier.ConversationActions
 android.view.textclassifier.EntityConfidence$1
 android.view.textclassifier.EntityConfidence
 android.view.textclassifier.ExtrasUtils
+android.view.textclassifier.GenerateLinksLogger$LinkifyStats
 android.view.textclassifier.GenerateLinksLogger
 android.view.textclassifier.Log
 android.view.textclassifier.ModelFileManager$ModelFile
@@ -5722,6 +7139,7 @@
 android.view.textclassifier.TextClassificationContext
 android.view.textclassifier.TextClassificationManager$SettingsObserver
 android.view.textclassifier.TextClassificationManager
+android.view.textclassifier.TextClassificationSession
 android.view.textclassifier.TextClassificationSessionFactory
 android.view.textclassifier.TextClassificationSessionId$1
 android.view.textclassifier.TextClassificationSessionId
@@ -5732,6 +7150,7 @@
 android.view.textclassifier.TextClassifier$Utils
 android.view.textclassifier.TextClassifier
 android.view.textclassifier.TextClassifierEvent$1
+android.view.textclassifier.TextClassifierEvent$Builder
 android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent$1
 android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent
 android.view.textclassifier.TextClassifierEvent$LanguageDetectionEvent$1
@@ -5749,8 +7168,12 @@
 android.view.textclassifier.TextLanguage$Request$Builder
 android.view.textclassifier.TextLanguage$Request
 android.view.textclassifier.TextLanguage
+android.view.textclassifier.TextLinks$Builder
 android.view.textclassifier.TextLinks$Request$1
 android.view.textclassifier.TextLinks$Request
+android.view.textclassifier.TextLinks$TextLink
+android.view.textclassifier.TextLinks$TextLinkSpan
+android.view.textclassifier.TextLinks
 android.view.textclassifier.TextSelection$1
 android.view.textclassifier.TextSelection$Request$1
 android.view.textclassifier.TextSelection$Request
@@ -5770,10 +7193,13 @@
 android.view.textservice.SpellCheckerSession$1
 android.view.textservice.SpellCheckerSession$InternalListener
 android.view.textservice.SpellCheckerSession$SpellCheckerSessionListener
+android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl$1
+android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams
 android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl
 android.view.textservice.SpellCheckerSession
 android.view.textservice.SpellCheckerSubtype$1
 android.view.textservice.SpellCheckerSubtype
+android.view.textservice.TextInfo
 android.view.textservice.TextServicesManager
 android.webkit.ConsoleMessage$MessageLevel
 android.webkit.ConsoleMessage
@@ -5785,6 +7211,7 @@
 android.webkit.IWebViewUpdateService$Stub
 android.webkit.IWebViewUpdateService
 android.webkit.JavascriptInterface
+android.webkit.MimeTypeMap
 android.webkit.ServiceWorkerClient
 android.webkit.ServiceWorkerController
 android.webkit.ServiceWorkerWebSettings
@@ -5799,7 +7226,9 @@
 android.webkit.WebIconDatabase
 android.webkit.WebMessage
 android.webkit.WebMessagePort
+android.webkit.WebResourceError
 android.webkit.WebResourceRequest
+android.webkit.WebSettings$PluginState
 android.webkit.WebSettings
 android.webkit.WebStorage
 android.webkit.WebSyncManager
@@ -5843,12 +7272,16 @@
 android.widget.AbsListView$2
 android.widget.AbsListView$3
 android.widget.AbsListView$4
+android.widget.AbsListView$AbsPositionScroller
 android.widget.AbsListView$AdapterDataSetObserver
+android.widget.AbsListView$CheckForLongPress
 android.widget.AbsListView$CheckForTap
 android.widget.AbsListView$FlingRunnable$1
 android.widget.AbsListView$FlingRunnable
 android.widget.AbsListView$LayoutParams
 android.widget.AbsListView$ListItemAccessibilityDelegate
+android.widget.AbsListView$MultiChoiceModeListener
+android.widget.AbsListView$MultiChoiceModeWrapper
 android.widget.AbsListView$OnScrollListener
 android.widget.AbsListView$PerformClick
 android.widget.AbsListView$RecycleBin
@@ -5862,12 +7295,15 @@
 android.widget.AbsSpinner$RecycleBin
 android.widget.AbsSpinner$SavedState$1
 android.widget.AbsSpinner
+android.widget.AbsoluteLayout$LayoutParams
 android.widget.AbsoluteLayout
 android.widget.ActionMenuPresenter$1
 android.widget.ActionMenuPresenter$2
+android.widget.ActionMenuPresenter$ActionButtonSubmenu
 android.widget.ActionMenuPresenter$ActionMenuPopupCallback
 android.widget.ActionMenuPresenter$OverflowMenuButton$1
 android.widget.ActionMenuPresenter$OverflowMenuButton
+android.widget.ActionMenuPresenter$OverflowPopup
 android.widget.ActionMenuPresenter$PopupPresenterCallback
 android.widget.ActionMenuPresenter
 android.widget.ActionMenuView$ActionMenuChildView
@@ -5880,11 +7316,13 @@
 android.widget.AdapterView$AdapterDataSetObserver
 android.widget.AdapterView$OnItemClickListener
 android.widget.AdapterView$OnItemSelectedListener
+android.widget.AdapterView$SelectionNotifier
 android.widget.AdapterView
 android.widget.ArrayAdapter
 android.widget.AutoCompleteTextView$DropDownItemClickListener
 android.widget.AutoCompleteTextView$MyWatcher
 android.widget.AutoCompleteTextView$PassThroughClickListener
+android.widget.AutoCompleteTextView$Validator
 android.widget.AutoCompleteTextView
 android.widget.BaseAdapter
 android.widget.Button
@@ -5892,8 +7330,10 @@
 android.widget.Checkable
 android.widget.CheckedTextView
 android.widget.Chronometer$1
+android.widget.Chronometer$OnChronometerTickListener
 android.widget.Chronometer
 android.widget.CompoundButton$OnCheckedChangeListener
+android.widget.CompoundButton$SavedState
 android.widget.CompoundButton
 android.widget.EdgeEffect
 android.widget.EditText
@@ -5902,36 +7342,45 @@
 android.widget.Editor$3
 android.widget.Editor$5
 android.widget.Editor$Blink
+android.widget.Editor$CorrectionHighlighter
 android.widget.Editor$CursorAnchorInfoNotifier
 android.widget.Editor$CursorController
 android.widget.Editor$EasyEditDeleteListener
 android.widget.Editor$EasyEditPopupWindow
 android.widget.Editor$EditOperation$1
 android.widget.Editor$EditOperation
+android.widget.Editor$ErrorPopup
+android.widget.Editor$HandleView
 android.widget.Editor$InputContentType
 android.widget.Editor$InputMethodState
+android.widget.Editor$InsertionHandleView
 android.widget.Editor$InsertionPointCursorController
 android.widget.Editor$MagnifierMotionAnimator
 android.widget.Editor$PinnedPopupWindow
 android.widget.Editor$PositionListener
 android.widget.Editor$ProcessTextIntentActionsHandler
+android.widget.Editor$SelectionHandleView
 android.widget.Editor$SelectionModifierCursorController
 android.widget.Editor$SpanController$1
 android.widget.Editor$SpanController$2
 android.widget.Editor$SpanController
 android.widget.Editor$SuggestionHelper$SuggestionSpanComparator
 android.widget.Editor$SuggestionHelper
+android.widget.Editor$SuggestionsPopupWindow
 android.widget.Editor$TextRenderNode
 android.widget.Editor$TextViewPositionListener
 android.widget.Editor$UndoInputFilter
 android.widget.Editor
+android.widget.EditorTouchState
 android.widget.FastScroller$1
 android.widget.FastScroller$2
 android.widget.FastScroller$3
 android.widget.FastScroller$4
 android.widget.FastScroller$5
 android.widget.FastScroller$6
+android.widget.FastScroller
 android.widget.Filter$FilterListener
+android.widget.Filter$ResultsHandler
 android.widget.Filter
 android.widget.Filterable
 android.widget.ForwardingListener
@@ -6021,6 +7470,7 @@
 android.widget.RemoteViews$MethodArgs
 android.widget.RemoteViews$MethodKey
 android.widget.RemoteViews$OnClickHandler
+android.widget.RemoteViews$OnViewAppliedListener
 android.widget.RemoteViews$OverrideTextColorsAction
 android.widget.RemoteViews$ReflectionAction
 android.widget.RemoteViews$RemoteResponse
@@ -6040,11 +7490,16 @@
 android.widget.RemoteViews$TextViewDrawableAction
 android.widget.RemoteViews$TextViewSizeAction
 android.widget.RemoteViews$ViewContentNavigation
+android.widget.RemoteViews$ViewGroupActionAdd$1
 android.widget.RemoteViews$ViewGroupActionAdd
+android.widget.RemoteViews$ViewGroupActionRemove$1
 android.widget.RemoteViews$ViewGroupActionRemove
 android.widget.RemoteViews$ViewPaddingAction
+android.widget.RemoteViews$ViewTree
 android.widget.RemoteViews
 android.widget.RemoteViewsAdapter$RemoteAdapterConnectionCallback
+android.widget.RemoteViewsAdapter
+android.widget.RemoteViewsService
 android.widget.RtlSpacingHelper
 android.widget.ScrollBarDrawable
 android.widget.ScrollView$SavedState$1
@@ -6086,6 +7541,9 @@
 android.widget.TextView$ChangeWatcher
 android.widget.TextView$CharWrapper
 android.widget.TextView$Drawables
+android.widget.TextView$Marquee$1
+android.widget.TextView$Marquee$2
+android.widget.TextView$Marquee$3
 android.widget.TextView$Marquee
 android.widget.TextView$OnEditorActionListener
 android.widget.TextView$SavedState$1
@@ -6093,6 +7551,8 @@
 android.widget.TextView$TextAppearanceAttributes
 android.widget.TextView
 android.widget.ThemedSpinnerAdapter
+android.widget.Toast$Callback
+android.widget.Toast$CallbackBinder
 android.widget.Toast$TN$1
 android.widget.Toast$TN
 android.widget.Toast
@@ -6124,6 +7584,7 @@
 com.android.i18n.phonenumbers.MultiFileMetadataSourceImpl
 com.android.i18n.phonenumbers.NumberParseException$ErrorType
 com.android.i18n.phonenumbers.NumberParseException
+com.android.i18n.phonenumbers.PhoneNumberMatch
 com.android.i18n.phonenumbers.PhoneNumberUtil$1
 com.android.i18n.phonenumbers.PhoneNumberUtil$2
 com.android.i18n.phonenumbers.PhoneNumberUtil$Leniency$1
@@ -6159,6 +7620,7 @@
 com.android.icu.util.LocaleNative
 com.android.icu.util.regex.MatcherNative
 com.android.icu.util.regex.PatternNative
+com.android.ims.-$$Lambda$ImsManager$CwzXIbVJZNvgdV2t7LH2gUKL7AA
 com.android.ims.-$$Lambda$ImsManager$D1JuJ3ba2jMHWDKlSpm03meBR1c
 com.android.ims.-$$Lambda$ImsManager$LiW49wt0wLMYHjgtAwL8NLIATfs
 com.android.ims.-$$Lambda$ImsManager$YhRaDrc3t9_7beNiU5gQcqZilOw
@@ -6166,6 +7628,7 @@
 com.android.ims.FeatureConnection$IFeatureUpdate
 com.android.ims.FeatureConnection
 com.android.ims.FeatureConnector$Listener
+com.android.ims.FeatureConnector
 com.android.ims.IFeatureConnector
 com.android.ims.ImsCall$Listener
 com.android.ims.ImsCall
@@ -6181,6 +7644,7 @@
 com.android.ims.ImsManager$2
 com.android.ims.ImsManager$3
 com.android.ims.ImsManager$ExecutorFactory
+com.android.ims.ImsManager$ImsExecutorFactory
 com.android.ims.ImsManager
 com.android.ims.ImsMultiEndpoint$ImsExternalCallStateListenerProxy
 com.android.ims.ImsMultiEndpoint
@@ -6191,13 +7655,16 @@
 com.android.ims.MmTelFeatureConnection$ImsRegistrationCallbackAdapter
 com.android.ims.MmTelFeatureConnection$ProvisioningCallbackManager
 com.android.ims.MmTelFeatureConnection
+com.android.ims.Registrant
 com.android.ims.internal.ICall
+com.android.ims.internal.IImsCallSession
 com.android.ims.internal.IImsEcbm$Stub
 com.android.ims.internal.IImsEcbm
 com.android.ims.internal.IImsEcbmListener$Stub
 com.android.ims.internal.IImsEcbmListener
 com.android.ims.internal.IImsExternalCallStateListener$Stub
 com.android.ims.internal.IImsExternalCallStateListener
+com.android.ims.internal.IImsFeatureStatusCallback$Stub$Proxy
 com.android.ims.internal.IImsFeatureStatusCallback$Stub
 com.android.ims.internal.IImsFeatureStatusCallback
 com.android.ims.internal.IImsMultiEndpoint$Stub
@@ -6212,14 +7679,25 @@
 com.android.ims.internal.ImsVideoCallProviderWrapper$ImsVideoProviderWrapperCallback
 com.android.ims.internal.uce.UceServiceBase$UceServiceBinder
 com.android.ims.internal.uce.UceServiceBase
+com.android.ims.internal.uce.common.CapInfo$1
+com.android.ims.internal.uce.common.CapInfo
+com.android.ims.internal.uce.common.StatusCode$1
 com.android.ims.internal.uce.common.UceLong$1
 com.android.ims.internal.uce.common.UceLong
 com.android.ims.internal.uce.options.IOptionsListener$Stub$Proxy
 com.android.ims.internal.uce.options.IOptionsListener$Stub
 com.android.ims.internal.uce.options.IOptionsListener
+com.android.ims.internal.uce.options.IOptionsService
 com.android.ims.internal.uce.presence.IPresenceListener$Stub$Proxy
 com.android.ims.internal.uce.presence.IPresenceListener$Stub
 com.android.ims.internal.uce.presence.IPresenceListener
+com.android.ims.internal.uce.presence.IPresenceService$Stub
+com.android.ims.internal.uce.presence.IPresenceService
+com.android.ims.internal.uce.presence.PresCapInfo$1
+com.android.ims.internal.uce.presence.PresCmdId$1
+com.android.ims.internal.uce.presence.PresCmdStatus$1
+com.android.ims.internal.uce.presence.PresPublishTriggerType$1
+com.android.ims.internal.uce.presence.PresSipResponse$1
 com.android.ims.internal.uce.uceservice.IUceListener$Stub$Proxy
 com.android.ims.internal.uce.uceservice.IUceListener$Stub
 com.android.ims.internal.uce.uceservice.IUceListener
@@ -6230,8 +7708,10 @@
 com.android.internal.accessibility.AccessibilityShortcutController$FrameworkObjectProvider
 com.android.internal.accessibility.AccessibilityShortcutController$ToggleableFrameworkFeatureInfo
 com.android.internal.accessibility.AccessibilityShortcutController
+com.android.internal.alsa.AlsaCardsParser$AlsaCardRecord
 com.android.internal.alsa.AlsaCardsParser
 com.android.internal.alsa.LineTokenizer
+com.android.internal.app.AlertActivity
 com.android.internal.app.AlertController$1
 com.android.internal.app.AlertController$AlertParams
 com.android.internal.app.AlertController$ButtonHandler
@@ -6241,6 +7721,9 @@
 com.android.internal.app.IAppOpsActiveCallback$Stub$Proxy
 com.android.internal.app.IAppOpsActiveCallback$Stub
 com.android.internal.app.IAppOpsActiveCallback
+com.android.internal.app.IAppOpsAsyncNotedCallback$Stub$Proxy
+com.android.internal.app.IAppOpsAsyncNotedCallback$Stub
+com.android.internal.app.IAppOpsAsyncNotedCallback
 com.android.internal.app.IAppOpsCallback$Stub$Proxy
 com.android.internal.app.IAppOpsCallback$Stub
 com.android.internal.app.IAppOpsCallback
@@ -6270,14 +7753,21 @@
 com.android.internal.app.IVoiceInteractor$Stub$Proxy
 com.android.internal.app.IVoiceInteractor$Stub
 com.android.internal.app.IVoiceInteractor
+com.android.internal.app.IntentForwarderActivity
 com.android.internal.app.MicroAlertController
+com.android.internal.app.NetInitiatedActivity
 com.android.internal.app.ProcessMap
 com.android.internal.app.ResolverActivity$ActionTitle
 com.android.internal.app.ResolverActivity
 com.android.internal.app.ResolverListAdapter$ResolverListCommunicator
 com.android.internal.app.ToolbarActionBar
+com.android.internal.app.WindowDecorActionBar$1
+com.android.internal.app.WindowDecorActionBar$2
+com.android.internal.app.WindowDecorActionBar$3
 com.android.internal.app.WindowDecorActionBar
 com.android.internal.app.procstats.-$$Lambda$AssociationState$kgfxYpOOyQWCFPwGaRqRz0N4-zg
+com.android.internal.app.procstats.-$$Lambda$ProcessStats$6CxEiT4FvK_P75G9LzEfE1zL88Q
+com.android.internal.app.procstats.AssociationState$SourceDumpContainer
 com.android.internal.app.procstats.AssociationState$SourceKey
 com.android.internal.app.procstats.AssociationState$SourceState
 com.android.internal.app.procstats.AssociationState
@@ -6290,7 +7780,9 @@
 com.android.internal.app.procstats.ProcessState$PssAggr
 com.android.internal.app.procstats.ProcessState
 com.android.internal.app.procstats.ProcessStats$1
+com.android.internal.app.procstats.ProcessStats$AssociationDumpContainer
 com.android.internal.app.procstats.ProcessStats$PackageState
+com.android.internal.app.procstats.ProcessStats$ProcessDataCollection
 com.android.internal.app.procstats.ProcessStats$ProcessStateHolder
 com.android.internal.app.procstats.ProcessStats$TotalMemoryUseCollection
 com.android.internal.app.procstats.ProcessStats
@@ -6308,7 +7800,22 @@
 com.android.internal.backup.IBackupTransport$Stub$Proxy
 com.android.internal.backup.IBackupTransport$Stub
 com.android.internal.backup.IBackupTransport
+com.android.internal.colorextraction.ColorExtractor$GradientColors
+com.android.internal.colorextraction.types.ExtractionType
+com.android.internal.colorextraction.types.Tonal$ConfigParser
+com.android.internal.colorextraction.types.Tonal$TonalPalette
+com.android.internal.colorextraction.types.Tonal
+com.android.internal.compat.ChangeReporter$ChangeReport
 com.android.internal.compat.ChangeReporter
+com.android.internal.compat.CompatibilityChangeConfig
+com.android.internal.compat.CompatibilityChangeInfo$1
+com.android.internal.compat.CompatibilityChangeInfo
+com.android.internal.compat.IOverrideValidator
+com.android.internal.compat.IPlatformCompat$Stub$Proxy
+com.android.internal.compat.IPlatformCompat$Stub
+com.android.internal.compat.IPlatformCompat
+com.android.internal.compat.IPlatformCompatNative$Stub
+com.android.internal.compat.IPlatformCompatNative
 com.android.internal.content.NativeLibraryHelper$Handle
 com.android.internal.content.NativeLibraryHelper
 com.android.internal.content.PackageHelper$1
@@ -6318,6 +7825,8 @@
 com.android.internal.content.ReferrerIntent$1
 com.android.internal.content.ReferrerIntent
 com.android.internal.database.SortCursor
+com.android.internal.graphics.-$$Lambda$ColorUtils$zbDH-52c8D9XBeqmvTHi3Boxl14
+com.android.internal.graphics.ColorUtils$ContrastCalculator
 com.android.internal.graphics.ColorUtils
 com.android.internal.graphics.SfVsyncFrameCallbackProvider
 com.android.internal.graphics.drawable.AnimationScaleListDrawable$AnimationScaleListState
@@ -6329,8 +7838,16 @@
 com.android.internal.infra.-$$Lambda$AbstractRemoteService$PendingRequest$IBoaBGXZQEXJr69u3aJF-LCJ42Y
 com.android.internal.infra.-$$Lambda$AbstractRemoteService$YSUzqqi1Pbrg2dlwMGMtKWbGXck
 com.android.internal.infra.-$$Lambda$AbstractRemoteService$ocrHd68Md9x6FfAzVQ6w8MAjFqY
+com.android.internal.infra.-$$Lambda$AndroidFuture$dkSvpmqaFOFKPCZgb7C7XLP_QpE
 com.android.internal.infra.-$$Lambda$EbzSql2RHkXox5Myj8A-7kLC4_A
+com.android.internal.infra.-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20
+com.android.internal.infra.-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s
+com.android.internal.infra.-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw
+com.android.internal.infra.-$$Lambda$aeiZbEpH6rq4kD9vJrlAnboJGDM
+com.android.internal.infra.-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA
+com.android.internal.infra.-$$Lambda$rAXGjry3wPGKviARzTYfDiY7xrs
 com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService
+com.android.internal.infra.AbstractRemoteService$AsyncRequest
 com.android.internal.infra.AbstractRemoteService$BasePendingRequest
 com.android.internal.infra.AbstractRemoteService$MyAsyncPendingRequest
 com.android.internal.infra.AbstractRemoteService$PendingRequest
@@ -6338,8 +7855,22 @@
 com.android.internal.infra.AbstractRemoteService$VultureCallback
 com.android.internal.infra.AbstractRemoteService
 com.android.internal.infra.AbstractSinglePendingRequestRemoteService
+com.android.internal.infra.AndroidFuture$1
+com.android.internal.infra.AndroidFuture$2
+com.android.internal.infra.AndroidFuture
+com.android.internal.infra.GlobalWhitelistState
+com.android.internal.infra.IAndroidFuture$Stub
+com.android.internal.infra.IAndroidFuture
+com.android.internal.infra.RemoteStream$1
+com.android.internal.infra.RemoteStream
+com.android.internal.infra.ServiceConnector$Impl$CompletionAwareJob
+com.android.internal.infra.ServiceConnector$Impl
 com.android.internal.infra.ServiceConnector$Job
+com.android.internal.infra.ServiceConnector$VoidJob
+com.android.internal.infra.ServiceConnector
+com.android.internal.infra.ThrottledRunnable
 com.android.internal.infra.WhitelistHelper
+com.android.internal.inputmethod.IInputContentUriToken
 com.android.internal.inputmethod.IInputMethodPrivilegedOperations$Stub$Proxy
 com.android.internal.inputmethod.IInputMethodPrivilegedOperations$Stub
 com.android.internal.inputmethod.IInputMethodPrivilegedOperations
@@ -6350,6 +7881,7 @@
 com.android.internal.inputmethod.SubtypeLocaleUtils
 com.android.internal.location.GpsNetInitiatedHandler$1
 com.android.internal.location.GpsNetInitiatedHandler$2
+com.android.internal.location.GpsNetInitiatedHandler$GpsNiNotification
 com.android.internal.location.GpsNetInitiatedHandler
 com.android.internal.location.ILocationProvider$Stub$Proxy
 com.android.internal.location.ILocationProvider$Stub
@@ -6370,10 +7902,13 @@
 com.android.internal.logging.AndroidHandler$1
 com.android.internal.logging.AndroidHandler
 com.android.internal.logging.EventLogTags
+com.android.internal.logging.InstanceId
 com.android.internal.logging.MetricsLogger
 com.android.internal.net.INetworkWatchlistManager$Stub$Proxy
 com.android.internal.net.INetworkWatchlistManager$Stub
 com.android.internal.net.INetworkWatchlistManager
+com.android.internal.net.LegacyVpnInfo$1
+com.android.internal.net.LegacyVpnInfo
 com.android.internal.net.VpnConfig$1
 com.android.internal.net.VpnConfig
 com.android.internal.net.VpnInfo$1
@@ -6386,13 +7921,20 @@
 com.android.internal.os.-$$Lambda$BatteryStatsImpl$B-TmZhQb712ePnuJTxvMe7P-YwQ
 com.android.internal.os.-$$Lambda$BatteryStatsImpl$Xvt9xdVPtevMWGIjcbxXf0_mr_c
 com.android.internal.os.-$$Lambda$BatteryStatsImpl$_l2oiaRDRhjCXI_PwXPsAhrgegI
+com.android.internal.os.-$$Lambda$BinderCallsStats$-YP-7pwoNn8TN0iTmo5Q1r2lQz0
+com.android.internal.os.-$$Lambda$BinderCallsStats$233x_Qux4c_AiqShYaWwvFplEXs
+com.android.internal.os.-$$Lambda$BinderCallsStats$Vota0PqfoPWckjXH35wE48myGdk
+com.android.internal.os.-$$Lambda$BinderCallsStats$iPOmTqbqUiHzgsAugINuZgf9tls
 com.android.internal.os.-$$Lambda$BinderCallsStats$sqXweH5BoxhmZvI188ctqYiACRk
+com.android.internal.os.-$$Lambda$BinderCallsStats$xI0E0RpviGYsokEB7ojNx8LEbUc
 com.android.internal.os.-$$Lambda$RuntimeInit$ep4ioD9YINkHI5Q1wZ0N_7VFAOg
 com.android.internal.os.-$$Lambda$ZygoteConnection$KxVsZ-s4KsanePOHCU5JcuypPik
 com.android.internal.os.-$$Lambda$ZygoteConnection$xjqM7qW7vAjTqh2tR5XRF5Vn5mk
 com.android.internal.os.-$$Lambda$sHtqZgGVjxOf9IJdAdZO6gwD_Do
 com.android.internal.os.AndroidPrintStream
+com.android.internal.os.AppFuseMount$1
 com.android.internal.os.AppFuseMount
+com.android.internal.os.AppIdToPackageMap
 com.android.internal.os.AtomicDirectory
 com.android.internal.os.BackgroundThread
 com.android.internal.os.BatterySipper$DrainType
@@ -6449,6 +7991,7 @@
 com.android.internal.os.BinderCallsStats$UidEntry
 com.android.internal.os.BinderCallsStats
 com.android.internal.os.BinderDeathDispatcher$RecipientsInfo
+com.android.internal.os.BinderDeathDispatcher
 com.android.internal.os.BinderInternal$BinderProxyLimitListener
 com.android.internal.os.BinderInternal$BinderProxyLimitListenerDelegate
 com.android.internal.os.BinderInternal$CallSession
@@ -6457,6 +8000,7 @@
 com.android.internal.os.BinderInternal$WorkSourceProvider
 com.android.internal.os.BinderInternal
 com.android.internal.os.BluetoothPowerCalculator
+com.android.internal.os.ByteTransferPipe
 com.android.internal.os.CachedDeviceState$Readonly
 com.android.internal.os.CachedDeviceState$TimeInStateStopwatch
 com.android.internal.os.CachedDeviceState
@@ -6487,6 +8031,8 @@
 com.android.internal.os.KernelCpuThreadReader$ProcessCpuUsage
 com.android.internal.os.KernelCpuThreadReader$ThreadCpuUsage
 com.android.internal.os.KernelCpuThreadReader
+com.android.internal.os.KernelCpuThreadReaderDiff$ThreadKey
+com.android.internal.os.KernelCpuThreadReaderDiff
 com.android.internal.os.KernelCpuThreadReaderSettingsObserver$UidPredicate
 com.android.internal.os.KernelCpuThreadReaderSettingsObserver
 com.android.internal.os.KernelCpuUidTimeReader$Callback
@@ -6515,6 +8061,7 @@
 com.android.internal.os.ProcStatsUtil
 com.android.internal.os.ProcTimeInStateReader
 com.android.internal.os.ProcessCpuTracker$1
+com.android.internal.os.ProcessCpuTracker$FilterStats
 com.android.internal.os.ProcessCpuTracker$Stats
 com.android.internal.os.ProcessCpuTracker
 com.android.internal.os.RailStats
@@ -6528,6 +8075,7 @@
 com.android.internal.os.RuntimeInit$KillApplicationHandler
 com.android.internal.os.RuntimeInit$LoggingHandler
 com.android.internal.os.RuntimeInit$MethodAndArgsCaller
+com.android.internal.os.RuntimeInit$RuntimeThreadPrioritySetter
 com.android.internal.os.RuntimeInit
 com.android.internal.os.SensorPowerCalculator
 com.android.internal.os.SomeArgs
@@ -6545,6 +8093,9 @@
 com.android.internal.os.ZygoteSecurityException
 com.android.internal.os.ZygoteServer$UsapPoolRefillAction
 com.android.internal.os.ZygoteServer
+com.android.internal.os.logging.MetricsLoggerWrapper
+com.android.internal.policy.-$$Lambda$PhoneWindow$9SyKQeTuaYx7qUIMJIr4Lk2OpYw
+com.android.internal.policy.BackdropFrameRenderer
 com.android.internal.policy.DecorContext
 com.android.internal.policy.DecorView$1
 com.android.internal.policy.DecorView$2
@@ -6573,9 +8124,11 @@
 com.android.internal.policy.IShortcutService$Stub$Proxy
 com.android.internal.policy.IShortcutService$Stub
 com.android.internal.policy.IShortcutService
+com.android.internal.policy.KeyInterceptionInfo
 com.android.internal.policy.PhoneFallbackEventHandler
 com.android.internal.policy.PhoneLayoutInflater
 com.android.internal.policy.PhoneWindow$1
+com.android.internal.policy.PhoneWindow$ActionMenuPresenterCallback
 com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState$1
 com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState
 com.android.internal.policy.PhoneWindow$PanelFeatureState
@@ -6593,11 +8146,17 @@
 com.android.internal.statusbar.NotificationVisibility$1
 com.android.internal.statusbar.NotificationVisibility$NotificationLocation
 com.android.internal.statusbar.NotificationVisibility
+com.android.internal.statusbar.RegisterStatusBarResult$1
+com.android.internal.statusbar.RegisterStatusBarResult
 com.android.internal.statusbar.StatusBarIcon$1
 com.android.internal.statusbar.StatusBarIcon
 com.android.internal.telecom.IConnectionService$Stub$Proxy
 com.android.internal.telecom.IConnectionService$Stub
 com.android.internal.telecom.IConnectionService
+com.android.internal.telecom.IConnectionServiceAdapter$Stub
+com.android.internal.telecom.IConnectionServiceAdapter
+com.android.internal.telecom.IInCallAdapter$Stub
+com.android.internal.telecom.IInCallAdapter
 com.android.internal.telecom.IInCallService$Stub$Proxy
 com.android.internal.telecom.IInCallService$Stub
 com.android.internal.telecom.IInCallService
@@ -6611,6 +8170,7 @@
 com.android.internal.telecom.RemoteServiceCallback$Stub$Proxy
 com.android.internal.telecom.RemoteServiceCallback$Stub
 com.android.internal.telecom.RemoteServiceCallback
+com.android.internal.telephony.-$$Lambda$CarrierAppUtils$oAca0vwfzY3MLxvgrejL5_ugnfc
 com.android.internal.telephony.-$$Lambda$MultiSimSettingController$55347QtGjuukX-px3jYZkJd_z3U
 com.android.internal.telephony.-$$Lambda$MultiSimSettingController$DcLtrTEtdlCd4WOev4Zk79vrSko
 com.android.internal.telephony.-$$Lambda$MultiSimSettingController$WtGtOenjqxSBoW5BUjT-VlNoSTM
@@ -6623,6 +8183,7 @@
 com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$ZOtVAnuhxrXl2L906I6eTOentP0
 com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$bWluhZvk2X-dQ0UidKfdpd0kwuw
 com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$hh4N6_N4-PPm_vWjCdCRvS8--Cw
+com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$knEK4mNNOqbx_h4hWVcDSbY5kHE
 com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$rpyQeO7zACcc5v4krwU9_qRMHL8
 com.android.internal.telephony.-$$Lambda$PhoneSwitcher$WfAxZbJDpCUxBytiUchQ87aGijQ
 com.android.internal.telephony.-$$Lambda$RIL$803u4JiCud_JSoDndvAhT13ZZqU
@@ -6633,6 +8194,8 @@
 com.android.internal.telephony.-$$Lambda$RILConstants$zIAjDPNpW8a5C22QbMmMwM64vD8
 com.android.internal.telephony.-$$Lambda$RILRequest$VaC9ddQXT8qxCl7rcNKtUadFQoI
 com.android.internal.telephony.-$$Lambda$RadioIndication$GND6XxOOm1d_Ro76zEUFjA9OrEA
+com.android.internal.telephony.-$$Lambda$SmsApplication$5KAxbm71Dll9xmT5zeXi0i27A10
+com.android.internal.telephony.-$$Lambda$SmsApplication$gDx3W-UsTeTFaBSPU-Y_LFPZ9dE
 com.android.internal.telephony.-$$Lambda$SubscriptionController$Nt_ojdeqo4C2mbuwymYLvwgOLGo
 com.android.internal.telephony.-$$Lambda$SubscriptionController$VCQsMNqRHpN3RyoXYzh2YUwA2yc
 com.android.internal.telephony.-$$Lambda$SubscriptionController$u5xE-urXR6ElZ50305_6guo20Fc
@@ -6650,6 +8213,7 @@
 com.android.internal.telephony.-$$Lambda$TelephonyComponentFactory$InjectedComponents$nLdppNQT1Bv7QyIU3LwAwVD2K60
 com.android.internal.telephony.-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw
 com.android.internal.telephony.-$$Lambda$WWHOcG5P4-jgjzPPgLwm-wN15OM
+com.android.internal.telephony.-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo
 com.android.internal.telephony.ATParseEx
 com.android.internal.telephony.AppSmsManager
 com.android.internal.telephony.BaseCommands
@@ -6691,6 +8255,7 @@
 com.android.internal.telephony.CarrierSignalAgent$1
 com.android.internal.telephony.CarrierSignalAgent
 com.android.internal.telephony.CarrierSmsUtils
+com.android.internal.telephony.CellBroadcastServiceManager
 com.android.internal.telephony.CellNetworkScanResult$1
 com.android.internal.telephony.CellNetworkScanResult
 com.android.internal.telephony.CellularNetworkService$CellularNetworkServiceProvider$1
@@ -6723,6 +8288,7 @@
 com.android.internal.telephony.ExponentialBackoff$HandlerAdapter
 com.android.internal.telephony.ExponentialBackoff
 com.android.internal.telephony.GlobalSettingsHelper
+com.android.internal.telephony.GsmAlphabet$TextEncodingDetails
 com.android.internal.telephony.GsmAlphabet
 com.android.internal.telephony.GsmCdmaCall
 com.android.internal.telephony.GsmCdmaCallTracker$1
@@ -6737,7 +8303,10 @@
 com.android.internal.telephony.GsmCdmaPhone
 com.android.internal.telephony.HalVersion
 com.android.internal.telephony.HardwareConfig
+com.android.internal.telephony.HbpcdLookup$MccIdd
+com.android.internal.telephony.HbpcdLookup$MccLookup
 com.android.internal.telephony.HbpcdUtils
+com.android.internal.telephony.HexDump
 com.android.internal.telephony.ICarrierConfigLoader$Stub$Proxy
 com.android.internal.telephony.ICarrierConfigLoader$Stub
 com.android.internal.telephony.ICarrierConfigLoader
@@ -6756,6 +8325,9 @@
 com.android.internal.telephony.IOnSubscriptionsChangedListener$Stub$Proxy
 com.android.internal.telephony.IOnSubscriptionsChangedListener$Stub
 com.android.internal.telephony.IOnSubscriptionsChangedListener
+com.android.internal.telephony.IOns$Stub$Proxy
+com.android.internal.telephony.IOns$Stub
+com.android.internal.telephony.IOns
 com.android.internal.telephony.IPhoneStateListener$Stub$Proxy
 com.android.internal.telephony.IPhoneStateListener$Stub
 com.android.internal.telephony.IPhoneStateListener
@@ -6779,6 +8351,7 @@
 com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy
 com.android.internal.telephony.ITelephonyRegistry$Stub
 com.android.internal.telephony.ITelephonyRegistry
+com.android.internal.telephony.IUpdateAvailableNetworksCallback
 com.android.internal.telephony.IWapPushManager
 com.android.internal.telephony.IccCard
 com.android.internal.telephony.IccCardConstants$State
@@ -6787,6 +8360,7 @@
 com.android.internal.telephony.IccPhoneBookInterfaceManager
 com.android.internal.telephony.IccProvider
 com.android.internal.telephony.IccSmsInterfaceManager$1
+com.android.internal.telephony.IccSmsInterfaceManager$2
 com.android.internal.telephony.IccSmsInterfaceManager$CdmaBroadcastRangeManager
 com.android.internal.telephony.IccSmsInterfaceManager$CellBroadcastRangeManager
 com.android.internal.telephony.IccSmsInterfaceManager
@@ -6798,6 +8372,7 @@
 com.android.internal.telephony.InboundSmsHandler$1
 com.android.internal.telephony.InboundSmsHandler$2
 com.android.internal.telephony.InboundSmsHandler$CarrierServicesSmsFilterCallback
+com.android.internal.telephony.InboundSmsHandler$CbTestBroadcastReceiver
 com.android.internal.telephony.InboundSmsHandler$DefaultState
 com.android.internal.telephony.InboundSmsHandler$DeliveringState
 com.android.internal.telephony.InboundSmsHandler$IdleState
@@ -6818,11 +8393,13 @@
 com.android.internal.telephony.LocaleTracker$1
 com.android.internal.telephony.LocaleTracker
 com.android.internal.telephony.MccTable$MccEntry
+com.android.internal.telephony.MccTable$MccMnc
 com.android.internal.telephony.MccTable
 com.android.internal.telephony.MmiCode
 com.android.internal.telephony.MultiSimSettingController$1
 com.android.internal.telephony.MultiSimSettingController$UpdateDefaultAction
 com.android.internal.telephony.MultiSimSettingController
+com.android.internal.telephony.NetworkFactory
 com.android.internal.telephony.NetworkRegistrationManager$1
 com.android.internal.telephony.NetworkRegistrationManager$NetworkRegStateCallback
 com.android.internal.telephony.NetworkRegistrationManager$NetworkServiceConnection
@@ -6840,7 +8417,10 @@
 com.android.internal.telephony.OperatorInfo$1
 com.android.internal.telephony.OperatorInfo$State
 com.android.internal.telephony.OperatorInfo
+com.android.internal.telephony.Phone$1
 com.android.internal.telephony.Phone
+com.android.internal.telephony.PhoneConfigurationManager$ConfigManagerHandler
+com.android.internal.telephony.PhoneConfigurationManager$MockableInterface
 com.android.internal.telephony.PhoneConfigurationManager
 com.android.internal.telephony.PhoneConstantConversions$1
 com.android.internal.telephony.PhoneConstantConversions
@@ -6858,6 +8438,7 @@
 com.android.internal.telephony.PhoneSubInfoController
 com.android.internal.telephony.PhoneSwitcher$1
 com.android.internal.telephony.PhoneSwitcher$2
+com.android.internal.telephony.PhoneSwitcher$3
 com.android.internal.telephony.PhoneSwitcher$DefaultNetworkCallback
 com.android.internal.telephony.PhoneSwitcher$EmergencyOverrideRequest
 com.android.internal.telephony.PhoneSwitcher$PhoneState
@@ -6880,6 +8461,7 @@
 com.android.internal.telephony.RadioResponse
 com.android.internal.telephony.RatRatcheter$1
 com.android.internal.telephony.RatRatcheter
+com.android.internal.telephony.Registrant
 com.android.internal.telephony.RegistrantList
 com.android.internal.telephony.RestrictedState
 com.android.internal.telephony.RetryManager$RetryRec
@@ -6898,10 +8480,12 @@
 com.android.internal.telephony.SettingsObserver
 com.android.internal.telephony.SimActivationTracker$1
 com.android.internal.telephony.SimActivationTracker
+com.android.internal.telephony.SmsAddress
 com.android.internal.telephony.SmsApplication$SmsApplicationData
 com.android.internal.telephony.SmsApplication$SmsPackageMonitor
 com.android.internal.telephony.SmsApplication
 com.android.internal.telephony.SmsBroadcastUndelivered$1
+com.android.internal.telephony.SmsBroadcastUndelivered$2
 com.android.internal.telephony.SmsBroadcastUndelivered$ScanRawTableThread
 com.android.internal.telephony.SmsBroadcastUndelivered$SmsReferenceKey
 com.android.internal.telephony.SmsBroadcastUndelivered
@@ -6909,7 +8493,12 @@
 com.android.internal.telephony.SmsController
 com.android.internal.telephony.SmsDispatchersController$1
 com.android.internal.telephony.SmsDispatchersController
+com.android.internal.telephony.SmsHeader$ConcatRef
+com.android.internal.telephony.SmsHeader$PortAddrs
+com.android.internal.telephony.SmsHeader
+com.android.internal.telephony.SmsMessageBase$SubmitPduBase
 com.android.internal.telephony.SmsMessageBase
+com.android.internal.telephony.SmsNumberUtils$NumberEntry
 com.android.internal.telephony.SmsNumberUtils
 com.android.internal.telephony.SmsPermissions
 com.android.internal.telephony.SmsResponse
@@ -6918,13 +8507,17 @@
 com.android.internal.telephony.SmsUsageMonitor$SettingsObserver
 com.android.internal.telephony.SmsUsageMonitor$SettingsObserverHandler
 com.android.internal.telephony.SmsUsageMonitor
+com.android.internal.telephony.SomeArgs
 com.android.internal.telephony.State
+com.android.internal.telephony.StateMachine$LogRecords
+com.android.internal.telephony.StateMachine$SmHandler
 com.android.internal.telephony.StateMachine
 com.android.internal.telephony.SubscriptionController
 com.android.internal.telephony.SubscriptionInfoUpdater$1
 com.android.internal.telephony.SubscriptionInfoUpdater$UpdateEmbeddedSubsCallback
 com.android.internal.telephony.SubscriptionInfoUpdater
 com.android.internal.telephony.TelephonyCapabilities
+com.android.internal.telephony.TelephonyCommonStatsLog
 com.android.internal.telephony.TelephonyComponentFactory$InjectedComponents
 com.android.internal.telephony.TelephonyComponentFactory
 com.android.internal.telephony.TelephonyDevController
@@ -6932,7 +8525,9 @@
 com.android.internal.telephony.TelephonyTester$1
 com.android.internal.telephony.TelephonyTester
 com.android.internal.telephony.TimeServiceHelper
+com.android.internal.telephony.TimeUtils
 com.android.internal.telephony.TimeZoneLookupHelper$CountryResult
+com.android.internal.telephony.TimeZoneLookupHelper$OffsetResult
 com.android.internal.telephony.TimeZoneLookupHelper
 com.android.internal.telephony.UUSInfo
 com.android.internal.telephony.UiccPhoneBookController
@@ -6958,6 +8553,8 @@
 com.android.internal.telephony.cat.CatResponseMessage
 com.android.internal.telephony.cat.CatService$1
 com.android.internal.telephony.cat.CatService
+com.android.internal.telephony.cat.CommandDetails$1
+com.android.internal.telephony.cat.CommandDetails
 com.android.internal.telephony.cat.CommandParams
 com.android.internal.telephony.cat.CommandParamsFactory$1
 com.android.internal.telephony.cat.CommandParamsFactory
@@ -6976,8 +8573,14 @@
 com.android.internal.telephony.cat.RilMessageDecoder$StateCmdParamsReady
 com.android.internal.telephony.cat.RilMessageDecoder$StateStart
 com.android.internal.telephony.cat.RilMessageDecoder
+com.android.internal.telephony.cat.TextMessage$1
+com.android.internal.telephony.cat.TextMessage
+com.android.internal.telephony.cat.ValueObject
 com.android.internal.telephony.cat.ValueParser
+com.android.internal.telephony.cdma.-$$Lambda$CdmaInboundSmsHandler$sD3UQ6e4SE9ZbPjDZ9bEr_XRoaA
 com.android.internal.telephony.cdma.CdmaCallWaitingNotification
+com.android.internal.telephony.cdma.CdmaInboundSmsHandler$CdmaCbTestBroadcastReceiver
+com.android.internal.telephony.cdma.CdmaInboundSmsHandler$CdmaScpTestBroadcastReceiver
 com.android.internal.telephony.cdma.CdmaInboundSmsHandler
 com.android.internal.telephony.cdma.CdmaSMSDispatcher
 com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo
@@ -6986,6 +8589,12 @@
 com.android.internal.telephony.cdma.EriManager$EriFile
 com.android.internal.telephony.cdma.EriManager
 com.android.internal.telephony.cdma.SmsMessage
+com.android.internal.telephony.cdma.sms.BearerData$TimeStamp
+com.android.internal.telephony.cdma.sms.BearerData
+com.android.internal.telephony.cdma.sms.CdmaSmsAddress
+com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress
+com.android.internal.telephony.cdma.sms.SmsEnvelope
+com.android.internal.telephony.cdma.sms.UserData
 com.android.internal.telephony.cdnr.CarrierDisplayNameData$1
 com.android.internal.telephony.cdnr.CarrierDisplayNameData$Builder
 com.android.internal.telephony.cdnr.CarrierDisplayNameData
@@ -7030,6 +8639,7 @@
 com.android.internal.telephony.dataconnection.DcController$DccDefaultState
 com.android.internal.telephony.dataconnection.DcController
 com.android.internal.telephony.dataconnection.DcFailBringUp
+com.android.internal.telephony.dataconnection.DcNetworkAgent$DcKeepaliveTracker
 com.android.internal.telephony.dataconnection.DcNetworkAgent
 com.android.internal.telephony.dataconnection.DcRequest
 com.android.internal.telephony.dataconnection.DcTesterDeactivateAll$1
@@ -7041,6 +8651,7 @@
 com.android.internal.telephony.dataconnection.DcTracker$3
 com.android.internal.telephony.dataconnection.DcTracker$4
 com.android.internal.telephony.dataconnection.DcTracker$5
+com.android.internal.telephony.dataconnection.DcTracker$6
 com.android.internal.telephony.dataconnection.DcTracker$ApnChangeObserver
 com.android.internal.telephony.dataconnection.DcTracker$DataStallRecoveryHandler
 com.android.internal.telephony.dataconnection.DcTracker$DctOnSubscriptionsChangedListener
@@ -7067,6 +8678,7 @@
 com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$11
 com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$12
 com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$13
+com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$14
 com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$1
 com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$2
 com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$3
@@ -7090,16 +8702,24 @@
 com.android.internal.telephony.euicc.EuiccConnector
 com.android.internal.telephony.euicc.EuiccController$3
 com.android.internal.telephony.euicc.EuiccController
+com.android.internal.telephony.euicc.IEuiccCardController$Stub$Proxy
 com.android.internal.telephony.euicc.IEuiccCardController$Stub
 com.android.internal.telephony.euicc.IEuiccCardController
 com.android.internal.telephony.euicc.IEuiccController$Stub$Proxy
 com.android.internal.telephony.euicc.IEuiccController$Stub
 com.android.internal.telephony.euicc.IEuiccController
+com.android.internal.telephony.euicc.IGetAllProfilesCallback$Stub
+com.android.internal.telephony.euicc.IGetAllProfilesCallback
+com.android.internal.telephony.euicc.IGetEuiccInfo1Callback$Stub
+com.android.internal.telephony.euicc.IGetEuiccInfo1Callback
+com.android.internal.telephony.gsm.GsmInboundSmsHandler$GsmCbTestBroadcastReceiver
 com.android.internal.telephony.gsm.GsmInboundSmsHandler
 com.android.internal.telephony.gsm.GsmMmiCode
 com.android.internal.telephony.gsm.GsmSMSDispatcher
+com.android.internal.telephony.gsm.GsmSmsAddress
 com.android.internal.telephony.gsm.SimTlv
 com.android.internal.telephony.gsm.SmsBroadcastConfigInfo
+com.android.internal.telephony.gsm.SmsMessage$PduParser
 com.android.internal.telephony.gsm.SmsMessage
 com.android.internal.telephony.gsm.SuppServiceNotification
 com.android.internal.telephony.gsm.UsimDataDownloadHandler
@@ -7135,6 +8755,11 @@
 com.android.internal.telephony.ims.ImsServiceFeatureQueryManager$ImsServiceFeatureQuery
 com.android.internal.telephony.ims.ImsServiceFeatureQueryManager$Listener
 com.android.internal.telephony.ims.ImsServiceFeatureQueryManager
+com.android.internal.telephony.ims.RcsEventQueryHelper
+com.android.internal.telephony.ims.RcsMessageController
+com.android.internal.telephony.ims.RcsMessageQueryHelper
+com.android.internal.telephony.ims.RcsMessageStoreUtil
+com.android.internal.telephony.ims.RcsParticipantQueryHelper
 com.android.internal.telephony.imsphone.-$$Lambda$ImsPhoneCallTracker$QlPVd_3u4_verjHUDnkn6zaSe54
 com.android.internal.telephony.imsphone.-$$Lambda$ImsPhoneCallTracker$Zw03itjXT6-LrhiYuD-9nKFg2Wg
 com.android.internal.telephony.imsphone.ImsExternalCallTracker$1
@@ -7148,7 +8773,10 @@
 com.android.internal.telephony.imsphone.ImsPhone$1
 com.android.internal.telephony.imsphone.ImsPhone$2
 com.android.internal.telephony.imsphone.ImsPhone$3
+com.android.internal.telephony.imsphone.ImsPhone$4
+com.android.internal.telephony.imsphone.ImsPhone$5
 com.android.internal.telephony.imsphone.ImsPhone$Cf
+com.android.internal.telephony.imsphone.ImsPhone$ImsDialArgs$Builder
 com.android.internal.telephony.imsphone.ImsPhone
 com.android.internal.telephony.imsphone.ImsPhoneBase
 com.android.internal.telephony.imsphone.ImsPhoneCall
@@ -7201,6 +8829,7 @@
 com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$CarrierIdMatching
 com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$CarrierIdMatchingResult
 com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$DataSwitch
+com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$NetworkCapabilitiesInfo
 com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$OnDemandDataSwitch
 com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$RilDeactivateDataCall
 com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$RilSetupDataCall
@@ -7212,10 +8841,13 @@
 com.android.internal.telephony.nano.TelephonyProto$TelephonyServiceState
 com.android.internal.telephony.nano.TelephonyProto$TelephonySettings
 com.android.internal.telephony.nano.TelephonyProto$Time
+com.android.internal.telephony.nitz.NewNitzStateMachineImpl
 com.android.internal.telephony.protobuf.nano.CodedInputByteBufferNano
 com.android.internal.telephony.protobuf.nano.CodedOutputByteBufferNano$OutOfSpaceException
 com.android.internal.telephony.protobuf.nano.CodedOutputByteBufferNano
 com.android.internal.telephony.protobuf.nano.ExtendableMessageNano
+com.android.internal.telephony.protobuf.nano.FieldArray
+com.android.internal.telephony.protobuf.nano.FieldData
 com.android.internal.telephony.protobuf.nano.InternalNano
 com.android.internal.telephony.protobuf.nano.InvalidProtocolBufferNanoException
 com.android.internal.telephony.protobuf.nano.MessageNano
@@ -7303,14 +8935,21 @@
 com.android.internal.telephony.uicc.asn1.TagNotFoundException
 com.android.internal.telephony.uicc.euicc.EuiccCard
 com.android.internal.telephony.uicc.euicc.EuiccSpecVersion
+com.android.internal.telephony.util.ArrayUtils
+com.android.internal.telephony.util.HandlerExecutor
 com.android.internal.telephony.util.NotificationChannelController$1
 com.android.internal.telephony.util.NotificationChannelController
+com.android.internal.telephony.util.RemoteCallbackListExt
 com.android.internal.telephony.util.SMSDispatcherUtil
 com.android.internal.telephony.util.TelephonyUtils
 com.android.internal.telephony.util.VoicemailNotificationSettingsUtil
+com.android.internal.telephony.util.XmlUtils
 com.android.internal.textservice.ISpellCheckerService$Stub$Proxy
 com.android.internal.textservice.ISpellCheckerService$Stub
 com.android.internal.textservice.ISpellCheckerService
+com.android.internal.textservice.ISpellCheckerServiceCallback$Stub$Proxy
+com.android.internal.textservice.ISpellCheckerServiceCallback$Stub
+com.android.internal.textservice.ISpellCheckerServiceCallback
 com.android.internal.textservice.ISpellCheckerSession$Stub$Proxy
 com.android.internal.textservice.ISpellCheckerSession$Stub
 com.android.internal.textservice.ISpellCheckerSession
@@ -7324,15 +8963,18 @@
 com.android.internal.textservice.ITextServicesSessionListener$Stub
 com.android.internal.textservice.ITextServicesSessionListener
 com.android.internal.transition.EpicenterTranslateClipReveal
+com.android.internal.usb.DumpUtils
 com.android.internal.util.-$$Lambda$DumpUtils$D1OlZP6xIpu72ypnJd0fzx0wd6I
 com.android.internal.util.-$$Lambda$DumpUtils$X8irOs5hfloCKy89_l1HRA1QeG0
 com.android.internal.util.-$$Lambda$DumpUtils$vCLO_0ezRxkpSERUWCFrJ0ph5jg
 com.android.internal.util.-$$Lambda$FunctionalUtils$koCSI8D7Nu5vOJTVTEj0m3leo_U
 com.android.internal.util.-$$Lambda$JwOUSWW2-Jzu15y4Kn4JuPh8tWM
+com.android.internal.util.-$$Lambda$ProviderAccessStats$9AhC6lKURctNKuYjVd-wu7jn6_c
 com.android.internal.util.-$$Lambda$TCbPpgWlKJUHZgFKCczglAvxLfw
 com.android.internal.util.-$$Lambda$eRa1rlfDk6Og2yFeXGHqUGPzRF0
 com.android.internal.util.-$$Lambda$grRTg3idX3yJe9Zyx-tmLBiD1DM
 com.android.internal.util.-$$Lambda$kVylv1rl9MOSbHFZoVyK5dl1kfY
+com.android.internal.util.AnnotationValidations
 com.android.internal.util.ArrayUtils
 com.android.internal.util.AsyncChannel$AsyncChannelConnection
 com.android.internal.util.AsyncChannel$DeathMonitor
@@ -7340,6 +8982,7 @@
 com.android.internal.util.AsyncChannel$SyncMessenger
 com.android.internal.util.AsyncChannel
 com.android.internal.util.BitUtils
+com.android.internal.util.BitwiseInputStream$AccessException
 com.android.internal.util.CollectionUtils
 com.android.internal.util.ConcurrentUtils$1$1
 com.android.internal.util.ConcurrentUtils$1
@@ -7347,6 +8990,7 @@
 com.android.internal.util.ConcurrentUtils
 com.android.internal.util.ContrastColorUtil$ColorUtilsFromCompat
 com.android.internal.util.ContrastColorUtil
+com.android.internal.util.DumpUtils$1
 com.android.internal.util.DumpUtils$Dump
 com.android.internal.util.DumpUtils
 com.android.internal.util.ExponentiallyBucketedHistogram
@@ -7359,7 +9003,10 @@
 com.android.internal.util.FileRotator$Rewriter
 com.android.internal.util.FileRotator$Writer
 com.android.internal.util.FileRotator
+com.android.internal.util.FrameworkStatsLog
+com.android.internal.util.FunctionalUtils$RemoteExceptionIgnoringConsumer
 com.android.internal.util.FunctionalUtils$ThrowingConsumer
+com.android.internal.util.FunctionalUtils$ThrowingFunction
 com.android.internal.util.FunctionalUtils$ThrowingRunnable
 com.android.internal.util.FunctionalUtils$ThrowingSupplier
 com.android.internal.util.FunctionalUtils
@@ -7379,12 +9026,19 @@
 com.android.internal.util.NotificationMessagingUtil$1
 com.android.internal.util.NotificationMessagingUtil
 com.android.internal.util.ObjectUtils
+com.android.internal.util.Parcelling$Cache
+com.android.internal.util.Parcelling
 com.android.internal.util.ParseUtils
 com.android.internal.util.Preconditions
 com.android.internal.util.ProcFileReader
 com.android.internal.util.ProgressReporter
+com.android.internal.util.ProviderAccessStats$PerThreadData
+com.android.internal.util.ProviderAccessStats
 com.android.internal.util.RingBuffer
 com.android.internal.util.RingBufferIndices
+com.android.internal.util.ScreenshotHelper$1
+com.android.internal.util.ScreenshotHelper$2$1
+com.android.internal.util.ScreenshotHelper$2
 com.android.internal.util.ScreenshotHelper
 com.android.internal.util.StatLogger
 com.android.internal.util.State
@@ -7405,8 +9059,14 @@
 com.android.internal.util.XmlUtils$ReadMapCallback
 com.android.internal.util.XmlUtils$WriteMapCallback
 com.android.internal.util.XmlUtils
+com.android.internal.util.dump.DualDumpOutputStream$DumpField
+com.android.internal.util.dump.DualDumpOutputStream$DumpObject
+com.android.internal.util.dump.DualDumpOutputStream$Dumpable
+com.android.internal.util.dump.DualDumpOutputStream
+com.android.internal.util.dump.DumpUtils
 com.android.internal.util.function.DecConsumer
 com.android.internal.util.function.DecFunction
+com.android.internal.util.function.DecPredicate
 com.android.internal.util.function.HeptConsumer
 com.android.internal.util.function.HeptFunction
 com.android.internal.util.function.HeptPredicate
@@ -7430,11 +9090,13 @@
 com.android.internal.util.function.TriPredicate
 com.android.internal.util.function.UndecConsumer
 com.android.internal.util.function.UndecFunction
+com.android.internal.util.function.UndecPredicate
 com.android.internal.util.function.pooled.ArgumentPlaceholder
 com.android.internal.util.function.pooled.OmniFunction
 com.android.internal.util.function.pooled.PooledConsumer
 com.android.internal.util.function.pooled.PooledFunction
 com.android.internal.util.function.pooled.PooledLambda
+com.android.internal.util.function.pooled.PooledLambdaImpl$LambdaType$ReturnType
 com.android.internal.util.function.pooled.PooledLambdaImpl$LambdaType
 com.android.internal.util.function.pooled.PooledLambdaImpl$Pool
 com.android.internal.util.function.pooled.PooledLambdaImpl
@@ -7445,7 +9107,12 @@
 com.android.internal.util.function.pooled.PooledSupplier$OfLong
 com.android.internal.util.function.pooled.PooledSupplier
 com.android.internal.view.ActionBarPolicy
+com.android.internal.view.AppearanceRegion$1
+com.android.internal.view.AppearanceRegion
+com.android.internal.view.BaseIWindow
 com.android.internal.view.BaseSurfaceHolder
+com.android.internal.view.IInlineSuggestionsRequestCallback$Stub
+com.android.internal.view.IInlineSuggestionsRequestCallback
 com.android.internal.view.IInputConnectionWrapper$MyHandler
 com.android.internal.view.IInputConnectionWrapper
 com.android.internal.view.IInputContext$Stub$Proxy
@@ -7476,9 +9143,12 @@
 com.android.internal.view.OneShotPreDrawListener
 com.android.internal.view.RootViewSurfaceTaker
 com.android.internal.view.RotationPolicy$1
+com.android.internal.view.RotationPolicy$RotationPolicyListener$1
+com.android.internal.view.RotationPolicy$RotationPolicyListener
 com.android.internal.view.RotationPolicy
 com.android.internal.view.SurfaceCallbackHelper$1
 com.android.internal.view.SurfaceCallbackHelper
+com.android.internal.view.TooltipPopup
 com.android.internal.view.WindowManagerPolicyThread
 com.android.internal.view.animation.FallbackLUTInterpolator
 com.android.internal.view.animation.HasNativeInterpolator
@@ -7489,6 +9159,9 @@
 com.android.internal.view.menu.ActionMenuItemView$PopupCallback
 com.android.internal.view.menu.ActionMenuItemView
 com.android.internal.view.menu.BaseMenuPresenter
+com.android.internal.view.menu.ContextMenuBuilder
+com.android.internal.view.menu.IconMenuPresenter
+com.android.internal.view.menu.ListMenuPresenter
 com.android.internal.view.menu.MenuBuilder$Callback
 com.android.internal.view.menu.MenuBuilder$ItemInvoker
 com.android.internal.view.menu.MenuBuilder
@@ -7501,6 +9174,7 @@
 com.android.internal.view.menu.MenuView$ItemView
 com.android.internal.view.menu.MenuView
 com.android.internal.view.menu.ShowableListMenu
+com.android.internal.widget.-$$Lambda$FloatingToolbar$7-enOzxeypZYfdFYr1HzBLfj47k
 com.android.internal.widget.AbsActionBarView$VisibilityAnimListener
 com.android.internal.widget.AbsActionBarView
 com.android.internal.widget.ActionBarContainer$ActionBarBackgroundDrawable
@@ -7520,20 +9194,31 @@
 com.android.internal.widget.DecorToolbar
 com.android.internal.widget.DialogTitle
 com.android.internal.widget.EditableInputConnection
+com.android.internal.widget.FloatingToolbar$FloatingToolbarPopup
+com.android.internal.widget.FloatingToolbar
 com.android.internal.widget.ICheckCredentialProgressCallback$Stub$Proxy
 com.android.internal.widget.ICheckCredentialProgressCallback$Stub
 com.android.internal.widget.ICheckCredentialProgressCallback
 com.android.internal.widget.ILockSettings$Stub$Proxy
 com.android.internal.widget.ILockSettings$Stub
 com.android.internal.widget.ILockSettings
+com.android.internal.widget.LockPatternUtils$2
+com.android.internal.widget.LockPatternUtils$RequestThrottledException
 com.android.internal.widget.LockPatternUtils$StrongAuthTracker$1
 com.android.internal.widget.LockPatternUtils$StrongAuthTracker$H
 com.android.internal.widget.LockPatternUtils$StrongAuthTracker
 com.android.internal.widget.LockPatternUtils
+com.android.internal.widget.LockPatternView$Cell
 com.android.internal.widget.LockSettingsInternal
+com.android.internal.widget.LockscreenCredential$1
+com.android.internal.widget.LockscreenCredential
+com.android.internal.widget.PasswordValidationError
 com.android.internal.widget.ScrollBarUtils
+com.android.internal.widget.ScrollingTabContainerView
 com.android.internal.widget.ToolbarWidgetWrapper$1
 com.android.internal.widget.ToolbarWidgetWrapper
+com.android.internal.widget.VerifyCredentialResponse$1
+com.android.internal.widget.VerifyCredentialResponse
 com.android.okhttp.Address
 com.android.okhttp.AndroidShimResponseCache
 com.android.okhttp.Authenticator
@@ -7633,7 +9318,9 @@
 com.android.okhttp.internal.tls.OkHostnameVerifier
 com.android.okhttp.internal.tls.RealTrustRootIndex
 com.android.okhttp.internal.tls.TrustRootIndex
+com.android.okhttp.internalandroidapi.AndroidResponseCacheAdapter
 com.android.okhttp.internalandroidapi.Dns
+com.android.okhttp.internalandroidapi.HasCacheHolder$CacheHolder
 com.android.okhttp.internalandroidapi.HasCacheHolder
 com.android.okhttp.internalandroidapi.HttpURLConnectionFactory$DnsAdapter
 com.android.okhttp.internalandroidapi.HttpURLConnectionFactory
@@ -7666,6 +9353,7 @@
 com.android.okhttp.okio.Timeout
 com.android.okhttp.okio.Util
 com.android.org.bouncycastle.asn1.ASN1BitString
+com.android.org.bouncycastle.asn1.ASN1Choice
 com.android.org.bouncycastle.asn1.ASN1Encodable
 com.android.org.bouncycastle.asn1.ASN1EncodableVector
 com.android.org.bouncycastle.asn1.ASN1InputStream
@@ -7683,6 +9371,7 @@
 com.android.org.bouncycastle.asn1.BERTags
 com.android.org.bouncycastle.asn1.DERBitString
 com.android.org.bouncycastle.asn1.DERFactory
+com.android.org.bouncycastle.asn1.DERInteger
 com.android.org.bouncycastle.asn1.DERNull
 com.android.org.bouncycastle.asn1.DEROutputStream
 com.android.org.bouncycastle.asn1.DERSequence
@@ -7701,8 +9390,12 @@
 com.android.org.bouncycastle.asn1.oiw.OIWObjectIdentifiers
 com.android.org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers
 com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier
+com.android.org.bouncycastle.asn1.x509.Certificate
 com.android.org.bouncycastle.asn1.x509.DSAParameter
 com.android.org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
+com.android.org.bouncycastle.asn1.x509.Time
+com.android.org.bouncycastle.asn1.x509.V3TBSCertificateGenerator
+com.android.org.bouncycastle.asn1.x509.X509Name
 com.android.org.bouncycastle.asn1.x509.X509ObjectIdentifiers
 com.android.org.bouncycastle.asn1.x9.X9ECParameters
 com.android.org.bouncycastle.asn1.x9.X9ObjectIdentifiers
@@ -7827,11 +9520,14 @@
 com.android.org.bouncycastle.jcajce.util.DefaultJcaJceHelper
 com.android.org.bouncycastle.jcajce.util.JcaJceHelper
 com.android.org.bouncycastle.jcajce.util.ProviderJcaJceHelper
+com.android.org.bouncycastle.jce.X509Principal
 com.android.org.bouncycastle.jce.interfaces.BCKeyStore
+com.android.org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
 com.android.org.bouncycastle.jce.provider.BouncyCastleProvider$1
 com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
 com.android.org.bouncycastle.jce.provider.BouncyCastleProviderConfiguration
 com.android.org.bouncycastle.jce.provider.CertStoreCollectionSpi
+com.android.org.bouncycastle.jce.provider.X509CertificateObject
 com.android.org.bouncycastle.jce.spec.ECKeySpec
 com.android.org.bouncycastle.jce.spec.ECPublicKeySpec
 com.android.org.bouncycastle.util.Arrays
@@ -7847,6 +9543,8 @@
 com.android.org.bouncycastle.util.encoders.Hex
 com.android.org.bouncycastle.util.encoders.HexEncoder
 com.android.org.bouncycastle.util.io.Streams
+com.android.org.bouncycastle.x509.X509V3CertificateGenerator
+com.android.org.kxml2.io.KXmlParser$ContentSource
 com.android.org.kxml2.io.KXmlParser$ValueContext
 com.android.org.kxml2.io.KXmlParser
 com.android.org.kxml2.io.KXmlSerializer
@@ -7877,8 +9575,22 @@
 com.android.server.backup.PreferredActivityBackupHelper
 com.android.server.backup.ShortcutBackupHelper
 com.android.server.backup.SliceBackupHelper
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$ApfProgramEvent
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$ApfStatistics
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$ConnectStatistics
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$DHCPEvent
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$DNSLookupBatch
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$DefaultNetworkEvent
 com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$IpConnectivityEvent
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$IpConnectivityLog
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$IpProvisioningEvent
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$IpReachabilityEvent
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$NetworkEvent
 com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$Pair
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$RaEvent
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$ValidationProbeEvent
+com.android.server.connectivity.metrics.nano.IpConnectivityLogClass$WakeupStats
+com.android.server.job.JobSchedulerInternal$JobStorePersistStats
 com.android.server.net.BaseNetdEventCallback
 com.android.server.net.BaseNetworkObserver
 com.android.server.sip.SipService$1
@@ -7892,6 +9604,8 @@
 com.android.server.sip.SipWakeLock
 com.android.server.sip.SipWakeupTimer$MyEventComparator
 com.android.server.sip.SipWakeupTimer
+com.android.server.usage.AppStandbyInternal$AppIdleStateChangeListener
+com.android.server.usage.AppStandbyInternal
 com.android.server.wm.nano.WindowManagerProtos$TaskSnapshotProto
 com.android.telephony.Rlog
 com.google.android.collect.Lists
@@ -7906,11 +9620,19 @@
 com.google.android.mms.MmsException
 com.google.android.rappor.Encoder
 com.google.android.rappor.HmacDrbg
+com.google.android.textclassifier.ActionsSuggestionsModel$ActionSuggestion
 com.google.android.textclassifier.ActionsSuggestionsModel$Conversation
 com.google.android.textclassifier.ActionsSuggestionsModel$ConversationMessage
 com.google.android.textclassifier.ActionsSuggestionsModel
+com.google.android.textclassifier.AnnotatorModel$AnnotatedSpan
+com.google.android.textclassifier.AnnotatorModel$AnnotationOptions
+com.google.android.textclassifier.AnnotatorModel$AnnotationUsecase
+com.google.android.textclassifier.AnnotatorModel$ClassificationResult
 com.google.android.textclassifier.AnnotatorModel
+com.google.android.textclassifier.LangIdModel$LanguageResult
 com.google.android.textclassifier.LangIdModel
+com.google.android.textclassifier.NamedVariant
+com.google.android.textclassifier.RemoteActionTemplate
 com.sun.security.cert.internal.x509.X509V1CertImpl
 dalvik.annotation.optimization.CriticalNative
 dalvik.annotation.optimization.FastNative
@@ -7947,6 +9669,7 @@
 dalvik.system.RuntimeHooks
 dalvik.system.SocketTagger$1
 dalvik.system.SocketTagger
+dalvik.system.ThreadPrioritySetter
 dalvik.system.VMDebug
 dalvik.system.VMRuntime$HiddenApiUsageLogger
 dalvik.system.VMRuntime
@@ -8029,6 +9752,7 @@
 java.io.ObjectStreamConstants
 java.io.ObjectStreamException
 java.io.ObjectStreamField
+java.io.OptionalDataException
 java.io.OutputStream
 java.io.OutputStreamWriter
 java.io.PrintStream
@@ -8044,6 +9768,7 @@
 java.io.StreamCorruptedException
 java.io.StringReader
 java.io.StringWriter
+java.io.UTFDataFormatException
 java.io.UncheckedIOException
 java.io.UnixFileSystem
 java.io.UnsupportedEncodingException
@@ -8075,6 +9800,7 @@
 java.lang.Class$Caches
 java.lang.Class
 java.lang.ClassCastException
+java.lang.ClassFormatError
 java.lang.ClassLoader$SystemClassLoader
 java.lang.ClassLoader
 java.lang.ClassNotFoundException
@@ -8106,6 +9832,7 @@
 java.lang.IncompatibleClassChangeError
 java.lang.IndexOutOfBoundsException
 java.lang.InheritableThreadLocal
+java.lang.InstantiationError
 java.lang.InstantiationException
 java.lang.Integer$IntegerCache
 java.lang.Integer
@@ -8264,6 +9991,7 @@
 java.lang.reflect.Field
 java.lang.reflect.GenericArrayType
 java.lang.reflect.GenericDeclaration
+java.lang.reflect.GenericSignatureFormatError
 java.lang.reflect.InvocationHandler
 java.lang.reflect.InvocationTargetException
 java.lang.reflect.MalformedParametersException
@@ -8304,6 +10032,8 @@
 java.net.AddressCache$AddressCacheEntry
 java.net.AddressCache$AddressCacheKey
 java.net.AddressCache
+java.net.Authenticator$RequestorType
+java.net.Authenticator
 java.net.ConnectException
 java.net.CookieHandler
 java.net.CookieManager$CookiePathComparator
@@ -8332,6 +10062,7 @@
 java.net.HttpCookie$9
 java.net.HttpCookie$CookieAttributeAssignor
 java.net.HttpCookie
+java.net.HttpRetryException
 java.net.HttpURLConnection
 java.net.IDN
 java.net.InMemoryCookieStore
@@ -8354,6 +10085,7 @@
 java.net.NetworkInterface
 java.net.NoRouteToHostException
 java.net.Parts
+java.net.PasswordAuthentication
 java.net.PlainDatagramSocketImpl
 java.net.PlainSocketImpl
 java.net.PortUnreachableException
@@ -8371,6 +10103,7 @@
 java.net.SocketAddress
 java.net.SocketException
 java.net.SocketImpl
+java.net.SocketImplFactory
 java.net.SocketInputStream
 java.net.SocketOptions
 java.net.SocketOutputStream
@@ -8455,6 +10188,7 @@
 java.nio.charset.Charset
 java.nio.charset.CharsetDecoder
 java.nio.charset.CharsetEncoder
+java.nio.charset.CoderMalfunctionError
 java.nio.charset.CoderResult$1
 java.nio.charset.CoderResult$2
 java.nio.charset.CoderResult$Cache
@@ -8464,6 +10198,7 @@
 java.nio.charset.StandardCharsets
 java.nio.charset.UnsupportedCharsetException
 java.nio.file.AccessMode
+java.nio.file.CopyMoveHelper
 java.nio.file.CopyOption
 java.nio.file.DirectoryStream$Filter
 java.nio.file.DirectoryStream
@@ -8475,6 +10210,7 @@
 java.nio.file.FileSystems
 java.nio.file.Files$AcceptAllFilter
 java.nio.file.Files
+java.nio.file.InvalidPathException
 java.nio.file.LinkOption
 java.nio.file.NoSuchFileException
 java.nio.file.OpenOption
@@ -8521,6 +10257,8 @@
 java.security.KeyStore$PasswordProtection
 java.security.KeyStore$PrivateKeyEntry
 java.security.KeyStore$ProtectionParameter
+java.security.KeyStore$SecretKeyEntry
+java.security.KeyStore$TrustedCertificateEntry
 java.security.KeyStore
 java.security.KeyStoreException
 java.security.KeyStoreSpi
@@ -8609,6 +10347,7 @@
 java.security.spec.DSAPublicKeySpec
 java.security.spec.ECField
 java.security.spec.ECFieldFp
+java.security.spec.ECGenParameterSpec
 java.security.spec.ECParameterSpec
 java.security.spec.ECPoint
 java.security.spec.ECPrivateKeySpec
@@ -8621,6 +10360,7 @@
 java.security.spec.MGF1ParameterSpec
 java.security.spec.PKCS8EncodedKeySpec
 java.security.spec.PSSParameterSpec
+java.security.spec.RSAKeyGenParameterSpec
 java.security.spec.RSAPrivateCrtKeySpec
 java.security.spec.RSAPrivateKeySpec
 java.security.spec.RSAPublicKeySpec
@@ -8634,6 +10374,7 @@
 java.text.BreakIterator
 java.text.CalendarBuilder
 java.text.CharacterIterator
+java.text.CollationKey
 java.text.Collator
 java.text.DateFormat$Field
 java.text.DateFormat
@@ -8766,6 +10507,9 @@
 java.util.AbstractList$1
 java.util.AbstractList$Itr
 java.util.AbstractList$ListItr
+java.util.AbstractList$RandomAccessSpliterator
+java.util.AbstractList$RandomAccessSubList
+java.util.AbstractList$SubList
 java.util.AbstractList
 java.util.AbstractMap$1
 java.util.AbstractMap$2
@@ -8868,6 +10612,7 @@
 java.util.Deque
 java.util.Dictionary
 java.util.DualPivotQuicksort
+java.util.DuplicateFormatFlagsException
 java.util.EnumMap$1
 java.util.EnumMap$EntryIterator$Entry
 java.util.EnumMap$EntryIterator
@@ -8883,6 +10628,7 @@
 java.util.Enumeration
 java.util.EventListener
 java.util.EventObject
+java.util.FormatFlagsConversionMismatchException
 java.util.Formattable
 java.util.Formatter$Conversion
 java.util.Formatter$DateTime
@@ -8924,10 +10670,26 @@
 java.util.IdentityHashMap$Values
 java.util.IdentityHashMap
 java.util.IllegalFormatException
+java.util.IllegalFormatPrecisionException
 java.util.IllformedLocaleException
+java.util.ImmutableCollections$AbstractImmutableList
+java.util.ImmutableCollections$AbstractImmutableMap
+java.util.ImmutableCollections$AbstractImmutableSet
+java.util.ImmutableCollections$List0
+java.util.ImmutableCollections$List1
+java.util.ImmutableCollections$List2
+java.util.ImmutableCollections$ListN
+java.util.ImmutableCollections$Map0
+java.util.ImmutableCollections$Map1
+java.util.ImmutableCollections$MapN
+java.util.ImmutableCollections$Set0
+java.util.ImmutableCollections$Set1
+java.util.ImmutableCollections$Set2
+java.util.ImmutableCollections$SetN
 java.util.Iterator
 java.util.JumboEnumSet$EnumSetIterator
 java.util.JumboEnumSet
+java.util.KeyValueHolder
 java.util.LinkedHashMap$LinkedEntryIterator
 java.util.LinkedHashMap$LinkedEntrySet
 java.util.LinkedHashMap$LinkedHashIterator
@@ -8955,6 +10717,7 @@
 java.util.Map$Entry
 java.util.Map
 java.util.MissingFormatArgumentException
+java.util.MissingFormatWidthException
 java.util.MissingResourceException
 java.util.NavigableMap
 java.util.NavigableSet
@@ -8974,6 +10737,7 @@
 java.util.Queue
 java.util.Random
 java.util.RandomAccess
+java.util.RandomAccessSubList
 java.util.RegularEnumSet$EnumSetIterator
 java.util.RegularEnumSet
 java.util.ResourceBundle$1
@@ -8982,6 +10746,7 @@
 java.util.ResourceBundle$CacheKeyReference
 java.util.ResourceBundle$Control$1
 java.util.ResourceBundle$Control$CandidateListCache
+java.util.ResourceBundle$Control
 java.util.ResourceBundle$LoaderReference
 java.util.ResourceBundle
 java.util.Scanner$1
@@ -9011,6 +10776,8 @@
 java.util.Stack
 java.util.StringJoiner
 java.util.StringTokenizer
+java.util.SubList$1
+java.util.SubList
 java.util.TaskQueue
 java.util.TimSort
 java.util.TimeZone
@@ -9038,6 +10805,7 @@
 java.util.TreeSet
 java.util.UUID$Holder
 java.util.UUID
+java.util.UnknownFormatConversionException
 java.util.Vector$1
 java.util.Vector$Itr
 java.util.Vector
@@ -9061,6 +10829,9 @@
 java.util.concurrent.CompletableFuture$AltResult
 java.util.concurrent.CompletableFuture$AsynchronousCompletionTask
 java.util.concurrent.CompletableFuture$Completion
+java.util.concurrent.CompletableFuture$Signaller
+java.util.concurrent.CompletableFuture$UniCompletion
+java.util.concurrent.CompletableFuture$UniWhenComplete
 java.util.concurrent.CompletableFuture
 java.util.concurrent.CompletionStage
 java.util.concurrent.ConcurrentHashMap$BaseIterator
@@ -9107,6 +10878,7 @@
 java.util.concurrent.ConcurrentHashMap$SearchMappingsTask
 java.util.concurrent.ConcurrentHashMap$SearchValuesTask
 java.util.concurrent.ConcurrentHashMap$Segment
+java.util.concurrent.ConcurrentHashMap$TableStack
 java.util.concurrent.ConcurrentHashMap$Traverser
 java.util.concurrent.ConcurrentHashMap$TreeBin
 java.util.concurrent.ConcurrentHashMap$TreeNode
@@ -9153,6 +10925,7 @@
 java.util.concurrent.ForkJoinPool
 java.util.concurrent.ForkJoinTask$ExceptionNode
 java.util.concurrent.ForkJoinTask
+java.util.concurrent.ForkJoinWorkerThread
 java.util.concurrent.Future
 java.util.concurrent.FutureTask$WaitNode
 java.util.concurrent.FutureTask
@@ -9241,6 +11014,7 @@
 java.util.function.BiFunction
 java.util.function.BiPredicate
 java.util.function.BinaryOperator
+java.util.function.BooleanSupplier
 java.util.function.Consumer
 java.util.function.DoubleBinaryOperator
 java.util.function.DoubleSupplier
@@ -9299,6 +11073,7 @@
 java.util.logging.LogRecord
 java.util.logging.Logger$1
 java.util.logging.Logger$LoggerBundle
+java.util.logging.Logger$SystemLoggerHelper$1
 java.util.logging.Logger$SystemLoggerHelper
 java.util.logging.Logger
 java.util.logging.LoggingPermission
@@ -9459,11 +11234,14 @@
 java.util.zip.ZipCoder
 java.util.zip.ZipConstants
 java.util.zip.ZipEntry
+java.util.zip.ZipError
 java.util.zip.ZipException
 java.util.zip.ZipFile$ZipEntryIterator
 java.util.zip.ZipFile$ZipFileInflaterInputStream
 java.util.zip.ZipFile$ZipFileInputStream
 java.util.zip.ZipFile
+java.util.zip.ZipInputStream
+java.util.zip.ZipOutputStream
 java.util.zip.ZipUtils
 javax.crypto.AEADBadTagException
 javax.crypto.BadPaddingException
@@ -9475,6 +11253,7 @@
 javax.crypto.Cipher$SpiAndProviderUpdater
 javax.crypto.Cipher$Transform
 javax.crypto.Cipher
+javax.crypto.CipherOutputStream
 javax.crypto.CipherSpi
 javax.crypto.IllegalBlockSizeException
 javax.crypto.JceSecurity
@@ -9523,10 +11302,13 @@
 javax.net.ssl.KeyManagerFactorySpi
 javax.net.ssl.ManagerFactoryParameters
 javax.net.ssl.SNIHostName
+javax.net.ssl.SNIMatcher
 javax.net.ssl.SNIServerName
 javax.net.ssl.SSLContext
 javax.net.ssl.SSLContextSpi
 javax.net.ssl.SSLEngine
+javax.net.ssl.SSLEngineResult$HandshakeStatus
+javax.net.ssl.SSLEngineResult$Status
 javax.net.ssl.SSLEngineResult
 javax.net.ssl.SSLException
 javax.net.ssl.SSLHandshakeException
@@ -9563,6 +11345,7 @@
 javax.xml.parsers.ParserConfigurationException
 javax.xml.parsers.SAXParser
 javax.xml.parsers.SAXParserFactory
+jdk.internal.util.Preconditions
 libcore.content.type.-$$Lambda$MimeMap$xJ95jeANwfbnj45hvSUmlPtZWWg
 libcore.content.type.MimeMap$MemoizingSupplier
 libcore.content.type.MimeMap
@@ -9622,11 +11405,18 @@
 libcore.timezone.TimeZoneFinder$SelectiveCountryTimeZonesExtractor
 libcore.timezone.TimeZoneFinder$TimeZonesProcessor
 libcore.timezone.TimeZoneFinder
+libcore.timezone.ZoneInfoDB$1
+libcore.timezone.ZoneInfoDB$TzData$1
+libcore.timezone.ZoneInfoDB$TzData
+libcore.timezone.ZoneInfoDB
+libcore.timezone.ZoneInfoDb$1
+libcore.timezone.ZoneInfoDb
 libcore.util.ArrayUtils
 libcore.util.BasicLruCache
 libcore.util.CharsetUtils
 libcore.util.CollectionUtils
 libcore.util.EmptyArray
+libcore.util.FP16
 libcore.util.HexEncoding
 libcore.util.NativeAllocationRegistry$CleanerRunner
 libcore.util.NativeAllocationRegistry$CleanerThunk
@@ -9661,6 +11451,7 @@
 org.apache.harmony.xml.parsers.SAXParserFactoryImpl
 org.apache.harmony.xml.parsers.SAXParserImpl
 org.apache.http.conn.ConnectTimeoutException
+org.apache.http.conn.scheme.HostNameResolver
 org.apache.http.conn.scheme.LayeredSocketFactory
 org.apache.http.conn.scheme.SocketFactory
 org.apache.http.conn.ssl.AbstractVerifier
@@ -9726,6 +11517,7 @@
 sun.invoke.util.Wrapper$Format
 sun.invoke.util.Wrapper
 sun.misc.ASCIICaseInsensitiveComparator
+sun.misc.Cleaner$1
 sun.misc.Cleaner
 sun.misc.CompoundEnumeration
 sun.misc.FDBigInteger
@@ -9805,6 +11597,7 @@
 sun.nio.ch.SocketDispatcher
 sun.nio.ch.Util$1
 sun.nio.ch.Util$2
+sun.nio.ch.Util$3
 sun.nio.ch.Util$BufferCache
 sun.nio.ch.Util
 sun.nio.cs.ArrayDecoder
@@ -9876,6 +11669,7 @@
 sun.security.provider.certpath.KeyChecker
 sun.security.provider.certpath.OCSP$RevocationStatus$CertStatus
 sun.security.provider.certpath.OCSP$RevocationStatus
+sun.security.provider.certpath.OCSPResponse$1
 sun.security.provider.certpath.OCSPResponse$ResponseStatus
 sun.security.provider.certpath.OCSPResponse$SingleResponse
 sun.security.provider.certpath.OCSPResponse
@@ -9886,6 +11680,7 @@
 sun.security.provider.certpath.PolicyChecker
 sun.security.provider.certpath.PolicyNodeImpl
 sun.security.provider.certpath.RevocationChecker$1
+sun.security.provider.certpath.RevocationChecker$2
 sun.security.provider.certpath.RevocationChecker$Mode
 sun.security.provider.certpath.RevocationChecker$RevocationProperties
 sun.security.provider.certpath.RevocationChecker
@@ -9996,9 +11791,11 @@
 sun.util.locale.BaseLocale$Cache
 sun.util.locale.BaseLocale$Key
 sun.util.locale.BaseLocale
+sun.util.locale.Extension
 sun.util.locale.InternalLocaleBuilder$CaseInsensitiveChar
 sun.util.locale.InternalLocaleBuilder
 sun.util.locale.LanguageTag
+sun.util.locale.LocaleExtensions
 sun.util.locale.LocaleMatcher
 sun.util.locale.LocaleObjectCache$CacheEntry
 sun.util.locale.LocaleObjectCache
@@ -10006,10 +11803,12 @@
 sun.util.locale.LocaleUtils
 sun.util.locale.ParseStatus
 sun.util.locale.StringTokenIterator
+sun.util.locale.UnicodeLocaleExtension
 sun.util.logging.LoggingProxy
 sun.util.logging.LoggingSupport$1
 sun.util.logging.LoggingSupport
 sun.util.logging.PlatformLogger$1
+sun.util.logging.PlatformLogger$JavaLoggerProxy
 sun.util.logging.PlatformLogger$Level
 sun.util.logging.PlatformLogger$LoggerProxy
 sun.util.logging.PlatformLogger
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index 0a138cf..3a3eea9 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -22,6 +22,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
+import android.annotation.TestApi;
 import android.app.Service;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
@@ -47,6 +48,7 @@
 import android.util.SparseArray;
 import android.view.Display;
 import android.view.KeyEvent;
+import android.view.SurfaceView;
 import android.view.WindowManager;
 import android.view.WindowManagerImpl;
 import android.view.accessibility.AccessibilityEvent;
@@ -572,6 +574,26 @@
      */
     public static final int SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN = 0x40000000;
 
+    /**
+     * The interval time of calling
+     * {@link AccessibilityService#takeScreenshot(int, Executor, Consumer)} API.
+     * @hide
+     */
+    @TestApi
+    public static final int ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS = 1000;
+
+    /** @hide */
+    public static final String KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER =
+            "screenshot_hardwareBuffer";
+
+    /** @hide */
+    public static final String KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE =
+            "screenshot_colorSpace";
+
+    /** @hide */
+    public static final String KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP =
+            "screenshot_timestamp";
+
     private int mConnectionId = AccessibilityInteractionClient.NO_ID;
 
     @UnsupportedAppUsage
@@ -597,17 +619,6 @@
 
     private FingerprintGestureController mFingerprintGestureController;
 
-    /** @hide */
-    public static final String KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER =
-            "screenshot_hardwareBuffer";
-
-    /** @hide */
-    public static final String KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE =
-            "screenshot_colorSpace";
-
-    /** @hide */
-    public static final String KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP =
-            "screenshot_timestamp";
 
     /**
      * Callback for {@link android.view.accessibility.AccessibilityEvent}s.
@@ -1822,6 +1833,14 @@
      * setting the {@link AccessibilityServiceInfo#FLAG_RETRIEVE_INTERACTIVE_WINDOWS}
      * flag. Otherwise, the search will be performed only in the active window.
      * </p>
+     * <p>
+     * <strong>Note:</strong> If the view with {@link AccessibilityNodeInfo#FOCUS_INPUT}
+     * is on an embedded view hierarchy which is embedded in a {@link SurfaceView} via
+     * {@link SurfaceView#setChildSurfacePackage}, there is a limitation that this API
+     * won't be able to find the node for the view. It's because views don't know about
+     * the embedded hierarchies. Instead, you could traverse all the nodes to find the
+     * focus.
+     * </p>
      *
      * @param focus The focus to find. One of {@link AccessibilityNodeInfo#FOCUS_INPUT} or
      *         {@link AccessibilityNodeInfo#FOCUS_ACCESSIBILITY}.
@@ -1926,10 +1945,9 @@
      *                  default display.
      * @param executor Executor on which to run the callback.
      * @param callback The callback invoked when the taking screenshot is done.
-     *                 The {@link AccessibilityService.ScreenshotResult} will be null for an
-     *                 invalid display.
      *
-     * @return {@code true} if the taking screenshot accepted, {@code false} if not.
+     * @return {@code true} if the taking screenshot accepted, {@code false} if too little time
+     * has elapsed since the last screenshot, invalid display or internal errors.
      */
     public boolean takeScreenshot(int displayId, @NonNull @CallbackExecutor Executor executor,
             @NonNull Consumer<ScreenshotResult> callback) {
@@ -1942,11 +1960,7 @@
             return false;
         }
         try {
-            connection.takeScreenshot(displayId, new RemoteCallback((result) -> {
-                if (result == null) {
-                    sendScreenshotResult(executor, callback, null);
-                    return;
-                }
+            return connection.takeScreenshot(displayId, new RemoteCallback((result) -> {
                 final HardwareBuffer hardwareBuffer =
                         result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER);
                 final ParcelableColorSpace colorSpace =
@@ -1959,7 +1973,6 @@
         } catch (RemoteException re) {
             throw new RuntimeException(re);
         }
-        return true;
     }
 
     /**
@@ -2396,6 +2409,10 @@
 
         /**
          * Gets the {@link HardwareBuffer} representing a memory buffer of the screenshot.
+         * <p>
+         * <strong>Note:</strong> The application should call {@link HardwareBuffer#close()} when
+         * the buffer is no longer needed to free the underlying resources.
+         * </p>
          *
          * @return the hardware buffer
          */
diff --git a/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java b/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java
index d2bdf80..9a3dad2 100644
--- a/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java
+++ b/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java
@@ -91,6 +91,12 @@
     private final int mHtmlDescriptionRes;
 
     /**
+     * The accessibility shortcut target setting activity's name, used by the system
+     * settings to launch the setting activity of this accessibility shortcut target.
+     */
+    private String mSettingsActivityName;
+
+    /**
      * Creates a new instance.
      *
      * @param context Context for accessing resources.
@@ -142,6 +148,9 @@
             mHtmlDescriptionRes = asAttributes.getResourceId(
                     com.android.internal.R.styleable.AccessibilityShortcutTarget_htmlDescription,
                     0);
+            // Get settings activity name
+            mSettingsActivityName = asAttributes.getString(
+                    com.android.internal.R.styleable.AccessibilityShortcutTarget_settingsActivity);
             asAttributes.recycle();
 
             if (mDescriptionResId == 0 || mSummaryResId == 0) {
@@ -238,6 +247,16 @@
     }
 
     /**
+     * The settings activity name.
+     *
+     * @return The settings activity name.
+     */
+    @Nullable
+    public String getSettingsActivityName() {
+        return mSettingsActivityName;
+    }
+
+    /**
      * Gets string resource by the given activity and resource id.
      */
     @Nullable
diff --git a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
index 0b3b9b2..1b7b4af 100644
--- a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
+++ b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
@@ -110,7 +110,7 @@
 
     int getWindowIdForLeashToken(IBinder token);
 
-    void takeScreenshot(int displayId, in RemoteCallback callback);
+    boolean takeScreenshot(int displayId, in RemoteCallback callback);
 
     void setGestureDetectionPassthroughRegion(int displayId, in Region region);
 
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 5f49bb2..8d6bc72 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -7943,7 +7943,8 @@
         mCurrentConfig = config;
 
         mWindow.setColorMode(info.colorMode);
-        mWindow.setPreferMinimalPostProcessing(info.preferMinimalPostProcessing);
+        mWindow.setPreferMinimalPostProcessing(
+                (info.flags & ActivityInfo.FLAG_PREFER_MINIMAL_POST_PROCESSING) != 0);
 
         setAutofillOptions(application.getAutofillOptions());
         setContentCaptureOptions(application.getContentCaptureOptions());
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index b51bbdf..dd4788e 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -696,7 +696,7 @@
 
     /** @hide Should this process state be considered a background state? */
     public static final boolean isProcStateBackground(int procState) {
-        return procState > PROCESS_STATE_BOUND_FOREGROUND_SERVICE;
+        return procState >= PROCESS_STATE_TRANSIENT_BACKGROUND;
     }
 
     /** @hide Is this a foreground service type? */
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 0ed5aec5..a62f0a6 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -75,6 +75,7 @@
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.content.res.Resources.Theme;
+import android.content.res.loader.ResourcesLoader;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteDebug;
 import android.database.sqlite.SQLiteDebug.DbStats;
@@ -3283,6 +3284,12 @@
                     r.mPendingRemoveWindow = null;
                     r.mPendingRemoveWindowManager = null;
                 }
+
+                // Activity resources must be initialized with the same loaders as the
+                // application context.
+                appContext.getResources().addLoaders(
+                        app.getResources().getLoaders().toArray(new ResourcesLoader[0]));
+
                 appContext.setOuterContext(activity);
                 activity.attach(appContext, this, getInstrumentation(), r.token,
                         r.ident, app, r.intent, r.activityInfo, title, r.parent,
@@ -4083,6 +4090,11 @@
             java.lang.ClassLoader cl = packageInfo.getClassLoader();
             service = packageInfo.getAppFactory()
                     .instantiateService(cl, data.info.name, data.intent);
+            // Service resources must be initialized with the same loaders as the application
+            // context.
+            context.getResources().addLoaders(
+                    app.getResources().getLoaders().toArray(new ResourcesLoader[0]));
+
             context.setOuterContext(service);
             service.attach(context, this, data.info.name, data.token, app,
                     ActivityManager.getService());
diff --git a/core/java/android/app/ApplicationExitInfo.java b/core/java/android/app/ApplicationExitInfo.java
index c55453e..5df3257 100644
--- a/core/java/android/app/ApplicationExitInfo.java
+++ b/core/java/android/app/ApplicationExitInfo.java
@@ -16,6 +16,7 @@
 
 package android.app;
 
+import android.annotation.CurrentTimeMillisLong;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -121,11 +122,30 @@
     public static final int REASON_EXCESSIVE_RESOURCE_USAGE = 9;
 
     /**
-     * Application process was killed by the system for various other reasons,
-     * for example, the application package got disabled by the user;
-     * {@link #getDescription} will specify the cause given by the system.
+     * Application process was killed because of the user request, for example,
+     * user clicked the "Force stop" button of the application in the Settings,
+     * or removed the application away from Recents.
      */
-    public static final int REASON_OTHER = 10;
+    public static final int REASON_USER_REQUESTED = 10;
+
+    /**
+     * Application process was killed, because the user it is running as on devices
+     * with mutlple users, was stopped.
+     */
+    public static final int REASON_USER_STOPPED = 11;
+
+    /**
+     * Application process was killed because its dependency was going away, for example,
+     * a stable content provider connection's client will be killed if the provider is killed.
+     */
+    public static final int REASON_DEPENDENCY_DIED = 12;
+
+    /**
+     * Application process was killed by the system for various other reasons which are
+     * not by problems in apps and not actionable by apps, for example, the system just
+     * finished updates; {@link #getDescription} will specify the cause given by the system.
+     */
+    public static final int REASON_OTHER = 13;
 
     /**
      * Application process kills subreason is unknown.
@@ -202,6 +222,105 @@
     public static final int SUBREASON_EXCESSIVE_CPU = 7;
 
     /**
+     * System update has done (so the system update process should be killed);
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_SYSTEM_UPDATE_DONE = 8;
+
+    /**
+     * Kill all foreground services, for now it only occurs when enabling the quiet
+     * mode for the managed profile;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_KILL_ALL_FG = 9;
+
+    /**
+     * All background processes except certain ones were killed, for now it only occurs
+     * when the density of the default display is changed;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_KILL_ALL_BG_EXCEPT = 10;
+
+    /**
+     * The process associated with the UID was explicitly killed, for example,
+     * it could be because of platform compatibility overrides;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_KILL_UID = 11;
+
+    /**
+     * The process was explicitly killed with its PID, typically because of
+     * the low memory for surfaces;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_KILL_PID = 12;
+
+    /**
+     * The start of the process was invalid;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_INVALID_START = 13;
+
+    /**
+     * The process was killed because it's in an invalid state, typically
+     * it's triggered from SHELL;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_INVALID_STATE = 14;
+
+    /**
+     * The process was killed when it's imperceptible to user, because it was
+     * in a bad state;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_IMPERCEPTIBLE = 15;
+
+    /**
+     * The process was killed because it's being moved out from LRU list;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_REMOVE_LRU = 16;
+
+    /**
+     * The process was killed because it's isolated and was in a cached state;
+     * this would be set only when the reason is {@link #REASON_OTHER}.
+     *
+     * For internal use only.
+     * @hide
+     */
+    public static final int SUBREASON_ISOLATED_NOT_NEEDED = 17;
+
+    // If there is any OEM code which involves additional app kill reasons, it should
+    // be categorized in {@link #REASON_OTHER}, with subreason code starting from 1000.
+
+    /**
      * @see {@link #getPid}
      */
     private int mPid;
@@ -254,7 +373,7 @@
     /**
      * @see {@link #getTimestamp}
      */
-    private long mTimestamp;
+    private @CurrentTimeMillisLong long mTimestamp;
 
     /**
      * @see {@link #getDescription}
@@ -293,6 +412,9 @@
         REASON_INITIALIZATION_FAILURE,
         REASON_PERMISSION_CHANGE,
         REASON_EXCESSIVE_RESOURCE_USAGE,
+        REASON_USER_REQUESTED,
+        REASON_USER_STOPPED,
+        REASON_DEPENDENCY_DIED,
         REASON_OTHER,
     })
     @Retention(RetentionPolicy.SOURCE)
@@ -308,6 +430,16 @@
         SUBREASON_LARGE_CACHED,
         SUBREASON_MEMORY_PRESSURE,
         SUBREASON_EXCESSIVE_CPU,
+        SUBREASON_SYSTEM_UPDATE_DONE,
+        SUBREASON_KILL_ALL_FG,
+        SUBREASON_KILL_ALL_BG_EXCEPT,
+        SUBREASON_KILL_UID,
+        SUBREASON_KILL_PID,
+        SUBREASON_INVALID_START,
+        SUBREASON_INVALID_STATE,
+        SUBREASON_IMPERCEPTIBLE,
+        SUBREASON_REMOVE_LRU,
+        SUBREASON_ISOLATED_NOT_NEEDED,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface SubReason {}
@@ -403,7 +535,7 @@
      * The timestamp of the process's death, in milliseconds since the epoch,
      * as returned by {@link System#currentTimeMillis System.currentTimeMillis()}.
      */
-    public long getTimestamp() {
+    public @CurrentTimeMillisLong long getTimestamp() {
         return mTimestamp;
     }
 
@@ -564,7 +696,7 @@
      *
      * @hide
      */
-    public void setTimestamp(final long timestamp) {
+    public void setTimestamp(final @CurrentTimeMillisLong long timestamp) {
         mTimestamp = timestamp;
     }
 
@@ -656,6 +788,8 @@
         mRss = other.mRss;
         mTimestamp = other.mTimestamp;
         mDescription = other.mDescription;
+        mPackageName = other.mPackageName;
+        mPackageList = other.mPackageList;
     }
 
     private ApplicationExitInfo(@NonNull Parcel in) {
@@ -748,6 +882,12 @@
                 return "PERMISSION CHANGE";
             case REASON_EXCESSIVE_RESOURCE_USAGE:
                 return "EXCESSIVE RESOURCE USAGE";
+            case REASON_USER_REQUESTED:
+                return "USER REQUESTED";
+            case REASON_USER_STOPPED:
+                return "USER STOPPED";
+            case REASON_DEPENDENCY_DIED:
+                return "DEPENDENCY DIED";
             case REASON_OTHER:
                 return "OTHER KILLS BY SYSTEM";
             default:
@@ -772,6 +912,26 @@
                 return "MEMORY PRESSURE";
             case SUBREASON_EXCESSIVE_CPU:
                 return "EXCESSIVE CPU USAGE";
+            case SUBREASON_SYSTEM_UPDATE_DONE:
+                return "SYSTEM UPDATE_DONE";
+            case SUBREASON_KILL_ALL_FG:
+                return "KILL ALL FG";
+            case SUBREASON_KILL_ALL_BG_EXCEPT:
+                return "KILL ALL BG EXCEPT";
+            case SUBREASON_KILL_UID:
+                return "KILL UID";
+            case SUBREASON_KILL_PID:
+                return "KILL PID";
+            case SUBREASON_INVALID_START:
+                return "INVALID START";
+            case SUBREASON_INVALID_STATE:
+                return "INVALID STATE";
+            case SUBREASON_IMPERCEPTIBLE:
+                return "IMPERCEPTIBLE";
+            case SUBREASON_REMOVE_LRU:
+                return "REMOVE LRU";
+            case SUBREASON_ISOLATED_NOT_NEEDED:
+                return "ISOLATED NOT NEEDED";
             default:
                 return "UNKNOWN";
         }
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 969ea70..87d33a9 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -99,6 +99,7 @@
 import android.view.Display;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.Immutable;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.os.SomeArgs;
 import com.android.internal.util.UserIcons;
@@ -612,7 +613,11 @@
         return hasSystemFeature(name, 0);
     }
 
-    private class HasSystemFeatureQuery {
+    /**
+     * Identifies a single hasSystemFeature query.
+     */
+    @Immutable
+    private static final class HasSystemFeatureQuery {
         public final String name;
         public final int version;
         public HasSystemFeatureQuery(String n, int v) {
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 96edca1..2873b10 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -1397,9 +1397,9 @@
     }
 
     @Override
-    public void sendOrderedBroadcast(Intent intent, String receiverPermission, String receiverAppOp,
-            Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode,
-            String initialData, @Nullable Bundle initialExtras) {
+    public void sendOrderedBroadcast(Intent intent, int initialCode, String receiverPermission,
+            String receiverAppOp, BroadcastReceiver resultReceiver, Handler scheduler,
+            String initialData, @Nullable Bundle initialExtras, Bundle options) {
         int intAppOp = AppOpsManager.OP_NONE;
         if (!TextUtils.isEmpty(receiverAppOp)) {
             intAppOp = AppOpsManager.strOpToOp(receiverAppOp);
diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java
index d09f0bc..81671c3 100644
--- a/core/java/android/app/ResourcesManager.java
+++ b/core/java/android/app/ResourcesManager.java
@@ -961,17 +961,19 @@
                 // Rebase each Resources associated with this Activity.
                 final int refCount = activityResources.activityResources.size();
                 for (int i = 0; i < refCount; i++) {
-                    WeakReference<Resources> weakResRef = activityResources.activityResources.get(
-                            i);
+                    final WeakReference<Resources> weakResRef =
+                            activityResources.activityResources.get(i);
 
-                    Resources resources = weakResRef.get();
+                    final Resources resources = weakResRef.get();
                     if (resources == null) {
                         continue;
                     }
 
-                    ResourcesKey newKey = rebaseActivityOverrideConfig(resources, oldConfig,
+                    final ResourcesKey newKey = rebaseActivityOverrideConfig(resources, oldConfig,
                             overrideConfig, displayId);
-                    updateActivityResources(resources, newKey, false);
+                    if (newKey != null) {
+                        updateActivityResources(resources, newKey, false);
+                    }
                 }
             }
         } finally {
@@ -983,8 +985,9 @@
      * Rebases an updated override config over any old override config and returns the new one
      * that an Activity's Resources should be set to.
      */
-    private ResourcesKey rebaseActivityOverrideConfig(Resources resources,
-            Configuration oldOverrideConfig, @Nullable Configuration newOverrideConfig,
+    @Nullable
+    private ResourcesKey rebaseActivityOverrideConfig(@NonNull Resources resources,
+            @NonNull Configuration oldOverrideConfig, @Nullable Configuration newOverrideConfig,
             int displayId) {
         // Extract the ResourcesKey that was last used to create the Resources for this
         // activity.
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index d04630c..a3bcc9c 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -23,7 +23,6 @@
 import android.app.ContextImpl.ServiceInitializationState;
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.IDevicePolicyManager;
-import android.app.appsearch.AppSearchManagerFrameworkInitializer;
 import android.app.blob.BlobStoreManagerFrameworkInitializer;
 import android.app.contentsuggestions.ContentSuggestionsManager;
 import android.app.contentsuggestions.IContentSuggestionsManager;
@@ -1297,9 +1296,6 @@
                     throws ServiceNotFoundException {
                     return new LightsManager(ctx);
                 }});
-        //TODO(b/136132412): refactor this: 1) merge IIncrementalManager.aidl and
-        //IIncrementalManagerNative.aidl, 2) implement the binder interface in
-        //IncrementalManagerService.java, 3) use JNI to call native functions
         registerService(Context.INCREMENTAL_SERVICE, IncrementalManager.class,
                 new CachedServiceFetcher<IncrementalManager>() {
                     @Override
@@ -1346,7 +1342,6 @@
             JobSchedulerFrameworkInitializer.registerServiceWrappers();
             BlobStoreManagerFrameworkInitializer.initialize();
             TelephonyFrameworkInitializer.registerServiceWrappers();
-            AppSearchManagerFrameworkInitializer.initialize();
             WifiFrameworkInitializer.registerServiceWrappers();
             StatsFrameworkInitializer.registerServiceWrappers();
         } finally {
diff --git a/core/java/android/app/UiModeManager.java b/core/java/android/app/UiModeManager.java
index 24873b8..7c6eff1 100644
--- a/core/java/android/app/UiModeManager.java
+++ b/core/java/android/app/UiModeManager.java
@@ -72,19 +72,26 @@
      * also monitor this Intent in order to be informed of mode changes or
      * prevent the normal car UI from being displayed by setting the result
      * of the broadcast to {@link Activity#RESULT_CANCELED}.
+     * <p>
+     * This intent is broadcast when {@link #getCurrentModeType()} transitions to
+     * {@link Configuration#UI_MODE_TYPE_CAR} from some other ui mode.
      */
     public static String ACTION_ENTER_CAR_MODE = "android.app.action.ENTER_CAR_MODE";
 
     /**
-     * Broadcast sent when the device's UI has switched to car mode, either by being placed in a car
-     * dock or explicit action of the user.
+     * Broadcast sent when an app has entered car mode using either {@link #enableCarMode(int)} or
+     * {@link #enableCarMode(int, int)}.
      * <p>
-     * In addition to the behavior for {@link #ACTION_ENTER_CAR_MODE}, this broadcast includes the
-     * package name of the app which requested to enter car mode in the
-     * {@link #EXTRA_CALLING_PACKAGE}.  If an app requested to enter car mode using
-     * {@link #enableCarMode(int, int)} and specified a priority this will be specified in the
+     * Unlike {@link #ACTION_ENTER_CAR_MODE}, which is only sent when the global car mode state
+     * (i.e. {@link #getCurrentModeType()}) transitions to {@link Configuration#UI_MODE_TYPE_CAR},
+     * this intent is sent any time an app declares it has entered car mode.  Thus, this intent is
+     * intended for use by a component which needs to know not only when the global car mode state
+     * changed, but also when the highest priority app declaring car mode has changed.
+     * <p>
+     * This broadcast includes the package name of the app which requested to enter car mode in
+     * {@link #EXTRA_CALLING_PACKAGE}.  The priority the app entered car mode at is specified in
      * {@link #EXTRA_PRIORITY}.
-     *
+     * <p>
      * This is primarily intended to be received by other components of the Android OS.
      * <p>
      * Receiver requires permission: {@link android.Manifest.permission.HANDLE_CAR_MODE_CHANGES}
@@ -98,17 +105,25 @@
      * Broadcast sent when the device's UI has switch away from car mode back
      * to normal mode.  Typically used by a car mode app, to dismiss itself
      * when the user exits car mode.
+     * <p>
+     * This intent is broadcast when {@link #getCurrentModeType()} transitions from
+     * {@link Configuration#UI_MODE_TYPE_CAR} to some other ui mode.
      */
     public static String ACTION_EXIT_CAR_MODE = "android.app.action.EXIT_CAR_MODE";
 
     /**
-     * Broadcast sent when the device's UI has switched away from car mode back to normal mode.
-     * Typically used by a car mode app, to dismiss itself when the user exits car mode.
+     * Broadcast sent when an app has exited car mode using {@link #disableCarMode(int)}.
      * <p>
-     * In addition to the behavior for {@link #ACTION_EXIT_CAR_MODE}, this broadcast includes the
-     * package name of the app which requested to exit car mode in {@link #EXTRA_CALLING_PACKAGE}.
-     * If an app requested to enter car mode using {@link #enableCarMode(int, int)} and specified a
-     * priority this will be specified in the {@link #EXTRA_PRIORITY} when exiting car mode.
+     * Unlike {@link #ACTION_EXIT_CAR_MODE}, which is only sent when the global car mode state
+     * (i.e. {@link #getCurrentModeType()}) transitions to a non-car mode state such as
+     * {@link Configuration#UI_MODE_TYPE_NORMAL}, this intent is sent any time an app declares it
+     * has exited car mode.  Thus, this intent is intended for use by a component which needs to
+     * know not only when the global car mode state changed, but also when the highest priority app
+     * declaring car mode has changed.
+     * <p>
+     * This broadcast includes the package name of the app which requested to exit car mode in
+     * {@link #EXTRA_CALLING_PACKAGE}.  The priority the app originally entered car mode at is
+     * specified in {@link #EXTRA_PRIORITY}.
      * <p>
      * If {@link #DISABLE_CAR_MODE_ALL_PRIORITIES} is used when disabling car mode (i.e. this is
      * initiated by the user via the persistent car mode notification), this broadcast is sent once
@@ -260,9 +275,7 @@
      * An app may request to enter car mode when the system is already in car mode.  The app may
      * specify a "priority" when entering car mode.  The device will remain in car mode
      * (i.e. {@link #getCurrentModeType()} is {@link Configuration#UI_MODE_TYPE_CAR}) as long as
-     * there is a priority level at which car mode have been enabled.  For example assume app A
-     * enters car mode at priority level 100, and then app B enters car mode at the default priority
-     * (0).  If app A exits car mode, the device will remain in car mode until app B exits car mode.
+     * there is a priority level at which car mode have been enabled.
      * <p>
      * Specifying a priority level when entering car mode is important in cases where multiple apps
      * on a device implement a car-mode {@link android.telecom.InCallService} (see
@@ -275,18 +288,28 @@
      * correct conditions exist for that app to be in car mode.  The device maker should ensure that
      * where multiple apps exist on the device which can potentially enter car mode, appropriate
      * priorities are used to ensure that calls delivered by the
-     * {@link android.telecom.InCallService} API are delivered to the highest priority app.
-     * If app A and app B can both potentially enable car mode, and it is desired that app B is the
-     * one which should receive call information, the priority for app B should be higher than the
-     * one for app A.
+     * {@link android.telecom.InCallService} API are sent to the highest priority app given the
+     * desired behavior of the car mode experience on the device.
      * <p>
-     * When an app uses a priority to enable car mode, they can disable car mode at the specified
+     * If app A and app B both meet their own criteria to enable car mode, and it is desired that
+     * app B should be the one which should receive call information in that scenario, the priority
+     * for app B should be higher than the one for app A.  The higher priority of app B compared to
+     * A means it will be bound to during calls and app A will not.  When app B no longer meets its
+     * criteria for providing a car mode experience it uses {@link #disableCarMode(int)} to disable
+     * car mode at its priority level.  The system will then unbind from app B and bind to app A as
+     * it has the next highest priority.
+     * <p>
+     * When an app enables car mode at a certain priority, it can disable car mode at the specified
      * priority level using {@link #disableCarMode(int)}.  An app may only enable car mode at a
      * single priority.
      * <p>
-     * Public apps are assumed to enter/exit car mode at {@link #DEFAULT_PRIORITY}.
+     * Public apps are assumed to enter/exit car mode at the lowest priority,
+     * {@link #DEFAULT_PRIORITY}.
      *
-     * @param priority The declared priority for the caller.
+     * @param priority The declared priority for the caller, where {@link #DEFAULT_PRIORITY} (0) is
+     *                 the lowest priority and higher numbers represent a higher priority.
+     *                 The priorities apps declare when entering car mode is determined by the
+     *                 device manufacturer based on the desired car mode experience.
      * @param flags Car mode flags.
      * @hide
      */
@@ -331,11 +354,11 @@
     /**
      * The default priority used for entering car mode.
      * <p>
-     * Callers of the {@link UiModeManager#enableCarMode(int)} priority will be assigned the
-     * default priority.
+     * Callers of the {@link #enableCarMode(int)} priority will be assigned the default priority.
+     * This is considered the lowest possible priority for enabling car mode.
      * <p>
      * System apps can specify a priority other than the default priority when using
-     * {@link UiModeManager#enableCarMode(int, int)} to enable car mode.
+     * {@link #enableCarMode(int, int)} to enable car mode.
      * @hide
      */
     @SystemApi
diff --git a/core/java/android/app/compat/CompatChanges.java b/core/java/android/app/compat/CompatChanges.java
index 0d5e45f..28b7340 100644
--- a/core/java/android/app/compat/CompatChanges.java
+++ b/core/java/android/app/compat/CompatChanges.java
@@ -17,6 +17,7 @@
 package android.app.compat;
 
 import android.annotation.NonNull;
+import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.compat.Compatibility;
 import android.os.UserHandle;
@@ -54,14 +55,13 @@
      * <p> Note that this involves a binder call to the system server (unless running in the system
      * server). If the binder call fails, a {@code RuntimeException} will be thrown.
      *
-     * <p> Caller must have android.permission.READ_COMPAT_CHANGE_CONFIG permission. If it
-     * doesn't, a {@code RuntimeException} will be thrown.
-     *
      * @param changeId    The ID of the compatibility change in question.
      * @param packageName The package name of the app in question.
      * @param user        The user that the operation is done for.
      * @return {@code true} if the change is enabled for the current app.
      */
+    @RequiresPermission(allOf = {android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG,
+            android.Manifest.permission.LOG_COMPAT_CHANGE})
     public static boolean isChangeEnabled(long changeId, @NonNull String packageName,
             @NonNull UserHandle user) {
         return QUERY_CACHE.query(ChangeIdStateQuery.byPackageName(changeId, packageName,
@@ -75,9 +75,6 @@
      * <p> Note that this involves a binder call to the system server (unless running in the system
      * server). If the binder call fails, {@code RuntimeException}  will be thrown.
      *
-     * <p> Caller must have android.permission.READ_COMPAT_CHANGE_CONFIG permission. If it
-     * doesn't, a {@code RuntimeException} will be thrown.
-     *
      * <p> Returns {@code true} if there are no installed packages for the required UID, or if the
      * change is enabled for ALL of the installed packages associated with the provided UID. Please
      * use a more specific API if you want a different behaviour for multi-package UIDs.
@@ -86,6 +83,8 @@
      * @param uid      The UID of the app in question.
      * @return {@code true} if the change is enabled for the current app.
      */
+    @RequiresPermission(allOf = {android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG,
+            android.Manifest.permission.LOG_COMPAT_CHANGE})
     public static boolean isChangeEnabled(long changeId, int uid) {
         return QUERY_CACHE.query(ChangeIdStateQuery.byUid(changeId, uid));
     }
diff --git a/core/java/android/bluetooth/BluetoothA2dp.java b/core/java/android/bluetooth/BluetoothA2dp.java
index d8c653c6..b672a08 100644
--- a/core/java/android/bluetooth/BluetoothA2dp.java
+++ b/core/java/android/bluetooth/BluetoothA2dp.java
@@ -643,8 +643,9 @@
     @SystemApi
     @Nullable
     @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public BluetoothCodecStatus getCodecStatus(@Nullable BluetoothDevice device) {
+    public BluetoothCodecStatus getCodecStatus(@NonNull BluetoothDevice device) {
         if (DBG) Log.d(TAG, "getCodecStatus(" + device + ")");
+        verifyDeviceNotNull(device, "getCodecStatus");
         try {
             final IBluetoothA2dp service = getService();
             if (service != null && isEnabled()) {
@@ -670,9 +671,14 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public void setCodecConfigPreference(@Nullable BluetoothDevice device,
-                                         @Nullable BluetoothCodecConfig codecConfig) {
+    public void setCodecConfigPreference(@NonNull BluetoothDevice device,
+                                         @NonNull BluetoothCodecConfig codecConfig) {
         if (DBG) Log.d(TAG, "setCodecConfigPreference(" + device + ")");
+        verifyDeviceNotNull(device, "setCodecConfigPreference");
+        if (codecConfig == null) {
+            Log.e(TAG, "setCodecConfigPreference: Codec config can't be null");
+            throw new IllegalArgumentException("codecConfig cannot be null");
+        }
         try {
             final IBluetoothA2dp service = getService();
             if (service != null && isEnabled()) {
@@ -695,8 +701,9 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public void enableOptionalCodecs(@Nullable BluetoothDevice device) {
+    public void enableOptionalCodecs(@NonNull BluetoothDevice device) {
         if (DBG) Log.d(TAG, "enableOptionalCodecs(" + device + ")");
+        verifyDeviceNotNull(device, "enableOptionalCodecs");
         enableDisableOptionalCodecs(device, true);
     }
 
@@ -709,8 +716,9 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public void disableOptionalCodecs(@Nullable BluetoothDevice device) {
+    public void disableOptionalCodecs(@NonNull BluetoothDevice device) {
         if (DBG) Log.d(TAG, "disableOptionalCodecs(" + device + ")");
+        verifyDeviceNotNull(device, "disableOptionalCodecs");
         enableDisableOptionalCodecs(device, false);
     }
 
@@ -750,7 +758,8 @@
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
     @OptionalCodecsSupportStatus
-    public int supportsOptionalCodecs(@Nullable BluetoothDevice device) {
+    public int isOptionalCodecsSupported(@NonNull BluetoothDevice device) {
+        verifyDeviceNotNull(device, "isOptionalCodecsSupported");
         try {
             final IBluetoothA2dp service = getService();
             if (service != null && isEnabled() && isValidDevice(device)) {
@@ -775,7 +784,8 @@
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
     @OptionalCodecsPreferenceStatus
-    public int getOptionalCodecsEnabled(@Nullable BluetoothDevice device) {
+    public int isOptionalCodecsEnabled(@NonNull BluetoothDevice device) {
+        verifyDeviceNotNull(device, "isOptionalCodecsEnabled");
         try {
             final IBluetoothA2dp service = getService();
             if (service != null && isEnabled() && isValidDevice(device)) {
@@ -800,8 +810,9 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public void setOptionalCodecsEnabled(@Nullable BluetoothDevice device,
+    public void setOptionalCodecsEnabled(@NonNull BluetoothDevice device,
             @OptionalCodecsPreferenceStatus int value) {
+        verifyDeviceNotNull(device, "setOptionalCodecsEnabled");
         try {
             if (value != BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN
                     && value != BluetoothA2dp.OPTIONAL_CODECS_PREF_DISABLED
@@ -854,6 +865,13 @@
         return false;
     }
 
+    private void verifyDeviceNotNull(BluetoothDevice device, String methodName) {
+        if (device == null) {
+            Log.e(TAG, methodName + ": device param is null");
+            throw new IllegalArgumentException("Device cannot be null");
+        }
+    }
+
     private boolean isValidDevice(BluetoothDevice device) {
         if (device == null) return false;
 
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index 3e1a480..6e5f914 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -1118,7 +1118,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getBatteryLevel() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1209,7 +1209,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean isBondingInitiatedLocally() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1247,13 +1247,12 @@
 
     /**
      * Cancel an in-progress bonding request started with {@link #createBond}.
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
      *
      * @return true on success, false on error
      * @hide
      */
     @SystemApi
-    @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean cancelBondProcess() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1276,13 +1275,12 @@
      * <p>Delete the link key associated with the remote device, and
      * immediately terminate connections to that device that require
      * authentication and encryption.
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
      *
      * @return true on success, false on error
      * @hide
      */
     @SystemApi
-    @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean removeBond() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1355,13 +1353,12 @@
 
     /**
      * Returns whether there is an open connection to this device.
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
      *
      * @return True if there is at least one open connection to this device.
      * @hide
      */
     @SystemApi
-    @RequiresPermission(android.Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public boolean isConnected() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1379,13 +1376,12 @@
     /**
      * Returns whether there is an open connection to this device
      * that has been encrypted.
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
      *
      * @return True if there is at least one encrypted connection to this device.
      * @hide
      */
     @SystemApi
-    @RequiresPermission(android.Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public boolean isEncrypted() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1538,7 +1534,7 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
-    public boolean setPin(@Nullable String pin) {
+    public boolean setPin(@NonNull String pin) {
         byte[] pinBytes = convertPinToBytes(pin);
         if (pinBytes == null) {
             return false;
@@ -1574,6 +1570,7 @@
      * @hide
      */
     @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean cancelPairing() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1605,8 +1602,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public int getPhonebookAccessPermission() {
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public @AccessPermission int getPhonebookAccessPermission() {
         final IBluetooth service = sService;
         if (service == null) {
             return ACCESS_UNKNOWN;
@@ -1685,7 +1682,6 @@
 
     /**
      * Sets whether the phonebook access is allowed to this device.
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
      *
      * @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link
      * #ACCESS_REJECTED}.
@@ -1694,7 +1690,7 @@
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public boolean setPhonebookAccessPermission(int value) {
+    public boolean setPhonebookAccessPermission(@AccessPermission int value) {
         final IBluetooth service = sService;
         if (service == null) {
             return false;
@@ -1714,7 +1710,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @AccessPermission int getMessageAccessPermission() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1761,7 +1757,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @AccessPermission int getSimAccessPermission() {
         final IBluetooth service = sService;
         if (service == null) {
diff --git a/core/java/android/bluetooth/BluetoothHidHost.java b/core/java/android/bluetooth/BluetoothHidHost.java
index 26e3e27..e9e1f68 100644
--- a/core/java/android/bluetooth/BluetoothHidHost.java
+++ b/core/java/android/bluetooth/BluetoothHidHost.java
@@ -18,7 +18,6 @@
 
 import android.Manifest;
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
@@ -330,6 +329,7 @@
      * {@inheritDoc}
      */
     @Override
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @NonNull List<BluetoothDevice> getConnectedDevices() {
         if (VDBG) log("getConnectedDevices()");
         final IBluetoothHidHost service = getService();
@@ -370,8 +370,12 @@
      * {@inheritDoc}
      */
     @Override
-    public int getConnectionState(@Nullable BluetoothDevice device) {
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public int getConnectionState(@NonNull BluetoothDevice device) {
         if (VDBG) log("getState(" + device + ")");
+        if (device == null) {
+            throw new IllegalArgumentException("device must not be null");
+        }
         final IBluetoothHidHost service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
             try {
@@ -416,9 +420,12 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
-    public boolean setConnectionPolicy(@Nullable BluetoothDevice device,
+    public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
+        if (device == null) {
+            throw new IllegalArgumentException("device must not be null");
+        }
         final IBluetoothHidHost service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
             if (connectionPolicy != BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
@@ -465,8 +472,11 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public @ConnectionPolicy int getConnectionPolicy(@Nullable BluetoothDevice device) {
+    public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
+        if (device == null) {
+            throw new IllegalArgumentException("device must not be null");
+        }
         final IBluetoothHidHost service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
             try {
diff --git a/core/java/android/bluetooth/BluetoothMap.java b/core/java/android/bluetooth/BluetoothMap.java
index 1c62faa..cc2b615 100644
--- a/core/java/android/bluetooth/BluetoothMap.java
+++ b/core/java/android/bluetooth/BluetoothMap.java
@@ -27,6 +27,7 @@
 import android.os.Binder;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.util.CloseGuard;
 import android.util.Log;
 
 import java.util.ArrayList;
@@ -39,12 +40,14 @@
  * @hide
  */
 @SystemApi
-public final class BluetoothMap implements BluetoothProfile {
+public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
 
     private static final String TAG = "BluetoothMap";
     private static final boolean DBG = true;
     private static final boolean VDBG = false;
 
+    private CloseGuard mCloseGuard;
+
     /** @hide */
     @SuppressLint("ActionValue")
     @SystemApi
@@ -86,15 +89,16 @@
         if (DBG) Log.d(TAG, "Create BluetoothMap proxy object");
         mAdapter = BluetoothAdapter.getDefaultAdapter();
         mProfileConnector.connect(context, listener);
+        mCloseGuard = new CloseGuard();
+        mCloseGuard.open("close");
     }
 
-    @SuppressLint("GenericException")
-    protected void finalize() throws Throwable {
-        try {
-            close();
-        } finally {
-            super.finalize();
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    protected void finalize() {
+        if (mCloseGuard != null) {
+            mCloseGuard.warnIfOpen();
         }
+        close();
     }
 
     /**
@@ -105,7 +109,10 @@
      *
      * @hide
      */
-    public synchronized void close() {
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public void close() {
+        if (VDBG) log("close()");
         mProfileConnector.disconnect();
     }
 
@@ -250,6 +257,7 @@
      * @hide
      */
     @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @NonNull List<BluetoothDevice> getConnectedDevices() {
         if (DBG) log("getConnectedDevices()");
         final IBluetoothMap service = getService();
diff --git a/core/java/android/bluetooth/BluetoothPbap.java b/core/java/android/bluetooth/BluetoothPbap.java
index 1f89ddf..277a5a8 100644
--- a/core/java/android/bluetooth/BluetoothPbap.java
+++ b/core/java/android/bluetooth/BluetoothPbap.java
@@ -278,16 +278,19 @@
     }
 
     /**
-     * Pbap does not store connection policy, so this function only disconnects pbap if
-     * connectionPolicy is {@link #CONNECTION_POLICY_FORBIDDEN}.
+     * Set connection policy of the profile and tries to disconnect it if connectionPolicy is
+     * {@link BluetoothProfile#CONNECTION_POLICY_FORBIDDEN}
      *
      * <p> The device should already be paired.
-     * Connection policy can be one of {@link #CONNECTION_POLICY_ALLOWED},
-     * {@link #CONNECTION_POLICY_FORBIDDEN}, {@link #CONNECTION_POLICY_UNKNOWN}
+     * Connection policy can be one of:
+     * {@link BluetoothProfile#CONNECTION_POLICY_ALLOWED},
+     * {@link BluetoothProfile#CONNECTION_POLICY_FORBIDDEN},
+     * {@link BluetoothProfile#CONNECTION_POLICY_UNKNOWN}
      *
      * @param device Paired bluetooth device
-     * @param connectionPolicy determines whether to disconnect the device
-     * @return true if pbap is successfully disconnected, false otherwise
+     * @param connectionPolicy is the connection policy to set to for this profile
+     * @return true if connectionPolicy is set, false on error
+     *
      * @hide
      */
     @SystemApi
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 536b6c3..aba86e9 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -2543,12 +2543,13 @@
      *
      * @see #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle)
      * @see android.app.BroadcastOptions
+     * @hide
      */
-    public void sendOrderedBroadcast(@RequiresPermission @NonNull Intent intent,
+    public void sendOrderedBroadcast(@RequiresPermission @NonNull Intent intent, int initialCode,
             @Nullable String receiverPermission, @Nullable String receiverAppOp,
-            @Nullable Bundle options, @Nullable BroadcastReceiver resultReceiver,
-            @Nullable Handler scheduler, int initialCode, @Nullable String initialData,
-            @Nullable Bundle initialExtras) {
+            @Nullable BroadcastReceiver resultReceiver, @Nullable Handler scheduler,
+            @Nullable String initialData, @Nullable Bundle initialExtras,
+            @Nullable Bundle options) {
         throw new RuntimeException("Not implemented. Must override in a subclass.");
     }
 
@@ -5108,16 +5109,6 @@
 
     /**
      * Use with {@link #getSystemService(String)} to retrieve an
-     * {@link android.app.appsearch.AppSearchManager} for
-     * indexing and querying app data managed by the system.
-     *
-     * @see #getSystemService(String)
-     * @hide
-     */
-    public static final String APP_SEARCH_SERVICE = "app_search";
-
-    /**
-     * Use with {@link #getSystemService(String)} to retrieve an
      * {@link android.content.integrity.AppIntegrityManager}.
      * @hide
      */
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index e5381ea..91d214b 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -600,13 +600,13 @@
     }
 
     @Override
-    public void sendOrderedBroadcast(@RequiresPermission @NonNull Intent intent,
+    public void sendOrderedBroadcast(@RequiresPermission @NonNull Intent intent, int initialCode,
             @Nullable String receiverPermission, @Nullable String receiverAppOp,
-            @Nullable Bundle options, @Nullable BroadcastReceiver resultReceiver,
-            @Nullable Handler scheduler, int initialCode, @Nullable String initialData,
-            @Nullable Bundle initialExtras) {
-        mBase.sendOrderedBroadcast(intent, receiverPermission, receiverAppOp, options,
-                resultReceiver, scheduler, initialCode, initialData, initialExtras);
+            @Nullable BroadcastReceiver resultReceiver, @Nullable Handler scheduler,
+            @Nullable String initialData, @Nullable Bundle initialExtras,
+            @Nullable Bundle options) {
+        mBase.sendOrderedBroadcast(intent, initialCode, receiverPermission, receiverAppOp,
+                resultReceiver, scheduler, initialData, initialExtras, options);
     }
 
     @Override
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index acc4cb0..c6f6972 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -4080,8 +4080,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String EXTRA_SIM_STATE = "ss";
 
     /**
@@ -4089,8 +4087,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_UNKNOWN = "UNKNOWN";
 
     /**
@@ -4098,8 +4094,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_NOT_READY = "NOT_READY";
 
     /**
@@ -4107,8 +4101,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_ABSENT = "ABSENT";
 
     /**
@@ -4116,8 +4108,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_PRESENT = "PRESENT";
 
     /**
@@ -4125,8 +4115,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     static public final String SIM_STATE_CARD_IO_ERROR = "CARD_IO_ERROR";
 
     /**
@@ -4135,8 +4123,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     static public final String SIM_STATE_CARD_RESTRICTED = "CARD_RESTRICTED";
 
     /**
@@ -4144,8 +4130,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_LOCKED = "LOCKED";
 
     /**
@@ -4153,8 +4137,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_READY = "READY";
 
     /**
@@ -4162,8 +4144,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_IMSI = "IMSI";
 
     /**
@@ -4171,8 +4151,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_STATE_LOADED = "LOADED";
 
     /**
@@ -4187,8 +4165,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String EXTRA_SIM_LOCKED_REASON = "reason";
 
     /**
@@ -4196,8 +4172,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_LOCKED_ON_PIN = "PIN";
 
     /**
@@ -4206,8 +4180,6 @@
      * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
      */
     /* PUK means ICC is locked on PUK1 */
-    @Deprecated
-    @SystemApi
     public static final String SIM_LOCKED_ON_PUK = "PUK";
 
     /**
@@ -4215,8 +4187,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_LOCKED_NETWORK = "NETWORK";
 
     /**
@@ -4224,8 +4194,6 @@
      * @hide
      * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String SIM_ABSENT_ON_PERM_DISABLED = "PERM_DISABLED";
 
     /**
@@ -4236,8 +4204,6 @@
      * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED} or
      * {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
      */
-    @Deprecated
-    @SystemApi
     public static final String EXTRA_REBROADCAST_ON_UNLOCK = "rebroadcastOnUnlock";
 
     /**
@@ -4974,12 +4940,15 @@
      *     android:description="@string/shortcut_target_description"
      *     android:summary="@string/shortcut_target_summary"
      *     android:animatedImageDrawable="@drawable/shortcut_target_animated_image"
-     *     android:htmlDescription="@string/shortcut_target_html_description" /&gt;
+     *     android:htmlDescription="@string/shortcut_target_html_description"
+     *     android:settingsActivity="com.example.android.shortcut.target.SettingsActivity" /&gt;
      * </pre>
      * <p>
      * Both description and summary are necessary. The system will ignore the accessibility
      * shortcut target if they are missing. The animated image and html description are supported
-     * to help users understand how to use the shortcut target.
+     * to help users understand how to use the shortcut target. The settings activity is a
+     * component name that allows the user to modify the settings for this accessibility shortcut
+     * target.
      * </p>
      */
     @SdkConstant(SdkConstantType.INTENT_CATEGORY)
diff --git a/core/java/android/content/integrity/AppInstallMetadata.java b/core/java/android/content/integrity/AppInstallMetadata.java
index 4ec9476..4f38fae 100644
--- a/core/java/android/content/integrity/AppInstallMetadata.java
+++ b/core/java/android/content/integrity/AppInstallMetadata.java
@@ -42,6 +42,8 @@
     private final List<String> mInstallerCertificates;
     private final long mVersionCode;
     private final boolean mIsPreInstalled;
+    private final boolean mIsStampPresent;
+    private final boolean mIsStampVerified;
     private final boolean mIsStampTrusted;
     // Raw string encoding for the SHA-256 hash of the certificate of the stamp.
     private final String mStampCertificateHash;
@@ -54,6 +56,8 @@
         this.mInstallerCertificates = builder.mInstallerCertificates;
         this.mVersionCode = builder.mVersionCode;
         this.mIsPreInstalled = builder.mIsPreInstalled;
+        this.mIsStampPresent = builder.mIsStampPresent;
+        this.mIsStampVerified = builder.mIsStampVerified;
         this.mIsStampTrusted = builder.mIsStampTrusted;
         this.mStampCertificateHash = builder.mStampCertificateHash;
         this.mAllowedInstallersAndCertificates = builder.mAllowedInstallersAndCertificates;
@@ -89,6 +93,16 @@
         return mIsPreInstalled;
     }
 
+    /** @see AppInstallMetadata.Builder#setIsStampPresent(boolean) */
+    public boolean isStampPresent() {
+        return mIsStampPresent;
+    }
+
+    /** @see AppInstallMetadata.Builder#setIsStampVerified(boolean) */
+    public boolean isStampVerified() {
+        return mIsStampVerified;
+    }
+
     /** @see AppInstallMetadata.Builder#setIsStampTrusted(boolean) */
     public boolean isStampTrusted() {
         return mIsStampTrusted;
@@ -108,14 +122,16 @@
     public String toString() {
         return String.format(
                 "AppInstallMetadata { PackageName = %s, AppCerts = %s, InstallerName = %s,"
-                        + " InstallerCerts = %s, VersionCode = %d, PreInstalled = %b, "
-                        + "StampTrusted = %b, StampCert = %s }",
+                    + " InstallerCerts = %s, VersionCode = %d, PreInstalled = %b, StampPresent ="
+                    + " %b, StampVerified = %b, StampTrusted = %b, StampCert = %s }",
                 mPackageName,
                 mAppCertificates,
                 mInstallerName == null ? "null" : mInstallerName,
                 mInstallerCertificates == null ? "null" : mInstallerCertificates,
                 mVersionCode,
                 mIsPreInstalled,
+                mIsStampPresent,
+                mIsStampVerified,
                 mIsStampTrusted,
                 mStampCertificateHash == null ? "null" : mStampCertificateHash);
     }
@@ -128,6 +144,8 @@
         private List<String> mInstallerCertificates;
         private long mVersionCode;
         private boolean mIsPreInstalled;
+        private boolean mIsStampPresent;
+        private boolean mIsStampVerified;
         private boolean mIsStampTrusted;
         private String mStampCertificateHash;
         private Map<String, String> mAllowedInstallersAndCertificates;
@@ -221,16 +239,24 @@
         }
 
         /**
-         * Set certificate hash of the stamp embedded in the APK.
+         * Set whether the stamp embedded in the APK is present or not.
          *
-         * <p>It is represented as the raw string encoding for the SHA-256 hash of the certificate
-         * of the stamp.
-         *
-         * @see AppInstallMetadata#getStampCertificateHash()
+         * @see AppInstallMetadata#isStampPresent()
          */
         @NonNull
-        public Builder setStampCertificateHash(@NonNull String stampCertificateHash) {
-            this.mStampCertificateHash = Objects.requireNonNull(stampCertificateHash);
+        public Builder setIsStampPresent(boolean isStampPresent) {
+            this.mIsStampPresent = isStampPresent;
+            return this;
+        }
+
+        /**
+         * Set whether the stamp embedded in the APK is verified or not.
+         *
+         * @see AppInstallMetadata#isStampVerified()
+         */
+        @NonNull
+        public Builder setIsStampVerified(boolean isStampVerified) {
+            this.mIsStampVerified = isStampVerified;
             return this;
         }
 
@@ -246,6 +272,20 @@
         }
 
         /**
+         * Set certificate hash of the stamp embedded in the APK.
+         *
+         * <p>It is represented as the raw string encoding for the SHA-256 hash of the certificate
+         * of the stamp.
+         *
+         * @see AppInstallMetadata#getStampCertificateHash()
+         */
+        @NonNull
+        public Builder setStampCertificateHash(@NonNull String stampCertificateHash) {
+            this.mStampCertificateHash = Objects.requireNonNull(stampCertificateHash);
+            return this;
+        }
+
+        /**
          * Build {@link AppInstallMetadata}.
          *
          * @throws IllegalArgumentException if package name or app certificate is null
diff --git a/core/java/android/content/integrity/AtomicFormula.java b/core/java/android/content/integrity/AtomicFormula.java
index 977a631..f363a54 100644
--- a/core/java/android/content/integrity/AtomicFormula.java
+++ b/core/java/android/content/integrity/AtomicFormula.java
@@ -368,11 +368,10 @@
                             "Key %s cannot be used with StringAtomicFormula", keyToString(key)));
             mValue = hashValue(key, value);
             mIsHashedValue =
-                    key == APP_CERTIFICATE
+                    (key == APP_CERTIFICATE
                                     || key == INSTALLER_CERTIFICATE
-                                    || key == STAMP_CERTIFICATE_HASH
-                            ? true
-                            : !mValue.equals(value);
+                                    || key == STAMP_CERTIFICATE_HASH)
+                            || !mValue.equals(value);
         }
 
         StringAtomicFormula(Parcel in) {
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 622588b..0b2b5b1 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -290,43 +290,6 @@
     public int colorMode = COLOR_MODE_DEFAULT;
 
     /**
-     * Value for {@link #preferMinimalPostProcessing} indicating that by default
-     * minimal post processing is not preferred.
-     *
-     * @see android.R.attr#preferMinimalPostProcessing
-     * @hide
-     */
-    public static final boolean MINIMAL_POST_PROCESSING_DEFAULT = false;
-
-    /**
-     * Indicates whether the activity wants the connected display to do minimal post processing on
-     * the produced image or video frames. This will only be requested if this activity's main
-     * window is visible on the screen.
-     *
-     * <p>This setting should be used when low latency has a higher priority than image enhancement
-     * processing (e.g. for games or video conferencing).
-     *
-     * <p>If the Display sink is connected via HDMI, the device will begin to send infoframes with
-     * Auto Low Latency Mode enabled and Game Content Type. This will switch the connected display
-     * to a minimal image processing mode (if available), which reduces latency, improving the user
-     * experience for gaming or video conferencing applications. For more information, see HDMI 2.1
-     * specification.
-     *
-     * <p>If the Display sink has an internal connection or uses some other protocol than HDMI,
-     * effects may be similar but implementation-defined.
-     *
-     * <p>The ability to switch to a mode with minimal post proessing may be disabled by a user
-     * setting in the system settings menu. In that case, this field is ignored and the display will
-     * remain in its current mode.
-     *
-     * <p>Set from attribute {@link android.R.attr#preferMinimalPostProcessing}.
-     *
-     * @see android.view.WindowManager.LayoutParams#preferMinimalPostProcessing
-     * @see android.view.Display#isMinimalPostProcessingSupported
-     */
-    public boolean preferMinimalPostProcessing = MINIMAL_POST_PROCESSING_DEFAULT;
-
-    /**
      * Bit in {@link #flags} indicating whether this activity is able to
      * run in multiple processes.  If
      * true, the system may instantiate it in the some process as the
@@ -506,6 +469,13 @@
     public static final int FLAG_TURN_SCREEN_ON = 0x1000000;
 
     /**
+     * Bit in {@link #flags} indicating whether the display should preferably be switched to a
+     * minimal post processing mode.
+     * See {@link android.R.attr#preferMinimalPostProcessing}
+     */
+    public static final int FLAG_PREFER_MINIMAL_POST_PROCESSING = 0x2000000;
+
+    /**
      * @hide Bit in {@link #flags}: If set, this component will only be seen
      * by the system user.  Only works with broadcast receivers.  Set from the
      * android.R.attr#systemUserOnly attribute.
@@ -1041,7 +1011,6 @@
         requestedVrComponent = orig.requestedVrComponent;
         rotationAnimation = orig.rotationAnimation;
         colorMode = orig.colorMode;
-        preferMinimalPostProcessing = orig.preferMinimalPostProcessing;
         maxAspectRatio = orig.maxAspectRatio;
         minAspectRatio = orig.minAspectRatio;
     }
@@ -1269,7 +1238,6 @@
         dest.writeInt(colorMode);
         dest.writeFloat(maxAspectRatio);
         dest.writeFloat(minAspectRatio);
-        dest.writeBoolean(preferMinimalPostProcessing);
     }
 
     /**
@@ -1388,7 +1356,6 @@
         colorMode = source.readInt();
         maxAspectRatio = source.readFloat();
         minAspectRatio = source.readFloat();
-        preferMinimalPostProcessing = source.readBoolean();
     }
 
     /**
diff --git a/core/java/android/content/pm/DataLoaderManager.java b/core/java/android/content/pm/DataLoaderManager.java
index 2688038..4a61938 100644
--- a/core/java/android/content/pm/DataLoaderManager.java
+++ b/core/java/android/content/pm/DataLoaderManager.java
@@ -18,7 +18,6 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.os.Bundle;
 import android.os.RemoteException;
 
 /**
@@ -40,22 +39,19 @@
      * Finds a data loader binder service and binds to it. This requires PackageManager.
      *
      * @param dataLoaderId ID for the new data loader binder service.
-     * @param params       Bundle that contains parameters to configure the data loader service.
-     *                     Must contain:
-     *                     key: "packageName", value: String, package name of data loader service
-     *                     package;
-     *                     key: "extras", value: Bundle, client-specific data structures
-     *
+     * @param params       DataLoaderParamsParcel object that contains data loader params, including
+     *                     its package name, class name, and additional parameters.
+     * @param control      FileSystemControlParcel that contains filesystem control handlers.
      * @param listener     Callback for the data loader service to report status back to the
      *                     caller.
      * @return false if 1) target ID collides with a data loader that is already bound to data
      * loader manager; 2) package name is not specified; 3) fails to find data loader package;
      * or 4) fails to bind to the specified data loader service, otherwise return true.
      */
-    public boolean initializeDataLoader(int dataLoaderId, @NonNull Bundle params,
-            @NonNull IDataLoaderStatusListener listener) {
+    public boolean initializeDataLoader(int dataLoaderId, @NonNull DataLoaderParamsParcel params,
+            @NonNull FileSystemControlParcel control, @NonNull IDataLoaderStatusListener listener) {
         try {
-            return mService.initializeDataLoader(dataLoaderId, params, listener);
+            return mService.initializeDataLoader(dataLoaderId, params, control, listener);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
diff --git a/core/java/android/content/pm/IDataLoader.aidl b/core/java/android/content/pm/IDataLoader.aidl
index b5baa93..6a2658d 100644
--- a/core/java/android/content/pm/IDataLoader.aidl
+++ b/core/java/android/content/pm/IDataLoader.aidl
@@ -16,20 +16,22 @@
 
 package android.content.pm;
 
-import android.os.Bundle;
+import android.content.pm.DataLoaderParamsParcel;
+import android.content.pm.FileSystemControlParcel;
 import android.content.pm.IDataLoaderStatusListener;
-import android.content.pm.InstallationFile;
+import android.content.pm.InstallationFileParcel;
 import java.util.List;
 
 /**
- * TODO: update with new APIs
  * @hide
  */
 oneway interface IDataLoader {
-   void create(int id, in Bundle params, IDataLoaderStatusListener listener);
+   void create(int id, in DataLoaderParamsParcel params,
+           in FileSystemControlParcel control,
+           IDataLoaderStatusListener listener);
    void start();
    void stop();
    void destroy();
 
-   void prepareImage(in List<InstallationFile> addedFiles, in List<String> removedFiles);
+   void prepareImage(in InstallationFileParcel[] addedFiles, in @utf8InCpp String[] removedFiles);
 }
diff --git a/core/java/android/content/pm/IDataLoaderManager.aidl b/core/java/android/content/pm/IDataLoaderManager.aidl
index f453c9b..1336f72 100644
--- a/core/java/android/content/pm/IDataLoaderManager.aidl
+++ b/core/java/android/content/pm/IDataLoaderManager.aidl
@@ -16,14 +16,15 @@
 
 package android.content.pm;
 
-import android.os.Bundle;
+import android.content.pm.DataLoaderParamsParcel;
+import android.content.pm.FileSystemControlParcel;
 import android.content.pm.IDataLoader;
 import android.content.pm.IDataLoaderStatusListener;
-import java.util.List;
 
 /** @hide */
 interface IDataLoaderManager {
-    boolean initializeDataLoader(int id, in Bundle params, IDataLoaderStatusListener listener);
+    boolean initializeDataLoader(int id, in DataLoaderParamsParcel params,
+            in FileSystemControlParcel control, IDataLoaderStatusListener listener);
     IDataLoader getDataLoader(int dataLoaderId);
     void destroyDataLoader(int dataLoaderId);
 }
\ No newline at end of file
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index e9cdbf28..8c3eef2 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -748,5 +748,4 @@
     void clearMimeGroup(String packageName, String group);
 
     List<String> getMimeGroup(String packageName, String group);
-
 }
diff --git a/core/java/android/content/pm/InstallationFile.java b/core/java/android/content/pm/InstallationFile.java
index b449945..edc04c9 100644
--- a/core/java/android/content/pm/InstallationFile.java
+++ b/core/java/android/content/pm/InstallationFile.java
@@ -19,81 +19,47 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
-import android.os.Parcel;
-import android.os.Parcelable;
 
 /**
  * Defines the properties of a file in an installation session.
  * @hide
  */
 @SystemApi
-public final class InstallationFile implements Parcelable {
-    private final @PackageInstaller.FileLocation int mLocation;
-    private final @NonNull String mName;
-    private final long mLengthBytes;
-    private final @Nullable byte[] mMetadata;
-    private final @Nullable byte[] mSignature;
+public final class InstallationFile {
+    private final @NonNull InstallationFileParcel mParcel;
 
     public InstallationFile(@PackageInstaller.FileLocation int location, @NonNull String name,
             long lengthBytes, @Nullable byte[] metadata, @Nullable byte[] signature) {
-        mLocation = location;
-        mName = name;
-        mLengthBytes = lengthBytes;
-        mMetadata = metadata;
-        mSignature = signature;
+        mParcel = new InstallationFileParcel();
+        mParcel.location = location;
+        mParcel.name = name;
+        mParcel.size = lengthBytes;
+        mParcel.metadata = metadata;
+        mParcel.signature = signature;
     }
 
     public @PackageInstaller.FileLocation int getLocation() {
-        return mLocation;
+        return mParcel.location;
     }
 
     public @NonNull String getName() {
-        return mName;
+        return mParcel.name;
     }
 
     public long getLengthBytes() {
-        return mLengthBytes;
+        return mParcel.size;
     }
 
     public @Nullable byte[] getMetadata() {
-        return mMetadata;
+        return mParcel.metadata;
     }
 
     public @Nullable byte[] getSignature() {
-        return mSignature;
+        return mParcel.signature;
     }
 
-    private InstallationFile(Parcel source) {
-        mLocation = source.readInt();
-        mName = source.readString();
-        mLengthBytes = source.readLong();
-        mMetadata = source.createByteArray();
-        mSignature = source.createByteArray();
+    /** @hide */
+    public @NonNull InstallationFileParcel getData() {
+        return mParcel;
     }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(@NonNull Parcel dest, int flags) {
-        dest.writeInt(mLocation);
-        dest.writeString(mName);
-        dest.writeLong(mLengthBytes);
-        dest.writeByteArray(mMetadata);
-        dest.writeByteArray(mSignature);
-    }
-
-    public static final @NonNull Creator<InstallationFile> CREATOR =
-            new Creator<InstallationFile>() {
-        public InstallationFile createFromParcel(Parcel source) {
-            return new InstallationFile(source);
-        }
-
-        public InstallationFile[] newArray(int size) {
-            return new InstallationFile[size];
-        }
-    };
-
 }
diff --git a/core/java/android/net/NetworkScore.aidl b/core/java/android/content/pm/InstallationFileLocation.aidl
similarity index 65%
rename from core/java/android/net/NetworkScore.aidl
rename to core/java/android/content/pm/InstallationFileLocation.aidl
index be9a98b..501640a 100644
--- a/core/java/android/net/NetworkScore.aidl
+++ b/core/java/android/content/pm/InstallationFileLocation.aidl
@@ -1,11 +1,11 @@
-/**
- * Copyright (c) 2020, The Android Open Source Project
+/*
+ * Copyright (C) 2020 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
+ *      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,
@@ -14,6 +14,13 @@
  * limitations under the License.
  */
 
-package android.net;
+package android.content.pm;
 
-parcelable NetworkScore;
+/** @hide */
+@Backing(type="int")
+enum InstallationFileLocation {
+  UNKNOWN = -1,
+  DATA_APP = 0,
+  MEDIA_OBB = 1,
+  MEDIA_DATA = 2
+}
\ No newline at end of file
diff --git a/core/java/android/content/pm/InstallationFileParcel.aidl b/core/java/android/content/pm/InstallationFileParcel.aidl
new file mode 100644
index 0000000..b7efc19
--- /dev/null
+++ b/core/java/android/content/pm/InstallationFileParcel.aidl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2020 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.content.pm;
+
+import android.content.pm.InstallationFileLocation;
+
+/**
+ * Describes a file which is part of a package installation.
+ * @hide
+ */
+parcelable InstallationFileParcel {
+    String name;
+    InstallationFileLocation location;
+    long size;
+    byte[] metadata;
+    byte[] signature;
+}
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index 2acbb97..1f53176 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -372,7 +372,7 @@
      * {@hide}
      */
     @SystemApi
-    public static final int LOCATION_DATA_APP = 0;
+    public static final int LOCATION_DATA_APP = InstallationFileLocation.DATA_APP;
 
     /**
      * Target location for the file in installation session is
@@ -380,7 +380,7 @@
      * {@hide}
      */
     @SystemApi
-    public static final int LOCATION_MEDIA_OBB = 1;
+    public static final int LOCATION_MEDIA_OBB = InstallationFileLocation.MEDIA_OBB;
 
     /**
      * Target location for the file in installation session is
@@ -390,7 +390,7 @@
      * {@hide}
      */
     @SystemApi
-    public static final int LOCATION_MEDIA_DATA = 2;
+    public static final int LOCATION_MEDIA_DATA = InstallationFileLocation.MEDIA_DATA;
 
     /** @hide */
     @IntDef(prefix = { "LOCATION_" }, value = {
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index fa751d3..9b28cb5e8 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -1995,7 +1995,10 @@
      * Feature for {@link #getSystemAvailableFeatures} and
      * {@link #hasSystemFeature}: The device supports a Context Hub, used to expose the
      * functionalities in {@link android.hardware.location.ContextHubManager}.
+     *
+     * @hide
      */
+    @SystemApi
     @SdkConstant(SdkConstantType.FEATURE)
     public static final String FEATURE_CONTEXT_HUB = "android.hardware.context_hub";
 
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 1de82450..c6875a4 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -1189,7 +1189,7 @@
             final Resources res = new Resources(assets, mMetrics, null);
 
             final String[] outError = new String[1];
-            final Package pkg = parseBaseApk(res, parser, flags, outError);
+            final Package pkg = parseBaseApk(apkPath, res, parser, flags, outError);
             if (pkg == null) {
                 throw new PackageParserException(mParseError,
                         apkPath + " (at " + parser.getPositionDescription() + "): " + outError[0]);
@@ -1785,6 +1785,7 @@
      * need to consider whether they should be supported by split APKs and child
      * packages.
      *
+     * @param apkPath The package apk file path
      * @param res The resources from which to resolve values
      * @param parser The manifest parser
      * @param flags Flags how to parse
@@ -1794,7 +1795,8 @@
      * @throws XmlPullParserException
      * @throws IOException
      */
-    private Package parseBaseApk(Resources res, XmlResourceParser parser, int flags,
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
+    private Package parseBaseApk(String apkPath, Resources res, XmlResourceParser parser, int flags,
             String[] outError) throws XmlPullParserException, IOException {
         final String splitName;
         final String pkgName;
@@ -4178,7 +4180,6 @@
         a.info.directBootAware = false;
         a.info.rotationAnimation = ROTATION_ANIMATION_UNSPECIFIED;
         a.info.colorMode = ActivityInfo.COLOR_MODE_DEFAULT;
-        a.info.preferMinimalPostProcessing = ActivityInfo.MINIMAL_POST_PROCESSING_DEFAULT;
         if (hardwareAccelerated) {
             a.info.flags |= ActivityInfo.FLAG_HARDWARE_ACCELERATED;
         }
@@ -4393,9 +4394,10 @@
             a.info.colorMode = sa.getInt(R.styleable.AndroidManifestActivity_colorMode,
                     ActivityInfo.COLOR_MODE_DEFAULT);
 
-            a.info.preferMinimalPostProcessing = sa.getBoolean(
-                    R.styleable.AndroidManifestActivity_preferMinimalPostProcessing,
-                    ActivityInfo.MINIMAL_POST_PROCESSING_DEFAULT);
+            if (sa.getBoolean(
+                        R.styleable.AndroidManifestActivity_preferMinimalPostProcessing, false)) {
+                a.info.flags |= ActivityInfo.FLAG_PREFER_MINIMAL_POST_PROCESSING;
+            }
 
             if (sa.getBoolean(R.styleable.AndroidManifestActivity_showWhenLocked, false)) {
                 a.info.flags |= ActivityInfo.FLAG_SHOW_WHEN_LOCKED;
diff --git a/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java b/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java
index e7d91c2..9a1f7c9 100644
--- a/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java
+++ b/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java
@@ -40,11 +40,6 @@
 import android.content.pm.ServiceInfo;
 import android.content.pm.Signature;
 import android.content.pm.SigningInfo;
-import android.content.pm.parsing.ParsingPackage;
-import android.os.Environment;
-import android.os.UserHandle;
-
-import com.android.internal.util.ArrayUtils;
 import android.content.pm.parsing.component.ComponentParseUtils;
 import android.content.pm.parsing.component.ParsedActivity;
 import android.content.pm.parsing.component.ParsedComponent;
@@ -54,6 +49,10 @@
 import android.content.pm.parsing.component.ParsedPermissionGroup;
 import android.content.pm.parsing.component.ParsedProvider;
 import android.content.pm.parsing.component.ParsedService;
+import android.os.Environment;
+import android.os.UserHandle;
+
+import com.android.internal.util.ArrayUtils;
 
 import libcore.util.EmptyArray;
 
@@ -186,6 +185,22 @@
             return null;
         }
 
+        return generateWithoutComponentsUnchecked(pkg, gids, flags, firstInstallTime,
+                lastUpdateTime, grantedPermissions, state, userId, apexInfo, applicationInfo);
+    }
+
+    /**
+     * This bypasses critical checks that are necessary for usage with data passed outside of
+     * system server.
+     *
+     * Prefer {@link #generateWithoutComponents(ParsingPackageRead, int[], int, long, long, Set,
+     * PackageUserState, int, ApexInfo, ApplicationInfo)}.
+     */
+    @NonNull
+    public static PackageInfo generateWithoutComponentsUnchecked(ParsingPackageRead pkg, int[] gids,
+            @PackageManager.PackageInfoFlags int flags, long firstInstallTime, long lastUpdateTime,
+            Set<String> grantedPermissions, PackageUserState state, int userId,
+            @Nullable ApexInfo apexInfo, @NonNull ApplicationInfo applicationInfo) {
         PackageInfo pi = new PackageInfo();
         pi.packageName = pkg.getPackageName();
         pi.splitNames = pkg.getSplitNames();
@@ -317,6 +332,18 @@
             return null;
         }
 
+        return generateApplicationInfoUnchecked(pkg, flags, state, userId);
+    }
+
+    /**
+     * This bypasses critical checks that are necessary for usage with data passed outside of
+     * system server.
+     *
+     * Prefer {@link #generateApplicationInfo(ParsingPackageRead, int, PackageUserState, int)}.
+     */
+    @NonNull
+    public static ApplicationInfo generateApplicationInfoUnchecked(@NonNull ParsingPackageRead pkg,
+            @PackageManager.ApplicationInfoFlags int flags, PackageUserState state, int userId) {
         // Make shallow copy so we can store the metadata/libraries safely
         ApplicationInfo ai = pkg.toAppInfoWithoutState();
         // Init handles data directories
@@ -362,7 +389,7 @@
             ai.category = FallbackCategoryProvider.getFallbackCategory(ai.packageName);
         }
         ai.seInfoUser = SELinuxUtil.assignSeinfoUser(state);
-        ai.resourceDirs = state.getOverlayPaths();
+        ai.resourceDirs = state.getAllOverlayPaths();
 
         return ai;
     }
@@ -378,6 +405,23 @@
         if (applicationInfo == null) {
             applicationInfo = generateApplicationInfo(pkg, flags, state, userId);
         }
+        if (applicationInfo == null) {
+            return null;
+        }
+
+        return generateActivityInfoUnchecked(a, applicationInfo);
+    }
+
+    /**
+     * This bypasses critical checks that are necessary for usage with data passed outside of
+     * system server.
+     *
+     * Prefer {@link #generateActivityInfo(ParsingPackageRead, ParsedActivity, int,
+     * PackageUserState, ApplicationInfo, int)}.
+     */
+    @NonNull
+    public static ActivityInfo generateActivityInfoUnchecked(@NonNull ParsedActivity a,
+            @NonNull ApplicationInfo applicationInfo) {
         // Make shallow copies so we can store the metadata safely
         ActivityInfo ai = new ActivityInfo();
         assignSharedFieldsForComponentInfo(ai, a);
@@ -407,7 +451,6 @@
         ai.requestedVrComponent = a.getRequestedVrComponent();
         ai.rotationAnimation = a.getRotationAnimation();
         ai.colorMode = a.getColorMode();
-        ai.preferMinimalPostProcessing = a.isPreferMinimalPostProcessing();
         ai.windowLayout = a.getWindowLayout();
         ai.metaData = a.getMetaData();
         ai.applicationInfo = applicationInfo;
@@ -431,6 +474,23 @@
         if (applicationInfo == null) {
             applicationInfo = generateApplicationInfo(pkg, flags, state, userId);
         }
+        if (applicationInfo == null) {
+            return null;
+        }
+
+        return generateServiceInfoUnchecked(s, applicationInfo);
+    }
+
+    /**
+     * This bypasses critical checks that are necessary for usage with data passed outside of
+     * system server.
+     *
+     * Prefer {@link #generateServiceInfo(ParsingPackageRead, ParsedService, int, PackageUserState,
+     * ApplicationInfo, int)}.
+     */
+    @NonNull
+    public static ServiceInfo generateServiceInfoUnchecked(@NonNull ParsedService s,
+            @NonNull ApplicationInfo applicationInfo) {
         // Make shallow copies so we can store the metadata safely
         ServiceInfo si = new ServiceInfo();
         assignSharedFieldsForComponentInfo(si, s);
@@ -461,6 +521,24 @@
         if (applicationInfo == null) {
             applicationInfo = generateApplicationInfo(pkg, flags, state, userId);
         }
+        if (applicationInfo == null) {
+            return null;
+        }
+
+        return generateProviderInfoUnchecked(p, flags, applicationInfo);
+    }
+
+    /**
+     * This bypasses critical checks that are necessary for usage with data passed outside of
+     * system server.
+     *
+     * Prefer {@link #generateProviderInfo(ParsingPackageRead, ParsedProvider, int,
+     * PackageUserState, ApplicationInfo, int)}.
+     */
+    @NonNull
+    public static ProviderInfo generateProviderInfoUnchecked(@NonNull ParsedProvider p,
+            @PackageManager.ComponentInfoFlags int flags,
+            @NonNull ApplicationInfo applicationInfo) {
         // Make shallow copies so we can store the metadata safely
         ProviderInfo pi = new ProviderInfo();
         assignSharedFieldsForComponentInfo(pi, p);
diff --git a/core/java/android/content/pm/parsing/ParsingPackageImpl.java b/core/java/android/content/pm/parsing/ParsingPackageImpl.java
index c3eea2b..a9b72d0 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageImpl.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageImpl.java
@@ -64,6 +64,7 @@
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedStringList;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedStringSet;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedStringValueMap;
+import com.android.internal.util.Parcelling.BuiltIn.ForStringSet;
 
 import java.security.PublicKey;
 import java.util.Collections;
@@ -87,16 +88,15 @@
     private static final String TAG = "PackageImpl";
 
     public static ForBoolean sForBoolean = Parcelling.Cache.getOrCreate(ForBoolean.class);
-    public static ForInternedString sForString = Parcelling.Cache.getOrCreate(
+    public static ForInternedString sForInternedString = Parcelling.Cache.getOrCreate(
             ForInternedString.class);
-    public static ForInternedStringArray sForStringArray = Parcelling.Cache.getOrCreate(
+    public static ForInternedStringArray sForInternedStringArray = Parcelling.Cache.getOrCreate(
             ForInternedStringArray.class);
-    public static ForInternedStringList sForStringList = Parcelling.Cache.getOrCreate(
+    public static ForInternedStringList sForInternedStringList = Parcelling.Cache.getOrCreate(
             ForInternedStringList.class);
-    public static ForInternedStringValueMap sForStringValueMap = Parcelling.Cache.getOrCreate(
-            ForInternedStringValueMap.class);
-    public static ForInternedStringSet sForStringSet = Parcelling.Cache.getOrCreate(
-            ForInternedStringSet.class);
+    public static ForInternedStringValueMap sForInternedStringValueMap =
+            Parcelling.Cache.getOrCreate(ForInternedStringValueMap.class);
+    public static ForStringSet sForStringSet = Parcelling.Cache.getOrCreate(ForStringSet.class);
     protected static ParsedIntentInfo.StringPairListParceler sForIntentInfoPairs =
             Parcelling.Cache.getOrCreate(ParsedIntentInfo.StringPairListParceler.class);
 
@@ -414,8 +414,8 @@
     public ParsingPackageImpl(@NonNull String packageName, @NonNull String baseCodePath,
             @NonNull String codePath, @Nullable TypedArray manifestArray) {
         this.packageName = TextUtils.safeIntern(packageName);
-        this.baseCodePath = TextUtils.safeIntern(baseCodePath);
-        this.codePath = TextUtils.safeIntern(codePath);
+        this.baseCodePath = baseCodePath;
+        this.codePath = codePath;
 
         if (manifestArray != null) {
             versionCode = manifestArray.getInteger(R.styleable.AndroidManifest_versionCode, 0);
@@ -496,18 +496,6 @@
     }
 
     @Override
-    public ParsingPackageImpl setVersionName(String versionName) {
-        this.versionName = TextUtils.safeIntern(versionName);
-        return this;
-    }
-
-    @Override
-    public ParsingPackage setCompileSdkVersionCodename(String compileSdkVersionCodename) {
-        this.compileSdkVersionCodeName = TextUtils.safeIntern(compileSdkVersionCodename);
-        return this;
-    }
-
-    @Override
     public Object hideAsParsed() {
         // There is no equivalent for core-only parsing
         throw new UnsupportedOperationException();
@@ -548,15 +536,14 @@
 
     @Override
     public ParsingPackageImpl addOriginalPackage(String originalPackage) {
-        this.originalPackages = CollectionUtils.add(this.originalPackages,
-                TextUtils.safeIntern(originalPackage));
+        this.originalPackages = CollectionUtils.add(this.originalPackages, originalPackage);
         return this;
     }
 
     @Override
     public ParsingPackage addOverlayable(String overlayableName, String actorName) {
-        this.overlayables = CollectionUtils.add(this.overlayables,
-                TextUtils.safeIntern(overlayableName), TextUtils.safeIntern(actorName));
+        this.overlayables = CollectionUtils.add(this.overlayables, overlayableName,
+                TextUtils.safeIntern(actorName));
         return this;
     }
 
@@ -710,8 +697,7 @@
 
     @Override
     public ParsingPackageImpl addQueriesProvider(String authority) {
-        this.queriesProviders = CollectionUtils.add(this.queriesProviders,
-                TextUtils.safeIntern(authority));
+        this.queriesProviders = CollectionUtils.add(this.queriesProviders, authority);
         return this;
     }
 
@@ -776,20 +762,9 @@
     }
 
     @Override
-    public ParsingPackageImpl asSplit(
-            String[] splitNames,
-            String[] splitCodePaths,
-            int[] splitRevisionCodes,
-            SparseArray<int[]> splitDependencies
-    ) {
+    public ParsingPackageImpl asSplit(String[] splitNames, String[] splitCodePaths,
+            int[] splitRevisionCodes, SparseArray<int[]> splitDependencies) {
         this.splitNames = splitNames;
-
-        if (this.splitNames != null) {
-            for (int index = 0; index < this.splitNames.length; index++) {
-                splitNames[index] = TextUtils.safeIntern(splitNames[index]);
-            }
-        }
-
         this.splitCodePaths = splitCodePaths;
         this.splitRevisionCodes = splitRevisionCodes;
         this.splitDependencies = splitDependencies;
@@ -815,26 +790,8 @@
     }
 
     @Override
-    public ParsingPackageImpl setProcessName(String processName) {
-        this.processName = TextUtils.safeIntern(processName);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setRealPackage(@Nullable String realPackage) {
-        this.realPackage = TextUtils.safeIntern(realPackage);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setRestrictedAccountType(@Nullable String restrictedAccountType) {
-        this.restrictedAccountType = TextUtils.safeIntern(restrictedAccountType);
-        return this;
-    }
-
-    @Override
     public ParsingPackageImpl setRequiredAccountType(@Nullable String requiredAccountType) {
-        this.requiredAccountType = TextUtils.nullIfEmpty(TextUtils.safeIntern(requiredAccountType));
+        this.requiredAccountType = TextUtils.nullIfEmpty(requiredAccountType);
         return this;
     }
 
@@ -845,72 +802,12 @@
     }
 
     @Override
-    public ParsingPackageImpl setOverlayTargetName(@Nullable String overlayTargetName) {
-        this.overlayTargetName = TextUtils.safeIntern(overlayTargetName);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setOverlayCategory(@Nullable String overlayCategory) {
-        this.overlayCategory = TextUtils.safeIntern(overlayCategory);
-        return this;
-    }
-
-    @Override
     public ParsingPackageImpl setVolumeUuid(@Nullable String volumeUuid) {
         this.volumeUuid = TextUtils.safeIntern(volumeUuid);
         return this;
     }
 
     @Override
-    public ParsingPackageImpl setAppComponentFactory(@Nullable String appComponentFactory) {
-        this.appComponentFactory = TextUtils.safeIntern(appComponentFactory);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setBackupAgentName(@Nullable String backupAgentName) {
-        this.backupAgentName = TextUtils.safeIntern(backupAgentName);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setClassLoaderName(@Nullable String classLoaderName) {
-        this.classLoaderName = TextUtils.safeIntern(classLoaderName);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setClassName(@Nullable String className) {
-        this.className = TextUtils.safeIntern(className);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setManageSpaceActivityName(@Nullable String manageSpaceActivityName) {
-        this.manageSpaceActivityName = TextUtils.safeIntern(manageSpaceActivityName);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setPermission(@Nullable String permission) {
-        this.permission = TextUtils.safeIntern(permission);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setTaskAffinity(@Nullable String taskAffinity) {
-        this.taskAffinity = TextUtils.safeIntern(taskAffinity);
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setZygotePreloadName(@Nullable String zygotePreloadName) {
-        this.zygotePreloadName = TextUtils.safeIntern(zygotePreloadName);
-        return this;
-    }
-
-    @Override
     public ParsingPackageImpl setStaticSharedLibName(String staticSharedLibName) {
         this.staticSharedLibName = TextUtils.safeIntern(staticSharedLibName);
         return this;
@@ -1044,27 +941,27 @@
         dest.writeInt(this.versionCode);
         dest.writeInt(this.versionCodeMajor);
         dest.writeInt(this.baseRevisionCode);
-        sForString.parcel(this.versionName, dest, flags);
+        sForInternedString.parcel(this.versionName, dest, flags);
         dest.writeInt(this.compileSdkVersion);
-        sForString.parcel(this.compileSdkVersionCodeName, dest, flags);
-        sForString.parcel(this.packageName, dest, flags);
-        sForString.parcel(this.realPackage, dest, flags);
-        sForString.parcel(this.baseCodePath, dest, flags);
+        dest.writeString(this.compileSdkVersionCodeName);
+        sForInternedString.parcel(this.packageName, dest, flags);
+        dest.writeString(this.realPackage);
+        dest.writeString(this.baseCodePath);
         dest.writeBoolean(this.requiredForAllUsers);
-        sForString.parcel(this.restrictedAccountType, dest, flags);
-        sForString.parcel(this.requiredAccountType, dest, flags);
-        sForString.parcel(this.overlayTarget, dest, flags);
-        sForString.parcel(this.overlayTargetName, dest, flags);
-        sForString.parcel(this.overlayCategory, dest, flags);
+        dest.writeString(this.restrictedAccountType);
+        dest.writeString(this.requiredAccountType);
+        sForInternedString.parcel(this.overlayTarget, dest, flags);
+        dest.writeString(this.overlayTargetName);
+        dest.writeString(this.overlayCategory);
         dest.writeInt(this.overlayPriority);
         dest.writeBoolean(this.overlayIsStatic);
-        sForStringValueMap.parcel(this.overlayables, dest, flags);
-        sForString.parcel(this.staticSharedLibName, dest, flags);
+        sForInternedStringValueMap.parcel(this.overlayables, dest, flags);
+        sForInternedString.parcel(this.staticSharedLibName, dest, flags);
         dest.writeLong(this.staticSharedLibVersion);
-        sForStringList.parcel(this.libraryNames, dest, flags);
-        sForStringList.parcel(this.usesLibraries, dest, flags);
-        sForStringList.parcel(this.usesOptionalLibraries, dest, flags);
-        sForStringList.parcel(this.usesStaticLibraries, dest, flags);
+        sForInternedStringList.parcel(this.libraryNames, dest, flags);
+        sForInternedStringList.parcel(this.usesLibraries, dest, flags);
+        sForInternedStringList.parcel(this.usesOptionalLibraries, dest, flags);
+        sForInternedStringList.parcel(this.usesStaticLibraries, dest, flags);
         dest.writeLongArray(this.usesStaticLibrariesVersions);
 
         if (this.usesStaticLibrariesCertDigests == null) {
@@ -1072,23 +969,23 @@
         } else {
             dest.writeInt(this.usesStaticLibrariesCertDigests.length);
             for (int index = 0; index < this.usesStaticLibrariesCertDigests.length; index++) {
-                sForStringArray.parcel(this.usesStaticLibrariesCertDigests[index], dest, flags);
+                dest.writeStringArray(this.usesStaticLibrariesCertDigests[index]);
             }
         }
 
-        sForString.parcel(this.sharedUserId, dest, flags);
+        sForInternedString.parcel(this.sharedUserId, dest, flags);
         dest.writeInt(this.sharedUserLabel);
         dest.writeTypedList(this.configPreferences);
         dest.writeTypedList(this.reqFeatures);
         dest.writeTypedList(this.featureGroups);
         dest.writeByteArray(this.restrictUpdateHash);
-        sForStringList.parcel(this.originalPackages, dest, flags);
-        sForStringList.parcel(this.adoptPermissions, dest, flags);
-        sForStringList.parcel(this.requestedPermissions, dest, flags);
-        sForStringList.parcel(this.implicitPermissions, dest, flags);
+        dest.writeStringList(this.originalPackages);
+        sForInternedStringList.parcel(this.adoptPermissions, dest, flags);
+        sForInternedStringList.parcel(this.requestedPermissions, dest, flags);
+        sForInternedStringList.parcel(this.implicitPermissions, dest, flags);
         sForStringSet.parcel(this.upgradeKeySets, dest, flags);
         dest.writeMap(this.keySetMapping);
-        sForStringList.parcel(this.protectedBroadcasts, dest, flags);
+        sForInternedStringList.parcel(this.protectedBroadcasts, dest, flags);
         dest.writeTypedList(this.activities);
         dest.writeTypedList(this.receivers);
         dest.writeTypedList(this.services);
@@ -1100,20 +997,20 @@
         sForIntentInfoPairs.parcel(this.preferredActivityFilters, dest, flags);
         dest.writeMap(this.processes);
         dest.writeBundle(this.metaData);
-        sForString.parcel(this.volumeUuid, dest, flags);
+        sForInternedString.parcel(this.volumeUuid, dest, flags);
         dest.writeParcelable(this.signingDetails, flags);
-        sForString.parcel(this.codePath, dest, flags);
+        dest.writeString(this.codePath);
         dest.writeBoolean(this.use32BitAbi);
         dest.writeBoolean(this.visibleToInstantApps);
         dest.writeBoolean(this.forceQueryable);
         dest.writeParcelableList(this.queriesIntents, flags);
-        sForStringList.parcel(this.queriesPackages, dest, flags);
-        sForString.parcel(this.appComponentFactory, dest, flags);
-        sForString.parcel(this.backupAgentName, dest, flags);
+        sForInternedStringList.parcel(this.queriesPackages, dest, flags);
+        dest.writeString(this.appComponentFactory);
+        dest.writeString(this.backupAgentName);
         dest.writeInt(this.banner);
         dest.writeInt(this.category);
-        sForString.parcel(this.classLoaderName, dest, flags);
-        sForString.parcel(this.className, dest, flags);
+        dest.writeString(this.classLoaderName);
+        dest.writeString(this.className);
         dest.writeInt(this.compatibleWidthLimitDp);
         dest.writeInt(this.descriptionRes);
         dest.writeBoolean(this.enabled);
@@ -1124,27 +1021,27 @@
         dest.writeInt(this.labelRes);
         dest.writeInt(this.largestWidthLimitDp);
         dest.writeInt(this.logo);
-        sForString.parcel(this.manageSpaceActivityName, dest, flags);
+        dest.writeString(this.manageSpaceActivityName);
         dest.writeFloat(this.maxAspectRatio);
         dest.writeFloat(this.minAspectRatio);
         dest.writeInt(this.minSdkVersion);
         dest.writeInt(this.networkSecurityConfigRes);
         dest.writeCharSequence(this.nonLocalizedLabel);
-        sForString.parcel(this.permission, dest, flags);
-        sForString.parcel(this.processName, dest, flags);
+        dest.writeString(this.permission);
+        dest.writeString(this.processName);
         dest.writeInt(this.requiresSmallestWidthDp);
         dest.writeInt(this.roundIconRes);
         dest.writeInt(this.targetSandboxVersion);
         dest.writeInt(this.targetSdkVersion);
-        sForString.parcel(this.taskAffinity, dest, flags);
+        dest.writeString(this.taskAffinity);
         dest.writeInt(this.theme);
         dest.writeInt(this.uiOptions);
-        sForString.parcel(this.zygotePreloadName, dest, flags);
-        sForStringArray.parcel(this.splitClassLoaderNames, dest, flags);
-        sForStringArray.parcel(this.splitCodePaths, dest, flags);
+        dest.writeString(this.zygotePreloadName);
+        dest.writeStringArray(this.splitClassLoaderNames);
+        dest.writeStringArray(this.splitCodePaths);
         dest.writeSparseArray(this.splitDependencies);
         dest.writeIntArray(this.splitFlags);
-        sForStringArray.parcel(this.splitNames, dest, flags);
+        dest.writeStringArray(this.splitNames);
         dest.writeIntArray(this.splitRevisionCodes);
 
         dest.writeBoolean(this.externalStorage);
@@ -1203,50 +1100,51 @@
         this.versionCode = in.readInt();
         this.versionCodeMajor = in.readInt();
         this.baseRevisionCode = in.readInt();
-        this.versionName = sForString.unparcel(in);
+        this.versionName = sForInternedString.unparcel(in);
         this.compileSdkVersion = in.readInt();
-        this.compileSdkVersionCodeName = sForString.unparcel(in);
-        this.packageName = sForString.unparcel(in);
-        this.realPackage = sForString.unparcel(in);
-        this.baseCodePath = sForString.unparcel(in);
+        this.compileSdkVersionCodeName = in.readString();
+        this.packageName = sForInternedString.unparcel(in);
+        this.realPackage = in.readString();
+        this.baseCodePath = in.readString();
         this.requiredForAllUsers = in.readBoolean();
-        this.restrictedAccountType = sForString.unparcel(in);
-        this.requiredAccountType = sForString.unparcel(in);
-        this.overlayTarget = sForString.unparcel(in);
-        this.overlayTargetName = sForString.unparcel(in);
-        this.overlayCategory = sForString.unparcel(in);
+        this.restrictedAccountType = in.readString();
+        this.requiredAccountType = in.readString();
+        this.overlayTarget = sForInternedString.unparcel(in);
+        this.overlayTargetName = in.readString();
+        this.overlayCategory = in.readString();
         this.overlayPriority = in.readInt();
         this.overlayIsStatic = in.readBoolean();
-        this.overlayables = sForStringValueMap.unparcel(in);
-        this.staticSharedLibName = sForString.unparcel(in);
+        this.overlayables = sForInternedStringValueMap.unparcel(in);
+        this.staticSharedLibName = sForInternedString.unparcel(in);
         this.staticSharedLibVersion = in.readLong();
-        this.libraryNames = sForStringList.unparcel(in);
-        this.usesLibraries = sForStringList.unparcel(in);
-        this.usesOptionalLibraries = sForStringList.unparcel(in);
-        this.usesStaticLibraries = sForStringList.unparcel(in);
+        this.libraryNames = sForInternedStringList.unparcel(in);
+        this.usesLibraries = sForInternedStringList.unparcel(in);
+        this.usesOptionalLibraries = sForInternedStringList.unparcel(in);
+        this.usesStaticLibraries = sForInternedStringList.unparcel(in);
         this.usesStaticLibrariesVersions = in.createLongArray();
 
         int digestsSize = in.readInt();
         if (digestsSize >= 0) {
             this.usesStaticLibrariesCertDigests = new String[digestsSize][];
             for (int index = 0; index < digestsSize; index++) {
-                this.usesStaticLibrariesCertDigests[index] = sForStringArray.unparcel(in);
+                this.usesStaticLibrariesCertDigests[index] = sForInternedStringArray.unparcel(in);
             }
         }
 
-        this.sharedUserId = sForString.unparcel(in);
+        this.sharedUserId = sForInternedString.unparcel(in);
         this.sharedUserLabel = in.readInt();
         this.configPreferences = in.createTypedArrayList(ConfigurationInfo.CREATOR);
         this.reqFeatures = in.createTypedArrayList(FeatureInfo.CREATOR);
         this.featureGroups = in.createTypedArrayList(FeatureGroupInfo.CREATOR);
         this.restrictUpdateHash = in.createByteArray();
-        this.originalPackages = sForStringList.unparcel(in);
-        this.adoptPermissions = sForStringList.unparcel(in);
-        this.requestedPermissions = sForStringList.unparcel(in);
-        this.implicitPermissions = sForStringList.unparcel(in);
+        this.originalPackages = in.createStringArrayList();
+        this.adoptPermissions = sForInternedStringList.unparcel(in);
+        this.requestedPermissions = sForInternedStringList.unparcel(in);
+        this.implicitPermissions = sForInternedStringList.unparcel(in);
         this.upgradeKeySets = sForStringSet.unparcel(in);
         this.keySetMapping = in.readHashMap(boot);
-        this.protectedBroadcasts = sForStringList.unparcel(in);
+        this.protectedBroadcasts = sForInternedStringList.unparcel(in);
+
         this.activities = in.createTypedArrayList(ParsedActivity.CREATOR);
         this.receivers = in.createTypedArrayList(ParsedActivity.CREATOR);
         this.services = in.createTypedArrayList(ParsedService.CREATOR);
@@ -1258,20 +1156,20 @@
         this.preferredActivityFilters = sForIntentInfoPairs.unparcel(in);
         this.processes = in.readHashMap(boot);
         this.metaData = in.readBundle(boot);
-        this.volumeUuid = sForString.unparcel(in);
+        this.volumeUuid = sForInternedString.unparcel(in);
         this.signingDetails = in.readParcelable(boot);
-        this.codePath = sForString.unparcel(in);
+        this.codePath = in.readString();
         this.use32BitAbi = in.readBoolean();
         this.visibleToInstantApps = in.readBoolean();
         this.forceQueryable = in.readBoolean();
         this.queriesIntents = in.createTypedArrayList(Intent.CREATOR);
-        this.queriesPackages = sForStringList.unparcel(in);
-        this.appComponentFactory = sForString.unparcel(in);
-        this.backupAgentName = sForString.unparcel(in);
+        this.queriesPackages = sForInternedStringList.unparcel(in);
+        this.appComponentFactory = in.readString();
+        this.backupAgentName = in.readString();
         this.banner = in.readInt();
         this.category = in.readInt();
-        this.classLoaderName = sForString.unparcel(in);
-        this.className = sForString.unparcel(in);
+        this.classLoaderName = in.readString();
+        this.className = in.readString();
         this.compatibleWidthLimitDp = in.readInt();
         this.descriptionRes = in.readInt();
         this.enabled = in.readBoolean();
@@ -1282,27 +1180,27 @@
         this.labelRes = in.readInt();
         this.largestWidthLimitDp = in.readInt();
         this.logo = in.readInt();
-        this.manageSpaceActivityName = sForString.unparcel(in);
+        this.manageSpaceActivityName = in.readString();
         this.maxAspectRatio = in.readFloat();
         this.minAspectRatio = in.readFloat();
         this.minSdkVersion = in.readInt();
         this.networkSecurityConfigRes = in.readInt();
         this.nonLocalizedLabel = in.readCharSequence();
-        this.permission = sForString.unparcel(in);
-        this.processName = sForString.unparcel(in);
+        this.permission = in.readString();
+        this.processName = in.readString();
         this.requiresSmallestWidthDp = in.readInt();
         this.roundIconRes = in.readInt();
         this.targetSandboxVersion = in.readInt();
         this.targetSdkVersion = in.readInt();
-        this.taskAffinity = sForString.unparcel(in);
+        this.taskAffinity = in.readString();
         this.theme = in.readInt();
         this.uiOptions = in.readInt();
-        this.zygotePreloadName = sForString.unparcel(in);
-        this.splitClassLoaderNames = sForStringArray.unparcel(in);
-        this.splitCodePaths = sForStringArray.unparcel(in);
+        this.zygotePreloadName = in.readString();
+        this.splitClassLoaderNames = in.createStringArray();
+        this.splitCodePaths = in.createStringArray();
         this.splitDependencies = in.readSparseArray(boot);
         this.splitFlags = in.createIntArray();
-        this.splitNames = sForStringArray.unparcel(in);
+        this.splitNames = in.createStringArray();
         this.splitRevisionCodes = in.createIntArray();
         this.externalStorage = in.readBoolean();
         this.baseHardwareAccelerated = in.readBoolean();
@@ -1323,7 +1221,6 @@
         this.multiArch = in.readBoolean();
         this.extractNativeLibs = in.readBoolean();
         this.game = in.readBoolean();
-
         this.resizeableActivity = sForBoolean.unparcel(in);
 
         this.staticSharedLibrary = in.readBoolean();
@@ -2581,4 +2478,94 @@
         preserveLegacyExternalStorage = value;
         return this;
     }
+
+    @Override
+    public ParsingPackageImpl setVersionName(String versionName) {
+        this.versionName = versionName;
+        return this;
+    }
+
+    @Override
+    public ParsingPackage setCompileSdkVersionCodename(String compileSdkVersionCodename) {
+        this.compileSdkVersionCodeName = compileSdkVersionCodename;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setProcessName(String processName) {
+        this.processName = processName;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setRealPackage(@Nullable String realPackage) {
+        this.realPackage = realPackage;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setRestrictedAccountType(@Nullable String restrictedAccountType) {
+        this.restrictedAccountType = restrictedAccountType;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setOverlayTargetName(@Nullable String overlayTargetName) {
+        this.overlayTargetName = overlayTargetName;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setOverlayCategory(@Nullable String overlayCategory) {
+        this.overlayCategory = overlayCategory;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setAppComponentFactory(@Nullable String appComponentFactory) {
+        this.appComponentFactory = appComponentFactory;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setBackupAgentName(@Nullable String backupAgentName) {
+        this.backupAgentName = backupAgentName;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setClassLoaderName(@Nullable String classLoaderName) {
+        this.classLoaderName = classLoaderName;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setClassName(@Nullable String className) {
+        this.className = className;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setManageSpaceActivityName(@Nullable String manageSpaceActivityName) {
+        this.manageSpaceActivityName = manageSpaceActivityName;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setPermission(@Nullable String permission) {
+        this.permission = permission;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setTaskAffinity(@Nullable String taskAffinity) {
+        this.taskAffinity = taskAffinity;
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl setZygotePreloadName(@Nullable String zygotePreloadName) {
+        this.zygotePreloadName = zygotePreloadName;
+        return this;
+    }
 }
diff --git a/core/java/android/content/pm/parsing/ParsingPackageUtils.java b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
index 40754df..b4f2159 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageUtils.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
@@ -1795,6 +1795,7 @@
                 // Default false
                 .setAllowTaskReparenting(bool(false, R.styleable.AndroidManifestApplication_allowTaskReparenting, sa))
                 .setCantSaveState(bool(false, R.styleable.AndroidManifestApplication_cantSaveState, sa))
+                .setCrossProfile(bool(false, R.styleable.AndroidManifestApplication_crossProfile, sa))
                 .setDebuggable(bool(false, R.styleable.AndroidManifestApplication_debuggable, sa))
                 .setDefaultToDeviceProtectedStorage(bool(false, R.styleable.AndroidManifestApplication_defaultToDeviceProtectedStorage, sa))
                 .setDirectBootAware(bool(false, R.styleable.AndroidManifestApplication_directBootAware, sa))
diff --git a/core/java/android/content/pm/parsing/component/ParsedActivity.java b/core/java/android/content/pm/parsing/component/ParsedActivity.java
index 5495c22..d32171d 100644
--- a/core/java/android/content/pm/parsing/component/ParsedActivity.java
+++ b/core/java/android/content/pm/parsing/component/ParsedActivity.java
@@ -20,7 +20,7 @@
 import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE;
 import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
-import static android.content.pm.parsing.ParsingPackageImpl.sForString;
+import static android.content.pm.parsing.ParsingPackageImpl.sForInternedString;
 import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_UNSPECIFIED;
 
 import android.annotation.Nullable;
@@ -29,13 +29,11 @@
 import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageParser;
-import android.content.pm.parsing.ParsingPackageImpl;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
 
 import com.android.internal.util.DataClass;
-import com.android.internal.util.Parcelling;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
 
 /** @hide **/
@@ -80,8 +78,6 @@
     int rotationAnimation = -1;
     int colorMode;
 
-    boolean preferMinimalPostProcessing;
-
     @Nullable
     ActivityInfo.WindowLayout windowLayout;
 
@@ -137,7 +133,6 @@
         activity.setDirectBootAware(false);
         activity.rotationAnimation = ROTATION_ANIMATION_UNSPECIFIED;
         activity.colorMode = ActivityInfo.COLOR_MODE_DEFAULT;
-        activity.preferMinimalPostProcessing = ActivityInfo.MINIMAL_POST_PROCESSING_DEFAULT;
         if (hardwareAccelerated) {
             activity.setFlags(activity.getFlags() | ActivityInfo.FLAG_HARDWARE_ACCELERATED);
         }
@@ -268,11 +263,11 @@
         super.writeToParcel(dest, flags);
         dest.writeInt(this.theme);
         dest.writeInt(this.uiOptions);
-        sForString.parcel(this.targetActivity, dest, flags);
-        sForString.parcel(this.parentActivityName, dest, flags);
+        dest.writeString(this.targetActivity);
+        dest.writeString(this.parentActivityName);
         dest.writeString(this.taskAffinity);
         dest.writeInt(this.privateFlags);
-        sForString.parcel(this.permission, dest, flags);
+        sForInternedString.parcel(this.permission, dest, flags);
         dest.writeInt(this.launchMode);
         dest.writeInt(this.documentLaunchMode);
         dest.writeInt(this.maxRecents);
@@ -287,7 +282,6 @@
         dest.writeString(this.requestedVrComponent);
         dest.writeInt(this.rotationAnimation);
         dest.writeInt(this.colorMode);
-        dest.writeBoolean(this.preferMinimalPostProcessing);
         dest.writeBundle(this.metaData);
 
         if (windowLayout != null) {
@@ -311,11 +305,11 @@
         super(in);
         this.theme = in.readInt();
         this.uiOptions = in.readInt();
-        this.targetActivity = sForString.unparcel(in);
-        this.parentActivityName = sForString.unparcel(in);
+        this.targetActivity = in.readString();
+        this.parentActivityName = in.readString();
         this.taskAffinity = in.readString();
         this.privateFlags = in.readInt();
-        this.permission = sForString.unparcel(in);
+        this.permission = sForInternedString.unparcel(in);
         this.launchMode = in.readInt();
         this.documentLaunchMode = in.readInt();
         this.maxRecents = in.readInt();
@@ -330,7 +324,6 @@
         this.requestedVrComponent = in.readString();
         this.rotationAnimation = in.readInt();
         this.colorMode = in.readInt();
-        this.preferMinimalPostProcessing = in.readBoolean();
         this.metaData = in.readBundle();
         if (in.readBoolean()) {
             windowLayout = new ActivityInfo.WindowLayout(in);
@@ -440,10 +433,6 @@
         return colorMode;
     }
 
-    public boolean isPreferMinimalPostProcessing() {
-        return preferMinimalPostProcessing;
-    }
-
     @Nullable
     public ActivityInfo.WindowLayout getWindowLayout() {
         return windowLayout;
diff --git a/core/java/android/content/pm/parsing/component/ParsedActivityUtils.java b/core/java/android/content/pm/parsing/component/ParsedActivityUtils.java
index 555cdd0..1dcf262 100644
--- a/core/java/android/content/pm/parsing/component/ParsedActivityUtils.java
+++ b/core/java/android/content/pm/parsing/component/ParsedActivityUtils.java
@@ -129,12 +129,12 @@
                         | flag(ActivityInfo.FLAG_RESUME_WHILE_PAUSING, R.styleable.AndroidManifestActivity_resumeWhilePausing, sa)
                         | flag(ActivityInfo.FLAG_SHOW_WHEN_LOCKED, R.styleable.AndroidManifestActivity_showWhenLocked, sa)
                         | flag(ActivityInfo.FLAG_SUPPORTS_PICTURE_IN_PICTURE, R.styleable.AndroidManifestActivity_supportsPictureInPicture, sa)
-                        | flag(ActivityInfo.FLAG_TURN_SCREEN_ON, R.styleable.AndroidManifestActivity_turnScreenOn, sa);
+                        | flag(ActivityInfo.FLAG_TURN_SCREEN_ON, R.styleable.AndroidManifestActivity_turnScreenOn, sa)
+                        | flag(ActivityInfo.FLAG_PREFER_MINIMAL_POST_PROCESSING, R.styleable.AndroidManifestActivity_preferMinimalPostProcessing, sa);
 
                 activity.privateFlags |= flag(ActivityInfo.FLAG_INHERIT_SHOW_WHEN_LOCKED, R.styleable.AndroidManifestActivity_inheritShowWhenLocked, sa);
 
                 activity.colorMode = sa.getInt(R.styleable.AndroidManifestActivity_colorMode, ActivityInfo.COLOR_MODE_DEFAULT);
-                activity.preferMinimalPostProcessing = sa.getBoolean(R.styleable.AndroidManifestActivity_preferMinimalPostProcessing, ActivityInfo.MINIMAL_POST_PROCESSING_DEFAULT);
                 activity.documentLaunchMode = sa.getInt(R.styleable.AndroidManifestActivity_documentLaunchMode, ActivityInfo.DOCUMENT_LAUNCH_NONE);
                 activity.launchMode = sa.getInt(R.styleable.AndroidManifestActivity_launchMode, ActivityInfo.LAUNCH_MULTIPLE);
                 activity.lockTaskLaunchMode = sa.getInt(R.styleable.AndroidManifestActivity_lockTaskMode, 0);
diff --git a/core/java/android/content/pm/parsing/component/ParsedComponent.java b/core/java/android/content/pm/parsing/component/ParsedComponent.java
index 098d620..6323d69 100644
--- a/core/java/android/content/pm/parsing/component/ParsedComponent.java
+++ b/core/java/android/content/pm/parsing/component/ParsedComponent.java
@@ -16,7 +16,7 @@
 
 package android.content.pm.parsing.component;
 
-import static android.content.pm.parsing.ParsingPackageImpl.sForString;
+import static android.content.pm.parsing.ParsingPackageImpl.sForInternedString;
 
 import android.annotation.CallSuper;
 import android.annotation.NonNull;
@@ -131,7 +131,7 @@
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
-        sForString.parcel(this.name, dest, flags);
+        dest.writeString(this.name);
         dest.writeInt(this.getIcon());
         dest.writeInt(this.getLabelRes());
         dest.writeCharSequence(this.getNonLocalizedLabel());
@@ -139,7 +139,7 @@
         dest.writeInt(this.getBanner());
         dest.writeInt(this.getDescriptionRes());
         dest.writeInt(this.getFlags());
-        sForString.parcel(this.packageName, dest, flags);
+        sForInternedString.parcel(this.packageName, dest, flags);
         sForIntentInfos.parcel(this.getIntents(), dest, flags);
         dest.writeBundle(this.metaData);
     }
@@ -148,7 +148,7 @@
         // We use the boot classloader for all classes that we load.
         final ClassLoader boot = Object.class.getClassLoader();
         //noinspection ConstantConditions
-        this.name = sForString.unparcel(in);
+        this.name = in.readString();
         this.icon = in.readInt();
         this.labelRes = in.readInt();
         this.nonLocalizedLabel = in.readCharSequence();
@@ -157,7 +157,7 @@
         this.descriptionRes = in.readInt();
         this.flags = in.readInt();
         //noinspection ConstantConditions
-        this.packageName = sForString.unparcel(in);
+        this.packageName = sForInternedString.unparcel(in);
         this.intents = sForIntentInfos.unparcel(in);
         this.metaData = in.readBundle(boot);
     }
diff --git a/core/java/android/content/pm/parsing/component/ParsedInstrumentation.java b/core/java/android/content/pm/parsing/component/ParsedInstrumentation.java
index 396a145..aa33e79 100644
--- a/core/java/android/content/pm/parsing/component/ParsedInstrumentation.java
+++ b/core/java/android/content/pm/parsing/component/ParsedInstrumentation.java
@@ -16,7 +16,7 @@
 
 package android.content.pm.parsing.component;
 
-import static android.content.pm.parsing.ParsingPackageImpl.sForString;
+import static android.content.pm.parsing.ParsingPackageImpl.sForInternedString;
 
 import android.annotation.Nullable;
 import android.content.ComponentName;
@@ -25,7 +25,6 @@
 import android.text.TextUtils;
 
 import com.android.internal.util.DataClass;
-import com.android.internal.util.Parcelling;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
 
 /** @hide */
@@ -69,16 +68,16 @@
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         super.writeToParcel(dest, flags);
-        sForString.parcel(this.targetPackage, dest, flags);
-        sForString.parcel(this.targetProcesses, dest, flags);
+        sForInternedString.parcel(this.targetPackage, dest, flags);
+        sForInternedString.parcel(this.targetProcesses, dest, flags);
         dest.writeBoolean(this.handleProfiling);
         dest.writeBoolean(this.functionalTest);
     }
 
     protected ParsedInstrumentation(Parcel in) {
         super(in);
-        this.targetPackage = sForString.unparcel(in);
-        this.targetProcesses = sForString.unparcel(in);
+        this.targetPackage = sForInternedString.unparcel(in);
+        this.targetProcesses = sForInternedString.unparcel(in);
         this.handleProfiling = in.readByte() != 0;
         this.functionalTest = in.readByte() != 0;
     }
diff --git a/core/java/android/content/pm/parsing/component/ParsedMainComponent.java b/core/java/android/content/pm/parsing/component/ParsedMainComponent.java
index 59e9a84..a5e394d 100644
--- a/core/java/android/content/pm/parsing/component/ParsedMainComponent.java
+++ b/core/java/android/content/pm/parsing/component/ParsedMainComponent.java
@@ -16,7 +16,7 @@
 
 package android.content.pm.parsing.component;
 
-import static android.content.pm.parsing.ParsingPackageImpl.sForString;
+import static android.content.pm.parsing.ParsingPackageImpl.sForInternedString;
 
 import android.annotation.Nullable;
 import android.os.Parcel;
@@ -24,7 +24,6 @@
 import android.text.TextUtils;
 
 import com.android.internal.util.DataClass;
-import com.android.internal.util.Parcelling;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
 
 /** @hide */
@@ -79,7 +78,7 @@
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         super.writeToParcel(dest, flags);
-        sForString.parcel(this.processName, dest, flags);
+        sForInternedString.parcel(this.processName, dest, flags);
         dest.writeBoolean(this.directBootAware);
         dest.writeBoolean(this.enabled);
         dest.writeBoolean(this.exported);
@@ -89,7 +88,7 @@
 
     protected ParsedMainComponent(Parcel in) {
         super(in);
-        this.processName = sForString.unparcel(in);
+        this.processName = sForInternedString.unparcel(in);
         this.directBootAware = in.readBoolean();
         this.enabled = in.readBoolean();
         this.exported = in.readBoolean();
diff --git a/core/java/android/content/pm/parsing/component/ParsedPermission.java b/core/java/android/content/pm/parsing/component/ParsedPermission.java
index 6c36ecb..ced3226 100644
--- a/core/java/android/content/pm/parsing/component/ParsedPermission.java
+++ b/core/java/android/content/pm/parsing/component/ParsedPermission.java
@@ -16,8 +16,6 @@
 
 package android.content.pm.parsing.component;
 
-import static android.content.pm.parsing.ParsingPackageImpl.sForString;
-
 import android.annotation.Nullable;
 import android.content.pm.PermissionInfo;
 import android.os.Parcel;
@@ -26,7 +24,6 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.DataClass;
-import com.android.internal.util.Parcelling;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
 
 /** @hide */
@@ -123,7 +120,7 @@
     public void writeToParcel(Parcel dest, int flags) {
         super.writeToParcel(dest, flags);
         dest.writeString(this.backgroundPermission);
-        sForString.parcel(this.group, dest, flags);
+        dest.writeString(this.group);
         dest.writeInt(this.requestRes);
         dest.writeInt(this.protectionLevel);
         dest.writeBoolean(this.tree);
@@ -135,7 +132,7 @@
         // We use the boot classloader for all classes that we load.
         final ClassLoader boot = Object.class.getClassLoader();
         this.backgroundPermission = in.readString();
-        this.group = sForString.unparcel(in);
+        this.group = in.readString();
         this.requestRes = in.readInt();
         this.protectionLevel = in.readInt();
         this.tree = in.readBoolean();
diff --git a/core/java/android/content/pm/parsing/component/ParsedProvider.java b/core/java/android/content/pm/parsing/component/ParsedProvider.java
index d2c531d..fcf6e87 100644
--- a/core/java/android/content/pm/parsing/component/ParsedProvider.java
+++ b/core/java/android/content/pm/parsing/component/ParsedProvider.java
@@ -16,7 +16,7 @@
 
 package android.content.pm.parsing.component;
 
-import static android.content.pm.parsing.ParsingPackageImpl.sForString;
+import static android.content.pm.parsing.ParsingPackageImpl.sForInternedString;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -28,7 +28,6 @@
 import android.text.TextUtils;
 
 import com.android.internal.util.DataClass;
-import com.android.internal.util.Parcelling;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
 
 /** @hide **/
@@ -106,10 +105,10 @@
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         super.writeToParcel(dest, flags);
-        sForString.parcel(this.authority, dest, flags);
+        dest.writeString(this.authority);
         dest.writeBoolean(this.syncable);
-        sForString.parcel(this.readPermission, dest, flags);
-        sForString.parcel(this.writePermission, dest, flags);
+        sForInternedString.parcel(this.readPermission, dest, flags);
+        sForInternedString.parcel(this.writePermission, dest, flags);
         dest.writeBoolean(this.grantUriPermissions);
         dest.writeBoolean(this.forceUriPermissions);
         dest.writeBoolean(this.multiProcess);
@@ -124,10 +123,10 @@
     protected ParsedProvider(Parcel in) {
         super(in);
         //noinspection ConstantConditions
-        this.authority = sForString.unparcel(in);
+        this.authority = in.readString();
         this.syncable = in.readBoolean();
-        this.readPermission = sForString.unparcel(in);
-        this.writePermission = sForString.unparcel(in);
+        this.readPermission = sForInternedString.unparcel(in);
+        this.writePermission = sForInternedString.unparcel(in);
         this.grantUriPermissions = in.readBoolean();
         this.forceUriPermissions = in.readBoolean();
         this.multiProcess = in.readBoolean();
diff --git a/core/java/android/content/pm/parsing/component/ParsedService.java b/core/java/android/content/pm/parsing/component/ParsedService.java
index 591eef7..7adb262 100644
--- a/core/java/android/content/pm/parsing/component/ParsedService.java
+++ b/core/java/android/content/pm/parsing/component/ParsedService.java
@@ -16,7 +16,7 @@
 
 package android.content.pm.parsing.component;
 
-import static android.content.pm.parsing.ParsingPackageImpl.sForString;
+import static android.content.pm.parsing.ParsingPackageImpl.sForInternedString;
 
 import android.annotation.Nullable;
 import android.content.ComponentName;
@@ -25,7 +25,6 @@
 import android.text.TextUtils;
 
 import com.android.internal.util.DataClass;
-import com.android.internal.util.Parcelling;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
 
 /** @hide **/
@@ -67,7 +66,7 @@
     public void writeToParcel(Parcel dest, int flags) {
         super.writeToParcel(dest, flags);
         dest.writeInt(this.foregroundServiceType);
-        sForString.parcel(this.permission, dest, flags);
+        sForInternedString.parcel(this.permission, dest, flags);
     }
 
     public ParsedService() {
@@ -76,7 +75,7 @@
     protected ParsedService(Parcel in) {
         super(in);
         this.foregroundServiceType = in.readInt();
-        this.permission = sForString.unparcel(in);
+        this.permission = sForInternedString.unparcel(in);
     }
 
     public static final Parcelable.Creator<ParsedService> CREATOR = new Creator<ParsedService>() {
diff --git a/core/java/android/hardware/soundtrigger/ConversionUtil.java b/core/java/android/hardware/soundtrigger/ConversionUtil.java
index dbf33ca..3d763e6 100644
--- a/core/java/android/hardware/soundtrigger/ConversionUtil.java
+++ b/core/java/android/hardware/soundtrigger/ConversionUtil.java
@@ -32,7 +32,11 @@
 import android.media.soundtrigger_middleware.SoundModel;
 import android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor;
 import android.media.soundtrigger_middleware.SoundTriggerModuleProperties;
+import android.os.SharedMemory;
+import android.system.ErrnoException;
 
+import java.io.FileDescriptor;
+import java.nio.ByteBuffer;
 import java.util.Arrays;
 import java.util.UUID;
 
@@ -105,7 +109,8 @@
         aidlModel.type = apiModel.type;
         aidlModel.uuid = api2aidlUuid(apiModel.uuid);
         aidlModel.vendorUuid = api2aidlUuid(apiModel.vendorUuid);
-        aidlModel.data = Arrays.copyOf(apiModel.data, apiModel.data.length);
+        aidlModel.data = byteArrayToSharedMemory(apiModel.data, "SoundTrigger SoundModel");
+        aidlModel.dataSize = apiModel.data.length;
         return aidlModel;
     }
 
@@ -352,4 +357,20 @@
         }
         return result;
     }
+
+    private static @Nullable FileDescriptor byteArrayToSharedMemory(byte[] data, String name) {
+        if (data.length == 0) {
+            return null;
+        }
+
+        try {
+            SharedMemory shmem = SharedMemory.create(name != null ? name : "", data.length);
+            ByteBuffer buffer = shmem.mapReadWrite();
+            buffer.put(data);
+            shmem.unmap(buffer);
+            return shmem.getFileDescriptor();
+        } catch (ErrnoException e) {
+            throw new RuntimeException(e);
+        }
+    }
 }
diff --git a/core/java/android/inputmethodservice/InlineSuggestionSession.java b/core/java/android/inputmethodservice/InlineSuggestionSession.java
index edae06a..c31cb4e 100644
--- a/core/java/android/inputmethodservice/InlineSuggestionSession.java
+++ b/core/java/android/inputmethodservice/InlineSuggestionSession.java
@@ -27,6 +27,8 @@
 import android.os.Looper;
 import android.os.RemoteException;
 import android.util.Log;
+import android.view.autofill.AutofillId;
+import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InlineSuggestionsRequest;
 import android.view.inputmethod.InlineSuggestionsResponse;
 
@@ -38,15 +40,33 @@
 import java.util.function.Supplier;
 
 /**
- * Maintains an active inline suggestion session.
+ * Maintains an active inline suggestion session with the autofill manager service.
  *
  * <p>
- * Each session corresponds to one inline suggestion request, but there may be multiple callbacks
- * with the inline suggestions response.
+ * Each session corresponds to one {@link InlineSuggestionsRequest} and one {@link
+ * IInlineSuggestionsResponseCallback}, but there may be multiple invocations of the response
+ * callback for the same field or different fields in the same component.
+ *
+ * <p>
+ * The data flow from IMS point of view is:
+ * Before calling {@link InputMethodService#onStartInputView(EditorInfo, boolean)}, call the {@link
+ * #notifyOnStartInputView(AutofillId)}
+ * ->
+ * [async] {@link IInlineSuggestionsRequestCallback#onInputMethodStartInputView(AutofillId)}
+ * --- process boundary ---
+ * ->
+ * {@link com.android.server.inputmethod.InputMethodManagerService
+ * .InlineSuggestionsRequestCallbackDecorator#onInputMethodStartInputView(AutofillId)}
+ * ->
+ * {@link com.android.server.autofill.InlineSuggestionSession
+ * .InlineSuggestionsRequestCallbackImpl#onInputMethodStartInputView(AutofillId)}
+ *
+ * <p>
+ * The data flow for {@link #notifyOnFinishInputView(AutofillId)} is similar.
  */
 class InlineSuggestionSession {
 
-    private static final String TAG = InlineSuggestionSession.class.getSimpleName();
+    private static final String TAG = "ImsInlineSuggestionSession";
 
     private final Handler mHandler = new Handler(Looper.getMainLooper(), null, true);
 
@@ -59,6 +79,8 @@
     @NonNull
     private final Supplier<String> mClientPackageNameSupplier;
     @NonNull
+    private final Supplier<AutofillId> mClientAutofillIdSupplier;
+    @NonNull
     private final Supplier<InlineSuggestionsRequest> mRequestSupplier;
     @NonNull
     private final Supplier<IBinder> mHostInputTokenSupplier;
@@ -70,18 +92,39 @@
     InlineSuggestionSession(@NonNull ComponentName componentName,
             @NonNull IInlineSuggestionsRequestCallback callback,
             @NonNull Supplier<String> clientPackageNameSupplier,
+            @NonNull Supplier<AutofillId> clientAutofillIdSupplier,
             @NonNull Supplier<InlineSuggestionsRequest> requestSupplier,
             @NonNull Supplier<IBinder> hostInputTokenSupplier,
-            @NonNull Consumer<InlineSuggestionsResponse> responseConsumer) {
+            @NonNull Consumer<InlineSuggestionsResponse> responseConsumer,
+            boolean inputViewStarted) {
         mComponentName = componentName;
         mCallback = callback;
         mResponseCallback = new InlineSuggestionsResponseCallbackImpl(this);
         mClientPackageNameSupplier = clientPackageNameSupplier;
+        mClientAutofillIdSupplier = clientAutofillIdSupplier;
         mRequestSupplier = requestSupplier;
         mHostInputTokenSupplier = hostInputTokenSupplier;
         mResponseConsumer = responseConsumer;
 
-        makeInlineSuggestionsRequest();
+        makeInlineSuggestionsRequest(inputViewStarted);
+    }
+
+    void notifyOnStartInputView(AutofillId imeFieldId) {
+        if (DEBUG) Log.d(TAG, "notifyOnStartInputView");
+        try {
+            mCallback.onInputMethodStartInputView(imeFieldId);
+        } catch (RemoteException e) {
+            Log.w(TAG, "onInputMethodStartInputView() remote exception:" + e);
+        }
+    }
+
+    void notifyOnFinishInputView(AutofillId imeFieldId) {
+        if (DEBUG) Log.d(TAG, "notifyOnFinishInputView");
+        try {
+            mCallback.onInputMethodFinishInputView(imeFieldId);
+        } catch (RemoteException e) {
+            Log.w(TAG, "onInputMethodFinishInputView() remote exception:" + e);
+        }
     }
 
     /**
@@ -97,7 +140,7 @@
      * Autofill Session through
      * {@link IInlineSuggestionsRequestCallback#onInlineSuggestionsRequest}.
      */
-    private void makeInlineSuggestionsRequest() {
+    private void makeInlineSuggestionsRequest(boolean inputViewStarted) {
         try {
             final InlineSuggestionsRequest request = mRequestSupplier.get();
             if (request == null) {
@@ -107,28 +150,37 @@
                 mCallback.onInlineSuggestionsUnsupported();
             } else {
                 request.setHostInputToken(mHostInputTokenSupplier.get());
-                mCallback.onInlineSuggestionsRequest(request, mResponseCallback);
+                mCallback.onInlineSuggestionsRequest(request, mResponseCallback,
+                        mClientAutofillIdSupplier.get(), inputViewStarted);
             }
         } catch (RemoteException e) {
             Log.w(TAG, "makeInlinedSuggestionsRequest() remote exception:" + e);
         }
     }
 
-    private void handleOnInlineSuggestionsResponse(@NonNull InlineSuggestionsResponse response) {
+    private void handleOnInlineSuggestionsResponse(@NonNull AutofillId fieldId,
+            @NonNull InlineSuggestionsResponse response) {
         if (mInvalidated) {
             if (DEBUG) {
                 Log.d(TAG, "handleOnInlineSuggestionsResponse() called on invalid session");
             }
             return;
         }
-        // TODO(b/149522488): checking the current focused input field to make sure we don't send
-        //  inline responses for previous input field
-        if (!mComponentName.getPackageName().equals(mClientPackageNameSupplier.get())) {
+
+        if (!mComponentName.getPackageName().equals(mClientPackageNameSupplier.get())
+                || !fieldId.equalsIgnoreSession(mClientAutofillIdSupplier.get())) {
             if (DEBUG) {
-                Log.d(TAG, "handleOnInlineSuggestionsResponse() called on the wrong package name");
+                Log.d(TAG,
+                        "handleOnInlineSuggestionsResponse() called on the wrong package/field "
+                                + "name: " + mComponentName.getPackageName() + " v.s. "
+                                + mClientPackageNameSupplier.get() + ", " + fieldId + " v.s. "
+                                + mClientAutofillIdSupplier.get());
             }
             return;
         }
+        if (DEBUG) {
+            Log.d(TAG, "IME receives response: " + response.getInlineSuggestions().size());
+        }
         mResponseConsumer.accept(response);
     }
 
@@ -145,13 +197,13 @@
         }
 
         @Override
-        public void onInlineSuggestionsResponse(InlineSuggestionsResponse response)
-                throws RemoteException {
+        public void onInlineSuggestionsResponse(AutofillId fieldId,
+                InlineSuggestionsResponse response) {
             final InlineSuggestionSession session = mInlineSuggestionSession.get();
             if (session != null) {
                 session.mHandler.sendMessage(obtainMessage(
                         InlineSuggestionSession::handleOnInlineSuggestionsResponse, session,
-                        response));
+                        fieldId, response));
             }
         }
     }
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 27839e7..9e63934 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -73,6 +73,7 @@
 import android.view.WindowInsets;
 import android.view.WindowManager;
 import android.view.animation.AnimationUtils;
+import android.view.autofill.AutofillId;
 import android.view.inputmethod.CompletionInfo;
 import android.view.inputmethod.CursorAnchorInfo;
 import android.view.inputmethod.EditorInfo;
@@ -443,6 +444,16 @@
     final Insets mTmpInsets = new Insets();
     final int[] mTmpLocation = new int[2];
 
+    /**
+     * We use a separate {@code mInlineLock} to make sure {@code mInlineSuggestionSession} is
+     * only accessed synchronously. Although when the lock is introduced, all the calls are from
+     * the main thread so the lock is not really necessarily (but for the same reason it also
+     * doesn't hurt), it's still being added as a safety guard to make sure in the future we
+     * don't add more code causing race condition when updating the {@code
+     * mInlineSuggestionSession}.
+     */
+    private final Object mInlineLock = new Object();
+    @GuardedBy("mInlineLock")
     @Nullable
     private InlineSuggestionSession mInlineSuggestionSession;
 
@@ -821,13 +832,15 @@
             return;
         }
 
-        if (mInlineSuggestionSession != null) {
-            mInlineSuggestionSession.invalidateSession();
+        synchronized (mInlineLock) {
+            if (mInlineSuggestionSession != null) {
+                mInlineSuggestionSession.invalidateSession();
+            }
+            mInlineSuggestionSession = new InlineSuggestionSession(requestInfo.getComponentName(),
+                    callback, this::getEditorInfoPackageName, this::getEditorInfoAutofillId,
+                    () -> onCreateInlineSuggestionsRequest(requestInfo.getUiExtras()),
+                    this::getHostInputToken, this::onInlineSuggestionsResponse, mInputViewStarted);
         }
-        mInlineSuggestionSession = new InlineSuggestionSession(requestInfo.getComponentName(),
-                callback, this::getEditorInfoPackageName,
-                () -> onCreateInlineSuggestionsRequest(requestInfo.getUiExtras()),
-                this::getHostInputToken, this::onInlineSuggestionsResponse);
     }
 
     @Nullable
@@ -838,6 +851,14 @@
         return null;
     }
 
+    @Nullable
+    private AutofillId getEditorInfoAutofillId() {
+        if (mInputEditorInfo != null) {
+            return mInputEditorInfo.autofillId;
+        }
+        return null;
+    }
+
     /**
      * Returns the {@link IBinder} input token from the host view root.
      */
@@ -2184,6 +2205,11 @@
             if (!mInputViewStarted) {
                 if (DEBUG) Log.v(TAG, "CALL: onStartInputView");
                 mInputViewStarted = true;
+                synchronized (mInlineLock) {
+                    if (mInlineSuggestionSession != null) {
+                        mInlineSuggestionSession.notifyOnStartInputView(getEditorInfoAutofillId());
+                    }
+                }
                 onStartInputView(mInputEditorInfo, false);
             }
         } else if (!mCandidatesViewStarted) {
@@ -2224,6 +2250,11 @@
     private void finishViews(boolean finishingInput) {
         if (mInputViewStarted) {
             if (DEBUG) Log.v(TAG, "CALL: onFinishInputView");
+            synchronized (mInlineLock) {
+                if (mInlineSuggestionSession != null) {
+                    mInlineSuggestionSession.notifyOnFinishInputView(getEditorInfoAutofillId());
+                }
+            }
             onFinishInputView(finishingInput);
         } else if (mCandidatesViewStarted) {
             if (DEBUG) Log.v(TAG, "CALL: onFinishCandidatesView");
@@ -2336,6 +2367,11 @@
             if (mShowInputRequested) {
                 if (DEBUG) Log.v(TAG, "CALL: onStartInputView");
                 mInputViewStarted = true;
+                synchronized (mInlineLock) {
+                    if (mInlineSuggestionSession != null) {
+                        mInlineSuggestionSession.notifyOnStartInputView(getEditorInfoAutofillId());
+                    }
+                }
                 onStartInputView(mInputEditorInfo, restarting);
                 startExtractingText(true);
             } else if (mCandidatesVisibility == View.VISIBLE) {
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 62eff45..38ef814 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -3323,19 +3323,15 @@
     // of dependent changes that would conflict throughout the automerger graph. Having this
     // temporarily helps with the process of going through with all these dependent changes across
     // the entire tree.
-    // STOPSHIP (b/148055573) : remove this before R is released.
     /**
      * @hide
      * Register a NetworkAgent with ConnectivityService.
      * @return Network corresponding to NetworkAgent.
-     * @deprecated use the version that takes a NetworkScore and a provider ID.
      */
     @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
-    @Deprecated
     public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
             NetworkCapabilities nc, int score, NetworkAgentConfig config) {
-        final NetworkScore ns = new NetworkScore.Builder().setLegacyScore(score).build();
-        return registerNetworkAgent(messenger, ni, lp, nc, ns, config, NetworkProvider.ID_NONE);
+        return registerNetworkAgent(messenger, ni, lp, nc, score, config, NetworkProvider.ID_NONE);
     }
 
     /**
@@ -3345,7 +3341,7 @@
      */
     @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
     public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
-            NetworkCapabilities nc, NetworkScore score, NetworkAgentConfig config, int providerId) {
+            NetworkCapabilities nc, int score, NetworkAgentConfig config, int providerId) {
         try {
             return mService.registerNetworkAgent(messenger, ni, lp, nc, score, config, providerId);
         } catch (RemoteException e) {
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index d84d05d..1434560 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -26,7 +26,6 @@
 import android.net.NetworkInfo;
 import android.net.NetworkQuotaInfo;
 import android.net.NetworkRequest;
-import android.net.NetworkScore;
 import android.net.NetworkState;
 import android.net.ISocketKeepaliveCallback;
 import android.net.ProxyInfo;
@@ -164,7 +163,7 @@
     void declareNetworkRequestUnfulfillable(in NetworkRequest request);
 
     Network registerNetworkAgent(in Messenger messenger, in NetworkInfo ni, in LinkProperties lp,
-            in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config,
+            in NetworkCapabilities nc, int score, in NetworkAgentConfig config,
             in int factorySerialNumber);
 
     NetworkRequest requestNetwork(in NetworkCapabilities networkCapabilities,
diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java
index ddf8dbb..7cc569a 100644
--- a/core/java/android/net/NetworkAgent.java
+++ b/core/java/android/net/NetworkAgent.java
@@ -117,6 +117,13 @@
     public static final int EVENT_NETWORK_PROPERTIES_CHANGED = BASE + 3;
 
     /**
+     * Centralize the place where base network score, and network score scaling, will be
+     * stored, so as we can consistently compare apple and oranges, or wifi, ethernet and LTE
+     * @hide
+     */
+    public static final int WIFI_BASE_SCORE = 60;
+
+    /**
      * Sent by the NetworkAgent to ConnectivityService to pass the current
      * network score.
      * obj = network score Integer
@@ -265,13 +272,7 @@
      */
     public static final int CMD_REMOVE_KEEPALIVE_PACKET_FILTER = BASE + 17;
 
-    // STOPSHIP (b/148055573) : remove this before R is released.
-    private static NetworkScore makeNetworkScore(int score) {
-        return new NetworkScore.Builder().setLegacyScore(score).build();
-    }
-
     /** @hide TODO: remove and replace usage with the public constructor. */
-    // STOPSHIP (b/148055573) : remove this before R is released.
     public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
             NetworkCapabilities nc, LinkProperties lp, int score) {
         this(looper, context, logTag, ni, nc, lp, score, null, NetworkProvider.ID_NONE);
@@ -279,7 +280,6 @@
     }
 
     /** @hide TODO: remove and replace usage with the public constructor. */
-    // STOPSHIP (b/148055573) : remove this before R is released.
     public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
             NetworkCapabilities nc, LinkProperties lp, int score, NetworkAgentConfig config) {
         this(looper, context, logTag, ni, nc, lp, score, config, NetworkProvider.ID_NONE);
@@ -287,7 +287,6 @@
     }
 
     /** @hide TODO: remove and replace usage with the public constructor. */
-    // STOPSHIP (b/148055573) : remove this before R is released.
     public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
             NetworkCapabilities nc, LinkProperties lp, int score, int providerId) {
         this(looper, context, logTag, ni, nc, lp, score, null, providerId);
@@ -295,12 +294,10 @@
     }
 
     /** @hide TODO: remove and replace usage with the public constructor. */
-    // STOPSHIP (b/148055573) : remove this before R is released.
     public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
             NetworkCapabilities nc, LinkProperties lp, int score, NetworkAgentConfig config,
             int providerId) {
-        this(looper, context, logTag, nc, lp, makeNetworkScore(score), config, providerId, ni,
-                true /* legacy */);
+        this(looper, context, logTag, nc, lp, score, config, providerId, ni, true /* legacy */);
         register();
     }
 
@@ -326,9 +323,8 @@
      * @param provider the {@link NetworkProvider} managing this agent.
      */
     public NetworkAgent(@NonNull Context context, @NonNull Looper looper, @NonNull String logTag,
-            @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp,
-            @NonNull NetworkScore score, @NonNull NetworkAgentConfig config,
-            @Nullable NetworkProvider provider) {
+            @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp, int score,
+            @NonNull NetworkAgentConfig config, @Nullable NetworkProvider provider) {
         this(looper, context, logTag, nc, lp, score, config,
                 provider == null ? NetworkProvider.ID_NONE : provider.getProviderId(),
                 getLegacyNetworkInfo(config), false /* legacy */);
@@ -338,12 +334,12 @@
         public final Context context;
         public final NetworkCapabilities capabilities;
         public final LinkProperties properties;
-        public final NetworkScore score;
+        public final int score;
         public final NetworkAgentConfig config;
         public final NetworkInfo info;
         InitialConfiguration(@NonNull Context context, @NonNull NetworkCapabilities capabilities,
-                @NonNull LinkProperties properties, @NonNull NetworkScore score,
-                @NonNull NetworkAgentConfig config, @NonNull NetworkInfo info) {
+                @NonNull LinkProperties properties, int score, @NonNull NetworkAgentConfig config,
+                @NonNull NetworkInfo info) {
             this.context = context;
             this.capabilities = capabilities;
             this.properties = properties;
@@ -355,7 +351,7 @@
     private volatile InitialConfiguration mInitialConfiguration;
 
     private NetworkAgent(@NonNull Looper looper, @NonNull Context context, @NonNull String logTag,
-            @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp, NetworkScore score,
+            @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp, int score,
             @NonNull NetworkAgentConfig config, int providerId, @NonNull NetworkInfo ni,
             boolean legacy) {
         mHandler = new NetworkAgentHandler(looper);
@@ -650,8 +646,22 @@
      * Must be called by the agent to update the score of this network.
      * @param score the new score.
      */
-    public void sendNetworkScore(@NonNull final NetworkScore score) {
-        queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, score);
+    public void sendNetworkScore(int score) {
+        if (score < 0) {
+            throw new IllegalArgumentException("Score must be >= 0");
+        }
+        final NetworkScore ns = new NetworkScore();
+        ns.putIntExtension(NetworkScore.LEGACY_SCORE, score);
+        updateScore(ns);
+    }
+
+    /**
+     * Must be called by the agent when it has a new {@link NetworkScore} for this network.
+     * @param ns the new score.
+     * @hide TODO: unhide the NetworkScore class, and rename to sendNetworkScore.
+     */
+    public void updateScore(@NonNull NetworkScore ns) {
+        queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, new NetworkScore(ns));
     }
 
     /**
diff --git a/core/java/android/net/NetworkScore.java b/core/java/android/net/NetworkScore.java
index ae17378..13f2994 100644
--- a/core/java/android/net/NetworkScore.java
+++ b/core/java/android/net/NetworkScore.java
@@ -15,18 +15,12 @@
  */
 package android.net;
 
-import android.annotation.IntDef;
-import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.SystemApi;
-import android.annotation.TestApi;
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.Objects;
 
 /**
@@ -34,392 +28,57 @@
  *
  * A NetworkScore object represents the characteristics of a network that affects how good the
  * network is considered for a particular use.
- *
- * This class is not thread-safe.
  * @hide
  */
-@TestApi
-@SystemApi
 public final class NetworkScore implements Parcelable {
-    /** An object containing scoring-relevant metrics for a network. */
-    public static class Metrics {
-        /** Value meaning the latency is unknown. */
-        public static final int LATENCY_UNKNOWN = -1;
 
-        /** Value meaning the bandwidth is unknown. */
-        public static final int BANDWIDTH_UNKNOWN = -1;
-
-        /**
-         * Round-trip delay in milliseconds to the relevant destination for this Metrics object.
-         *
-         * LATENCY_UNKNOWN if unknown.
-         */
-        @IntRange(from = LATENCY_UNKNOWN)
-        public final int latencyMs;
-
-        /**
-         * Downlink in kB/s with the relevant destination for this Metrics object.
-         *
-         * BANDWIDTH_UNKNOWN if unknown. If directional bandwidth is unknown, up and downlink
-         * bandwidth can have the same value.
-         */
-        @IntRange(from = BANDWIDTH_UNKNOWN)
-        public final int downlinkBandwidthKBps;
-
-        /**
-         * Uplink in kB/s with the relevant destination for this Metrics object.
-         *
-         * BANDWIDTH_UNKNOWN if unknown. If directional bandwidth is unknown, up and downlink
-         * bandwidth can have the same value.
-         */
-        @IntRange(from = BANDWIDTH_UNKNOWN)
-        public final int uplinkBandwidthKBps;
-
-        /** Constructor */
-        public Metrics(@IntRange(from = LATENCY_UNKNOWN) final int latency,
-                @IntRange(from = BANDWIDTH_UNKNOWN) final int downlinkBandwidth,
-                @IntRange(from = BANDWIDTH_UNKNOWN) final int uplinkBandwidth) {
-            latencyMs = latency;
-            downlinkBandwidthKBps = downlinkBandwidth;
-            uplinkBandwidthKBps = uplinkBandwidth;
-        }
-
-        /** toString */
-        public String toString() {
-            return "latency = " + latencyMs + " downlinkBandwidth = " + downlinkBandwidthKBps
-                    + "uplinkBandwidth = " + uplinkBandwidthKBps;
-        }
-
-        @NonNull
-        public static final Metrics EMPTY =
-                new Metrics(LATENCY_UNKNOWN, BANDWIDTH_UNKNOWN, BANDWIDTH_UNKNOWN);
-    }
-
-    /** @hide */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(flag = true, prefix = "POLICY_", value = {
-            POLICY_LOCKDOWN_VPN,
-            POLICY_VPN,
-            POLICY_IGNORE_ON_WIFI,
-            POLICY_DEFAULT_SUBSCRIPTION
-    })
-    public @interface Policy {
-    }
-
-    /**
-     * This network is a VPN with lockdown enabled.
-     *
-     * If a network with this bit is present in the list of candidates and not connected,
-     * no network can satisfy the request.
-     */
-    public static final int POLICY_LOCKDOWN_VPN = 1 << 0;
-
-    /**
-     * This network is a VPN.
-     *
-     * If a network with this bit is present and the request UID is included in the UID ranges
-     * of this network, it outscores all other networks without this bit.
-     */
-    public static final int POLICY_VPN = 1 << 1;
-
-    /**
-     * This network should not be used if a previously validated WiFi network is available.
-     *
-     * If a network with this bit is present and a previously validated WiFi is present too, the
-     * network with this bit is outscored by it. This stays true if the WiFi network
-     * becomes unvalidated : this network will not be considered.
-     */
-    public static final int POLICY_IGNORE_ON_WIFI = 1 << 2;
-
-    /**
-     * This network is the default subscription for this transport.
-     *
-     * If a network with this bit is present, other networks of the same transport without this
-     * bit are outscored by it. A device with two active subscriptions and a setting
-     * to decide the default one would have this policy bit on the network for the default
-     * subscription so that when both are active at the same time, the device chooses the
-     * network associated with the default subscription rather than the one with the best link
-     * quality (which will happen if policy doesn't dictate otherwise).
-     */
-    public static final int POLICY_DEFAULT_SUBSCRIPTION = 1 << 3;
-
-    /**
-     * Policy bits for this network. Filled in by the NetworkAgent.
-     */
-    private final int mPolicy;
-
-    /**
-     * Predicted metrics to the gateway (it contains latency and bandwidth to the gateway).
-     * This is filled by the NetworkAgent with the theoretical values of the link if available,
-     * although they may fill it with predictions from historical data if available.
-     * Note that while this member cannot be null, any and all of its members can be unknown.
-     */
+    // The key of bundle which is used to get the legacy network score of NetworkAgentInfo.
+    // TODO: Remove this when the transition to NetworkScore is over.
+    public static final String LEGACY_SCORE = "LEGACY_SCORE";
     @NonNull
-    private final Metrics mLinkLayerMetrics;
+    private final Bundle mExtensions;
 
-    /**
-     * Predicted metrics to representative servers.
-     * This is filled by connectivity with (if available) a best-effort estimate of the performance
-     * information to servers the user connects to in similar circumstances, and predicted from
-     * actual measurements if possible.
-     * Note that while this member cannot be null, any and all of its members can be unknown.
-     */
-    @NonNull
-    private final Metrics mEndToEndMetrics;
+    public NetworkScore() {
+        mExtensions = new Bundle();
+    }
 
-    /** Value meaning the signal strength is unknown. */
-    public static final int UNKNOWN_SIGNAL_STRENGTH = -1;
-
-    /** The smallest meaningful signal strength. */
-    public static final int MIN_SIGNAL_STRENGTH = 0;
-
-    /** The largest meaningful signal strength. */
-    public static final int MAX_SIGNAL_STRENGTH = 1000;
-
-    /**
-     * User-visible measure of the strength of the signal normalized 1~1000.
-     * This represents a measure of the signal strength for this network.
-     * If unknown, this has value UNKNOWN_SIGNAL_STRENGTH.
-     */
-    // A good way to populate this value is to fill it with the number of bars displayed in
-    // the system UI, scaled 0 to 1000. This is what the user sees and it makes sense to them.
-    // Cellular for example could quantize the ASU value (see SignalStrength#getAsuValue) into
-    // this, while WiFi could scale the RSSI (see WifiManager#calculateSignalLevel).
-    @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
-    private final int mSignalStrength;
-
-    /** @hide */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(flag = true, prefix = "RANGE_", value = {
-            RANGE_UNKNOWN, RANGE_CLOSE, RANGE_SHORT, RANGE_MEDIUM, RANGE_LONG
-    })
-    public @interface Range {
+    public NetworkScore(@NonNull NetworkScore source) {
+        mExtensions = new Bundle(source.mExtensions);
     }
 
     /**
-     * The range of this network is not known.
-     * This can be used by VPN the range of which depends on the range of the underlying network.
+     * Put the value of parcelable inside the bundle by key.
      */
-    public static final int RANGE_UNKNOWN = 0;
-
-    /**
-     * This network typically only operates at close range, like an NFC beacon.
-     */
-    public static final int RANGE_CLOSE = 1;
-
-    /**
-     * This network typically operates at a range of a few meters to a few dozen meters, like WiFi.
-     */
-    public static final int RANGE_SHORT = 2;
-
-    /**
-     * This network typically operates at a range of a few dozen to a few hundred meters, like CBRS.
-     */
-    public static final int RANGE_MEDIUM = 3;
-
-    /**
-     * This network typically offers continuous connectivity up to many kilometers away, like LTE.
-     */
-    public static final int RANGE_LONG = 4;
-
-    /**
-     * The typical range of this networking technology.
-     *
-     * This is one of the RANGE_* constants and is filled by the NetworkAgent.
-     * This may be useful when evaluating how desirable a network is, because for two networks that
-     * have equivalent performance and cost, the one that won't lose IP continuity when the user
-     * moves is probably preferable.
-     * Agents should fill this with the largest typical range this technology provides. See the
-     * descriptions of the individual constants for guidance.
-     *
-     * If unknown, this is set to RANGE_UNKNOWN.
-     */
-    @Range private final int mRange;
-
-    /**
-     * A prediction of whether this network is likely to be unusable in a few seconds.
-     *
-     * NetworkAgents set this to true to mean they are aware that usability is limited due to
-     * low signal strength, congestion, or other reasons, and indicates that the system should
-     * only use this network as a last resort. An example would be a WiFi network when the device
-     * is about to move outside of range.
-     *
-     * This is filled by the NetworkAgent. Agents that don't know whether this network is likely
-     * to be unusable soon should set this to false.
-     */
-    private final boolean mExiting;
-
-    /**
-     * The legacy score, as a migration strategy from Q to R.
-     * STOPSHIP : remove this before R ships.
-     */
-    private final int mLegacyScore;
-
-    /**
-     * Create a new NetworkScore object.
-     */
-    private NetworkScore(@Policy final int policy, @Nullable final Metrics l2Perf,
-            @Nullable final Metrics e2ePerf,
-            @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
-            final int signalStrength,
-            @Range final int range, final boolean exiting, final int legacyScore) {
-        mPolicy = policy;
-        mLinkLayerMetrics = null != l2Perf ? l2Perf : Metrics.EMPTY;
-        mEndToEndMetrics = null != e2ePerf ? e2ePerf : Metrics.EMPTY;
-        mSignalStrength = signalStrength;
-        mRange = range;
-        mExiting = exiting;
-        mLegacyScore = legacyScore;
+    public void putExtension(@Nullable String key, @Nullable Parcelable value) {
+        mExtensions.putParcelable(key, value);
     }
 
     /**
-     * Utility function to return a copy of this with a different exiting value.
+     * Put the value of int inside the bundle by key.
      */
-    @NonNull public NetworkScore withExiting(final boolean exiting) {
-        return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToEndMetrics,
-                mSignalStrength, mRange, exiting, mLegacyScore);
+    public void putIntExtension(@Nullable String key, int value) {
+        mExtensions.putInt(key, value);
     }
 
     /**
-     * Utility function to return a copy of this with a different signal strength.
+     * Get the value of non primitive type by key.
      */
-    @NonNull public NetworkScore withSignalStrength(
-            @IntRange(from = UNKNOWN_SIGNAL_STRENGTH) final int signalStrength) {
-        return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToEndMetrics,
-                signalStrength, mRange, mExiting, mLegacyScore);
+    public <T extends Parcelable> T getExtension(@Nullable String key) {
+        return mExtensions.getParcelable(key);
     }
 
     /**
-     * Returns whether this network has a particular policy flag.
-     * @param policy the policy, as one of the POLICY_* constants.
+     * Get the value of int by key.
      */
-    public boolean hasPolicy(@Policy final int policy) {
-        return 0 != (mPolicy & policy);
+    public int getIntExtension(@Nullable String key) {
+        return mExtensions.getInt(key);
     }
 
     /**
-     * Returns the Metrics representing the performance of the link layer.
-     *
-     * This contains the theoretical performance of the link, if available.
-     * Note that while this function cannot return null, any and/or all of the members of the
-     * returned object can be null if unknown.
+     * Remove the entry by given key.
      */
-    @NonNull public Metrics getLinkLayerMetrics() {
-        return mLinkLayerMetrics;
-    }
-
-    /**
-     * Returns the Metrics representing the end-to-end performance of the network.
-     *
-     * This contains the end-to-end performance of the link, if available.
-     * Note that while this function cannot return null, any and/or all of the members of the
-     * returned object can be null if unknown.
-     */
-    @NonNull public Metrics getEndToEndMetrics() {
-        return mEndToEndMetrics;
-    }
-
-    /**
-     * Returns the signal strength of this network normalized 0~1000, or UNKNOWN_SIGNAL_STRENGTH.
-     */
-    @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
-    public int getSignalStrength() {
-        return mSignalStrength;
-    }
-
-    /**
-     * Returns the typical range of this network technology as one of the RANGE_* constants.
-     */
-    @Range public int getRange() {
-        return mRange;
-    }
-
-    /** Returns a prediction of whether this network is likely to be unusable in a few seconds. */
-    public boolean isExiting() {
-        return mExiting;
-    }
-
-    /**
-     * Get the legacy score.
-     * @hide
-     */
-    public int getLegacyScore() {
-        return mLegacyScore;
-    }
-
-    /** Builder for NetworkScore. */
-    public static class Builder {
-        private int mPolicy = 0;
-        @NonNull
-        private Metrics mLinkLayerMetrics = new Metrics(Metrics.LATENCY_UNKNOWN,
-                Metrics.BANDWIDTH_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN);
-        @NonNull
-        private Metrics mEndToMetrics = new Metrics(Metrics.LATENCY_UNKNOWN,
-                Metrics.BANDWIDTH_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN);
-        private int mSignalStrength = UNKNOWN_SIGNAL_STRENGTH;
-        private int mRange = RANGE_UNKNOWN;
-        private boolean mExiting = false;
-        private int mLegacyScore = 0;
-        @NonNull private Bundle mExtensions = new Bundle();
-
-        /** Create a new builder. */
-        public Builder() { }
-
-        /** Add a policy flag. */
-        @NonNull public Builder addPolicy(@Policy final int policy) {
-            mPolicy |= policy;
-            return this;
-        }
-
-        /** Clear a policy flag */
-        @NonNull public Builder clearPolicy(@Policy final int policy) {
-            mPolicy &= ~policy;
-            return this;
-        }
-
-        /** Set the link layer metrics. */
-        @NonNull public Builder setLinkLayerMetrics(@NonNull final Metrics linkLayerMetrics) {
-            mLinkLayerMetrics = linkLayerMetrics;
-            return this;
-        }
-
-        /** Set the end-to-end metrics. */
-        @NonNull public Builder setEndToEndMetrics(@NonNull final Metrics endToEndMetrics) {
-            mEndToMetrics = endToEndMetrics;
-            return this;
-        }
-
-        /** Set the signal strength. */
-        @NonNull public Builder setSignalStrength(
-                @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
-                        final int signalStrength) {
-            mSignalStrength = signalStrength;
-            return this;
-        }
-
-        /** Set the range. */
-        @NonNull public Builder setRange(@Range final int range) {
-            mRange = range;
-            return this;
-        }
-
-        /** Set whether this network is exiting. */
-        @NonNull public Builder setExiting(final boolean exiting) {
-            mExiting = exiting;
-            return this;
-        }
-
-        /** Add a parcelable extension. */
-        @NonNull public Builder setLegacyScore(final int legacyScore) {
-            mLegacyScore = legacyScore;
-            return this;
-        }
-
-        /** Build the NetworkScore object represented by this builder. */
-        @NonNull public NetworkScore build() {
-            return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToMetrics,
-                    mSignalStrength, mRange, mExiting, mLegacyScore);
-        }
+    public void removeExtension(@Nullable String key) {
+        mExtensions.remove(key);
     }
 
     @Override
@@ -429,17 +88,9 @@
 
     @Override
     public void writeToParcel(@NonNull Parcel dest, int flags) {
-        dest.writeInt(mPolicy);
-        dest.writeInt(mLinkLayerMetrics.latencyMs);
-        dest.writeInt(mLinkLayerMetrics.downlinkBandwidthKBps);
-        dest.writeInt(mLinkLayerMetrics.uplinkBandwidthKBps);
-        dest.writeInt(mEndToEndMetrics.latencyMs);
-        dest.writeInt(mEndToEndMetrics.downlinkBandwidthKBps);
-        dest.writeInt(mEndToEndMetrics.uplinkBandwidthKBps);
-        dest.writeInt(mSignalStrength);
-        dest.writeInt(mRange);
-        dest.writeBoolean(mExiting);
-        dest.writeInt(mLegacyScore);
+        synchronized (this) {
+            dest.writeBundle(mExtensions);
+        }
     }
 
     public static final @NonNull Creator<NetworkScore> CREATOR = new Creator<NetworkScore>() {
@@ -455,52 +106,57 @@
     };
 
     private NetworkScore(@NonNull Parcel in) {
-        mPolicy = in.readInt();
-        mLinkLayerMetrics = new Metrics(in.readInt(), in.readInt(), in.readInt());
-        mEndToEndMetrics = new Metrics(in.readInt(), in.readInt(), in.readInt());
-        mSignalStrength = in.readInt();
-        mRange = in.readInt();
-        mExiting = in.readBoolean();
-        mLegacyScore = in.readInt();
+        mExtensions = in.readBundle();
     }
 
+    // TODO: Modify this method once new fields are added into this class.
     @Override
     public boolean equals(@Nullable Object obj) {
         if (!(obj instanceof NetworkScore)) {
             return false;
         }
         final NetworkScore other = (NetworkScore) obj;
-        return mPolicy == other.mPolicy
-                && mLinkLayerMetrics.latencyMs == other.mLinkLayerMetrics.latencyMs
-                && mLinkLayerMetrics.uplinkBandwidthKBps
-                == other.mLinkLayerMetrics.uplinkBandwidthKBps
-                && mEndToEndMetrics.latencyMs == other.mEndToEndMetrics.latencyMs
-                && mEndToEndMetrics.uplinkBandwidthKBps
-                == other.mEndToEndMetrics.uplinkBandwidthKBps
-                && mSignalStrength == other.mSignalStrength
-                && mRange == other.mRange
-                && mExiting == other.mExiting
-                && mLegacyScore == other.mLegacyScore;
+        return bundlesEqual(mExtensions, other.mExtensions);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(mPolicy,
-                mLinkLayerMetrics.latencyMs, mLinkLayerMetrics.uplinkBandwidthKBps,
-                mEndToEndMetrics.latencyMs, mEndToEndMetrics.uplinkBandwidthKBps,
-                mSignalStrength, mRange, mExiting, mLegacyScore);
+        int result = 29;
+        for (String key : mExtensions.keySet()) {
+            final Object value = mExtensions.get(key);
+            // The key may be null, so call Objects.hash() is safer.
+            result += 31 * value.hashCode() + 37 * Objects.hash(key);
+        }
+        return result;
+    }
+
+    // mExtensions won't be null since the constructor will create it.
+    private boolean bundlesEqual(@NonNull Bundle bundle1, @NonNull Bundle bundle2) {
+        if (bundle1 == bundle2) {
+            return true;
+        }
+
+        // This is unlikely but it's fine to add this clause here.
+        if (null == bundle1 || null == bundle2) {
+            return false;
+        }
+
+        if (bundle1.size() != bundle2.size()) {
+            return false;
+        }
+
+        for (String key : bundle1.keySet()) {
+            final Object value1 = bundle1.get(key);
+            final Object value2 = bundle2.get(key);
+            if (!Objects.equals(value1, value2)) {
+                return false;
+            }
+        }
+        return true;
     }
 
     /** Convert to a string */
     public String toString() {
-        return "NetworkScore ["
-                + "Policy = " + mPolicy
-                + " LinkLayerMetrics = " + mLinkLayerMetrics
-                + " EndToEndMetrics = " + mEndToEndMetrics
-                + " SignalStrength = " + mSignalStrength
-                + " Range = " + mRange
-                + " Exiting = " + mExiting
-                + " LegacyScore = " + mLegacyScore
-                + "]";
+        return "NetworkScore[" + mExtensions.toString() + "]";
     }
 }
diff --git a/core/java/android/os/BugreportManager.java b/core/java/android/os/BugreportManager.java
index a3c2cd8..9ca1c33 100644
--- a/core/java/android/os/BugreportManager.java
+++ b/core/java/android/os/BugreportManager.java
@@ -27,8 +27,10 @@
 import android.annotation.TestApi;
 import android.app.ActivityManager;
 import android.content.Context;
+import android.os.Handler;
 import android.util.Log;
-
+import android.widget.Toast;
+import com.android.internal.R;
 import com.android.internal.util.Preconditions;
 
 import libcore.io.IoUtils;
@@ -155,12 +157,14 @@
             Preconditions.checkNotNull(executor);
             Preconditions.checkNotNull(callback);
 
+            boolean validScreenshotFd = screenshotFd != null;
             if (screenshotFd == null) {
                 // Binder needs a valid File Descriptor to be passed
                 screenshotFd = ParcelFileDescriptor.open(new File("/dev/null"),
                         ParcelFileDescriptor.MODE_READ_ONLY);
             }
-            DumpstateListener dsListener = new DumpstateListener(executor, callback);
+            DumpstateListener dsListener = new DumpstateListener(executor, callback,
+                    validScreenshotFd);
             // Note: mBinder can get callingUid from the binder transaction.
             mBinder.startBugreport(-1 /* callingUid */,
                     mContext.getOpPackageName(),
@@ -221,10 +225,13 @@
     private final class DumpstateListener extends IDumpstateListener.Stub {
         private final Executor mExecutor;
         private final BugreportCallback mCallback;
+        private final boolean mValidScreenshotFd;
 
-        DumpstateListener(Executor executor, BugreportCallback callback) {
+        DumpstateListener(Executor executor, BugreportCallback callback,
+                boolean validScreenshotFd) {
             mExecutor = executor;
             mCallback = callback;
+            mValidScreenshotFd = validScreenshotFd;
         }
 
         @Override
@@ -262,5 +269,20 @@
                 Binder.restoreCallingIdentity(identity);
             }
         }
+
+        @Override
+        public void onScreenshotTaken(boolean success) throws RemoteException {
+            if (!mValidScreenshotFd) {
+                return;
+            }
+
+            Handler mainThreadHandler = new Handler(Looper.getMainLooper());
+            mainThreadHandler.post(
+                    () -> {
+                        int message = success ? R.string.bugreport_screenshot_success_toast
+                                : R.string.bugreport_screenshot_failure_toast;
+                        Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
+                    });
+        }
     }
 }
diff --git a/core/java/android/os/HidlMemoryUtil.java b/core/java/android/os/HidlMemoryUtil.java
index b08822d..4252fe3 100644
--- a/core/java/android/os/HidlMemoryUtil.java
+++ b/core/java/android/os/HidlMemoryUtil.java
@@ -21,14 +21,13 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SuppressLint;
-import android.annotation.SystemApi;
-import android.annotation.TestApi;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.util.Log;
 
 import com.android.internal.util.Preconditions;
 
+import java.io.FileDescriptor;
 import java.nio.ByteBuffer;
 import java.nio.DirectByteBuffer;
 import java.util.ArrayList;
@@ -82,8 +81,7 @@
             ByteBuffer buffer = shmem.mapReadWrite();
             buffer.put(input);
             shmem.unmap(buffer);
-            NativeHandle handle = new NativeHandle(shmem.getFileDescriptor(), true);
-            return new HidlMemory("ashmem", input.length, handle);
+            return sharedMemoryToHidlMemory(shmem);
         } catch (ErrnoException e) {
             throw new RuntimeException(e);
         }
@@ -128,8 +126,7 @@
                 buffer.put(b);
             }
             shmem.unmap(buffer);
-            NativeHandle handle = new NativeHandle(shmem.getFileDescriptor(), true);
-            return new HidlMemory("ashmem", input.size(), handle);
+            return sharedMemoryToHidlMemory(shmem);
         } catch (ErrnoException e) {
             throw new RuntimeException(e);
         }
@@ -189,6 +186,38 @@
         return result;
     }
 
+    /**
+     * Converts a SharedMemory to a HidlMemory without copying.
+     *
+     * @param shmem The shared memory object. Null means "empty" and will still result in a non-null
+     *              return value.
+     * @return The HidlMemory instance.
+     */
+    @NonNull public static HidlMemory sharedMemoryToHidlMemory(@Nullable SharedMemory shmem) {
+        if (shmem == null) {
+            return new HidlMemory("ashmem", 0, null);
+        }
+        return fileDescriptorToHidlMemory(shmem.getFileDescriptor(), shmem.getSize());
+    }
+
+    /**
+     * Converts a FileDescriptor to a HidlMemory without copying.
+     *
+     * @param fd   The FileDescriptor object. Null is allowed if size is 0 and will still result in
+     *             a non-null return value.
+     * @param size The size of the memory buffer.
+     * @return The HidlMemory instance.
+     */
+    @NonNull public static HidlMemory fileDescriptorToHidlMemory(@Nullable FileDescriptor fd,
+            int size) {
+        Preconditions.checkArgument(fd != null || size == 0);
+        if (fd == null) {
+            return new HidlMemory("ashmem", 0, null);
+        }
+        NativeHandle handle = new NativeHandle(fd, true);
+        return new HidlMemory("ashmem", size, handle);
+    }
+
     private static ByteBuffer getBuffer(@NonNull HidlMemory mem) {
         try {
             final int size = (int) mem.getSize();
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 199b5d5..40ff5ca 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -922,7 +922,7 @@
     final IThermalService mThermalService;
 
     /** We lazily initialize it.*/
-    private DeviceIdleManager mDeviceIdleManager;
+    private PowerWhitelistManager mPowerWhitelistManager;
 
     private final ArrayMap<OnThermalStatusChangedListener, IThermalStatusListener>
             mListenerMap = new ArrayMap<>();
@@ -938,12 +938,12 @@
         mHandler = handler;
     }
 
-    private DeviceIdleManager getDeviceIdleManager() {
-        if (mDeviceIdleManager == null) {
+    private PowerWhitelistManager getPowerWhitelistManager() {
+        if (mPowerWhitelistManager == null) {
             // No need for synchronization; getSystemService() will return the same object anyway.
-            mDeviceIdleManager = mContext.getSystemService(DeviceIdleManager.class);
+            mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class);
         }
-        return mDeviceIdleManager;
+        return mPowerWhitelistManager;
     }
 
     /**
@@ -1786,7 +1786,7 @@
      * {@link android.provider.Settings#ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS}.
      */
     public boolean isIgnoringBatteryOptimizations(String packageName) {
-        return getDeviceIdleManager().isApplicationWhitelisted(packageName);
+        return getPowerWhitelistManager().isWhitelisted(packageName, true);
     }
 
     /**
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index dbe3b7b..d7af1b9 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -529,6 +529,40 @@
     private static int sPidFdSupported = PIDFD_UNKNOWN;
 
     /**
+     * Value used to indicate that there is no special information about an application launch.  App
+     * launches with this policy will occur through the primary or secondary Zygote with no special
+     * treatment.
+     *
+     * @hide
+     */
+    public static final int ZYGOTE_POLICY_FLAG_EMPTY = 0;
+
+    /**
+     * Flag used to indicate that an application launch is user-visible and latency sensitive.  Any
+     * launch with this policy will use a Unspecialized App Process Pool if the target Zygote
+     * supports it.
+     *
+     * @hide
+     */
+    public static final int ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE = 1 << 0;
+
+    /**
+     * Flag used to indicate that the launch is one in a series of app launches that will be
+     * performed in quick succession.  For future use.
+     *
+     * @hide
+     */
+    public static final int ZYGOTE_POLICY_FLAG_BATCH_LAUNCH = 1 << 1;
+
+    /**
+     * Flag used to indicate that the current launch event is for a system process.  All system
+     * processes are equally important, so none of them should be prioritized over the others.
+     *
+     * @hide
+     */
+    public static final int ZYGOTE_POLICY_FLAG_SYSTEM_PROCESS = 1 << 2;
+
+    /**
      * State associated with the zygote process.
      * @hide
      */
@@ -567,6 +601,7 @@
      * @param appDataDir null-ok the data directory of the app.
      * @param invokeWith null-ok the command to invoke with.
      * @param packageName null-ok the name of the package this process belongs to.
+     * @param zygotePolicyFlags Flags used to determine how to launch the application
      * @param isTopApp whether the process starts for high priority application.
      * @param disabledCompatChanges null-ok list of disabled compat changes for the process being
      *                             started.
@@ -590,6 +625,7 @@
                                            @Nullable String appDataDir,
                                            @Nullable String invokeWith,
                                            @Nullable String packageName,
+                                           int zygotePolicyFlags,
                                            boolean isTopApp,
                                            @Nullable long[] disabledCompatChanges,
                                            @Nullable Map<String, Pair<String, Long>>
@@ -598,7 +634,7 @@
         return ZYGOTE_PROCESS.start(processClass, niceName, uid, gid, gids,
                     runtimeFlags, mountExternal, targetSdkVersion, seInfo,
                     abi, instructionSet, appDataDir, invokeWith, packageName,
-                    /*useUsapPool=*/ true, isTopApp, disabledCompatChanges,
+                    zygotePolicyFlags, isTopApp, disabledCompatChanges,
                     pkgDataInfoMap, zygoteArgs);
     }
 
@@ -622,8 +658,8 @@
         return WebViewZygote.getProcess().start(processClass, niceName, uid, gid, gids,
                     runtimeFlags, mountExternal, targetSdkVersion, seInfo,
                     abi, instructionSet, appDataDir, invokeWith, packageName,
-                    /*useUsapPool=*/ false, /*isTopApp=*/ false, disabledCompatChanges,
-                    /* pkgDataInfoMap */ null, zygoteArgs);
+                    /*zygotePolicyFlags=*/ ZYGOTE_POLICY_FLAG_EMPTY, /*isTopApp=*/ false,
+                disabledCompatChanges, /* pkgDataInfoMap */ null, zygoteArgs);
     }
 
     /**
diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java
index 3846f89..34cec06 100644
--- a/core/java/android/os/ZygoteProcess.java
+++ b/core/java/android/os/ZygoteProcess.java
@@ -16,6 +16,9 @@
 
 package android.os;
 
+import static android.os.Process.ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_SYSTEM_PROCESS;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.compat.annotation.UnsupportedAppUsage;
@@ -119,6 +122,10 @@
         mUsapPoolSecondarySocketAddress =
                 new LocalSocketAddress(Zygote.USAP_POOL_SECONDARY_SOCKET_NAME,
                                        LocalSocketAddress.Namespace.RESERVED);
+
+        // This constructor is used to create the primary and secondary Zygotes, which can support
+        // Unspecialized App Process Pools.
+        mUsapPoolSupported = true;
     }
 
     public ZygoteProcess(LocalSocketAddress primarySocketAddress,
@@ -128,6 +135,10 @@
 
         mUsapPoolSocketAddress = null;
         mUsapPoolSecondarySocketAddress = null;
+
+        // This constructor is used to create the primary and secondary Zygotes, which CAN NOT
+        // support Unspecialized App Process Pools.
+        mUsapPoolSupported = false;
     }
 
     public LocalSocketAddress getPrimarySocketAddress() {
@@ -267,6 +278,14 @@
     private ZygoteState secondaryZygoteState;
 
     /**
+     * If this Zygote supports the creation and maintenance of a USAP pool.
+     *
+     * Currently only the primary and secondary Zygotes support USAP pools. Any
+     * child Zygotes will be unable to create or use a USAP pool.
+     */
+    private final boolean mUsapPoolSupported;
+
+    /**
      * If the USAP pool should be created and used to start applications.
      *
      * Setting this value to false will disable the creation, maintenance, and use of the USAP
@@ -308,13 +327,14 @@
      * @param appDataDir null-ok the data directory of the app.
      * @param invokeWith null-ok the command to invoke with.
      * @param packageName null-ok the name of the package this process belongs to.
+     * @param zygotePolicyFlags Flags used to determine how to launch the application.
+     * @param isTopApp Whether the process starts for high priority application.
      * @param disabledCompatChanges null-ok list of disabled compat changes for the process being
      *                             started.
-     * @param zygoteArgs Additional arguments to supply to the zygote process.
-     * @param isTopApp Whether the process starts for high priority application.
      * @param pkgDataInfoMap Map from related package names to private data directory
      *                       volume UUID and inode number.
      *
+     * @param zygoteArgs Additional arguments to supply to the Zygote process.
      * @return An object that describes the result of the attempt to start the process.
      * @throws RuntimeException on fatal start failure
      */
@@ -329,7 +349,7 @@
                                                   @Nullable String appDataDir,
                                                   @Nullable String invokeWith,
                                                   @Nullable String packageName,
-                                                  boolean useUsapPool,
+                                                  int zygotePolicyFlags,
                                                   boolean isTopApp,
                                                   @Nullable long[] disabledCompatChanges,
                                                   @Nullable Map<String, Pair<String, Long>>
@@ -344,7 +364,7 @@
             return startViaZygote(processClass, niceName, uid, gid, gids,
                     runtimeFlags, mountExternal, targetSdkVersion, seInfo,
                     abi, instructionSet, appDataDir, invokeWith, /*startChildZygote=*/ false,
-                    packageName, useUsapPool, isTopApp, disabledCompatChanges,
+                    packageName, zygotePolicyFlags, isTopApp, disabledCompatChanges,
                     pkgDataInfoMap, zygoteArgs);
         } catch (ZygoteStartFailedEx ex) {
             Log.e(LOG_TAG,
@@ -391,7 +411,7 @@
      */
     @GuardedBy("mLock")
     private Process.ProcessStartResult zygoteSendArgsAndGetResult(
-            ZygoteState zygoteState, boolean useUsapPool, @NonNull ArrayList<String> args)
+            ZygoteState zygoteState, int zygotePolicyFlags, @NonNull ArrayList<String> args)
             throws ZygoteStartFailedEx {
         // Throw early if any of the arguments are malformed. This means we can
         // avoid writing a partial response to the zygote.
@@ -417,7 +437,7 @@
          */
         String msgStr = args.size() + "\n" + String.join("\n", args) + "\n";
 
-        if (useUsapPool && mUsapPoolEnabled && canAttemptUsap(args)) {
+        if (shouldAttemptUsapLaunch(zygotePolicyFlags, args)) {
             try {
                 return attemptUsapSendArgsAndGetResult(zygoteState, msgStr);
             } catch (IOException ex) {
@@ -488,7 +508,43 @@
     }
 
     /**
-     * Flags that may not be passed to a USAP.
+     * Test various member properties and parameters to determine if a launch event should be
+     * handled using an Unspecialized App Process Pool or not.
+     *
+     * @param zygotePolicyFlags Policy flags indicating special behavioral observations about the
+     *                          Zygote command
+     * @param args Arguments that will be passed to the Zygote
+     * @return If the command should be sent to a USAP Pool member or an actual Zygote
+     */
+    private boolean shouldAttemptUsapLaunch(int zygotePolicyFlags, ArrayList<String> args) {
+        return mUsapPoolSupported
+                && mUsapPoolEnabled
+                && policySpecifiesUsapPoolLaunch(zygotePolicyFlags)
+                && commandSupportedByUsap(args);
+    }
+
+    /**
+     * Tests a Zygote policy flag set for various properties that determine if it is eligible for
+     * being handled by an Unspecialized App Process Pool.
+     *
+     * @param zygotePolicyFlags Policy flags indicating special behavioral observations about the
+     *                          Zygote command
+     * @return If the policy allows for use of a USAP pool
+     */
+    private static boolean policySpecifiesUsapPoolLaunch(int zygotePolicyFlags) {
+        /*
+         * Zygote USAP Pool Policy: Launch the new process from the USAP Pool iff the launch event
+         * is latency sensitive but *NOT* a system process.  All system processes are equally
+         * important so we don't want to prioritize one over another.
+         */
+        return (zygotePolicyFlags
+                & (ZYGOTE_POLICY_FLAG_SYSTEM_PROCESS | ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE))
+                == ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE;
+    }
+
+    /**
+     * Flags that may not be passed to a USAP.  These may appear as prefixes to individual Zygote
+     * arguments.
      */
     private static final String[] INVALID_USAP_FLAGS = {
         "--query-abi-list",
@@ -505,10 +561,11 @@
 
     /**
      * Tests a command list to see if it is valid to send to a USAP.
+     *
      * @param args  Zygote/USAP command arguments
      * @return  True if the command can be passed to a USAP; false otherwise
      */
-    private static boolean canAttemptUsap(ArrayList<String> args) {
+    private static boolean commandSupportedByUsap(ArrayList<String> args) {
         for (String flag : args) {
             for (String badFlag : INVALID_USAP_FLAGS) {
                 if (flag.startsWith(badFlag)) {
@@ -544,6 +601,7 @@
      * @param startChildZygote Start a sub-zygote. This creates a new zygote process
      * that has its state cloned from this zygote process.
      * @param packageName null-ok the name of the package this process belongs to.
+     * @param zygotePolicyFlags Flags used to determine how to launch the application.
      * @param isTopApp Whether the process starts for high priority application.
      * @param disabledCompatChanges a list of disabled compat changes for the process being started.
      * @param pkgDataInfoMap Map from related package names to private data directory volume UUID
@@ -565,7 +623,7 @@
                                                       @Nullable String invokeWith,
                                                       boolean startChildZygote,
                                                       @Nullable String packageName,
-                                                      boolean useUsapPool,
+                                                      int zygotePolicyFlags,
                                                       boolean isTopApp,
                                                       @Nullable long[] disabledCompatChanges,
                                                       @Nullable Map<String, Pair<String, Long>>
@@ -692,7 +750,7 @@
             // The USAP pool can not be used if the application will not use the systems graphics
             // driver.  If that driver is requested use the Zygote application start path.
             return zygoteSendArgsAndGetResult(openZygoteSocketIfNeeded(abi),
-                                              useUsapPool,
+                                              zygotePolicyFlags,
                                               argsForZygote);
         }
     }
@@ -722,6 +780,10 @@
     private long mLastPropCheckTimestamp = 0;
 
     private boolean fetchUsapPoolEnabledPropWithMinInterval() {
+        // If this Zygote doesn't support USAPs there is no need to fetch any
+        // properties.
+        if (!mUsapPoolSupported) return false;
+
         final long currentTimestamp = SystemClock.elapsedRealtime();
 
         if (mIsFirstPropCheck
@@ -1219,7 +1281,7 @@
                     gids, runtimeFlags, 0 /* mountExternal */, 0 /* targetSdkVersion */, seInfo,
                     abi, instructionSet, null /* appDataDir */, null /* invokeWith */,
                     true /* startChildZygote */, null /* packageName */,
-                    false /* useUsapPool */, false /* isTopApp */,
+                    ZYGOTE_POLICY_FLAG_SYSTEM_PROCESS /* zygotePolicyFlags */, false /* isTopApp */,
                     null /* disabledCompatChanges */, null /* pkgDataInfoMap */, extraArgs);
         } catch (ZygoteStartFailedEx ex) {
             throw new RuntimeException("Starting child-zygote through Zygote failed", ex);
diff --git a/core/java/android/os/connectivity/CellularBatteryStats.java b/core/java/android/os/connectivity/CellularBatteryStats.java
index b8c1802..633b374 100644
--- a/core/java/android/os/connectivity/CellularBatteryStats.java
+++ b/core/java/android/os/connectivity/CellularBatteryStats.java
@@ -15,8 +15,10 @@
  */
 package android.os.connectivity;
 
+import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
 import android.os.BatteryStats;
 import android.os.Parcel;
@@ -36,26 +38,44 @@
 @SystemApi
 public final class CellularBatteryStats implements Parcelable {
 
-    private long mLoggingDurationMs = 0;
-    private long mKernelActiveTimeMs = 0;
-    private long mNumPacketsTx = 0;
-    private long mNumBytesTx = 0;
-    private long mNumPacketsRx = 0;
-    private long mNumBytesRx = 0;
-    private long mSleepTimeMs = 0;
-    private long mIdleTimeMs = 0;
-    private long mRxTimeMs = 0;
-    private long mEnergyConsumedMaMs = 0;
-    private long[] mTimeInRatMs = new long[BatteryStats.NUM_DATA_CONNECTION_TYPES];
-    private long[] mTimeInRxSignalStrengthLevelMs =
-            new long[CellSignalStrength.getNumSignalStrengthLevels()];
-    private long[] mTxTimeMs = new long[ModemActivityInfo.TX_POWER_LEVELS];
-    private long mMonitoredRailChargeConsumedMaMs = 0;
+    private final long mLoggingDurationMs;
+    private final long mKernelActiveTimeMs;
+    private final long mNumPacketsTx;
+    private final long mNumBytesTx;
+    private final long mNumPacketsRx;
+    private final long mNumBytesRx;
+    private final long mSleepTimeMs;
+    private final long mIdleTimeMs;
+    private final long mRxTimeMs;
+    private final long mEnergyConsumedMaMs;
+    private final long[] mTimeInRatMs;
+    private final long[] mTimeInRxSignalStrengthLevelMs;
+    private final long[] mTxTimeMs;
+    private final long mMonitoredRailChargeConsumedMaMs;
 
     public static final @NonNull Parcelable.Creator<CellularBatteryStats> CREATOR =
             new Parcelable.Creator<CellularBatteryStats>() {
                 public CellularBatteryStats createFromParcel(Parcel in) {
-                    return new CellularBatteryStats(in);
+                    long loggingDurationMs = in.readLong();
+                    long kernelActiveTimeMs = in.readLong();
+                    long numPacketsTx = in.readLong();
+                    long numBytesTx = in.readLong();
+                    long numPacketsRx = in.readLong();
+                    long numBytesRx = in.readLong();
+                    long sleepTimeMs = in.readLong();
+                    long idleTimeMs = in.readLong();
+                    long rxTimeMs = in.readLong();
+                    long energyConsumedMaMs = in.readLong();
+                    long[] timeInRatMs = in.createLongArray();
+                    long[] timeInRxSignalStrengthLevelMs = in.createLongArray();
+                    long[] txTimeMs = in.createLongArray();
+                    long monitoredRailChargeConsumedMaMs = in.readLong();
+
+                    return new CellularBatteryStats(loggingDurationMs, kernelActiveTimeMs,
+                            numPacketsTx, numBytesTx, numPacketsRx, numBytesRx, sleepTimeMs,
+                            idleTimeMs, rxTimeMs, energyConsumedMaMs, timeInRatMs,
+                            timeInRxSignalStrengthLevelMs, txTimeMs,
+                            monitoredRailChargeConsumedMaMs);
                 }
 
                 public CellularBatteryStats[] newArray(int size) {
@@ -64,7 +84,34 @@
             };
 
     /** @hide **/
-    public CellularBatteryStats() {}
+    public CellularBatteryStats(long loggingDurationMs, long kernelActiveTimeMs, long numPacketsTx,
+            long numBytesTx, long numPacketsRx, long numBytesRx, long sleepTimeMs, long idleTimeMs,
+            long rxTimeMs, Long energyConsumedMaMs, long[] timeInRatMs,
+            long[] timeInRxSignalStrengthLevelMs, long[] txTimeMs,
+            long monitoredRailChargeConsumedMaMs) {
+
+        mLoggingDurationMs = loggingDurationMs;
+        mKernelActiveTimeMs = kernelActiveTimeMs;
+        mNumPacketsTx = numPacketsTx;
+        mNumBytesTx = numBytesTx;
+        mNumPacketsRx = numPacketsRx;
+        mNumBytesRx = numBytesRx;
+        mSleepTimeMs = sleepTimeMs;
+        mIdleTimeMs = idleTimeMs;
+        mRxTimeMs = rxTimeMs;
+        mEnergyConsumedMaMs = energyConsumedMaMs;
+        mTimeInRatMs = Arrays.copyOfRange(
+                timeInRatMs, 0,
+                Math.min(timeInRatMs.length, BatteryStats.NUM_DATA_CONNECTION_TYPES));
+        mTimeInRxSignalStrengthLevelMs = Arrays.copyOfRange(
+                timeInRxSignalStrengthLevelMs, 0,
+                Math.min(timeInRxSignalStrengthLevelMs.length,
+                        CellSignalStrength.getNumSignalStrengthLevels()));
+        mTxTimeMs = Arrays.copyOfRange(
+                txTimeMs, 0,
+                Math.min(txTimeMs.length, ModemActivityInfo.TX_POWER_LEVELS));
+        mMonitoredRailChargeConsumedMaMs = monitoredRailChargeConsumedMaMs;
+    }
 
     @Override
     public void writeToParcel(@NonNull Parcel out, int flags) {
@@ -84,23 +131,6 @@
         out.writeLong(mMonitoredRailChargeConsumedMaMs);
     }
 
-    private void readFromParcel(Parcel in) {
-        mLoggingDurationMs = in.readLong();
-        mKernelActiveTimeMs = in.readLong();
-        mNumPacketsTx = in.readLong();
-        mNumBytesTx = in.readLong();
-        mNumPacketsRx = in.readLong();
-        mNumBytesRx = in.readLong();
-        mSleepTimeMs = in.readLong();
-        mIdleTimeMs = in.readLong();
-        mRxTimeMs = in.readLong();
-        mEnergyConsumedMaMs = in.readLong();
-        in.readLongArray(mTimeInRatMs);
-        in.readLongArray(mTimeInRxSignalStrengthLevelMs);
-        in.readLongArray(mTxTimeMs);
-        mMonitoredRailChargeConsumedMaMs = in.readLong();
-    }
-
     @Override
     public boolean equals(@Nullable Object other) {
         if (!(other instanceof CellularBatteryStats)) return false;
@@ -118,10 +148,10 @@
                 && this.mEnergyConsumedMaMs == otherStats.mEnergyConsumedMaMs
                 && Arrays.equals(this.mTimeInRatMs, otherStats.mTimeInRatMs)
                 && Arrays.equals(this.mTimeInRxSignalStrengthLevelMs,
-                    otherStats.mTimeInRxSignalStrengthLevelMs)
+                otherStats.mTimeInRxSignalStrengthLevelMs)
                 && Arrays.equals(this.mTxTimeMs, otherStats.mTxTimeMs)
                 && this.mMonitoredRailChargeConsumedMaMs
-                    == otherStats.mMonitoredRailChargeConsumedMaMs;
+                == otherStats.mMonitoredRailChargeConsumedMaMs;
     }
 
     @Override
@@ -236,43 +266,65 @@
      * Returns the time in microseconds that the phone has been running with
      * the given data connection.
      *
-     * @return Amount of time phone spends in various Radio Access Technologies in microseconds.
-     * The index is {@link NetworkType}.
+     * @param networkType The network type to query.
+     * @return The amount of time the phone spends in the {@code networkType} network type. The
+     * unit is in microseconds.
      */
     @NonNull
-    public long[] getTimeInRatMicros() {
-        return mTimeInRatMs;
+    @SuppressLint("MethodNameUnits")
+    public long getTimeInRatMicros(@NetworkType int networkType) {
+        if (networkType >= mTimeInRatMs.length) {
+            return -1;
+        }
+
+        return mTimeInRatMs[networkType];
     }
 
     /**
      * Returns the time in microseconds that the phone has been running with
      * the given signal strength.
      *
-     * @return Amount of time phone spends in various cellular rx signal strength levels
+     * @param signalStrengthBin a single integer from 0 to 4 representing the general signal
+     * quality.
+     * @return Amount of time phone spends in specific cellular rx signal strength levels
      * in microseconds. The index is signal strength bin.
      */
     @NonNull
-    public long[] getTimeInRxSignalStrengthLevelMicros() {
-        return mTimeInRxSignalStrengthLevelMs;
+    @SuppressLint("MethodNameUnits")
+    public long getTimeInRxSignalStrengthLevelMicros(
+            @IntRange(from = CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN,
+                    to = CellSignalStrength.SIGNAL_STRENGTH_GREAT) int signalStrengthBin) {
+        if (signalStrengthBin >= mTimeInRxSignalStrengthLevelMs.length) {
+            return -1;
+        }
+        return mTimeInRxSignalStrengthLevelMs[signalStrengthBin];
     }
 
     /**
      * Returns the duration for which the device was transmitting over cellular within
      * {@link #getLoggingDurationMillis()}.
      *
-     * @return Duration of cellular transmission time in milliseconds.
-     * Tx(transmit) power index below
+     * @param level a single integer from 0 to 4 representing the Tx(transmit) power level.
+     * @return Duration of cellular transmission time for specific power level in milliseconds.
+     *
+     * Tx(transmit) power level. see power index @ModemActivityInfo.TxPowerLevel below
      * <ul>
-     *   <li> index 0 = tx_power < 0dBm. </li>
-     *   <li> index 1 = 0dBm < tx_power < 5dBm. </li>
-     *   <li> index 2 = 5dBm < tx_power < 15dBm. </li>
-     *   <li> index 3 = 15dBm < tx_power < 20dBm. </li>
-     *   <li> index 4 = tx_power > 20dBm. </li>
+     * <li> index 0 = tx_power < 0dBm. </li>
+     * <li> index 1 = 0dBm < tx_power < 5dBm. </li>
+     * <li> index 2 = 5dBm < tx_power < 15dBm. </li>
+     * <li> index 3 = 15dBm < tx_power < 20dBm. </li>
+     * <li> index 4 = tx_power > 20dBm. </li>
      * </ul>
      */
     @NonNull
-    public long[] getTxTimeMillis() {
-        return mTxTimeMs;
+    public long getTxTimeMillis(
+            @IntRange(from = ModemActivityInfo.TX_POWER_LEVEL_0,
+                    to = ModemActivityInfo.TX_POWER_LEVEL_4) int level) {
+        if (level >= mTxTimeMs.length) {
+            return -1;
+        }
+
+        return mTxTimeMs[level];
     }
 
     /**
@@ -284,98 +336,8 @@
         return mMonitoredRailChargeConsumedMaMs;
     }
 
-    /** @hide **/
-    public void setLoggingDurationMillis(long t) {
-        mLoggingDurationMs = t;
-        return;
-    }
-
-    /** @hide **/
-    public void setKernelActiveTimeMillis(long t) {
-        mKernelActiveTimeMs = t;
-        return;
-    }
-
-    /** @hide **/
-    public void setNumPacketsTx(long n) {
-        mNumPacketsTx = n;
-        return;
-    }
-
-    /** @hide **/
-    public void setNumBytesTx(long b) {
-        mNumBytesTx = b;
-        return;
-    }
-
-    /** @hide **/
-    public void setNumPacketsRx(long n) {
-        mNumPacketsRx = n;
-        return;
-    }
-
-    /** @hide **/
-    public void setNumBytesRx(long b) {
-        mNumBytesRx = b;
-        return;
-    }
-
-    /** @hide **/
-    public void setSleepTimeMillis(long t) {
-        mSleepTimeMs = t;
-        return;
-    }
-
-    /** @hide **/
-    public void setIdleTimeMillis(long t) {
-        mIdleTimeMs = t;
-        return;
-    }
-
-    /** @hide **/
-    public void setRxTimeMillis(long t) {
-        mRxTimeMs = t;
-        return;
-    }
-
-    /** @hide **/
-    public void setEnergyConsumedMaMillis(long e) {
-        mEnergyConsumedMaMs = e;
-        return;
-    }
-
-    /** @hide **/
-    public void setTimeInRatMicros(@NonNull long[] t) {
-        mTimeInRatMs = Arrays.copyOfRange(t, 0,
-                Math.min(t.length, BatteryStats.NUM_DATA_CONNECTION_TYPES));
-        return;
-    }
-
-    /** @hide **/
-    public void setTimeInRxSignalStrengthLevelMicros(@NonNull long[] t) {
-        mTimeInRxSignalStrengthLevelMs = Arrays.copyOfRange(t, 0,
-            Math.min(t.length, CellSignalStrength.getNumSignalStrengthLevels()));
-        return;
-    }
-
-    /** @hide **/
-    public void setTxTimeMillis(@NonNull long[] t) {
-        mTxTimeMs = Arrays.copyOfRange(t, 0, Math.min(t.length, ModemActivityInfo.TX_POWER_LEVELS));
-        return;
-    }
-
-    /** @hide **/
-    public void setMonitoredRailChargeConsumedMaMillis(long monitoredRailEnergyConsumedMaMs) {
-        mMonitoredRailChargeConsumedMaMs = monitoredRailEnergyConsumedMaMs;
-        return;
-    }
-
     @Override
     public int describeContents() {
         return 0;
     }
-
-    private CellularBatteryStats(Parcel in) {
-        readFromParcel(in);
-    }
 }
diff --git a/core/java/android/os/incremental/IIncrementalManager.aidl b/core/java/android/os/incremental/IIncrementalManager.aidl
deleted file mode 100644
index be83aae..0000000
--- a/core/java/android/os/incremental/IIncrementalManager.aidl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.os.incremental;
-
-import android.content.pm.FileSystemControlParcel;
-import android.content.pm.DataLoaderParamsParcel;
-import android.content.pm.IDataLoaderStatusListener;
-
-/**
- * Binder service to receive calls from native Incremental Service and handle Java tasks such as
- * looking up data loader service package names, binding and talking to the data loader service.
- * @hide
- */
-interface IIncrementalManager {
-    boolean prepareDataLoader(int mountId,
-        in FileSystemControlParcel control,
-        in DataLoaderParamsParcel params,
-        in IDataLoaderStatusListener listener);
-    boolean startDataLoader(int mountId);
-    void showHealthBlockedUI(int mountId);
-    void destroyDataLoader(int mountId);
-}
diff --git a/core/java/android/os/incremental/IncrementalFileStorages.java b/core/java/android/os/incremental/IncrementalFileStorages.java
index 3f8c0fe..251995a 100644
--- a/core/java/android/os/incremental/IncrementalFileStorages.java
+++ b/core/java/android/os/incremental/IncrementalFileStorages.java
@@ -36,7 +36,7 @@
 import android.content.Context;
 import android.content.pm.DataLoaderParams;
 import android.content.pm.IDataLoaderStatusListener;
-import android.content.pm.InstallationFile;
+import android.content.pm.InstallationFileParcel;
 import android.text.TextUtils;
 import android.util.Slog;
 
@@ -76,7 +76,7 @@
             @NonNull File stageDir,
             @NonNull DataLoaderParams dataLoaderParams,
             @Nullable IDataLoaderStatusListener dataLoaderStatusListener,
-            List<InstallationFile> addedFiles) throws IOException {
+            List<InstallationFileParcel> addedFiles) throws IOException {
         // TODO(b/136132412): sanity check if session should not be incremental
         IncrementalManager incrementalManager = (IncrementalManager) context.getSystemService(
                 Context.INCREMENTAL_SERVICE);
@@ -94,18 +94,17 @@
                 result.mDefaultStorage.bind(stageDir.getAbsolutePath());
             }
 
-            for (InstallationFile file : addedFiles) {
-                if (file.getLocation() == LOCATION_DATA_APP) {
+            for (InstallationFileParcel file : addedFiles) {
+                if (file.location == LOCATION_DATA_APP) {
                     try {
                         result.addApkFile(file);
                     } catch (IOException e) {
                         // TODO(b/146080380): add incremental-specific error code
                         throw new IOException(
-                                "Failed to add file to IncFS: " + file.getName() + ", reason: "
-                                        + e.getMessage(), e.getCause());
+                                "Failed to add file to IncFS: " + file.name + ", reason: ", e);
                     }
                 } else {
-                    throw new IOException("Unknown file location: " + file.getLocation());
+                    throw new IOException("Unknown file location: " + file.location);
                 }
             }
 
@@ -117,6 +116,7 @@
 
             return result;
         } catch (IOException e) {
+            Slog.e(TAG, "Failed to initialize Incremental file storages. Cleaning up...", e);
             if (result != null) {
                 result.cleanUp();
             }
@@ -154,12 +154,11 @@
         }
     }
 
-    private void addApkFile(@NonNull InstallationFile apk) throws IOException {
-        final String apkName = apk.getName();
+    private void addApkFile(@NonNull InstallationFileParcel apk) throws IOException {
+        final String apkName = apk.name;
         final File targetFile = new File(mStageDir, apkName);
         if (!targetFile.exists()) {
-            mDefaultStorage.makeFile(apkName, apk.getLengthBytes(), null, apk.getMetadata(),
-                    apk.getSignature());
+            mDefaultStorage.makeFile(apkName, apk.size, null, apk.metadata, apk.signature);
         }
     }
 
diff --git a/core/java/android/os/incremental/IncrementalStorage.java b/core/java/android/os/incremental/IncrementalStorage.java
index dea495b..bf31bc2 100644
--- a/core/java/android/os/incremental/IncrementalStorage.java
+++ b/core/java/android/os/incremental/IncrementalStorage.java
@@ -424,14 +424,18 @@
      */
     private static IncrementalSignature parseV4Signature(@Nullable byte[] v4signatureBytes)
             throws IOException {
-        if (v4signatureBytes == null) {
+        if (v4signatureBytes == null || v4signatureBytes.length == 0) {
             return null;
         }
 
         final V4Signature signature;
         try (DataInputStream input = new DataInputStream(
                 new ByteArrayInputStream(v4signatureBytes))) {
-            signature = V4Signature.readFrom(input);
+            try {
+                signature = V4Signature.readFrom(input);
+            } catch (IOException e) {
+                throw new IOException("Failed to read v4 signature:", e);
+            }
         }
 
         if (!signature.isVersionSupported()) {
diff --git a/core/java/android/os/incremental/V4Signature.java b/core/java/android/os/incremental/V4Signature.java
index 17adfc8..6d334f5 100644
--- a/core/java/android/os/incremental/V4Signature.java
+++ b/core/java/android/os/incremental/V4Signature.java
@@ -16,12 +16,12 @@
 
 package android.os.incremental;
 
+import android.os.ParcelFileDescriptor;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 
 /**
@@ -41,11 +41,12 @@
     /**
      * Construct a V4Signature from .idsig file.
      */
-    public static V4Signature readFrom(File file) {
-        try (DataInputStream stream = new DataInputStream(new FileInputStream(file))) {
+    public static V4Signature readFrom(ParcelFileDescriptor pfd) throws IOException {
+        final ParcelFileDescriptor dupedFd = pfd.dup();
+        final ParcelFileDescriptor.AutoCloseInputStream fdInputStream =
+                new ParcelFileDescriptor.AutoCloseInputStream(dupedFd);
+        try (DataInputStream stream = new DataInputStream(fdInputStream)) {
             return readFrom(stream);
-        } catch (IOException e) {
-            return null;
         }
     }
 
diff --git a/core/java/android/permission/PermissionControllerService.java b/core/java/android/permission/PermissionControllerService.java
index 5d4561c..263b2c7 100644
--- a/core/java/android/permission/PermissionControllerService.java
+++ b/core/java/android/permission/PermissionControllerService.java
@@ -202,7 +202,8 @@
     /**
      * Grant or upgrade runtime permissions. The upgrade could be performed
      * based on whether the device upgraded, whether the permission database
-     * version is old, or because the permission policy changed.
+     * version is old, because the permission policy changed, or because the
+     * permission controller has updated.
      *
      * @param callback Callback waiting for operation to be complete
      *
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index f2d415a..4216cf3 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -53,7 +53,9 @@
 import android.net.ConnectivityManager;
 import android.net.NetworkScoreManager;
 import android.net.Uri;
+import android.net.wifi.SoftApConfiguration;
 import android.net.wifi.WifiManager;
+import android.net.wifi.p2p.WifiP2pManager;
 import android.os.BatteryManager;
 import android.os.Binder;
 import android.os.Build.VERSION_CODES;
@@ -7834,12 +7836,20 @@
         public static final String UI_NIGHT_MODE = "ui_night_mode";
 
         /**
-         * The current night mode that has been overrided by the system.  Owned
+         * The current night mode that has been overridden to turn on by the system.  Owned
          * and controlled by UiModeManagerService.  Constants are as per
          * UiModeManager.
          * @hide
          */
-        public static final String UI_NIGHT_MODE_OVERRIDE = "ui_night_mode_override";
+        public static final String UI_NIGHT_MODE_OVERRIDE_ON = "ui_night_mode_override_on";
+
+        /**
+         * The current night mode that has been overridden to turn off by the system.  Owned
+         * and controlled by UiModeManagerService.  Constants are as per
+         * UiModeManager.
+         * @hide
+         */
+        public static final String UI_NIGHT_MODE_OVERRIDE_OFF = "ui_night_mode_override_off";
 
         /**
          * Whether screensavers are enabled.
@@ -10272,7 +10282,8 @@
        /**
         * Setting to allow scans to be enabled even wifi is turned off for connectivity.
         * @hide
-        * @deprecated To be removed.
+        * @deprecated To be removed. Use {@link WifiManager#setScanAlwaysAvailable(boolean)} for
+        * setting the value and {@link WifiManager#isScanAlwaysAvailable()} for query.
         */
        public static final String WIFI_SCAN_ALWAYS_AVAILABLE =
                 "wifi_scan_always_enabled";
@@ -10292,7 +10303,9 @@
          *
          * Type: int (0 for false, 1 for true)
          * @hide
-         * @deprecated To be removed.
+         * @deprecated To be removed. Use {@link SoftApConfiguration.Builder#
+         * setAutoShutdownEnabled(boolean)} for setting the value and {@link SoftApConfiguration#
+         * isAutoShutdownEnabled()} for query.
          */
         public static final String SOFT_AP_TIMEOUT_ENABLED = "soft_ap_timeout_enabled";
 
@@ -10301,7 +10314,8 @@
          *
          * Type: int (0 for false, 1 for true)
          * @hide
-         * @deprecated Use {@link WifiManager#isAutoWakeupEnabled()} instead.
+         * @deprecated Use {@link WifiManager#setAutoWakeupEnabled(boolean)} for setting the value
+         * and {@link WifiManager#isAutoWakeupEnabled()} for query.
          */
         @Deprecated
         @SystemApi
@@ -10381,7 +10395,8 @@
          *
          * Type: int (0 for false, 1 for true)
          * @hide
-         * @deprecated To be removed.
+         * @deprecated Use {@link WifiManager#setScanThrottleEnabled(boolean)} for setting the value
+         * and {@link WifiManager#isScanThrottleEnabled()} for query.
          */
         public static final String WIFI_SCAN_THROTTLE_ENABLED = "wifi_scan_throttle_enabled";
 
@@ -10484,7 +10499,8 @@
         * Setting to enable verbose logging in Wi-Fi; disabled by default, and setting to 1
         * will enable it. In the future, additional values may be supported.
         * @hide
-        * @deprecated To be removed.
+        * @deprecated Use {@link WifiManager#setVerboseLoggingEnabled(boolean)} for setting the
+        * value and {@link WifiManager#isVerboseLoggingEnabled()} for query.
         */
        public static final String WIFI_VERBOSE_LOGGING_ENABLED =
                "wifi_verbose_logging_enabled";
@@ -10553,7 +10569,9 @@
        /**
         * The Wi-Fi peer-to-peer device name
         * @hide
-        * @deprecated To be removed.
+        * @deprecated Use {@link WifiP2pManager#setDeviceName(WifiP2pManager.Channel, String,
+        * WifiP2pManager.ActionListener)} for setting the value and
+        * {@link android.net.wifi.p2p.WifiP2pDevice#deviceName} for query.
         */
        public static final String WIFI_P2P_DEVICE_NAME = "wifi_p2p_device_name";
 
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index adfa885..97f7533 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -5120,8 +5120,8 @@
         public static final String WFC_IMS_ROAMING_ENABLED = "wfc_ims_roaming_enabled";
 
         /**
-         * Determines if the user has enabled IMS RCS User Capability Exchange (UCE) for this
-         * subscription.
+         * TelephonyProvider column name for determining if the user has enabled IMS RCS User
+         * Capability Exchange (UCE) for this subscription.
          */
         public static final String IMS_RCS_UCE_ENABLED = "ims_rcs_uce_enabled";
 
diff --git a/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl b/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl
index 210f95f..1011651 100644
--- a/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl
+++ b/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl
@@ -17,7 +17,7 @@
 package android.service.autofill;
 
 import android.os.IBinder;
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
 
 /**
  * Interface to receive events from inline suggestions.
@@ -26,7 +26,7 @@
  */
 oneway interface IInlineSuggestionUiCallback {
     void onAutofill();
-    void onContent(in SurfaceControl surface);
+    void onContent(in SurfaceControlViewHost.SurfacePackage surface);
     void onError();
     void onTransferTouchFocusToImeWindow(in IBinder sourceInputToken, int displayId);
 }
diff --git a/core/java/android/service/autofill/InlineSuggestionRenderService.java b/core/java/android/service/autofill/InlineSuggestionRenderService.java
index fcdefac..ee15283 100644
--- a/core/java/android/service/autofill/InlineSuggestionRenderService.java
+++ b/core/java/android/service/autofill/InlineSuggestionRenderService.java
@@ -32,7 +32,6 @@
 import android.os.RemoteException;
 import android.util.Log;
 import android.view.Display;
-import android.view.SurfaceControl;
 import android.view.SurfaceControlViewHost;
 import android.view.View;
 import android.view.WindowManager;
@@ -104,14 +103,14 @@
                 }
             });
 
-            sendResult(callback, host.getSurfacePackage().getSurfaceControl());
+            sendResult(callback, host.getSurfacePackage());
         } finally {
             updateDisplay(Display.DEFAULT_DISPLAY);
         }
     }
 
     private void sendResult(@NonNull IInlineSuggestionUiCallback callback,
-            @Nullable SurfaceControl surface) {
+            @Nullable SurfaceControlViewHost.SurfacePackage surface) {
         try {
             callback.onContent(surface);
         } catch (RemoteException e) {
diff --git a/core/java/android/service/autofill/augmented/AugmentedAutofillService.java b/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
index 672b501..fe792b1 100644
--- a/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
+++ b/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
@@ -40,6 +40,7 @@
 import android.os.SystemClock;
 import android.service.autofill.Dataset;
 import android.service.autofill.FillEventHistory;
+import android.service.autofill.InlinePresentation;
 import android.service.autofill.augmented.PresentationParams.SystemPopupPresentationParams;
 import android.util.Log;
 import android.util.Pair;
@@ -557,12 +558,10 @@
             }
         }
 
-        void reportResult(@Nullable List<Dataset> inlineSuggestionsData) {
+        void reportResult(@Nullable List<Dataset> inlineSuggestionsData,
+                @Nullable List<InlinePresentation> inlineActions) {
             try {
-                final Dataset[] inlineSuggestions = (inlineSuggestionsData != null)
-                        ? inlineSuggestionsData.toArray(new Dataset[inlineSuggestionsData.size()])
-                        : null;
-                mCallback.onSuccess(inlineSuggestions);
+                mCallback.onSuccess(inlineSuggestionsData, inlineActions);
             } catch (RemoteException e) {
                 Log.e(TAG, "Error calling back with the inline suggestions data: " + e);
             }
diff --git a/core/java/android/service/autofill/augmented/FillCallback.java b/core/java/android/service/autofill/augmented/FillCallback.java
index 19eff57..6b4e118 100644
--- a/core/java/android/service/autofill/augmented/FillCallback.java
+++ b/core/java/android/service/autofill/augmented/FillCallback.java
@@ -55,14 +55,14 @@
 
         if (response == null) {
             mProxy.logEvent(AutofillProxy.REPORT_EVENT_NO_RESPONSE);
-            mProxy.reportResult(null /*inlineSuggestions*/);
+            mProxy.reportResult(/* inlineSuggestionsData */ null, /* inlineActions */null);
             return;
         }
 
         List<Dataset> inlineSuggestions = response.getInlineSuggestions();
         if (inlineSuggestions != null && !inlineSuggestions.isEmpty()) {
             mProxy.logEvent(AutofillProxy.REPORT_EVENT_INLINE_RESPONSE);
-            mProxy.reportResult(inlineSuggestions);
+            mProxy.reportResult(inlineSuggestions, response.getInlineActions());
             return;
         }
 
diff --git a/core/java/android/service/autofill/augmented/IFillCallback.aidl b/core/java/android/service/autofill/augmented/IFillCallback.aidl
index d983721..bf0adcd 100644
--- a/core/java/android/service/autofill/augmented/IFillCallback.aidl
+++ b/core/java/android/service/autofill/augmented/IFillCallback.aidl
@@ -20,6 +20,9 @@
 import android.os.ICancellationSignal;
 
 import android.service.autofill.Dataset;
+import android.service.autofill.InlinePresentation;
+
+import java.util.List;
 
 /**
  * Interface to receive the result of an autofill request.
@@ -28,7 +31,8 @@
  */
 interface IFillCallback {
     void onCancellable(in ICancellationSignal cancellation);
-    void onSuccess(in @nullable Dataset[] inlineSuggestionsData);
+    void onSuccess(in @nullable List<Dataset> inlineSuggestionsData,
+                   in @nullable List<InlinePresentation> inlineActions);
     boolean isCompleted();
     void cancel();
 }
diff --git a/core/java/android/service/controls/Control.java b/core/java/android/service/controls/Control.java
index 0cffe71..dabd977 100644
--- a/core/java/android/service/controls/Control.java
+++ b/core/java/android/service/controls/Control.java
@@ -209,61 +209,116 @@
         mStatusText = in.readCharSequence();
     }
 
+    /**
+     * @return the identifier for the {@link Control}
+     */
     @NonNull
     public String getControlId() {
         return mControlId;
     }
 
+
+    /**
+     * @return type of device represented by this {@link Control}, used to determine the default
+     *         icon and color
+     */
     @DeviceTypes.DeviceType
     public int getDeviceType() {
         return mDeviceType;
     }
 
+    /**
+     * @return the user facing name of the {@link Control}
+     */
     @NonNull
     public CharSequence getTitle() {
         return mTitle;
     }
 
+    /**
+     * @return additional information about the {@link Control}, to appear underneath the title
+     */
     @NonNull
     public CharSequence getSubtitle() {
         return mSubtitle;
     }
 
+    /**
+     * Optional top-level group to help define the {@link Control}'s location, visible to the user.
+     * If not present, the application name will be used as the top-level group. A structure
+     * contains zones which contains controls.
+     *
+     * @return name of the structure containing the control
+     */
     @Nullable
     public CharSequence getStructure() {
         return mStructure;
     }
 
+    /**
+     * Optional group name to help define the {@link Control}'s location within a structure,
+     * visible to the user. A structure contains zones which contains controls.
+     *
+     * @return name of the zone containing the control
+     */
     @Nullable
     public CharSequence getZone() {
         return mZone;
     }
 
+    /**
+     * @return a {@link PendingIntent} linking to an Activity for the {@link Control}
+     */
     @NonNull
     public PendingIntent getAppIntent() {
         return mAppIntent;
     }
 
+    /**
+     * Optional icon to be shown with the {@link Control}. It is highly recommended
+     * to let the system default the icon unless the default icon is not suitable.
+     *
+     * @return icon to show
+     */
     @Nullable
     public Icon getCustomIcon() {
         return mCustomIcon;
     }
 
+    /**
+     * Optional color to be shown with the {@link Control}. It is highly recommended
+     * to let the system default the color unless the default is not suitable for the
+     * application.
+     *
+     * @return background color to use
+     */
     @Nullable
     public ColorStateList getCustomColor() {
         return mCustomColor;
     }
 
+    /**
+     * @return status of the {@link Control}, used to convey information about the attempt to
+     *         fetch the current state
+     */
     @Status
     public int getStatus() {
         return mStatus;
     }
 
+    /**
+     * @return instance of {@link ControlTemplate}, that defines how the {@link Control} will
+     *         behave and what interactions are available to the user
+     */
     @NonNull
     public ControlTemplate getControlTemplate() {
         return mControlTemplate;
     }
 
+    /**
+     * @return user-facing text description of the {@link Control}'s status, describing its current
+     *         state
+     */
     @NonNull
     public CharSequence getStatusText() {
         return mStatusText;
@@ -326,7 +381,10 @@
     /**
      * Builder class for {@link Control}.
      *
-     * This class facilitates the creation of {@link Control} with no state.
+     * This class facilitates the creation of {@link Control} with no state. Must be used to
+     * provide controls for {@link ControlsProviderService#createPublisherForAllAvailable} and
+     * {@link ControlsProviderService#createPublisherForSuggested}.
+     *
      * It provides the following defaults for non-optional parameters:
      * <ul>
      *     <li> Device type: {@link DeviceTypes#TYPE_UNKNOWN}
@@ -334,7 +392,7 @@
      *     <li> Subtitle: {@code ""}
      * </ul>
      * This fixes the values relating to state of the {@link Control} as required by
-     * {@link ControlsProviderService#loadAvailableControls}:
+     * {@link ControlsProviderService#createPublisherForAllAvailable}:
      * <ul>
      *     <li> Status: {@link Status#STATUS_UNKNOWN}
      *     <li> Control template: {@link ControlTemplate#NO_TEMPLATE}
@@ -355,8 +413,8 @@
         private @Nullable ColorStateList mCustomColor;
 
         /**
-         * @param controlId the identifier for the {@link Control}.
-         * @param appIntent the pending intent linking to the device Activity.
+         * @param controlId the identifier for the {@link Control}
+         * @param appIntent the pending intent linking to the device Activity
          */
         public StatelessBuilder(@NonNull String controlId,
                 @NonNull PendingIntent appIntent) {
@@ -368,6 +426,7 @@
 
         /**
          * Creates a {@link StatelessBuilder} using an existing {@link Control} as a base.
+         *
          * @param control base for the builder.
          */
         public StatelessBuilder(@NonNull Control control) {
@@ -384,7 +443,7 @@
         }
 
         /**
-         * @param controlId the identifier for the {@link Control}.
+         * @param controlId the identifier for the {@link Control}
          * @return {@code this}
          */
         @NonNull
@@ -395,8 +454,8 @@
         }
 
         /**
-         * @param deviceType the device type for the {@link Control}. Setting an invalid value not
-         *                   in {@link DeviceTypes} will set it to {@link DeviceTypes#TYPE_UNKNOWN}.
+         * @param deviceType type of device represented by this {@link Control}, used to
+         *                   determine the default icon and color
          * @return {@code this}
          */
         @NonNull
@@ -422,7 +481,8 @@
         }
 
         /**
-         * @param subtitle the user facing subtitle for the {@link Control}
+         * @param subtitle additional information about the {@link Control}, to appear underneath
+         *                 the title
          * @return {@code this}
          */
         @NonNull
@@ -433,8 +493,11 @@
         }
 
         /**
-         * @param structure the user facing name of the structure for the {@link Control}.
-         *                  {@code null} indicates that it's not associated with any structure.
+         * Optional top-level group to help define the {@link Control}'s location, visible to the
+         * user. If not present, the application name will be used as the top-level group. A
+         * structure contains zones which contains controls.
+         *
+         * @param structure name of the structure containing the control
          * @return {@code this}
          */
         @NonNull
@@ -444,8 +507,10 @@
         }
 
         /**
-         * @param zone the user facing name of the zone for the {@link Control}. {@code null}
-         *             indicates that it's not associated with any zone.
+         * Optional group name to help define the {@link Control}'s location within a structure,
+         * visible to the user. A structure contains zones which contains controls.
+         *
+         * @param zone name of the zone containing the control
          * @return {@code this}
          */
         @NonNull
@@ -455,7 +520,7 @@
         }
 
         /**
-         * @param appIntent an {@link Intent} linking to an Activity for the {@link Control}
+         * @param appIntent a {@link PendingIntent} linking to an Activity for the {@link Control}
          * @return {@code this}
          */
         @NonNull
@@ -466,7 +531,10 @@
         }
 
         /**
-         * @param customIcon an {@link Icon} to override the one determined by the device type.
+         * Optional icon to be shown with the {@link Control}. It is highly recommended
+         * to let the system default the icon unless the default icon is not suitable.
+         *
+         * @param customIcon icon to show
          * @return {@code this}
          */
         @NonNull
@@ -476,7 +544,11 @@
         }
 
         /**
-         * @param customColor a list of colors to override the ones determined by the device type.
+         * Optional color to be shown with the {@link Control}. It is highly recommended
+         * to let the system default the color unless the default is not suitable for the
+         * application.
+         *
+         * @param customColor background color to use
          * @return {@code this}
          */
         @NonNull
@@ -486,7 +558,6 @@
         }
 
         /**
-         * Build a stateless {@link Control}
          * @return a valid {@link Control}
          */
         @NonNull
@@ -507,9 +578,15 @@
     }
 
     /**
-     * Builder class for {@link Control}.
+     * Builder class for {@link Control} that contains state information.
      *
-     * This class facilitates the creation of {@link Control} with an associated state.
+     * State information is passed through an instance of a {@link ControlTemplate} and will
+     * determine how the user can interact with the {@link Control}. User interactions will
+     * be sent through the method call {@link ControlsProviderService#performControlAction}
+     * with an instance of {@link ControlAction} to convey any potential new value.
+     *
+     * Must be used to provide controls for {@link ControlsProviderService#createPublisherFor}.
+     *
      * It provides the following defaults for non-optional parameters:
      * <ul>
      *     <li> Device type: {@link DeviceTypes#TYPE_UNKNOWN}
@@ -549,6 +626,7 @@
 
         /**
          * Creates a {@link StatelessBuilder} using an existing {@link Control} as a base.
+         *
          * @param control base for the builder.
          */
         public StatefulBuilder(@NonNull Control control) {
@@ -579,8 +657,8 @@
         }
 
         /**
-         * @param deviceType the device type for the {@link Control}. Setting an invalid value not
-         *                   in {@link DeviceTypes} will set it to {@link DeviceTypes#TYPE_UNKNOWN}.
+         * @param deviceType type of device represented by this {@link Control}, used to
+         *                   determine the default icon and color
          * @return {@code this}
          */
         @NonNull
@@ -606,7 +684,8 @@
         }
 
         /**
-         * @param subtitle the user facing subtitle for the {@link Control}
+         * @param subtitle additional information about the {@link Control}, to appear underneath
+         *                 the title
          * @return {@code this}
          */
         @NonNull
@@ -617,8 +696,11 @@
         }
 
         /**
-         * @param structure the user facing name of the structure for the {@link Control}.
-         *                  {@code null} indicates that it's not associated with any structure.
+         * Optional top-level group to help define the {@link Control}'s location, visible to the
+         * user. If not present, the application name will be used as the top-level group. A
+         * structure contains zones which contains controls.
+         *
+         * @param structure name of the structure containing the control
          * @return {@code this}
          */
         @NonNull
@@ -628,8 +710,10 @@
         }
 
         /**
-         * @param zone the user facing name of the zone for the {@link Control}. {@code null}
-         *             indicates that it's not associated with any zone.
+         * Optional group name to help define the {@link Control}'s location within a structure,
+         * visible to the user. A structure contains zones which contains controls.
+         *
+         * @param zone name of the zone containing the control
          * @return {@code this}
          */
         @NonNull
@@ -639,7 +723,7 @@
         }
 
         /**
-         * @param appIntent an {@link Intent} linking to an Activity for the {@link Control}
+         * @param appIntent a {@link PendingIntent} linking to an Activity for the {@link Control}
          * @return {@code this}
          */
         @NonNull
@@ -650,7 +734,10 @@
         }
 
         /**
-         * @param customIcon an {@link Icon} to override the one determined by the device type.
+         * Optional icon to be shown with the {@link Control}. It is highly recommended
+         * to let the system default the icon unless the default icon is not suitable.
+         *
+         * @param customIcon icon to show
          * @return {@code this}
          */
         @NonNull
@@ -660,7 +747,11 @@
         }
 
         /**
-         * @param customColor a list of colors to override the ones determined by the device type.
+         * Optional color to be shown with the {@link Control}. It is highly recommended
+         * to let the system default the color unless the default is not suitable for the
+         * application.
+         *
+         * @param customColor background color to use
          * @return {@code this}
          */
         @NonNull
@@ -670,8 +761,8 @@
         }
 
         /**
-         * @param status the status of the {@link Control}. Setting an invalid value not in
-         *               {@link Control} will set it to {@link Control#STATUS_UNKNOWN}.
+         * @param status status of the {@link Control}, used to convey information about the
+         *               attempt to fetch the current state
          * @return {@code this}
          */
         @NonNull
@@ -686,7 +777,9 @@
         }
 
         /**
-         * @param controlTemplate a template for the {@link Control}
+         * @param controlTemplate instance of {@link ControlTemplate}, that defines how the
+         *                        {@link Control} will behave and what interactions are
+         *                        available to the user
          * @return {@code this}
          */
         @NonNull
@@ -697,7 +790,8 @@
         }
 
         /**
-         * @param statusText a user facing text representing the status of the {@link Control}.
+         * @param statusText user-facing text description of the {@link Control}'s status,
+         *                   describing its current state
          * @return {@code this}
          */
         @NonNull
@@ -708,7 +802,6 @@
         }
 
         /**
-         * Build a stateless {@link Control}
          * @return a valid {@link Control}
          */
         @NonNull
diff --git a/core/java/android/service/controls/ControlsProviderService.java b/core/java/android/service/controls/ControlsProviderService.java
index b23d0cd..9debb37 100644
--- a/core/java/android/service/controls/ControlsProviderService.java
+++ b/core/java/android/service/controls/ControlsProviderService.java
@@ -38,7 +38,6 @@
 
 import com.android.internal.util.Preconditions;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.Flow.Publisher;
 import java.util.concurrent.Flow.Subscriber;
@@ -84,19 +83,6 @@
     private RequestHandler mHandler;
 
     /**
-     * Retrieve all available controls, using the stateless builder
-     * {@link Control.StatelessBuilder} to build each Control, then use the
-     * provided consumer to callback to the call originator.
-     *
-     * @deprecated Removing consumer-based load apis. Use publisherForAllAvailable() instead
-     */
-    @Deprecated
-    public void loadAvailableControls(@NonNull Consumer<List<Control>> consumer) {
-        // pending removal
-        consumer.accept(Collections.emptyList());
-    }
-
-    /**
      * Publisher for all available controls
      *
      * Retrieve all available controls. Use the stateless builder {@link Control.StatelessBuilder}
@@ -104,11 +90,8 @@
      * controls, or {@link Subscriber#onError} for error scenarios. Duplicate Controls will
      * replace the original.
      */
-    @Nullable
-    public Publisher<Control> publisherForAllAvailable() {
-        // will be abstract and @nonnull when consumers are removed
-        return null;
-    }
+    @NonNull
+    public abstract Publisher<Control> createPublisherForAllAvailable();
 
     /**
      * (Optional) Publisher for suggested controls
@@ -120,7 +103,7 @@
      * when done, or {@link Subscriber#onError} for error scenarios.
      */
     @Nullable
-    public Publisher<Control> publisherForSuggested() {
+    public Publisher<Control> createPublisherForSuggested() {
         return null;
     }
 
@@ -128,10 +111,11 @@
      * Return a valid Publisher for the given controlIds. This publisher will be asked to provide
      * updates for the given list of controlIds as long as the {@link Subscription} is valid.
      * Calls to {@link Subscriber#onComplete} will not be expected. Instead, wait for the call from
-     * {@link Subscription#cancel} to indicate that updates are no longer required.
+     * {@link Subscription#cancel} to indicate that updates are no longer required. It is expected
+     * that controls provided by this publisher were created using {@link Control.StatefulBuilder}.
      */
     @NonNull
-    public abstract Publisher<Control> publisherFor(@NonNull List<String> controlIds);
+    public abstract Publisher<Control> createPublisherFor(@NonNull List<String> controlIds);
 
     /**
      * The user has interacted with a Control. The action is dictated by the type of
@@ -177,7 +161,7 @@
     }
 
     @Override
-    public boolean onUnbind(@NonNull Intent intent) {
+    public final boolean onUnbind(@NonNull Intent intent) {
         mHandler = null;
         return true;
     }
@@ -198,13 +182,7 @@
                     final IControlsSubscriber cs = (IControlsSubscriber) msg.obj;
                     final SubscriberProxy proxy = new SubscriberProxy(true, mToken, cs);
 
-                    Publisher<Control> publisher =
-                            ControlsProviderService.this.publisherForAllAvailable();
-                    if (publisher == null) {
-                        ControlsProviderService.this.loadAvailableControls(consumerFor(proxy));
-                    } else {
-                        publisher.subscribe(proxy);
-                    }
+                    ControlsProviderService.this.createPublisherForAllAvailable().subscribe(proxy);
                     break;
                 }
 
@@ -213,7 +191,7 @@
                     final SubscriberProxy proxy = new SubscriberProxy(true, mToken, cs);
 
                     Publisher<Control> publisher =
-                            ControlsProviderService.this.publisherForSuggested();
+                            ControlsProviderService.this.createPublisherForSuggested();
                     if (publisher == null) {
                         Log.i(TAG, "No publisher provided for suggested controls");
                         proxy.onComplete();
@@ -228,7 +206,8 @@
                     final SubscriberProxy proxy = new SubscriberProxy(false, mToken,
                             sMsg.mSubscriber);
 
-                    ControlsProviderService.this.publisherFor(sMsg.mControlIds).subscribe(proxy);
+                    ControlsProviderService.this.createPublisherFor(sMsg.mControlIds)
+                            .subscribe(proxy);
                     break;
                 }
 
@@ -256,37 +235,6 @@
                 }
             };
         }
-
-        /**
-         * Method will be removed during migration to publisher
-         */
-        private Consumer<List<Control>> consumerFor(final Subscriber<Control> subscriber) {
-            return (@NonNull final List<Control> controls) -> {
-                Preconditions.checkNotNull(controls);
-
-                subscriber.onSubscribe(new Subscription() {
-                        public void request(long n) {
-                            for (Control control: controls) {
-                                Control c;
-                                if (control == null) {
-                                    Log.e(TAG, "onLoad: null control.");
-                                }
-                                if (isStatelessControl(control)) {
-                                    c = control;
-                                } else {
-                                    Log.w(TAG, "onLoad: control is not stateless.");
-                                    c = new Control.StatelessBuilder(control).build();
-                                }
-
-                                subscriber.onNext(c);
-                            }
-                            subscriber.onComplete();
-                        }
-
-                        public void cancel() {}
-                    });
-            };
-        }
     }
 
     private static boolean isStatelessControl(Control control) {
diff --git a/core/java/android/service/dataloader/DataLoaderService.java b/core/java/android/service/dataloader/DataLoaderService.java
index 4190001..5bf1975 100644
--- a/core/java/android/service/dataloader/DataLoaderService.java
+++ b/core/java/android/service/dataloader/DataLoaderService.java
@@ -27,8 +27,8 @@
 import android.content.pm.IDataLoader;
 import android.content.pm.IDataLoaderStatusListener;
 import android.content.pm.InstallationFile;
+import android.content.pm.InstallationFileParcel;
 import android.content.pm.NamedParcelFileDescriptor;
-import android.os.Bundle;
 import android.os.IBinder;
 import android.os.ParcelFileDescriptor;
 import android.util.ExceptionUtils;
@@ -36,7 +36,6 @@
 
 import java.io.IOException;
 import java.util.Collection;
-import java.util.List;
 
 /**
  * The base class for implementing data loader service to control data loaders. Expecting
@@ -105,18 +104,11 @@
         private int mId;
 
         @Override
-        public void create(int id, @NonNull Bundle options,
+        public void create(int id, @NonNull DataLoaderParamsParcel params,
+                @NonNull FileSystemControlParcel control,
                 @NonNull IDataLoaderStatusListener listener)
-                throws IllegalArgumentException, RuntimeException {
+                throws RuntimeException {
             mId = id;
-            final DataLoaderParamsParcel params = options.getParcelable("params");
-            if (params == null) {
-                throw new IllegalArgumentException("Must specify data loader params");
-            }
-            final FileSystemControlParcel control = options.getParcelable("control");
-            if (control == null) {
-                throw new IllegalArgumentException("Must specify control parcel");
-            }
             try {
                 if (!nativeCreateDataLoader(id, control, params, listener)) {
                     Slog.e(TAG, "Failed to create native loader for " + mId);
@@ -178,7 +170,7 @@
         }
 
         @Override
-        public void prepareImage(List<InstallationFile> addedFiles, List<String> removedFiles) {
+        public void prepareImage(InstallationFileParcel[] addedFiles, String[] removedFiles) {
             if (!nativePrepareImage(mId, addedFiles, removedFiles)) {
                 Slog.w(TAG, "Failed to destroy loader: " + mId);
             }
@@ -240,7 +232,7 @@
     private native boolean nativeDestroyDataLoader(int storageId);
 
     private native boolean nativePrepareImage(int storageId,
-            List<InstallationFile> addedFiles, List<String> removedFiles);
+            InstallationFileParcel[] addedFiles, String[] removedFiles);
 
     private static native void nativeWriteData(long nativeInstance, String name, long offsetBytes,
             long lengthBytes, ParcelFileDescriptor incomingFd);
diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java
index 6562572..0cd96b8 100644
--- a/core/java/android/service/notification/NotificationListenerService.java
+++ b/core/java/android/service/notification/NotificationListenerService.java
@@ -19,6 +19,7 @@
 import android.annotation.CurrentTimeMillisLong;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.SdkConstant;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
@@ -37,6 +38,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ParceledListSlice;
+import android.content.pm.ShortcutInfo;
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
@@ -53,6 +55,7 @@
 import android.os.UserHandle;
 import android.util.ArrayMap;
 import android.util.Log;
+import android.util.Slog;
 import android.widget.RemoteViews;
 
 import com.android.internal.annotations.GuardedBy;
@@ -1566,6 +1569,7 @@
         private boolean mCanBubble;
         private boolean mVisuallyInterruptive;
         private boolean mIsConversation;
+        private ShortcutInfo mShortcutInfo;
 
         private static final int PARCEL_VERSION = 2;
 
@@ -1599,6 +1603,7 @@
             out.writeBoolean(mCanBubble);
             out.writeBoolean(mVisuallyInterruptive);
             out.writeBoolean(mIsConversation);
+            out.writeParcelable(mShortcutInfo, flags);
         }
 
         /** @hide */
@@ -1620,7 +1625,7 @@
             mImportance = in.readInt();
             mImportanceExplanation = in.readCharSequence(); // may be null
             mOverrideGroupKey = in.readString(); // may be null
-            mChannel = (NotificationChannel) in.readParcelable(cl); // may be null
+            mChannel = in.readParcelable(cl); // may be null
             mOverridePeople = in.createStringArrayList();
             mSnoozeCriteria = in.createTypedArrayList(SnoozeCriterion.CREATOR);
             mShowBadge = in.readBoolean();
@@ -1633,6 +1638,7 @@
             mCanBubble = in.readBoolean();
             mVisuallyInterruptive = in.readBoolean();
             mIsConversation = in.readBoolean();
+            mShortcutInfo = in.readParcelable(cl);
         }
 
 
@@ -1840,6 +1846,13 @@
         /**
          * @hide
          */
+        public @Nullable ShortcutInfo getShortcutInfo() {
+            return mShortcutInfo;
+        }
+
+        /**
+         * @hide
+         */
         @VisibleForTesting
         public void populate(String key, int rank, boolean matchesInterruptionFilter,
                 int visibilityOverride, int suppressedVisualEffects, int importance,
@@ -1849,7 +1862,7 @@
                 int userSentiment, boolean hidden, long lastAudiblyAlertedMs,
                 boolean noisy, ArrayList<Notification.Action> smartActions,
                 ArrayList<CharSequence> smartReplies, boolean canBubble,
-                boolean visuallyInterruptive, boolean isConversation) {
+                boolean visuallyInterruptive, boolean isConversation, ShortcutInfo shortcutInfo) {
             mKey = key;
             mRank = rank;
             mIsAmbient = importance < NotificationManager.IMPORTANCE_LOW;
@@ -1872,6 +1885,7 @@
             mCanBubble = canBubble;
             mVisuallyInterruptive = visuallyInterruptive;
             mIsConversation = isConversation;
+            mShortcutInfo = shortcutInfo;
         }
 
         /**
@@ -1898,7 +1912,8 @@
                     other.mSmartReplies,
                     other.mCanBubble,
                     other.mVisuallyInterruptive,
-                    other.mIsConversation);
+                    other.mIsConversation,
+                    other.mShortcutInfo);
         }
 
         /**
@@ -1952,7 +1967,10 @@
                     && Objects.equals(mSmartReplies, other.mSmartReplies)
                     && Objects.equals(mCanBubble, other.mCanBubble)
                     && Objects.equals(mVisuallyInterruptive, other.mVisuallyInterruptive)
-                    && Objects.equals(mIsConversation, other.mIsConversation);
+                    && Objects.equals(mIsConversation, other.mIsConversation)
+                    // Shortcutinfo doesn't have equals either; use id
+                    &&  Objects.equals((mShortcutInfo == null ? 0 : mShortcutInfo.getId()),
+                    (other.mShortcutInfo == null ? 0 : other.mShortcutInfo.getId()));
         }
     }
 
diff --git a/core/java/android/service/storage/ExternalStorageService.java b/core/java/android/service/storage/ExternalStorageService.java
index cc8116d0..fe797eb 100644
--- a/core/java/android/service/storage/ExternalStorageService.java
+++ b/core/java/android/service/storage/ExternalStorageService.java
@@ -31,6 +31,7 @@
 import android.os.RemoteCallback;
 import android.os.RemoteException;
 
+import java.io.File;
 import java.io.IOException;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -109,10 +110,17 @@
      *
      * <p> Additional calls to start a session for the same {@code sessionId} while the session
      * is still starting or already started should have no effect.
+     *
+     * @param sessionId uniquely identifies a running session and used in {@link #onEndSession}
+     * @param flag specifies the type or additional attributes of a session
+     * @param deviceFd for intercepting IO from other apps
+     * @param upperFileSystemPath is the root path on which we are intercepting IO from other apps
+     * @param lowerFileSystemPath is the root path matching {@code upperFileSystemPath} containing
+     * the actual data apps are trying to access
      */
     public abstract void onStartSession(@NonNull String sessionId, @SessionFlag int flag,
-            @NonNull ParcelFileDescriptor deviceFd, @NonNull String upperFileSystemPath,
-            @NonNull String lowerFileSystemPath) throws IOException;
+            @NonNull ParcelFileDescriptor deviceFd, @NonNull File upperFileSystemPath,
+            @NonNull File lowerFileSystemPath) throws IOException;
 
     /**
      * Called when the system ends the session identified by {@code sessionId}. Implementors should
@@ -136,7 +144,8 @@
                 RemoteCallback callback) throws RemoteException {
             mHandler.post(() -> {
                 try {
-                    onStartSession(sessionId, flag, deviceFd, upperPath, lowerPath);
+                    onStartSession(sessionId, flag, deviceFd, new File(upperPath),
+                            new File(lowerPath));
                     sendResult(sessionId, null /* throwable */, callback);
                 } catch (Throwable t) {
                     sendResult(sessionId, t, callback);
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index e9285cc..bf3c088 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -49,7 +49,6 @@
 import android.util.MergedConfiguration;
 import android.view.Display;
 import android.view.DisplayCutout;
-import android.view.DisplayInfo;
 import android.view.Gravity;
 import android.view.IWindowSession;
 import android.view.InputChannel;
@@ -833,22 +832,8 @@
                     mLayout.x = 0;
                     mLayout.y = 0;
 
-                    if (!fixedSize) {
-                        mLayout.width = myWidth;
-                        mLayout.height = myHeight;
-                    } else {
-                        // Force the wallpaper to cover the screen in both dimensions
-                        // only internal implementations like ImageWallpaper
-                        DisplayInfo displayInfo = new DisplayInfo();
-                        mDisplay.getDisplayInfo(displayInfo);
-                        final float layoutScale = Math.max(
-                                (float) displayInfo.logicalHeight / (float) myHeight,
-                                (float) displayInfo.logicalWidth / (float) myWidth);
-                        mLayout.height = (int) (myHeight * layoutScale);
-                        mLayout.width = (int) (myWidth * layoutScale);
-                        mWindowFlags |= WindowManager.LayoutParams.FLAG_SCALED;
-                    }
-
+                    mLayout.width = myWidth;
+                    mLayout.height = myHeight;
                     mLayout.format = mFormat;
 
                     mCurWindowFlags = mWindowFlags;
diff --git a/core/java/android/telephony/CellBroadcastIntents.java b/core/java/android/telephony/CellBroadcastIntents.java
index 921ad3c..e07f69a 100644
--- a/core/java/android/telephony/CellBroadcastIntents.java
+++ b/core/java/android/telephony/CellBroadcastIntents.java
@@ -46,7 +46,11 @@
 
     /**
      * Broadcast intent action for notifying area information has been updated. The information
-     * can be retrieved by {@link CellBroadcastService#getCellBroadcastAreaInfo(int)}
+     * can be retrieved by {@link CellBroadcastService#getCellBroadcastAreaInfo(int)}. The
+     * associated SIM slot index of updated area information can be retrieved through the extra
+     * {@link SubscriptionManager#EXTRA_SLOT_INDEX}.
+     *
+     * @see SubscriptionManager#EXTRA_SLOT_INDEX
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_AREA_INFO_UPDATED =
diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java
index 4196b55..cfbe393 100644
--- a/core/java/android/util/FeatureFlagUtils.java
+++ b/core/java/android/util/FeatureFlagUtils.java
@@ -63,7 +63,7 @@
         DEFAULT_FLAGS.put(SCREENRECORD_LONG_PRESS, "false");
         DEFAULT_FLAGS.put("settings_wifi_details_datausage_header", "false");
         DEFAULT_FLAGS.put("settings_skip_direction_mutable", "true");
-        DEFAULT_FLAGS.put(SETTINGS_WIFITRACKER2, "false");
+        DEFAULT_FLAGS.put(SETTINGS_WIFITRACKER2, "true");
         DEFAULT_FLAGS.put("settings_controller_loading_enhancement", "false");
         DEFAULT_FLAGS.put("settings_conditionals", "false");
         DEFAULT_FLAGS.put(NOTIF_CONVO_BYPASS_SHORTCUT_REQ, "true");
diff --git a/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java b/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
index b36888e..04be71f 100644
--- a/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
+++ b/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
@@ -17,22 +17,13 @@
 package android.util.apk;
 
 import static android.util.apk.ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_DSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_ECDSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_ECDSA_WITH_SHA512;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA512;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PSS_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PSS_WITH_SHA512;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_VERITY_DSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_VERITY_ECDSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_VERITY_RSA_PKCS1_V1_5_WITH_SHA256;
 import static android.util.apk.ApkSigningBlockUtils.compareSignatureAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getContentDigestAlgorithmJcaDigestAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getLengthPrefixedSlice;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmContentDigestAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaKeyAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaSignatureAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.isSupportedSignatureAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.readLengthPrefixedByteArray;
 
 import android.util.ArrayMap;
@@ -428,24 +419,6 @@
         }
     }
 
-    private static boolean isSupportedSignatureAlgorithm(int sigAlgorithm) {
-        switch (sigAlgorithm) {
-            case SIGNATURE_RSA_PSS_WITH_SHA256:
-            case SIGNATURE_RSA_PSS_WITH_SHA512:
-            case SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA256:
-            case SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA512:
-            case SIGNATURE_ECDSA_WITH_SHA256:
-            case SIGNATURE_ECDSA_WITH_SHA512:
-            case SIGNATURE_DSA_WITH_SHA256:
-            case SIGNATURE_VERITY_RSA_PKCS1_V1_5_WITH_SHA256:
-            case SIGNATURE_VERITY_ECDSA_WITH_SHA256:
-            case SIGNATURE_VERITY_DSA_WITH_SHA256:
-                return true;
-            default:
-                return false;
-        }
-    }
-
     /**
      * Verified APK Signature Scheme v2 signer.
      *
diff --git a/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java b/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
index 602e6df..abd04cc 100644
--- a/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
+++ b/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
@@ -17,22 +17,13 @@
 package android.util.apk;
 
 import static android.util.apk.ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_DSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_ECDSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_ECDSA_WITH_SHA512;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA512;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PSS_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_RSA_PSS_WITH_SHA512;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_VERITY_DSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_VERITY_ECDSA_WITH_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.SIGNATURE_VERITY_RSA_PKCS1_V1_5_WITH_SHA256;
 import static android.util.apk.ApkSigningBlockUtils.compareSignatureAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getContentDigestAlgorithmJcaDigestAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getLengthPrefixedSlice;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmContentDigestAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaKeyAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaSignatureAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.isSupportedSignatureAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.readLengthPrefixedByteArray;
 
 import android.os.Build;
@@ -552,24 +543,6 @@
         }
     }
 
-    private static boolean isSupportedSignatureAlgorithm(int sigAlgorithm) {
-        switch (sigAlgorithm) {
-            case SIGNATURE_RSA_PSS_WITH_SHA256:
-            case SIGNATURE_RSA_PSS_WITH_SHA512:
-            case SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA256:
-            case SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA512:
-            case SIGNATURE_ECDSA_WITH_SHA256:
-            case SIGNATURE_ECDSA_WITH_SHA512:
-            case SIGNATURE_DSA_WITH_SHA256:
-            case SIGNATURE_VERITY_RSA_PKCS1_V1_5_WITH_SHA256:
-            case SIGNATURE_VERITY_ECDSA_WITH_SHA256:
-            case SIGNATURE_VERITY_DSA_WITH_SHA256:
-                return true;
-            default:
-                return false;
-        }
-    }
-
     /**
      * Verified processed proof of rotation.
      *
diff --git a/core/java/android/util/apk/ApkSigningBlockUtils.java b/core/java/android/util/apk/ApkSigningBlockUtils.java
index 87af5364..4fe8515 100644
--- a/core/java/android/util/apk/ApkSigningBlockUtils.java
+++ b/core/java/android/util/apk/ApkSigningBlockUtils.java
@@ -124,6 +124,24 @@
         }
     }
 
+    static boolean isSupportedSignatureAlgorithm(int sigAlgorithm) {
+        switch (sigAlgorithm) {
+            case SIGNATURE_RSA_PSS_WITH_SHA256:
+            case SIGNATURE_RSA_PSS_WITH_SHA512:
+            case SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA256:
+            case SIGNATURE_RSA_PKCS1_V1_5_WITH_SHA512:
+            case SIGNATURE_ECDSA_WITH_SHA256:
+            case SIGNATURE_ECDSA_WITH_SHA512:
+            case SIGNATURE_DSA_WITH_SHA256:
+            case SIGNATURE_VERITY_RSA_PKCS1_V1_5_WITH_SHA256:
+            case SIGNATURE_VERITY_ECDSA_WITH_SHA256:
+            case SIGNATURE_VERITY_DSA_WITH_SHA256:
+                return true;
+            default:
+                return false;
+        }
+    }
+
     private static void verifyIntegrityFor1MbChunkBasedAlgorithm(
             Map<Integer, byte[]> expectedDigests,
             FileDescriptor apkFileDescriptor,
diff --git a/core/java/android/util/apk/SourceStampVerificationResult.java b/core/java/android/util/apk/SourceStampVerificationResult.java
new file mode 100644
index 0000000..2edaf623
--- /dev/null
+++ b/core/java/android/util/apk/SourceStampVerificationResult.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2020 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.util.apk;
+
+import android.annotation.Nullable;
+
+import java.security.cert.Certificate;
+
+/**
+ * A class encapsulating the result from the source stamp verifier
+ *
+ * <p>It indicates whether the source stamp is verified or not, and the source stamp certificate.
+ *
+ * @hide
+ */
+public final class SourceStampVerificationResult {
+
+    private final boolean mPresent;
+    private final boolean mVerified;
+    private final Certificate mCertificate;
+
+    private SourceStampVerificationResult(
+            boolean present, boolean verified, @Nullable Certificate certificate) {
+        this.mPresent = present;
+        this.mVerified = verified;
+        this.mCertificate = certificate;
+    }
+
+    public boolean isPresent() {
+        return mPresent;
+    }
+
+    public boolean isVerified() {
+        return mVerified;
+    }
+
+    public Certificate getCertificate() {
+        return mCertificate;
+    }
+
+    /**
+     * Create a non-present source stamp outcome.
+     *
+     * @return A non-present source stamp result.
+     */
+    public static SourceStampVerificationResult notPresent() {
+        return new SourceStampVerificationResult(
+                /* present= */ false, /* verified= */ false, /* certificate= */ null);
+    }
+
+    /**
+     * Create a verified source stamp outcome.
+     *
+     * @param certificate The source stamp certificate.
+     * @return A verified source stamp result, and the source stamp certificate.
+     */
+    public static SourceStampVerificationResult verified(Certificate certificate) {
+        return new SourceStampVerificationResult(
+                /* present= */ true, /* verified= */ true, certificate);
+    }
+
+    /**
+     * Create a non-verified source stamp outcome.
+     *
+     * @return A non-verified source stamp result.
+     */
+    public static SourceStampVerificationResult notVerified() {
+        return new SourceStampVerificationResult(
+                /* present= */ true, /* verified= */ false, /* certificate= */ null);
+    }
+}
diff --git a/core/java/android/util/apk/SourceStampVerifier.java b/core/java/android/util/apk/SourceStampVerifier.java
new file mode 100644
index 0000000..759c864
--- /dev/null
+++ b/core/java/android/util/apk/SourceStampVerifier.java
@@ -0,0 +1,302 @@
+/*
+ * Copyright (C) 2020 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.util.apk;
+
+import static android.util.apk.ApkSigningBlockUtils.compareSignatureAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.getLengthPrefixedSlice;
+import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmContentDigestAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaSignatureAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.isSupportedSignatureAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.readLengthPrefixedByteArray;
+
+import android.util.Pair;
+import android.util.jar.StrictJarFile;
+
+import libcore.io.IoUtils;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.RandomAccessFile;
+import java.nio.BufferUnderflowException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PublicKey;
+import java.security.Signature;
+import java.security.SignatureException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.security.spec.AlgorithmParameterSpec;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.zip.ZipEntry;
+
+/**
+ * Source Stamp verifier.
+ *
+ * <p>SourceStamp improves traceability of apps with respect to unauthorized distribution.
+ *
+ * <p>The stamp is part of the APK that is protected by the signing block.
+ *
+ * <p>The APK contents hash is signed using the stamp key, and is saved as part of the signing
+ * block.
+ *
+ * @hide for internal use only.
+ */
+public abstract class SourceStampVerifier {
+
+    private static final int APK_SIGNATURE_SCHEME_V2_BLOCK_ID = 0x7109871a;
+    private static final int APK_SIGNATURE_SCHEME_V3_BLOCK_ID = 0xf05368c0;
+    private static final int SOURCE_STAMP_BLOCK_ID = 0x2b09189e;
+
+    /** Name of the SourceStamp certificate hash ZIP entry in APKs. */
+    private static final String SOURCE_STAMP_CERTIFICATE_HASH_ZIP_ENTRY_NAME = "stamp-cert-sha256";
+
+    /** Hidden constructor to prevent instantiation. */
+    private SourceStampVerifier() {}
+
+    /** Verifies SourceStamp present in the provided APK. */
+    public static SourceStampVerificationResult verify(String apkFile) {
+        try (RandomAccessFile apk = new RandomAccessFile(apkFile, "r")) {
+            return verify(apk);
+        } catch (Exception e) {
+            // Any exception in the SourceStamp verification returns a non-verified SourceStamp
+            // outcome without affecting the outcome of any of the other signature schemes.
+            return SourceStampVerificationResult.notVerified();
+        }
+    }
+
+    private static SourceStampVerificationResult verify(RandomAccessFile apk)
+            throws IOException, SignatureNotFoundException {
+        byte[] sourceStampCertificateDigest = getSourceStampCertificateDigest(apk);
+        if (sourceStampCertificateDigest == null) {
+            // SourceStamp certificate hash file not found, which means that there is not
+            // SourceStamp present.
+            return SourceStampVerificationResult.notPresent();
+        }
+        SignatureInfo signatureInfo =
+                ApkSigningBlockUtils.findSignature(apk, SOURCE_STAMP_BLOCK_ID);
+        Map<Integer, byte[]> apkContentDigests = getApkContentDigests(apk);
+        return verify(signatureInfo, apkContentDigests, sourceStampCertificateDigest);
+    }
+
+    private static SourceStampVerificationResult verify(
+            SignatureInfo signatureInfo,
+            Map<Integer, byte[]> apkContentDigests,
+            byte[] sourceStampCertificateDigest)
+            throws SecurityException, IOException {
+        CertificateFactory certFactory;
+        try {
+            certFactory = CertificateFactory.getInstance("X.509");
+        } catch (CertificateException e) {
+            throw new RuntimeException("Failed to obtain X.509 CertificateFactory", e);
+        }
+
+        List<Pair<Integer, byte[]>> digests =
+                apkContentDigests.entrySet().stream()
+                        .sorted(Map.Entry.comparingByKey())
+                        .map(e -> Pair.create(e.getKey(), e.getValue()))
+                        .collect(Collectors.toList());
+        byte[] digestBytes = encodeApkContentDigests(digests);
+
+        ByteBuffer sourceStampBlock = signatureInfo.signatureBlock;
+        ByteBuffer sourceStampBlockData =
+                ApkSigningBlockUtils.getLengthPrefixedSlice(sourceStampBlock);
+
+        // Parse the SourceStamp certificate.
+        byte[] sourceStampEncodedCertificate =
+                ApkSigningBlockUtils.readLengthPrefixedByteArray(sourceStampBlockData);
+        X509Certificate sourceStampCertificate;
+        try {
+            sourceStampCertificate =
+                    (X509Certificate)
+                            certFactory.generateCertificate(
+                                    new ByteArrayInputStream(sourceStampEncodedCertificate));
+        } catch (CertificateException e) {
+            throw new SecurityException("Failed to decode certificate", e);
+        }
+        sourceStampCertificate =
+                new VerbatimX509Certificate(sourceStampCertificate, sourceStampEncodedCertificate);
+
+        // Verify the SourceStamp certificate found in the signing block is the same as the
+        // SourceStamp certificate found in the APK.
+        try {
+            MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
+            messageDigest.update(sourceStampEncodedCertificate);
+            byte[] sourceStampBlockCertificateDigest = messageDigest.digest();
+            if (!Arrays.equals(sourceStampCertificateDigest, sourceStampBlockCertificateDigest)) {
+                throw new SecurityException("Certificate mismatch between APK and signature block");
+            }
+        } catch (NoSuchAlgorithmException e) {
+            throw new SecurityException("Failed to find SHA-256", e);
+        }
+
+        // Parse the signatures block and identify supported signatures
+        ByteBuffer signatures = ApkSigningBlockUtils.getLengthPrefixedSlice(sourceStampBlockData);
+        int signatureCount = 0;
+        int bestSigAlgorithm = -1;
+        byte[] bestSigAlgorithmSignatureBytes = null;
+        while (signatures.hasRemaining()) {
+            signatureCount++;
+            try {
+                ByteBuffer signature = getLengthPrefixedSlice(signatures);
+                if (signature.remaining() < 8) {
+                    throw new SecurityException("Signature record too short");
+                }
+                int sigAlgorithm = signature.getInt();
+                if (!isSupportedSignatureAlgorithm(sigAlgorithm)) {
+                    continue;
+                }
+                if ((bestSigAlgorithm == -1)
+                        || (compareSignatureAlgorithm(sigAlgorithm, bestSigAlgorithm) > 0)) {
+                    bestSigAlgorithm = sigAlgorithm;
+                    bestSigAlgorithmSignatureBytes = readLengthPrefixedByteArray(signature);
+                }
+            } catch (IOException | BufferUnderflowException e) {
+                throw new SecurityException(
+                        "Failed to parse signature record #" + signatureCount, e);
+            }
+        }
+        if (bestSigAlgorithm == -1) {
+            if (signatureCount == 0) {
+                throw new SecurityException("No signatures found");
+            } else {
+                throw new SecurityException("No supported signatures found");
+            }
+        }
+
+        // Verify signatures over digests using the SourceStamp's certificate.
+        Pair<String, ? extends AlgorithmParameterSpec> signatureAlgorithmParams =
+                getSignatureAlgorithmJcaSignatureAlgorithm(bestSigAlgorithm);
+        String jcaSignatureAlgorithm = signatureAlgorithmParams.first;
+        AlgorithmParameterSpec jcaSignatureAlgorithmParams = signatureAlgorithmParams.second;
+        PublicKey publicKey = sourceStampCertificate.getPublicKey();
+        boolean sigVerified;
+        try {
+            Signature sig = Signature.getInstance(jcaSignatureAlgorithm);
+            sig.initVerify(publicKey);
+            if (jcaSignatureAlgorithmParams != null) {
+                sig.setParameter(jcaSignatureAlgorithmParams);
+            }
+            sig.update(digestBytes);
+            sigVerified = sig.verify(bestSigAlgorithmSignatureBytes);
+        } catch (InvalidKeyException
+                | InvalidAlgorithmParameterException
+                | SignatureException
+                | NoSuchAlgorithmException e) {
+            throw new SecurityException(
+                    "Failed to verify " + jcaSignatureAlgorithm + " signature", e);
+        }
+        if (!sigVerified) {
+            throw new SecurityException(jcaSignatureAlgorithm + " signature did not verify");
+        }
+
+        return SourceStampVerificationResult.verified(sourceStampCertificate);
+    }
+
+    private static Map<Integer, byte[]> getApkContentDigests(RandomAccessFile apk)
+            throws IOException, SignatureNotFoundException {
+        // Retrieve APK content digests in V3 signing block. If a V3 signature is not found, the APK
+        // content digests would be re-tried from V2 signature.
+        try {
+            SignatureInfo v3SignatureInfo =
+                    ApkSigningBlockUtils.findSignature(apk, APK_SIGNATURE_SCHEME_V3_BLOCK_ID);
+            return getApkContentDigestsFromSignatureBlock(v3SignatureInfo.signatureBlock);
+        } catch (SignatureNotFoundException e) {
+            // It's fine not to find a V3 signature.
+        }
+
+        // Retrieve APK content digests in V2 signing block. If a V2 signature is not found, the
+        // process of retrieving APK content digests stops, and the stamp is considered un-verified.
+        SignatureInfo v2SignatureInfo =
+                ApkSigningBlockUtils.findSignature(apk, APK_SIGNATURE_SCHEME_V2_BLOCK_ID);
+        return getApkContentDigestsFromSignatureBlock(v2SignatureInfo.signatureBlock);
+    }
+
+    private static Map<Integer, byte[]> getApkContentDigestsFromSignatureBlock(
+            ByteBuffer signatureBlock) throws IOException {
+        Map<Integer, byte[]> apkContentDigests = new HashMap<>();
+        ByteBuffer signers = getLengthPrefixedSlice(signatureBlock);
+        while (signers.hasRemaining()) {
+            ByteBuffer signer = getLengthPrefixedSlice(signers);
+            ByteBuffer signedData = getLengthPrefixedSlice(signer);
+            ByteBuffer digests = getLengthPrefixedSlice(signedData);
+            while (digests.hasRemaining()) {
+                ByteBuffer digest = getLengthPrefixedSlice(digests);
+                int sigAlgorithm = digest.getInt();
+                byte[] contentDigest = readLengthPrefixedByteArray(digest);
+                int digestAlgorithm = getSignatureAlgorithmContentDigestAlgorithm(sigAlgorithm);
+                apkContentDigests.put(digestAlgorithm, contentDigest);
+            }
+        }
+        return apkContentDigests;
+    }
+
+    private static byte[] getSourceStampCertificateDigest(RandomAccessFile apk) throws IOException {
+        StrictJarFile apkJar =
+                new StrictJarFile(
+                        apk.getFD(),
+                        /* verify= */ false,
+                        /* signatureSchemeRollbackProtectionsEnforced= */ false);
+        ZipEntry zipEntry = apkJar.findEntry(SOURCE_STAMP_CERTIFICATE_HASH_ZIP_ENTRY_NAME);
+        if (zipEntry == null) {
+            // SourceStamp certificate hash file not found, which means that there is not
+            // SourceStamp present.
+            return null;
+        }
+        InputStream inputStream = null;
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        try {
+            inputStream = apkJar.getInputStream(zipEntry);
+
+            // Trying to read the certificate digest, which should be less than 1024 bytes.
+            byte[] buffer = new byte[1024];
+            int count = inputStream.read(buffer, 0, buffer.length);
+            byteArrayOutputStream.write(buffer, 0, count);
+
+            return byteArrayOutputStream.toByteArray();
+        } finally {
+            IoUtils.closeQuietly(inputStream);
+        }
+    }
+
+    private static byte[] encodeApkContentDigests(List<Pair<Integer, byte[]>> apkContentDigests) {
+        int resultSize = 0;
+        for (Pair<Integer, byte[]> element : apkContentDigests) {
+            resultSize += 12 + element.second.length;
+        }
+        ByteBuffer result = ByteBuffer.allocate(resultSize);
+        result.order(ByteOrder.LITTLE_ENDIAN);
+        for (Pair<Integer, byte[]> element : apkContentDigests) {
+            byte[] second = element.second;
+            result.putInt(8 + second.length);
+            result.putInt(element.first);
+            result.putInt(second.length);
+            result.put(second);
+        }
+        return result.array();
+    }
+}
diff --git a/core/java/android/util/proto/ProtoInputStream.java b/core/java/android/util/proto/ProtoInputStream.java
index 24e7d2b..cbe3734 100644
--- a/core/java/android/util/proto/ProtoInputStream.java
+++ b/core/java/android/util/proto/ProtoInputStream.java
@@ -601,6 +601,12 @@
             // Limit how much bookkeeping is done by checking how far away the end of the buffer is
             // and directly accessing buffer up until the end.
             final int fragment = mEnd - mOffset;
+            if (fragment < 0) {
+                throw new ProtoParseException(
+                        "Incomplete varint at offset 0x"
+                                + Integer.toHexString(getOffset())
+                                + dumpDebugData());
+            }
             for (int i = 0; i < fragment; i++) {
                 byte b = mBuffer[(mOffset + i)];
                 value |= (b & 0x7FL) << shift;
@@ -646,6 +652,12 @@
             fillBuffer();
             // Find the number of bytes available until the end of the chunk or Fixed32
             int fragment = (mEnd - mOffset) < bytesLeft ? (mEnd - mOffset) : bytesLeft;
+            if (fragment < 0) {
+                throw new ProtoParseException(
+                        "Incomplete fixed32 at offset 0x"
+                                + Integer.toHexString(getOffset())
+                                + dumpDebugData());
+            }
             incOffset(fragment);
             bytesLeft -= fragment;
             while (fragment > 0) {
@@ -686,6 +698,12 @@
             fillBuffer();
             // Find the number of bytes available until the end of the chunk or Fixed64
             int fragment = (mEnd - mOffset) < bytesLeft ? (mEnd - mOffset) : bytesLeft;
+            if (fragment < 0) {
+                throw new ProtoParseException(
+                        "Incomplete fixed64 at offset 0x"
+                                + Integer.toHexString(getOffset())
+                                + dumpDebugData());
+            }
             incOffset(fragment);
             bytesLeft -= fragment;
             while (fragment > 0) {
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index d1edf58..0dcb9cc 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -580,7 +580,6 @@
      * @return The display address.
      * @hide
      */
-    @UnsupportedAppUsage
     public DisplayAddress getAddress() {
         return mAddress;
     }
diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java
index 0ab856e..679c912 100644
--- a/core/java/android/view/DisplayCutout.java
+++ b/core/java/android/view/DisplayCutout.java
@@ -393,22 +393,38 @@
         return mSafeInsets.equals(ZERO_RECT);
     }
 
-    /** Returns the inset from the top which avoids the display cutout in pixels. */
+    /**
+     * Returns the inset from the top which avoids the display cutout in pixels.
+     *
+     * @see WindowInsets.Type#displayCutout()
+     */
     public int getSafeInsetTop() {
         return mSafeInsets.top;
     }
 
-    /** Returns the inset from the bottom which avoids the display cutout in pixels. */
+    /**
+     * Returns the inset from the bottom which avoids the display cutout in pixels.
+     *
+     * @see WindowInsets.Type#displayCutout()
+     */
     public int getSafeInsetBottom() {
         return mSafeInsets.bottom;
     }
 
-    /** Returns the inset from the left which avoids the display cutout in pixels. */
+    /**
+     * Returns the inset from the left which avoids the display cutout in pixels.
+     *
+     * @see WindowInsets.Type#displayCutout()
+     */
     public int getSafeInsetLeft() {
         return mSafeInsets.left;
     }
 
-    /** Returns the inset from the right which avoids the display cutout in pixels. */
+    /**
+     * Returns the inset from the right which avoids the display cutout in pixels.
+     *
+     * @see WindowInsets.Type#displayCutout()
+     */
     public int getSafeInsetRight() {
         return mSafeInsets.right;
     }
diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java
index 3047385..c0d61d4 100644
--- a/core/java/android/view/DisplayInfo.java
+++ b/core/java/android/view/DisplayInfo.java
@@ -32,6 +32,7 @@
 import android.os.Build;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.os.Process;
 import android.util.ArraySet;
 import android.util.DisplayMetrics;
 import android.util.proto.ProtoOutputStream;
@@ -604,14 +605,9 @@
         StringBuilder sb = new StringBuilder();
         sb.append("DisplayInfo{\"");
         sb.append(name);
-        sb.append(", displayId ");
+        sb.append("\", displayId ");
         sb.append(displayId);
-        sb.append("\", uniqueId \"");
-        sb.append(uniqueId);
-        sb.append("\", app ");
-        sb.append(appWidth);
-        sb.append(" x ");
-        sb.append(appHeight);
+        sb.append(flagsToString(flags));
         sb.append(", real ");
         sb.append(logicalWidth);
         sb.append(" x ");
@@ -624,22 +620,38 @@
         sb.append(smallestNominalAppWidth);
         sb.append(" x ");
         sb.append(smallestNominalAppHeight);
+        sb.append(", appVsyncOff ");
+        sb.append(appVsyncOffsetNanos);
+        sb.append(", presDeadline ");
+        sb.append(presentationDeadlineNanos);
         sb.append(", mode ");
         sb.append(modeId);
         sb.append(", defaultMode ");
         sb.append(defaultModeId);
         sb.append(", modes ");
         sb.append(Arrays.toString(supportedModes));
-        sb.append(", colorMode ");
-        sb.append(colorMode);
-        sb.append(", supportedColorModes ");
-        sb.append(Arrays.toString(supportedColorModes));
         sb.append(", hdrCapabilities ");
         sb.append(hdrCapabilities);
         sb.append(", minimalPostProcessingSupported ");
         sb.append(minimalPostProcessingSupported);
         sb.append(", rotation ");
         sb.append(rotation);
+        sb.append(", state ");
+        sb.append(Display.stateToString(state));
+
+        if (Process.myUid() != Process.SYSTEM_UID) {
+            sb.append("}");
+            return sb.toString();
+        }
+
+        sb.append(", type ");
+        sb.append(Display.typeToString(type));
+        sb.append(", uniqueId \"");
+        sb.append(uniqueId);
+        sb.append("\", app ");
+        sb.append(appWidth);
+        sb.append(" x ");
+        sb.append(appHeight);
         sb.append(", density ");
         sb.append(logicalDensityDpi);
         sb.append(" (");
@@ -648,24 +660,19 @@
         sb.append(physicalYDpi);
         sb.append(") dpi, layerStack ");
         sb.append(layerStack);
-        sb.append(", appVsyncOff ");
-        sb.append(appVsyncOffsetNanos);
-        sb.append(", presDeadline ");
-        sb.append(presentationDeadlineNanos);
-        sb.append(", type ");
-        sb.append(Display.typeToString(type));
+        sb.append(", colorMode ");
+        sb.append(colorMode);
+        sb.append(", supportedColorModes ");
+        sb.append(Arrays.toString(supportedColorModes));
         if (address != null) {
             sb.append(", address ").append(address);
         }
         sb.append(", deviceProductInfo ");
         sb.append(deviceProductInfo);
-        sb.append(", state ");
-        sb.append(Display.stateToString(state));
         if (ownerUid != 0 || ownerPackageName != null) {
             sb.append(", owner ").append(ownerPackageName);
             sb.append(" (uid ").append(ownerUid).append(")");
         }
-        sb.append(flagsToString(flags));
         sb.append(", removeMode ");
         sb.append(removeMode);
         sb.append("}");
diff --git a/core/java/android/view/ImeFocusController.java b/core/java/android/view/ImeFocusController.java
index 67e88a5..74fac2b 100644
--- a/core/java/android/view/ImeFocusController.java
+++ b/core/java/android/view/ImeFocusController.java
@@ -197,6 +197,26 @@
     }
 
     /**
+     * Called by {@link ViewRootImpl} to feedback the state of the screen for this view.
+     * @param newScreenState The new state of the screen. Can be either
+     *                       {@link View#SCREEN_STATE_ON} or {@link View#SCREEN_STATE_OFF}
+     */
+    @UiThread
+    void onScreenStateChanged(int newScreenState) {
+        if (!getImmDelegate().isCurrentRootView(mViewRootImpl)) {
+            return;
+        }
+        // Close input connection and IME when the screen is turn off for security concern.
+        if (newScreenState == View.SCREEN_STATE_OFF && mServedView != null) {
+            if (DEBUG) {
+                Log.d(TAG, "onScreenStateChanged, disconnect input when screen turned off");
+            }
+            mNextServedView = null;
+            mViewRootImpl.dispatchCheckFocus();
+        }
+    }
+
+    /**
      * @param windowAttribute {@link WindowManager.LayoutParams} to be checked.
      * @return Whether the window is in local focus mode or not.
      */
diff --git a/core/java/android/view/ImeInsetsSourceConsumer.java b/core/java/android/view/ImeInsetsSourceConsumer.java
index 43afc15..35286ba 100644
--- a/core/java/android/view/ImeInsetsSourceConsumer.java
+++ b/core/java/android/view/ImeInsetsSourceConsumer.java
@@ -16,6 +16,8 @@
 
 package android.view;
 
+import static android.view.InsetsController.ANIMATION_TYPE_USER;
+import static android.view.InsetsController.AnimationType;
 import static android.view.InsetsState.ITYPE_IME;
 
 import android.annotation.Nullable;
@@ -99,9 +101,15 @@
     }
 
     @Override
-    void hide(boolean animationFinished) {
+    void hide(boolean animationFinished, @AnimationType int animationType) {
         super.hide();
-        if (animationFinished) {
+
+        if (!animationFinished) {
+            if (animationType == ANIMATION_TYPE_USER) {
+                // if controlWindowInsetsAnimation is hiding keyboard.
+                notifyHidden();
+            }
+        } else {
             // remove IME surface as IME has finished hide animation.
             removeSurface();
         }
@@ -118,7 +126,8 @@
 
         // If we had a request before to show from IME (tracked with mImeRequestedShow), reaching
         // this code here means that we now got control, so we can start the animation immediately.
-        if (fromIme || mImeRequestedShow) {
+        // If client window is trying to control IME and IME is already visible, it is immediate.
+        if (fromIme || mImeRequestedShow || mState.getSource(getType()).isVisible()) {
             mImeRequestedShow = false;
             return ShowResult.SHOW_IMMEDIATELY;
         }
diff --git a/core/java/android/view/InsetsAnimationControlImpl.java b/core/java/android/view/InsetsAnimationControlImpl.java
index 0e037c2..ae509f3 100644
--- a/core/java/android/view/InsetsAnimationControlImpl.java
+++ b/core/java/android/view/InsetsAnimationControlImpl.java
@@ -16,6 +16,7 @@
 
 package android.view;
 
+import static android.view.InsetsController.AnimationType;
 import static android.view.InsetsState.ISIDE_BOTTOM;
 import static android.view.InsetsState.ISIDE_FLOATING;
 import static android.view.InsetsState.ISIDE_LEFT;
@@ -64,10 +65,10 @@
     private final Insets mShownInsets;
     private final Matrix mTmpMatrix = new Matrix();
     private final InsetsState mInitialInsetsState;
+    private final @AnimationType int mAnimationType;
     private final @InsetsType int mTypes;
     private final InsetsAnimationControlCallbacks mController;
     private final WindowInsetsAnimation mAnimation;
-    private final Rect mFrame;
     private final boolean mFade;
     private Insets mCurrentInsets;
     private Insets mPendingInsets;
@@ -75,15 +76,16 @@
     private boolean mFinished;
     private boolean mCancelled;
     private boolean mShownOnFinish;
-    private float mCurrentAlpha;
-    private float mPendingAlpha;
+    private float mCurrentAlpha = 1.0f;
+    private float mPendingAlpha = 1.0f;
 
     @VisibleForTesting
     public InsetsAnimationControlImpl(SparseArray<InsetsSourceControl> controls, Rect frame,
             InsetsState state, WindowInsetsAnimationControlListener listener,
             @InsetsType int types,
             InsetsAnimationControlCallbacks controller, long durationMs, Interpolator interpolator,
-            boolean fade, @LayoutInsetsDuringAnimation int layoutInsetsDuringAnimation) {
+            boolean fade, @LayoutInsetsDuringAnimation int layoutInsetsDuringAnimation,
+            @AnimationType int animationType) {
         mControls = controls;
         mListener = listener;
         mTypes = types;
@@ -96,12 +98,12 @@
                 null /* typeSideMap */);
         mShownInsets = calculateInsets(mInitialInsetsState, frame, controls, true /* shown */,
                 mTypeSideMap);
-        mFrame = new Rect(frame);
         buildTypeSourcesMap(mTypeSideMap, mSideSourceMap, mControls);
 
         mAnimation = new WindowInsetsAnimation(mTypes, interpolator,
                 durationMs);
         mAnimation.setAlpha(getCurrentAlpha());
+        mAnimationType = animationType;
         mController.startAnimation(this, listener, types, mAnimation,
                 new Bounds(mHiddenInsets, mShownInsets), layoutInsetsDuringAnimation);
     }
@@ -135,6 +137,10 @@
         return InsetsState.toInternalType(mTypes).contains(type);
     }
 
+    @AnimationType int getAnimationType() {
+        return mAnimationType;
+    }
+
     @Override
     public void setInsetsAndAlpha(Insets insets, float alpha, float fraction) {
         if (mFinished) {
@@ -147,7 +153,7 @@
         }
         mPendingFraction = sanitize(fraction);
         mPendingInsets = sanitize(insets);
-        mPendingAlpha = 1 - sanitize(alpha);
+        mPendingAlpha = sanitize(alpha);
         mController.scheduleApplyChangeInsets();
     }
 
@@ -160,23 +166,23 @@
             return false;
         }
         final Insets offset = Insets.subtract(mShownInsets, mPendingInsets);
-        final Float alphaOffset = 1 - mPendingAlpha;
         ArrayList<SurfaceParams> params = new ArrayList<>();
         updateLeashesForSide(ISIDE_LEFT, offset.left, mShownInsets.left, mPendingInsets.left,
-                params, state, alphaOffset);
+                params, state, mPendingAlpha);
         updateLeashesForSide(ISIDE_TOP, offset.top, mShownInsets.top, mPendingInsets.top, params,
-                state, alphaOffset);
+                state, mPendingAlpha);
         updateLeashesForSide(ISIDE_RIGHT, offset.right, mShownInsets.right, mPendingInsets.right,
-                params, state, alphaOffset);
+                params, state, mPendingAlpha);
         updateLeashesForSide(ISIDE_BOTTOM, offset.bottom, mShownInsets.bottom,
-                mPendingInsets.bottom, params, state, alphaOffset);
+                mPendingInsets.bottom, params, state, mPendingAlpha);
         updateLeashesForSide(ISIDE_FLOATING, 0 /* offset */, 0 /* inset */, 0 /* maxInset */,
-                params, state, alphaOffset);
+                params, state, mPendingAlpha);
 
         mController.applySurfaceParams(params.toArray(new SurfaceParams[params.size()]));
         mCurrentInsets = mPendingInsets;
         mAnimation.setFraction(mPendingFraction);
-        mCurrentAlpha = 1 - alphaOffset;
+        mCurrentAlpha = mPendingAlpha;
+        mAnimation.setAlpha(mPendingAlpha);
         if (mFinished) {
             mController.notifyFinished(this, mShownOnFinish);
         }
@@ -232,7 +238,8 @@
 
     private Insets getInsetsFromState(InsetsState state, Rect frame,
             @Nullable @InternalInsetsSide SparseIntArray typeSideMap) {
-        return state.calculateInsets(frame, false /* isScreenRound */,
+        return state.calculateInsets(frame, null /* ignoringVisibilityState */,
+                false /* isScreenRound */,
                 false /* alwaysConsumeSystemBars */, null /* displayCutout */,
                 null /* legacyContentInsets */, null /* legacyStableInsets */,
                 LayoutParams.SOFT_INPUT_ADJUST_RESIZE /* legacySoftInputMode*/,
@@ -251,8 +258,8 @@
         return alpha >= 1 ? 1 : (alpha <= 0 ? 0 : alpha);
     }
 
-    private void updateLeashesForSide(@InternalInsetsSide int side, int offset, int inset,
-            int maxInset, ArrayList<SurfaceParams> surfaceParams, InsetsState state, Float alpha) {
+    private void updateLeashesForSide(@InternalInsetsSide int side, int offset, int maxInset,
+            int inset, ArrayList<SurfaceParams> surfaceParams, InsetsState state, Float alpha) {
         ArraySet<InsetsSourceControl> items = mSideSourceMap.get(side);
         if (items == null) {
             return;
@@ -267,16 +274,21 @@
             mTmpFrame.set(source.getFrame());
             addTranslationToMatrix(side, offset, mTmpMatrix, mTmpFrame);
 
+            state.getSource(source.getType()).setVisible(side == ISIDE_FLOATING || inset != 0);
             state.getSource(source.getType()).setFrame(mTmpFrame);
 
             // If the system is controlling the insets source, the leash can be null.
             if (leash != null) {
                 // TODO: use a better interpolation for fade.
-                alpha = mFade ? ((float) maxInset / inset * 0.3f + 0.7f) : alpha;
-                surfaceParams.add(new SurfaceParams(leash, side == ISIDE_FLOATING ? 1 : alpha,
-                        mTmpMatrix, null /* windowCrop */, 0 /* layer */, 0f /* cornerRadius*/,
-                        side == ISIDE_FLOATING ? state.getSource(source.getType()).isVisible()
-                                : inset != 0 /* visible */));
+                alpha = mFade ? ((float) inset / maxInset * 0.3f + 0.7f) : alpha;
+                SurfaceParams params = new SurfaceParams.Builder(leash)
+                        .withAlpha(side == ISIDE_FLOATING ? 1 : alpha)
+                        .withMatrix(mTmpMatrix)
+                        .withVisibility(side == ISIDE_FLOATING
+                                ? state.getSource(source.getType()).isVisible()
+                                : inset != 0 /* visible */)
+                        .build();
+                surfaceParams.add(params);
             }
         }
     }
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index 65ea6bb..573d8fc 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -233,6 +233,12 @@
 
         final InsetsAnimationControlImpl control;
         final @AnimationType int type;
+
+        /**
+         * Whether {@link WindowInsetsAnimation.Callback#onStart(WindowInsetsAnimation, Bounds)} has
+         * been dispatched already for this animation.
+         */
+        boolean startDispatched;
     }
 
     /**
@@ -276,9 +282,9 @@
 
     private final SparseArray<InsetsSourceControl> mTmpControlArray = new SparseArray<>();
     private final ArrayList<RunningAnimation> mRunningAnimations = new ArrayList<>();
-    private final ArrayList<WindowInsetsAnimation> mRunningInsetsAnimations = new ArrayList<>();
-    private final List<WindowInsetsAnimation> mUnmodifiableRunningInsetsAnimations =
-            Collections.unmodifiableList(mRunningInsetsAnimations);
+    private final ArrayList<WindowInsetsAnimation> mTmpRunningAnims = new ArrayList<>();
+    private final List<WindowInsetsAnimation> mUnmodifiableTmpRunningAnims =
+            Collections.unmodifiableList(mTmpRunningAnims);
     private final ArrayList<InsetsAnimationControlImpl> mTmpFinishedControls = new ArrayList<>();
     private WindowInsets mLastInsets;
 
@@ -294,6 +300,7 @@
 
     private int mLastLegacySoftInputMode;
     private int mLastLegacySystemUiFlags;
+    private DisplayCutout mLastDisplayCutout;
     private boolean mStartingAnimation;
 
     private SyncRtSurfaceTransactionApplier mApplier;
@@ -329,20 +336,28 @@
             }
 
             mTmpFinishedControls.clear();
+            mTmpRunningAnims.clear();
             InsetsState state = new InsetsState(mState, true /* copySources */);
             for (int i = mRunningAnimations.size() - 1; i >= 0; i--) {
-                InsetsAnimationControlImpl control = mRunningAnimations.get(i).control;
+                RunningAnimation runningAnimation = mRunningAnimations.get(i);
+                InsetsAnimationControlImpl control = runningAnimation.control;
+
+                // Keep track of running animation to be dispatched. Aggregate it here such that if
+                // it gets finished within applyChangeInsets we still dispatch it to onProgress.
+                if (runningAnimation.startDispatched) {
+                    mTmpRunningAnims.add(control.getAnimation());
+                }
                 if (control.applyChangeInsets(state)) {
                     mTmpFinishedControls.add(control);
                 }
             }
 
-            WindowInsets insets = state.calculateInsets(mFrame, mLastInsets.isRound(),
-                    mLastInsets.shouldAlwaysConsumeSystemBars(), mLastInsets.getDisplayCutout(),
-                    mLastLegacyContentInsets, mLastLegacyStableInsets, mLastLegacySoftInputMode,
-                    mLastLegacySystemUiFlags, null /* typeSideMap */);
+            WindowInsets insets = state.calculateInsets(mFrame, mState /* ignoringVisibilityState*/,
+                    mLastInsets.isRound(), mLastInsets.shouldAlwaysConsumeSystemBars(),
+                    mLastDisplayCutout, mLastLegacyContentInsets, mLastLegacyStableInsets,
+                    mLastLegacySoftInputMode, mLastLegacySystemUiFlags, null /* typeSideMap */);
             mViewRoot.mView.dispatchWindowInsetsAnimationProgress(insets,
-                    mUnmodifiableRunningInsetsAnimations);
+                    mUnmodifiableTmpRunningAnims);
 
             for (int i = mTmpFinishedControls.size() - 1; i >= 0; i--) {
                 dispatchAnimationEnd(mTmpFinishedControls.get(i).getAnimation());
@@ -394,8 +409,10 @@
         mLastLegacyStableInsets.set(legacyStableInsets);
         mLastLegacySoftInputMode = legacySoftInputMode;
         mLastLegacySystemUiFlags = legacySystemUiFlags;
-        mLastInsets = mState.calculateInsets(mFrame, isScreenRound, alwaysConsumeSystemBars, cutout,
-                legacyContentInsets, legacyStableInsets, legacySoftInputMode, legacySystemUiFlags,
+        mLastDisplayCutout = cutout;
+        mLastInsets = mState.calculateInsets(mFrame, null /* ignoringVisibilityState*/,
+                isScreenRound, alwaysConsumeSystemBars, cutout, legacyContentInsets,
+                legacyStableInsets, legacySoftInputMode, legacySystemUiFlags,
                 null /* typeSideMap */);
         return mLastInsets;
     }
@@ -582,9 +599,8 @@
 
         final InsetsAnimationControlImpl controller = new InsetsAnimationControlImpl(controls,
                 frame, mState, listener, typesReady, this, durationMs, interpolator, fade,
-                layoutInsetsDuringAnimation);
+                layoutInsetsDuringAnimation, animationType);
         mRunningAnimations.add(new RunningAnimation(controller, animationType));
-        mRunningInsetsAnimations.add(controller.getAnimation());
         cancellationSignal.setOnCancelListener(controller::onCancelled);
         return cancellationSignal;
     }
@@ -598,7 +614,7 @@
         int typesReady = 0;
         boolean imeReady = true;
         for (int i = internalTypes.size() - 1; i >= 0; i--) {
-            InsetsSourceConsumer consumer = getSourceConsumer(internalTypes.valueAt(i));
+            final InsetsSourceConsumer consumer = getSourceConsumer(internalTypes.valueAt(i));
             boolean show = animationType == ANIMATION_TYPE_SHOW
                     || animationType == ANIMATION_TYPE_USER;
             boolean canRun = false;
@@ -694,7 +710,8 @@
         if (shown) {
             showDirectly(controller.getTypes());
         } else {
-            hideDirectly(controller.getTypes(), true /* animationFinished */);
+            hideDirectly(controller.getTypes(), true /* animationFinished */,
+                    controller.getAnimationType());
         }
     }
 
@@ -735,7 +752,6 @@
         for (int i = mRunningAnimations.size() - 1; i >= 0; i--) {
             if (mRunningAnimations.get(i).control == control) {
                 mRunningAnimations.remove(i);
-                mRunningInsetsAnimations.remove(i);
                 break;
             }
         }
@@ -852,10 +868,11 @@
                         : LAYOUT_INSETS_DURING_ANIMATION_HIDDEN);
     }
 
-    private void hideDirectly(@InsetsType int types, boolean animationFinished) {
+    private void hideDirectly(
+            @InsetsType int types, boolean animationFinished, @AnimationType int animationType) {
         final ArraySet<Integer> internalTypes = InsetsState.toInternalType(types);
         for (int i = internalTypes.size() - 1; i >= 0; i--) {
-            getSourceConsumer(internalTypes.valueAt(i)).hide(animationFinished);
+            getSourceConsumer(internalTypes.valueAt(i)).hide(animationFinished, animationType);
         }
     }
 
@@ -887,8 +904,9 @@
         if (layoutDuringAnimation == LAYOUT_INSETS_DURING_ANIMATION_SHOWN) {
             showDirectly(types);
         } else {
-            hideDirectly(types, false /* animationFinished */);
+            hideDirectly(types, false /* animationFinished */, controller.getAnimationType());
         }
+
         if (mViewRoot.mView == null) {
             return;
         }
@@ -900,6 +918,12 @@
                 if (controller.isCancelled()) {
                     return true;
                 }
+                for (int i = mRunningAnimations.size() - 1; i >= 0; i--) {
+                    RunningAnimation runningAnimation = mRunningAnimations.get(i);
+                    if (runningAnimation.control == controller) {
+                        runningAnimation.startDispatched = true;
+                    }
+                }
                 mViewRoot.mView.dispatchWindowInsetsAnimationStart(animation, bounds);
                 mStartingAnimation = true;
                 listener.onReady(controller, types);
diff --git a/core/java/android/view/InsetsSource.java b/core/java/android/view/InsetsSource.java
index 6caa4fe..719f649 100644
--- a/core/java/android/view/InsetsSource.java
+++ b/core/java/android/view/InsetsSource.java
@@ -58,6 +58,10 @@
                 : null;
     }
 
+    public void setFrame(int left, int top, int right, int bottom) {
+        mFrame.set(left, top, right, bottom);
+    }
+
     public void setFrame(Rect frame) {
         mFrame.set(frame);
     }
diff --git a/core/java/android/view/InsetsSourceConsumer.java b/core/java/android/view/InsetsSourceConsumer.java
index e3a7de1..92ac425 100644
--- a/core/java/android/view/InsetsSourceConsumer.java
+++ b/core/java/android/view/InsetsSourceConsumer.java
@@ -16,6 +16,7 @@
 
 package android.view;
 
+import static android.view.InsetsController.AnimationType;
 import static android.view.InsetsState.toPublicType;
 
 import android.annotation.IntDef;
@@ -57,9 +58,10 @@
 
     protected final InsetsController mController;
     protected boolean mRequestedVisible;
+    protected final InsetsState mState;
+    protected final @InternalInsetsType int mType;
+
     private final Supplier<Transaction> mTransactionSupplier;
-    private final @InternalInsetsType int mType;
-    private final InsetsState mState;
     private @Nullable InsetsSourceControl mSourceControl;
     private boolean mHasWindowFocus;
 
@@ -135,7 +137,7 @@
         setRequestedVisible(false);
     }
 
-    void hide(boolean animationFinished) {
+    void hide(boolean animationFinished, @AnimationType int animationType) {
         hide();
     }
 
@@ -158,7 +160,8 @@
     }
 
     boolean applyLocalVisibilityOverride() {
-        final boolean isVisible = mState.getSource(mType).isVisible();
+        InsetsSource source = mState.peekSource(mType);
+        final boolean isVisible = source != null && source.isVisible();
         final boolean hasControl = mSourceControl != null;
 
         // We still need to let the legacy app know the visibility change even if we don't have the
diff --git a/core/java/android/view/InsetsState.java b/core/java/android/view/InsetsState.java
index 8648682..e4aa410 100644
--- a/core/java/android/view/InsetsState.java
+++ b/core/java/android/view/InsetsState.java
@@ -24,6 +24,7 @@
 import static android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES;
 import static android.view.WindowInsets.Type.SIZE;
 import static android.view.WindowInsets.Type.SYSTEM_GESTURES;
+import static android.view.WindowInsets.Type.displayCutout;
 import static android.view.WindowInsets.Type.ime;
 import static android.view.WindowInsets.Type.indexOf;
 import static android.view.WindowInsets.Type.isVisibleInsetsType;
@@ -71,6 +72,10 @@
             ITYPE_RIGHT_GESTURES,
             ITYPE_TOP_TAPPABLE_ELEMENT,
             ITYPE_BOTTOM_TAPPABLE_ELEMENT,
+            ITYPE_LEFT_DISPLAY_CUTOUT,
+            ITYPE_TOP_DISPLAY_CUTOUT,
+            ITYPE_RIGHT_DISPLAY_CUTOUT,
+            ITYPE_BOTTOM_DISPLAY_CUTOUT,
             ITYPE_IME
     })
     public @interface InternalInsetsType {}
@@ -88,8 +93,13 @@
     public static final int ITYPE_TOP_TAPPABLE_ELEMENT = 7;
     public static final int ITYPE_BOTTOM_TAPPABLE_ELEMENT = 8;
 
+    public static final int ITYPE_LEFT_DISPLAY_CUTOUT = 9;
+    public static final int ITYPE_TOP_DISPLAY_CUTOUT = 10;
+    public static final int ITYPE_RIGHT_DISPLAY_CUTOUT = 11;
+    public static final int ITYPE_BOTTOM_DISPLAY_CUTOUT = 12;
+
     /** Input method window. */
-    public static final int ITYPE_IME = 9;
+    public static final int ITYPE_IME = 13;
 
     static final int LAST_TYPE = ITYPE_IME;
 
@@ -137,10 +147,13 @@
      * Calculates {@link WindowInsets} based on the current source configuration.
      *
      * @param frame The frame to calculate the insets relative to.
+     * @param ignoringVisibilityState {@link InsetsState} used to calculate
+     *        {@link WindowInsets#getInsetsIgnoringVisibility(int)} information, or pass
+     *        {@code null} to use this state to calculate that information.
      * @return The calculated insets.
      */
-    public WindowInsets calculateInsets(Rect frame, boolean isScreenRound,
-            boolean alwaysConsumeSystemBars, DisplayCutout cutout,
+    public WindowInsets calculateInsets(Rect frame, @Nullable InsetsState ignoringVisibilityState,
+            boolean isScreenRound, boolean alwaysConsumeSystemBars, DisplayCutout cutout,
             @Nullable Rect legacyContentInsets, @Nullable Rect legacyStableInsets,
             int legacySoftInputMode, int legacySystemUiFlags,
             @Nullable @InternalInsetsSide SparseIntArray typeSideMap) {
@@ -178,15 +191,22 @@
             // IME won't be reported in max insets as the size depends on the EditorInfo of the IME
             // target.
             if (source.getType() != ITYPE_IME) {
-                processSource(source, relativeFrameMax, true /* ignoreVisibility */,
-                        typeMaxInsetsMap, null /* typeSideMap */, null /* typeVisibilityMap */);
+                InsetsSource ignoringVisibilitySource = ignoringVisibilityState != null
+                        ? ignoringVisibilityState.getSource(type)
+                        : source;
+                if (ignoringVisibilitySource == null) {
+                    continue;
+                }
+                processSource(ignoringVisibilitySource, relativeFrameMax,
+                        true /* ignoreVisibility */, typeMaxInsetsMap, null /* typeSideMap */,
+                        null /* typeVisibilityMap */);
             }
         }
         final int softInputAdjustMode = legacySoftInputMode & SOFT_INPUT_MASK_ADJUST;
         return new WindowInsets(typeInsetsMap, typeMaxInsetsMap, typeVisibilityMap, isScreenRound,
                 alwaysConsumeSystemBars, cutout, softInputAdjustMode == SOFT_INPUT_ADJUST_RESIZE
-                        ? systemBars() | ime()
-                        : systemBars(),
+                        ? systemBars() | displayCutout() | ime()
+                        : systemBars() | displayCutout(),
                 sNewInsetsMode == NEW_INSETS_MODE_FULL
                         && (legacySystemUiFlags & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0);
     }
@@ -287,6 +307,10 @@
         return mSources.computeIfAbsent(type, InsetsSource::new);
     }
 
+    public @Nullable InsetsSource peekSource(@InternalInsetsType int type) {
+        return mSources.get(type);
+    }
+
     public void setDisplayFrame(Rect frame) {
         mDisplayFrame.set(frame);
     }
@@ -318,6 +342,20 @@
         }
     }
 
+    /**
+     * A shortcut for setting the visibility of the source.
+     *
+     * @param type The {@link InternalInsetsType} of the source to set the visibility
+     * @param referenceState The {@link InsetsState} for reference
+     */
+    public void setSourceVisible(@InternalInsetsType int type, InsetsState referenceState) {
+        InsetsSource source = mSources.get(type);
+        InsetsSource referenceSource = referenceState.mSources.get(type);
+        if (source != null && referenceSource != null) {
+            source.setVisible(referenceSource.isVisible());
+        }
+    }
+
     public void set(InsetsState other) {
         set(other, false /* copySources */);
     }
@@ -358,6 +396,12 @@
         if ((types & Type.CAPTION_BAR) != 0) {
             result.add(ITYPE_CAPTION_BAR);
         }
+        if ((types & Type.DISPLAY_CUTOUT) != 0) {
+            result.add(ITYPE_LEFT_DISPLAY_CUTOUT);
+            result.add(ITYPE_TOP_DISPLAY_CUTOUT);
+            result.add(ITYPE_RIGHT_DISPLAY_CUTOUT);
+            result.add(ITYPE_BOTTOM_DISPLAY_CUTOUT);
+        }
         if ((types & Type.IME) != 0) {
             result.add(ITYPE_IME);
         }
@@ -388,6 +432,11 @@
             case ITYPE_TOP_TAPPABLE_ELEMENT:
             case ITYPE_BOTTOM_TAPPABLE_ELEMENT:
                 return Type.TAPPABLE_ELEMENT;
+            case ITYPE_LEFT_DISPLAY_CUTOUT:
+            case ITYPE_TOP_DISPLAY_CUTOUT:
+            case ITYPE_RIGHT_DISPLAY_CUTOUT:
+            case ITYPE_BOTTOM_DISPLAY_CUTOUT:
+                return Type.DISPLAY_CUTOUT;
             default:
                 throw new IllegalArgumentException("Unknown type: " + type);
         }
@@ -437,6 +486,14 @@
                 return "ITYPE_TOP_TAPPABLE_ELEMENT";
             case ITYPE_BOTTOM_TAPPABLE_ELEMENT:
                 return "ITYPE_BOTTOM_TAPPABLE_ELEMENT";
+            case ITYPE_LEFT_DISPLAY_CUTOUT:
+                return "ITYPE_LEFT_DISPLAY_CUTOUT";
+            case ITYPE_TOP_DISPLAY_CUTOUT:
+                return "ITYPE_TOP_DISPLAY_CUTOUT";
+            case ITYPE_RIGHT_DISPLAY_CUTOUT:
+                return "ITYPE_RIGHT_DISPLAY_CUTOUT";
+            case ITYPE_BOTTOM_DISPLAY_CUTOUT:
+                return "ITYPE_BOTTOM_DISPLAY_CUTOUT";
             case ITYPE_IME:
                 return "ITYPE_IME";
             default:
diff --git a/core/java/android/view/PendingInsetsController.java b/core/java/android/view/PendingInsetsController.java
new file mode 100644
index 0000000..c0ed935
--- /dev/null
+++ b/core/java/android/view/PendingInsetsController.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view;
+
+import android.os.CancellationSignal;
+import android.view.WindowInsets.Type.InsetsType;
+import android.view.animation.Interpolator;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.ArrayList;
+
+/**
+ * An insets controller that keeps track of pending requests. This is such that an app can freely
+ * use {@link WindowInsetsController} before the view root is attached during activity startup.
+ * @hide
+ */
+public class PendingInsetsController implements WindowInsetsController {
+
+    private static final int KEEP_BEHAVIOR = -1;
+    private final ArrayList<PendingRequest> mRequests = new ArrayList<>();
+    private @Appearance int mAppearance;
+    private @Appearance int mAppearanceMask;
+    private @Behavior int mBehavior = KEEP_BEHAVIOR;
+    private final InsetsState mDummyState = new InsetsState();
+    private InsetsController mReplayedInsetsController;
+
+    @Override
+    public void show(int types) {
+        if (mReplayedInsetsController != null) {
+            mReplayedInsetsController.show(types);
+        } else {
+            mRequests.add(new ShowRequest(types));
+        }
+    }
+
+    @Override
+    public void hide(int types) {
+        if (mReplayedInsetsController != null) {
+            mReplayedInsetsController.hide(types);
+        } else {
+            mRequests.add(new HideRequest(types));
+        }
+    }
+
+    @Override
+    public CancellationSignal controlWindowInsetsAnimation(int types, long durationMillis,
+            Interpolator interpolator,
+            WindowInsetsAnimationControlListener listener) {
+        if (mReplayedInsetsController != null) {
+            return mReplayedInsetsController.controlWindowInsetsAnimation(types, durationMillis,
+                    interpolator, listener);
+        } else {
+            listener.onCancelled();
+            CancellationSignal cancellationSignal = new CancellationSignal();
+            cancellationSignal.cancel();
+            return cancellationSignal;
+        }
+    }
+
+    @Override
+    public void setSystemBarsAppearance(int appearance, int mask) {
+        if (mReplayedInsetsController != null) {
+            mReplayedInsetsController.setSystemBarsAppearance(appearance, mask);
+        } else {
+            mAppearance = (mAppearance & ~mask) | (appearance & mask);
+            mAppearanceMask |= mask;
+        }
+    }
+
+    @Override
+    public int getSystemBarsAppearance() {
+        if (mReplayedInsetsController != null) {
+            return mReplayedInsetsController.getSystemBarsAppearance();
+        }
+        return mAppearance;
+    }
+
+    @Override
+    public void setSystemBarsBehavior(int behavior) {
+        if (mReplayedInsetsController != null) {
+            mReplayedInsetsController.setSystemBarsBehavior(behavior);
+        } else {
+            mBehavior = behavior;
+        }
+    }
+
+    @Override
+    public int getSystemBarsBehavior() {
+        if (mReplayedInsetsController != null) {
+            return mReplayedInsetsController.getSystemBarsBehavior();
+        }
+        return mBehavior;
+    }
+
+    @Override
+    public InsetsState getState() {
+        return mDummyState;
+    }
+
+    /**
+     * Replays the commands on {@code controller} and attaches it to this instance such that any
+     * calls will be forwarded to the real instance in the future.
+     */
+    @VisibleForTesting
+    public void replayAndAttach(InsetsController controller) {
+        if (mBehavior != KEEP_BEHAVIOR) {
+            controller.setSystemBarsBehavior(mBehavior);
+        }
+        if (mAppearanceMask != 0) {
+            controller.setSystemBarsAppearance(mAppearance, mAppearanceMask);
+        }
+        int size = mRequests.size();
+        for (int i = 0; i < size; i++) {
+            mRequests.get(i).replay(controller);
+        }
+
+        // Reset all state so it doesn't get applied twice just in case
+        mRequests.clear();
+        mBehavior = KEEP_BEHAVIOR;
+        mAppearance = 0;
+        mAppearanceMask = 0;
+
+        // After replaying, we forward everything directly to the replayed instance.
+        mReplayedInsetsController = controller;
+    }
+
+    /**
+     * Detaches the controller to no longer forward calls to the real instance.
+     */
+    @VisibleForTesting
+    public void detach() {
+        mReplayedInsetsController = null;
+    }
+
+    private interface PendingRequest {
+        void replay(InsetsController controller);
+    }
+
+    private static class ShowRequest implements PendingRequest {
+
+        private final @InsetsType int mTypes;
+
+        public ShowRequest(int types) {
+            mTypes = types;
+        }
+
+        @Override
+        public void replay(InsetsController controller) {
+            controller.show(mTypes);
+        }
+    }
+
+    private static class HideRequest implements PendingRequest {
+
+        private final @InsetsType int mTypes;
+
+        public HideRequest(int types) {
+            mTypes = types;
+        }
+
+        @Override
+        public void replay(InsetsController controller) {
+            controller.hide(mTypes);
+        }
+    }
+}
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index 0816e84..25f5609 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -420,6 +420,9 @@
         if (mNativeObject != 0) {
             release();
         }
+      	if (nativeObject != 0) {
+            mCloseGuard.open("release");
+        }
         mNativeObject = nativeObject;
     }
 
@@ -867,14 +870,12 @@
 
     private SurfaceControl(Parcel in) {
         readFromParcel(in);
-        mCloseGuard.open("release");
     }
 
     /**
      * @hide
      */
     public SurfaceControl() {
-        mCloseGuard.open("release");
     }
 
     public void readFromParcel(Parcel in) {
@@ -972,8 +973,8 @@
         if (mNativeObject != 0) {
             nativeRelease(mNativeObject);
             mNativeObject = 0;
+            mCloseGuard.close();
         }
-        mCloseGuard.close();
     }
 
     /**
@@ -1304,6 +1305,11 @@
      * @hide
      */
     public static final class DisplayConfig {
+        /**
+         * Invalid display config id.
+         */
+        public static final int INVALID_DISPLAY_CONFIG_ID = -1;
+
         public int width;
         public int height;
         public float xDpi;
@@ -1313,6 +1319,14 @@
         public long appVsyncOffsetNanos;
         public long presentationDeadlineNanos;
 
+        /**
+         * The config group ID this config is associated to.
+         * Configs in the same group are similar from vendor's perspective and switching between
+         * configs within the same group can be done seamlessly in most cases.
+         * @see: android.hardware.graphics.composer@2.4::IComposerClient::Attribute::CONFIG_GROUP
+         */
+        public int configGroup;
+
         @Override
         public String toString() {
             return "DisplayConfig{width=" + width
@@ -1321,7 +1335,8 @@
                     + ", yDpi=" + yDpi
                     + ", refreshRate=" + refreshRate
                     + ", appVsyncOffsetNanos=" + appVsyncOffsetNanos
-                    + ", presentationDeadlineNanos=" + presentationDeadlineNanos + "}";
+                    + ", presentationDeadlineNanos=" + presentationDeadlineNanos
+                    + ", configGroup=" + configGroup + "}";
         }
     }
 
diff --git a/core/java/android/view/SurfaceControlViewHost.java b/core/java/android/view/SurfaceControlViewHost.java
index 4badede..a3b3f1f 100644
--- a/core/java/android/view/SurfaceControlViewHost.java
+++ b/core/java/android/view/SurfaceControlViewHost.java
@@ -201,7 +201,7 @@
         final WindowManager.LayoutParams lp =
                 new WindowManager.LayoutParams(width, height,
                         WindowManager.LayoutParams.TYPE_APPLICATION, 0, PixelFormat.TRANSPARENT);
-        relayout(width, height);
+        relayout(lp);
     }
 
     /**
diff --git a/core/java/android/view/SyncRtSurfaceTransactionApplier.java b/core/java/android/view/SyncRtSurfaceTransactionApplier.java
index 15252b1..206e4f9 100644
--- a/core/java/android/view/SyncRtSurfaceTransactionApplier.java
+++ b/core/java/android/view/SyncRtSurfaceTransactionApplier.java
@@ -36,7 +36,8 @@
     public static final int FLAG_WINDOW_CROP = 1 << 2;
     public static final int FLAG_LAYER = 1 << 3;
     public static final int FLAG_CORNER_RADIUS = 1 << 4;
-    public static final int FLAG_VISIBILITY = 1 << 5;
+    public static final int FLAG_BACKGROUND_BLUR_RADIUS = 1 << 5;
+    public static final int FLAG_VISIBILITY = 1 << 6;
 
     private SurfaceControl mTargetSc;
     private final ViewRootImpl mTargetViewRootImpl;
@@ -108,6 +109,9 @@
         if ((params.flags & FLAG_CORNER_RADIUS) != 0) {
             t.setCornerRadius(params.surface, params.cornerRadius);
         }
+        if ((params.flags & FLAG_BACKGROUND_BLUR_RADIUS) != 0) {
+            t.setBackgroundBlurRadius(params.surface, params.backgroundBlurRadius);
+        }
         if ((params.flags & FLAG_VISIBILITY) != 0) {
             if (params.visible) {
                 t.show(params.surface);
@@ -153,6 +157,7 @@
             int flags;
             float alpha;
             float cornerRadius;
+            int backgroundBlurRadius;
             Matrix matrix;
             Rect windowCrop;
             int layer;
@@ -216,6 +221,16 @@
             }
 
             /**
+             * @param radius the Radius for blur to apply to the background surfaces.
+             * @return this Builder
+             */
+            public Builder withBackgroundBlur(int radius) {
+                this.backgroundBlurRadius = radius;
+                flags |= FLAG_BACKGROUND_BLUR_RADIUS;
+                return this;
+            }
+
+            /**
              * @param visible The visibility to apply to the surface.
              * @return this Builder
              */
@@ -230,12 +245,13 @@
              */
             public SurfaceParams build() {
                 return new SurfaceParams(surface, flags, alpha, matrix, windowCrop, layer,
-                        cornerRadius, visible);
+                        cornerRadius, backgroundBlurRadius, visible);
             }
         }
 
         private SurfaceParams(SurfaceControl surface, int params, float alpha, Matrix matrix,
-                Rect windowCrop, int layer, float cornerRadius, boolean visible) {
+                Rect windowCrop, int layer, float cornerRadius, int backgroundBlurRadius,
+                boolean visible) {
             this.flags = params;
             this.surface = surface;
             this.alpha = alpha;
@@ -243,34 +259,7 @@
             this.windowCrop = new Rect(windowCrop);
             this.layer = layer;
             this.cornerRadius = cornerRadius;
-            this.visible = visible;
-        }
-
-
-        /**
-         * Constructs surface parameters to be applied when the current view state gets pushed to
-         * RenderThread.
-         *
-         * @param surface The surface to modify.
-         * @param alpha Alpha to apply.
-         * @param matrix Matrix to apply.
-         * @param windowCrop Crop to apply.
-         * @param layer The layer to apply.
-         * @param cornerRadius The corner radius to apply.
-         * @param visible The visibility to apply.
-         *
-         * @deprecated Use {@link SurfaceParams.Builder} to create an instance.
-         */
-        @Deprecated
-        public SurfaceParams(SurfaceControl surface, float alpha, Matrix matrix,
-                Rect windowCrop, int layer, float cornerRadius, boolean visible) {
-            this.flags = FLAG_ALL;
-            this.surface = surface;
-            this.alpha = alpha;
-            this.matrix = new Matrix(matrix);
-            this.windowCrop = windowCrop != null ? new Rect(windowCrop) : null;
-            this.layer = layer;
-            this.cornerRadius = cornerRadius;
+            this.backgroundBlurRadius = backgroundBlurRadius;
             this.visible = visible;
         }
 
@@ -283,7 +272,10 @@
         public final float alpha;
 
         @VisibleForTesting
-        final float cornerRadius;
+        public final float cornerRadius;
+
+        @VisibleForTesting
+        public final int backgroundBlurRadius;
 
         @VisibleForTesting
         public final Matrix matrix;
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 15d18d1..6236e6e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -11415,14 +11415,18 @@
     /**
      * Retrieves the single {@link WindowInsetsController} of the window this view is attached to.
      *
-     * @return The {@link WindowInsetsController} or {@code null} if the view isn't attached to a
-     *         a window.
+     * @return The {@link WindowInsetsController} or {@code null} if the view is neither attached to
+     *         a window nor a view tree with a decor.
      * @see Window#getInsetsController()
      */
     public @Nullable WindowInsetsController getWindowInsetsController() {
         if (mAttachInfo != null) {
             return mAttachInfo.mViewRootImpl.getInsetsController();
         }
+        ViewParent parent = getParent();
+        if (parent instanceof View) {
+            return ((View) parent).getWindowInsetsController();
+        }
         return null;
     }
 
@@ -11468,7 +11472,7 @@
                 outLocalInsets.setEmpty();
                 return in;
             }
-            Pair<Insets, WindowInsets> result = listener.onContentApplyWindowInsets(in);
+            Pair<Insets, WindowInsets> result = listener.onContentApplyWindowInsets(this, in);
             outLocalInsets.set(result.first.toRect());
             return result.second;
         } else {
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 918b5a3..8d3cffc 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -52,10 +52,8 @@
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_BEHAVIOR_CONTROLLED;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FIT_INSETS_CONTROLLED;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY;
-import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
-import static android.view.WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
-import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
 import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
 import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
@@ -795,7 +793,12 @@
 
     public void setOnContentApplyWindowInsetsListener(OnContentApplyWindowInsetsListener listener) {
         mAttachInfo.mContentOnApplyWindowInsetsListener = listener;
-        requestFitSystemWindows();
+
+        // System windows will be fitted on first traversal, so no reason to request additional
+        // (possibly getting executed after the first traversal).
+        if (!mFirst) {
+            requestFitSystemWindows();
+        }
     }
 
     public void addWindowCallbacks(WindowCallbacks callback) {
@@ -1114,6 +1117,14 @@
                 mFirstInputStage = nativePreImeStage;
                 mFirstPostImeInputStage = earlyPostImeStage;
                 mPendingInputEventQueueLengthCounterName = "aq:pending:" + counterSuffix;
+
+                if (mView instanceof RootViewSurfaceTaker) {
+                    PendingInsetsController pendingInsetsController =
+                            ((RootViewSurfaceTaker) mView).providePendingInsetsController();
+                    if (pendingInsetsController != null) {
+                        pendingInsetsController.replayAndAttach(mInsetsController);
+                    }
+                }
             }
         }
     }
@@ -1445,6 +1456,7 @@
                         final int newScreenState = toViewScreenState(newDisplayState);
                         if (oldScreenState != newScreenState) {
                             mView.dispatchScreenStateChanged(newScreenState);
+                            mImeFocusController.onScreenStateChanged(newScreenState);
                         }
                         if (oldDisplayState == Display.STATE_OFF) {
                             // Draw was suppressed so we need to for it to happen here.
@@ -2008,7 +2020,6 @@
         final int sysUiVis = inOutParams.systemUiVisibility | inOutParams.subtreeSystemUiVisibility;
         final int flags = inOutParams.flags;
         final int type = inOutParams.type;
-        final int adjust = inOutParams.softInputMode & SOFT_INPUT_MASK_ADJUST;
 
         if ((inOutParams.privateFlags & PRIVATE_FLAG_APPEARANCE_CONTROLLED) == 0) {
             inOutParams.insetsFlags.appearance = 0;
@@ -2053,8 +2064,7 @@
         }
         if (type == TYPE_TOAST || type == TYPE_SYSTEM_ALERT) {
             ignoreVis = true;
-        } else if ((types & Type.systemBars()) == Type.systemBars()
-                && adjust == SOFT_INPUT_ADJUST_RESIZE) {
+        } else if ((types & Type.systemBars()) == Type.systemBars()) {
             types |= Type.ime();
         }
         inOutParams.setFitInsetsTypes(types);
@@ -2260,12 +2270,13 @@
         mAttachInfo.mVisibleInsets.set(visibleInsets);
     }
 
-    InsetsController getInsetsController() {
+    @VisibleForTesting
+    public InsetsController getInsetsController() {
         return mInsetsController;
     }
 
     private static boolean shouldUseDisplaySize(final WindowManager.LayoutParams lp) {
-        return lp.type == TYPE_STATUS_BAR_PANEL
+        return lp.type == TYPE_STATUS_BAR_ADDITIONAL
                 || lp.type == TYPE_INPUT_METHOD
                 || lp.type == TYPE_VOLUME_OVERLAY;
     }
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 4b284db..0c5c183 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -712,13 +712,14 @@
          * {@link View#setOnApplyWindowInsetsListener(OnApplyWindowInsetsListener)} through the view
          * hierarchy.
          *
+         * @param view The view for which to apply insets. Must not be directly modified.
          * @param insets The root level insets that are about to be dispatched
          * @return A pair, with the first element containing the insets to apply as margin to the
          * root-level content views, and the second element determining what should be
          * dispatched to the content view.
          */
         @NonNull
-        Pair<Insets, WindowInsets> onContentApplyWindowInsets(
+        Pair<Insets, WindowInsets> onContentApplyWindowInsets(@NonNull View view,
                 @NonNull WindowInsets insets);
     }
 
@@ -1254,7 +1255,7 @@
      * <p>The ability to switch to a mode with minimal post proessing may be disabled by a user
      * setting in the system settings menu. In that case, this method does nothing.
      *
-     * @see android.content.pm.ActivityInfo#preferMinimalPostProcessing
+     * @see android.content.pm.ActivityInfo#FLAG_PREFER_MINIMAL_POST_PROCESSING
      * @see android.view.Display#isMinimalPostProcessingSupported
      * @see android.view.WindowManager.LayoutParams#preferMinimalPostProcessing
      *
diff --git a/core/java/android/view/WindowInsets.java b/core/java/android/view/WindowInsets.java
index a6c311e..fde184c 100644
--- a/core/java/android/view/WindowInsets.java
+++ b/core/java/android/view/WindowInsets.java
@@ -17,6 +17,7 @@
 
 package android.view;
 
+import static android.view.WindowInsets.Type.DISPLAY_CUTOUT;
 import static android.view.WindowInsets.Type.FIRST;
 import static android.view.WindowInsets.Type.IME;
 import static android.view.WindowInsets.Type.LAST;
@@ -857,11 +858,21 @@
     /**
      * Returns a copy of this instance inset in the given directions.
      *
+     * This is intended for dispatching insets to areas of the window that are smaller than the
+     * current area.
+     *
+     * <p>Example:
+     * <pre>
+     * childView.dispatchApplyWindowInsets(insets.inset(childMargins));
+     * </pre>
+     *
+     * @param insets the amount of insets to remove from all sides.
+     *
      * @see #inset(int, int, int, int)
-     * @hide
      */
     @NonNull
-    public WindowInsets inset(Insets insets) {
+    public WindowInsets inset(@NonNull Insets insets) {
+        Objects.requireNonNull(insets);
         return inset(insets.left, insets.top, insets.right, insets.bottom);
     }
 
@@ -883,6 +894,8 @@
      * @param bottom the amount of insets to remove from the bottom. Must be non-negative.
      *
      * @return the inset insets
+     *
+     * @see #inset(Insets)
      */
     @NonNull
     public WindowInsets inset(@IntRange(from = 0) int left, @IntRange(from = 0) int top,
@@ -1209,6 +1222,13 @@
         @NonNull
         public Builder setDisplayCutout(@Nullable DisplayCutout displayCutout) {
             mDisplayCutout = displayCutout != null ? displayCutout : DisplayCutout.NO_CUTOUT;
+            if (!mDisplayCutout.isEmpty()) {
+                final Insets safeInsets = Insets.of(mDisplayCutout.getSafeInsets());
+                final int index = indexOf(DISPLAY_CUTOUT);
+                mTypeInsetsMap[index] = safeInsets;
+                mTypeMaxInsetsMap[index] = safeInsets;
+                mTypeVisibilityMap[index] = true;
+            }
             return this;
         }
 
@@ -1256,8 +1276,10 @@
         static final int MANDATORY_SYSTEM_GESTURES = 1 << 5;
         static final int TAPPABLE_ELEMENT = 1 << 6;
 
-        static final int LAST = 1 << 7;
-        static final int SIZE = 8;
+        static final int DISPLAY_CUTOUT = 1 << 7;
+
+        static final int LAST = 1 << 8;
+        static final int SIZE = 9;
         static final int WINDOW_DECOR = LAST;
 
         static int indexOf(@InsetsType int type) {
@@ -1276,8 +1298,10 @@
                     return 5;
                 case TAPPABLE_ELEMENT:
                     return 6;
-                case WINDOW_DECOR:
+                case DISPLAY_CUTOUT:
                     return 7;
+                case WINDOW_DECOR:
+                    return 8;
                 default:
                     throw new IllegalArgumentException("type needs to be >= FIRST and <= LAST,"
                             + " type=" + type);
@@ -1290,7 +1314,7 @@
         /** @hide */
         @Retention(RetentionPolicy.SOURCE)
         @IntDef(flag = true, value = {STATUS_BARS, NAVIGATION_BARS, CAPTION_BAR, IME, WINDOW_DECOR,
-                SYSTEM_GESTURES, MANDATORY_SYSTEM_GESTURES, TAPPABLE_ELEMENT})
+                SYSTEM_GESTURES, MANDATORY_SYSTEM_GESTURES, TAPPABLE_ELEMENT, DISPLAY_CUTOUT})
         public @interface InsetsType {
         }
 
@@ -1358,6 +1382,20 @@
         }
 
         /**
+         * Returns an insets type representing the area that used by {@link DisplayCutout}.
+         *
+         * <p>This is equivalent to the safe insets on {@link #getDisplayCutout()}.</p>
+         *
+         * @see DisplayCutout#getSafeInsetLeft()
+         * @see DisplayCutout#getSafeInsetTop()
+         * @see DisplayCutout#getSafeInsetRight()
+         * @see DisplayCutout#getSafeInsetBottom()
+         */
+        public static @InsetsType int displayCutout() {
+            return DISPLAY_CUTOUT;
+        }
+
+        /**
          * @return All system bars. Includes {@link #statusBars()}, {@link #captionBar()} as well as
          *         {@link #navigationBars()}, but not {@link #ime()}.
          */
diff --git a/core/java/android/view/WindowInsetsAnimation.java b/core/java/android/view/WindowInsetsAnimation.java
index 396da4a..e326488 100644
--- a/core/java/android/view/WindowInsetsAnimation.java
+++ b/core/java/android/view/WindowInsetsAnimation.java
@@ -264,6 +264,11 @@
                     WindowInsets.insetInsets(
                             mUpperBound, insets.left, insets.top, insets.right, insets.bottom));
         }
+
+        @Override
+        public String toString() {
+            return "Bounds{lower=" + mLowerBound + " upper=" + mUpperBound + "}";
+        }
     }
 
     /**
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index b0d0a14..867b648 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -1026,7 +1026,11 @@
         /**
          * Window type: panel that slides out from over the status bar
          * In multiuser systems shows on all users' windows.
+         *
+         * @deprecated This became API by accident and was never intended to be used for
+         * applications.
          */
+        @Deprecated
         public static final int TYPE_STATUS_BAR_PANEL   = FIRST_SYSTEM_WINDOW+14;
 
         /**
@@ -1221,6 +1225,14 @@
         public static final int TYPE_NOTIFICATION_SHADE = FIRST_SYSTEM_WINDOW + 40;
 
         /**
+         * Window type: used to show the status bar in non conventional parts of the screen (i.e.
+         * the left or the bottom of the screen).
+         * In multiuser systems shows on all users' windows.
+         * @hide
+         */
+        public static final int TYPE_STATUS_BAR_ADDITIONAL = FIRST_SYSTEM_WINDOW + 41;
+
+        /**
          * End of types of system windows.
          */
         public static final int LAST_SYSTEM_WINDOW      = 2999;
@@ -1575,7 +1587,7 @@
          *
          * {@sample development/samples/ApiDemos/res/layout/overscan_activity.xml complete}
          *
-         * @deprecated Overscan areas aren't set by any Android product anymore.
+         * @deprecated Overscan areas aren't set by any Android product anymore as of Android 11.
          */
         @Deprecated
         public static final int FLAG_LAYOUT_IN_OVERSCAN = 0x02000000;
@@ -2765,7 +2777,7 @@
          * setting in the system settings menu. In that case, this field is ignored and the display
          * will remain in its current mode.
          *
-         * @see android.content.pm.ActivityInfo#preferMinimalPostProcessing
+         * @see android.content.pm.ActivityInfo#FLAG_PREFER_MINIMAL_POST_PROCESSING
          * @see android.view.Display#isMinimalPostProcessingSupported
          * @see android.view.Window#setPreferMinimalPostProcessing
          */
diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java
index b4c8795..299ae2f0 100644
--- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java
+++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java
@@ -31,7 +31,9 @@
 import android.util.Log;
 import android.util.LongSparseArray;
 import android.util.SparseArray;
+import android.util.SparseLongArray;
 import android.view.Display;
+import android.view.ViewConfiguration;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ArrayUtils;
@@ -89,6 +91,9 @@
 
     private static final long TIMEOUT_INTERACTION_MILLIS = 5000;
 
+    private static final long DISABLE_PREFETCHING_FOR_SCROLLING_MILLIS =
+            (long) (ViewConfiguration.getSendRecurringAccessibilityEventsInterval() * 1.5);
+
     private static final Object sStaticLock = new Object();
 
     private static final LongSparseArray<AccessibilityInteractionClient> sClients =
@@ -97,6 +102,10 @@
     private static final SparseArray<IAccessibilityServiceConnection> sConnectionCache =
             new SparseArray<>();
 
+    /** List of timestamps which indicate the latest time an a11y service receives a scroll event
+        from a window, mapping from windowId -> timestamp. */
+    private static final SparseLongArray sScrollingWindows = new SparseLongArray();
+
     private static AccessibilityCache sAccessibilityCache =
             new AccessibilityCache(new AccessibilityCache.AccessibilityNodeRefresher());
 
@@ -422,6 +431,14 @@
                         Log.i(LOG_TAG, "Node cache miss for "
                                 + idToString(accessibilityWindowId, accessibilityNodeId));
                     }
+                } else {
+                    // No need to prefech nodes in bypass cache case.
+                    prefetchFlags &= ~AccessibilityNodeInfo.FLAG_PREFETCH_MASK;
+                }
+                // Skip prefetching if window is scrolling.
+                if ((prefetchFlags & AccessibilityNodeInfo.FLAG_PREFETCH_MASK) != 0
+                        && isWindowScrolling(accessibilityWindowId)) {
+                    prefetchFlags &= ~AccessibilityNodeInfo.FLAG_PREFETCH_MASK;
                 }
                 final int interactionId = mInteractionIdCounter.getAndIncrement();
                 final long identityToken = Binder.clearCallingIdentity();
@@ -718,6 +735,18 @@
     }
 
     public void onAccessibilityEvent(AccessibilityEvent event) {
+        switch (event.getEventType()) {
+            case AccessibilityEvent.TYPE_VIEW_SCROLLED:
+                updateScrollingWindow(event.getWindowId(), SystemClock.uptimeMillis());
+                break;
+            case AccessibilityEvent.TYPE_WINDOWS_CHANGED:
+                if (event.getWindowChanges() == AccessibilityEvent.WINDOWS_CHANGE_REMOVED) {
+                    deleteScrollingWindow(event.getWindowId());
+                }
+                break;
+            default:
+                break;
+        }
         sAccessibilityCache.onAccessibilityEvent(event);
     }
 
@@ -986,4 +1015,48 @@
             Log.e(LOG_TAG, disconnectedCount + " Disconnected nodes.");
         }
     }
+
+    /**
+     * Update scroll event timestamp of a given window.
+     *
+     * @param windowId The window id.
+     * @param uptimeMillis Device uptime millis.
+     */
+    private void updateScrollingWindow(int windowId, long uptimeMillis) {
+        synchronized (sScrollingWindows) {
+            sScrollingWindows.put(windowId, uptimeMillis);
+        }
+    }
+
+    /**
+     * Remove a window from the scrolling windows list.
+     *
+     * @param windowId The window id.
+     */
+    private void deleteScrollingWindow(int windowId) {
+        synchronized (sScrollingWindows) {
+            sScrollingWindows.delete(windowId);
+        }
+    }
+
+    /**
+     * Whether or not the window is scrolling.
+     *
+     * @param windowId
+     * @return true if it's scrolling.
+     */
+    private boolean isWindowScrolling(int windowId) {
+        synchronized (sScrollingWindows) {
+            final long latestScrollingTime = sScrollingWindows.get(windowId);
+            if (latestScrollingTime == 0) {
+                return false;
+            }
+            final long currentUptime = SystemClock.uptimeMillis();
+            if (currentUptime > (latestScrollingTime + DISABLE_PREFETCHING_FOR_SCROLLING_MILLIS)) {
+                sScrollingWindows.delete(windowId);
+                return false;
+            }
+        }
+        return true;
+    }
 }
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index eb4f9db..f2cbf89 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -52,6 +52,7 @@
 import android.util.Pools.SynchronizedPool;
 import android.util.Size;
 import android.util.TypedValue;
+import android.view.SurfaceView;
 import android.view.TouchDelegate;
 import android.view.View;
 import android.view.ViewGroup;
@@ -138,6 +139,9 @@
     public static final int FLAG_PREFETCH_DESCENDANTS = 0x00000004;
 
     /** @hide */
+    public static final int FLAG_PREFETCH_MASK = 0x00000007;
+
+    /** @hide */
     public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 0x00000008;
 
     /** @hide */
@@ -552,8 +556,8 @@
      *
      * @see AccessibilityAction#ACTION_PRESS_AND_HOLD
      */
-    public static final String ACTION_ARGUMENT_PRESS_HOLD_DURATION_MILLIS_INT =
-            "android.view.accessibility.action.ARGUMENT_PRESS_HOLD_DURATION_MILLIS_INT";
+    public static final String ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT =
+            "android.view.accessibility.action.ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT";
 
     /**
      * Argument to represent the IME action Id to press the returning key on a node.
@@ -913,6 +917,15 @@
      * Find the view that has the specified focus type. The search starts from
      * the view represented by this node info.
      *
+     * <p>
+     * <strong>Note:</strong> If this view hierarchy has a {@link SurfaceView} embedding another
+     * view hierarchy via {@link SurfaceView#setChildSurfacePackage}, there is a limitation that
+     * this API won't be able to find the node for the view on the embedded view hierarchy. It's
+     * because views don't know about the embedded hierarchies. Instead, you could traverse all
+     * the children to find the node. Or, use {@link AccessibilityService#findFocus(int)} for
+     * {@link #FOCUS_ACCESSIBILITY} only since it has no such limitation.
+     * </p>
+     *
      * @param focus The focus to find. One of {@link #FOCUS_INPUT} or
      *         {@link #FOCUS_ACCESSIBILITY}.
      * @return The node info of the focused view or null.
@@ -934,6 +947,14 @@
      * Searches for the nearest view in the specified direction that can take
      * the input focus.
      *
+     * <p>
+     * <strong>Note:</strong> If this view hierarchy has a {@link SurfaceView} embedding another
+     * view hierarchy via {@link SurfaceView#setChildSurfacePackage}, there is a limitation that
+     * this API won't be able to find the node for the view in the specified direction on the
+     * embedded view hierarchy. It's because views don't know about the embedded hierarchies.
+     * Instead, you could traverse all the children to find the node.
+     * </p>
+     *
      * @param direction The direction. Can be one of:
      *     {@link View#FOCUS_DOWN},
      *     {@link View#FOCUS_UP},
@@ -1720,6 +1741,13 @@
      *     received info by calling {@link AccessibilityNodeInfo#recycle()}
      *     to avoid creating of multiple instances.
      * </p>
+     * <p>
+     * <strong>Note:</strong> If this view hierarchy has a {@link SurfaceView} embedding another
+     * view hierarchy via {@link SurfaceView#setChildSurfacePackage}, there is a limitation that
+     * this API won't be able to find the node for the view on the embedded view hierarchy. It's
+     * because views don't know about the embedded hierarchies. Instead, you could traverse all
+     * the children to find the node.
+     * </p>
      *
      * @param text The searched text.
      * @return A list of node info.
@@ -1751,6 +1779,13 @@
      *   the client has to set the {@link AccessibilityServiceInfo#FLAG_REPORT_VIEW_IDS}
      *   flag when configuring his {@link android.accessibilityservice.AccessibilityService}.
      * </p>
+     * <p>
+     * <strong>Note:</strong> If this view hierarchy has a {@link SurfaceView} embedding another
+     * view hierarchy via {@link SurfaceView#setChildSurfacePackage}, there is a limitation that
+     * this API won't be able to find the node for the view on the embedded view hierarchy. It's
+     * because views don't know about the embedded hierarchies. Instead, you could traverse all
+     * the children to find the node.
+     * </p>
      *
      * @param viewId The fully qualified resource name of the view id to find.
      * @return A list of node info.
@@ -4912,10 +4947,13 @@
          * held. Nodes having a single action for long press should use {@link #ACTION_LONG_CLICK}
          *  instead of this action, and nodes should not expose both actions.
          * <p>
-         * Use {@link #ACTION_ARGUMENT_PRESS_HOLD_DURATION_MILLIS_INT} to specify how long the
-         * node is pressed. To ensure reasonable behavior, the first value of this argument should
-         * be 0 and the others should greater than 0 and less than 10,000. UIs requested to hold for
-         * times outside of this range should ignore the action.
+         * When calling {@code performAction(ACTION_PRESS_AND_HOLD, bundle}, use
+         * {@link #ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT} to specify how long the
+         * node is pressed. The first time an accessibility service performs ACTION_PRES_AND_HOLD
+         * on a node, it must specify 0 as ACTION_ARGUMENT_PRESS_AND_HOLD, so the application is
+         * notified that the held state has started. To ensure reasonable behavior, the values
+         * must be increased incrementally and may not exceed 10,000. UIs requested
+         * to hold for times outside of this range should ignore the action.
          * <p>
          * The total time the element is held could be specified by an accessibility user up-front,
          * or may depend on what happens on the UI as the user continues to request the hold.
diff --git a/core/java/android/view/inline/InlineContentView.java b/core/java/android/view/inline/InlineContentView.java
index b143fad..2a8ca0b 100644
--- a/core/java/android/view/inline/InlineContentView.java
+++ b/core/java/android/view/inline/InlineContentView.java
@@ -19,8 +19,7 @@
 import android.annotation.NonNull;
 import android.content.Context;
 import android.graphics.PixelFormat;
-import android.view.SurfaceControl;
-import android.view.SurfaceHolder;
+import android.view.SurfaceControlViewHost;
 import android.view.SurfaceView;
 
 /**
@@ -30,31 +29,10 @@
  */
 public class InlineContentView extends SurfaceView {
     public InlineContentView(@NonNull Context context,
-            @NonNull SurfaceControl surfaceControl) {
+            @NonNull SurfaceControlViewHost.SurfacePackage surfacePackage) {
         super(context);
         setZOrderOnTop(true);
-        getHolder().addCallback(new SurfaceHolder.Callback() {
-            @Override
-            public void surfaceCreated(SurfaceHolder holder) {
-                holder.setFormat(PixelFormat.TRANSPARENT);
-                new SurfaceControl.Transaction()
-                        .reparent(surfaceControl, getSurfaceControl())
-                        .setVisibility(surfaceControl, /* visible */ true)
-                        .apply();
-            }
-
-            @Override
-            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
-                // TODO(b/137800469): implement this.
-            }
-
-            @Override
-            public void surfaceDestroyed(SurfaceHolder holder) {
-                new SurfaceControl.Transaction()
-                        .setVisibility(surfaceControl, false)
-                        .reparent(surfaceControl, null)
-                        .apply();
-            }
-        });
+        setChildSurfacePackage(surfacePackage);
+        getHolder().setFormat(PixelFormat.TRANSPARENT);
     }
 }
diff --git a/core/java/android/view/inputmethod/EditorInfo.java b/core/java/android/view/inputmethod/EditorInfo.java
index 7f90d57..07fef76 100644
--- a/core/java/android/view/inputmethod/EditorInfo.java
+++ b/core/java/android/view/inputmethod/EditorInfo.java
@@ -31,6 +31,7 @@
 import android.text.TextUtils;
 import android.util.Printer;
 import android.view.View;
+import android.view.autofill.AutofillId;
 
 import com.android.internal.annotations.VisibleForTesting;
 
@@ -425,6 +426,14 @@
     public String packageName;
 
     /**
+     * Autofill Id for the field that's currently on focus.
+     *
+     * <p> Marked as hide since it's only used by framework.</p>
+     * @hide
+     */
+    public AutofillId autofillId;
+
+    /**
      * Identifier for the editor's field.  This is optional, and may be
      * 0.  By default it is filled in with the result of
      * {@link android.view.View#getId() View.getId()} on the View that
@@ -793,6 +802,7 @@
         pw.println(prefix + "hintText=" + hintText
                 + " label=" + label);
         pw.println(prefix + "packageName=" + packageName
+                + " autofillId=" + autofillId
                 + " fieldId=" + fieldId
                 + " fieldName=" + fieldName);
         pw.println(prefix + "extras=" + extras);
@@ -821,6 +831,7 @@
         TextUtils.writeToParcel(hintText, dest, flags);
         TextUtils.writeToParcel(label, dest, flags);
         dest.writeString(packageName);
+        dest.writeParcelable(autofillId, flags);
         dest.writeInt(fieldId);
         dest.writeString(fieldName);
         dest.writeBundle(extras);
@@ -852,6 +863,7 @@
                     res.hintText = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
                     res.label = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
                     res.packageName = source.readString();
+                    res.autofillId = source.readParcelable(AutofillId.class.getClassLoader());
                     res.fieldId = source.readInt();
                     res.fieldName = source.readString();
                     res.extras = source.readBundle();
diff --git a/core/java/android/view/inputmethod/InlineSuggestion.java b/core/java/android/view/inputmethod/InlineSuggestion.java
index ec485d3..6500613 100644
--- a/core/java/android/view/inputmethod/InlineSuggestion.java
+++ b/core/java/android/view/inputmethod/InlineSuggestion.java
@@ -27,7 +27,7 @@
 import android.os.RemoteException;
 import android.util.Size;
 import android.util.Slog;
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
 import android.view.View;
 import android.view.inline.InlineContentView;
 import android.view.inline.InlinePresentationSpec;
@@ -151,7 +151,7 @@
         }
 
         @Override
-        public void onContent(SurfaceControl content) {
+        public void onContent(SurfaceControlViewHost.SurfacePackage content) {
             final InlineContentCallbackImpl callbackImpl = mCallbackImpl.get();
             if (callbackImpl != null) {
                 callbackImpl.onContent(content);
@@ -173,7 +173,7 @@
             mCallback = callback;
         }
 
-        public void onContent(SurfaceControl content) {
+        public void onContent(SurfaceControlViewHost.SurfacePackage content) {
             if (content == null) {
                 mCallbackExecutor.execute(() -> mCallback.accept(/* view */null));
             } else {
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index f3aa314..482d5b25 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -1634,14 +1634,20 @@
     @Deprecated
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 123768499)
     public void showSoftInputUnchecked(int flags, ResultReceiver resultReceiver) {
-        try {
-            Log.w(TAG, "showSoftInputUnchecked() is a hidden method, which will be removed "
-                    + "soon. If you are using android.support.v7.widget.SearchView, please update "
-                    + "to version 26.0 or newer version.");
-            mService.showSoftInput(
-                    mClient, mCurRootView.getView().getWindowToken(), flags, resultReceiver);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
+        synchronized (mH) {
+            try {
+                Log.w(TAG, "showSoftInputUnchecked() is a hidden method, which will be"
+                        + " removed soon. If you are using android.support.v7.widget.SearchView,"
+                        + " please update to version 26.0 or newer version.");
+                if (mCurRootView == null || mCurRootView.getView() == null) {
+                    Log.w(TAG, "No current root view, ignoring showSoftInputUnchecked()");
+                    return;
+                }
+                mService.showSoftInput(
+                        mClient, mCurRootView.getView().getWindowToken(), flags, resultReceiver);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
         }
     }
 
@@ -1858,6 +1864,7 @@
         // system can verify the consistency between the uid of this process and package name passed
         // from here. See comment of Context#getOpPackageName() for details.
         tba.packageName = view.getContext().getOpPackageName();
+        tba.autofillId = view.getAutofillId();
         tba.fieldId = view.getId();
         InputConnection ic = view.onCreateInputConnection(tba);
         if (DEBUG) Log.v(TAG, "Starting input: tba=" + tba + " ic=" + ic);
@@ -1985,11 +1992,17 @@
 
     @UnsupportedAppUsage
     void closeCurrentInput() {
-        try {
-            mService.hideSoftInput(
-                    mClient, mCurRootView.getView().getWindowToken(), HIDE_NOT_ALWAYS, null);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
+        synchronized (mH) {
+            if (mCurRootView == null || mCurRootView.getView() == null) {
+                Log.w(TAG, "No current root view, ignoring closeCurrentInput()");
+                return;
+            }
+            try {
+                mService.hideSoftInput(
+                        mClient, mCurRootView.getView().getWindowToken(), HIDE_NOT_ALWAYS, null);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
         }
     }
 
diff --git a/core/java/android/view/textclassifier/SelectionSessionLogger.java b/core/java/android/view/textclassifier/SelectionSessionLogger.java
index 9c9b2d0..ae9f65b 100644
--- a/core/java/android/view/textclassifier/SelectionSessionLogger.java
+++ b/core/java/android/view/textclassifier/SelectionSessionLogger.java
@@ -90,7 +90,7 @@
                     .addTaggedData(SMART_END, event.getSmartEnd());
         }
         if (event.getSessionId() != null) {
-            log.addTaggedData(SESSION_ID, event.getSessionId().flattenToString());
+            log.addTaggedData(SESSION_ID, event.getSessionId().getValue());
         }
         mMetricsLogger.write(log);
         debugLog(log);
diff --git a/core/java/android/view/textclassifier/TextClassificationSessionId.java b/core/java/android/view/textclassifier/TextClassificationSessionId.java
index 0b6fba2..aa680c9 100644
--- a/core/java/android/view/textclassifier/TextClassificationSessionId.java
+++ b/core/java/android/view/textclassifier/TextClassificationSessionId.java
@@ -92,12 +92,10 @@
     }
 
     /**
-     * Flattens this id to a string.
-     *
-     * @return The flattened id.
+     * Returns the value of this ID.
      */
     @NonNull
-    public String flattenToString() {
+    public String getValue() {
         return mValue;
     }
 
diff --git a/core/java/android/widget/Toast.java b/core/java/android/widget/Toast.java
index 9e4ebfe..7d97a91 100644
--- a/core/java/android/widget/Toast.java
+++ b/core/java/android/widget/Toast.java
@@ -31,9 +31,7 @@
 import android.compat.annotation.EnabledAfter;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
-import android.content.res.Configuration;
 import android.content.res.Resources;
-import android.graphics.PixelFormat;
 import android.os.Binder;
 import android.os.Build;
 import android.os.Handler;
@@ -43,11 +41,8 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.util.Log;
-import android.view.Gravity;
-import android.view.LayoutInflater;
 import android.view.View;
 import android.view.WindowManager;
-import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
 
 import com.android.internal.annotations.GuardedBy;
@@ -122,6 +117,7 @@
     private final Binder mToken;
     private final Context mContext;
     private final Handler mHandler;
+    private final ToastPresenter mPresenter;
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     final TN mTN;
     @UnsupportedAppUsage
@@ -172,7 +168,8 @@
         looper = getLooper(looper);
         mHandler = new Handler(looper);
         mCallbacks = new ArrayList<>();
-        mTN = new TN(context.getPackageName(), mToken, mCallbacks, looper);
+        mPresenter = new ToastPresenter(context, AccessibilityManager.getInstance(context));
+        mTN = new TN(mPresenter, context.getPackageName(), mToken, mCallbacks, looper);
         mTN.mY = context.getResources().getDimensionPixelSize(
                 com.android.internal.R.dimen.toast_y_offset);
         mTN.mGravity = context.getResources().getInteger(
@@ -504,13 +501,7 @@
             return result;
         } else {
             Toast result = new Toast(context, looper);
-
-            LayoutInflater inflate = (LayoutInflater)
-                    context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-            View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
-            TextView tv = (TextView) v.findViewById(com.android.internal.R.id.message);
-            tv.setText(text);
-
+            View v = result.mPresenter.getTextToastView(text);
             result.mNextView = v;
             result.mDuration = duration;
 
@@ -611,34 +602,20 @@
 
         final String mPackageName;
         final Binder mToken;
+        private final ToastPresenter mPresenter;
 
         @GuardedBy("mCallbacks")
         private final List<Callback> mCallbacks;
 
-        static final long SHORT_DURATION_TIMEOUT = 4000;
-        static final long LONG_DURATION_TIMEOUT = 7000;
-
         /**
          * Creates a {@link ITransientNotification} object.
          *
          * The parameter {@code callbacks} is not copied and is accessed with itself as its own
          * lock.
          */
-        TN(String packageName, Binder token, List<Callback> callbacks, @Nullable Looper looper) {
-            // XXX This should be changed to use a Dialog, with a Theme.Toast
-            // defined that sets up the layout params appropriately.
-            final WindowManager.LayoutParams params = mParams;
-            params.height = WindowManager.LayoutParams.WRAP_CONTENT;
-            params.width = WindowManager.LayoutParams.WRAP_CONTENT;
-            params.format = PixelFormat.TRANSLUCENT;
-            params.windowAnimations = com.android.internal.R.style.Animation_Toast;
-            params.type = WindowManager.LayoutParams.TYPE_TOAST;
-            params.setFitInsetsIgnoringVisibility(true);
-            params.setTitle("Toast");
-            params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
-                    | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
-                    | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
-
+        TN(ToastPresenter presenter, String packageName, Binder token, List<Callback> callbacks,
+                @Nullable Looper looper) {
+            mPresenter = presenter;
             mPackageName = packageName;
             mToken = token;
             mCallbacks = callbacks;
@@ -673,6 +650,8 @@
                     }
                 }
             };
+
+            presenter.startLayoutParams(mParams, packageName);
         }
 
         private List<Callback> getCallbacks() {
@@ -718,30 +697,12 @@
                 handleHide();
                 mView = mNextView;
                 Context context = mView.getContext().getApplicationContext();
-                String packageName = mView.getContext().getOpPackageName();
                 if (context == null) {
                     context = mView.getContext();
                 }
-                mWM = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
-                // We can resolve the Gravity here by using the Locale for getting
-                // the layout direction
-                final Configuration config = mView.getContext().getResources().getConfiguration();
-                final int gravity = Gravity.getAbsoluteGravity(mGravity, config.getLayoutDirection());
-                mParams.gravity = gravity;
-                if ((gravity & Gravity.HORIZONTAL_GRAVITY_MASK) == Gravity.FILL_HORIZONTAL) {
-                    mParams.horizontalWeight = 1.0f;
-                }
-                if ((gravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.FILL_VERTICAL) {
-                    mParams.verticalWeight = 1.0f;
-                }
-                mParams.x = mX;
-                mParams.y = mY;
-                mParams.verticalMargin = mVerticalMargin;
-                mParams.horizontalMargin = mHorizontalMargin;
-                mParams.packageName = packageName;
-                mParams.hideTimeoutMilliseconds = mDuration ==
-                    Toast.LENGTH_LONG ? LONG_DURATION_TIMEOUT : SHORT_DURATION_TIMEOUT;
-                mParams.token = windowToken;
+                mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+                mPresenter.adjustLayoutParams(mParams, windowToken, mDuration, mGravity, mX, mY,
+                        mHorizontalMargin, mVerticalMargin);
                 if (mView.getParent() != null) {
                     if (localLOGV) Log.v(TAG, "REMOVE! " + mView + " in " + this);
                     mWM.removeView(mView);
@@ -753,7 +714,7 @@
                 // invalidated. Let us hedge against that.
                 try {
                     mWM.addView(mView, mParams);
-                    trySendAccessibilityEvent();
+                    mPresenter.trySendAccessibilityEvent(mView, mPackageName);
                     for (Callback callback : getCallbacks()) {
                         callback.onToastShown();
                     }
@@ -763,22 +724,6 @@
             }
         }
 
-        private void trySendAccessibilityEvent() {
-            AccessibilityManager accessibilityManager =
-                    AccessibilityManager.getInstance(mView.getContext());
-            if (!accessibilityManager.isEnabled()) {
-                return;
-            }
-            // treat toasts as notifications since they are used to
-            // announce a transient piece of information to the user
-            AccessibilityEvent event = AccessibilityEvent.obtain(
-                    AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
-            event.setClassName(getClass().getName());
-            event.setPackageName(mView.getContext().getPackageName());
-            mView.dispatchPopulateAccessibilityEvent(event);
-            accessibilityManager.sendAccessibilityEvent(event);
-        }
-
         @UnsupportedAppUsage
         public void handleHide() {
             if (localLOGV) Log.v(TAG, "HANDLE HIDE: " + this + " mView=" + mView);
diff --git a/core/java/android/widget/ToastPresenter.java b/core/java/android/widget/ToastPresenter.java
new file mode 100644
index 0000000..0447b6b
--- /dev/null
+++ b/core/java/android/widget/ToastPresenter.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2020 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.widget;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.graphics.PixelFormat;
+import android.os.IBinder;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
+
+import com.android.internal.R;
+import com.android.internal.util.ArrayUtils;
+
+/**
+ * Class responsible for toast presentation inside app's process and in system UI.
+ *
+ * @hide
+ */
+public class ToastPresenter {
+    private static final long SHORT_DURATION_TIMEOUT = 4000;
+    private static final long LONG_DURATION_TIMEOUT = 7000;
+
+    private final Context mContext;
+    private final Resources mResources;
+    private final AccessibilityManager mAccessibilityManager;
+
+    public ToastPresenter(Context context, AccessibilityManager accessibilityManager) {
+        mContext = context;
+        mResources = context.getResources();
+        mAccessibilityManager = accessibilityManager;
+    }
+
+    /**
+     * Initializes {@code params} with default values for toasts.
+     */
+    public void startLayoutParams(WindowManager.LayoutParams params, String packageName) {
+        params.height = WindowManager.LayoutParams.WRAP_CONTENT;
+        params.width = WindowManager.LayoutParams.WRAP_CONTENT;
+        params.format = PixelFormat.TRANSLUCENT;
+        params.windowAnimations = R.style.Animation_Toast;
+        params.type = WindowManager.LayoutParams.TYPE_TOAST;
+        params.setFitInsetsIgnoringVisibility(true);
+        params.setTitle("Toast");
+        params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+                | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+                | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
+        setShowForAllUsersIfApplicable(params, packageName);
+    }
+
+    /**
+     * Customizes {@code params} according to other parameters, ready to be passed to {@link
+     * WindowManager#addView(View, ViewGroup.LayoutParams)}.
+     */
+    public void adjustLayoutParams(WindowManager.LayoutParams params, IBinder windowToken,
+            int duration, int gravity, int xOffset, int yOffset, float horizontalMargin,
+            float verticalMargin) {
+        Configuration config = mResources.getConfiguration();
+        int absGravity = Gravity.getAbsoluteGravity(gravity, config.getLayoutDirection());
+        params.gravity = absGravity;
+        if ((absGravity & Gravity.HORIZONTAL_GRAVITY_MASK) == Gravity.FILL_HORIZONTAL) {
+            params.horizontalWeight = 1.0f;
+        }
+        if ((absGravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.FILL_VERTICAL) {
+            params.verticalWeight = 1.0f;
+        }
+        params.x = xOffset;
+        params.y = yOffset;
+        params.horizontalMargin = horizontalMargin;
+        params.verticalMargin = verticalMargin;
+        params.packageName = mContext.getPackageName();
+        params.hideTimeoutMilliseconds =
+                (duration == Toast.LENGTH_LONG) ? LONG_DURATION_TIMEOUT : SHORT_DURATION_TIMEOUT;
+        params.token = windowToken;
+    }
+
+    /**
+     * Sets {@link WindowManager.LayoutParams#SYSTEM_FLAG_SHOW_FOR_ALL_USERS} flag if {@code
+     * packageName} is a cross-user package.
+     *
+     * Implementation note:
+     *     This code is safe to be executed in SystemUI and the app's process:
+     *         <li>SystemUI: It's running on a trusted domain so apps can't tamper with it. SystemUI
+     *             has the permission INTERNAL_SYSTEM_WINDOW needed by the flag, so SystemUI can add
+     *             the flag on behalf of those packages, which all contain INTERNAL_SYSTEM_WINDOW
+     *             permission.
+     *         <li>App: The flag being added is protected behind INTERNAL_SYSTEM_WINDOW permission
+     *             and any app can already add that flag via getWindowParams() if it has that
+     *             permission, so we are just doing this automatically for cross-user packages.
+     */
+    private void setShowForAllUsersIfApplicable(WindowManager.LayoutParams params,
+            String packageName) {
+        if (isCrossUserPackage(packageName)) {
+            params.privateFlags = WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
+        }
+    }
+
+    private boolean isCrossUserPackage(String packageName) {
+        String[] packages = mResources.getStringArray(R.array.config_toastCrossUserPackages);
+        return ArrayUtils.contains(packages, packageName);
+    }
+
+    /**
+     * Returns the default text toast view for message {@code text}.
+     */
+    public View getTextToastView(CharSequence text) {
+        View view = LayoutInflater.from(mContext).inflate(
+                R.layout.transient_notification, null);
+        TextView textView = view.findViewById(com.android.internal.R.id.message);
+        textView.setText(text);
+        return view;
+    }
+
+    /**
+     * Sends {@link AccessibilityEvent#TYPE_NOTIFICATION_STATE_CHANGED} event if accessibility is
+     * enabled.
+     */
+    public void trySendAccessibilityEvent(View view, String packageName) {
+        if (!mAccessibilityManager.isEnabled()) {
+            return;
+        }
+        AccessibilityEvent event = AccessibilityEvent.obtain(
+                AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
+        event.setClassName(Toast.class.getName());
+        event.setPackageName(packageName);
+        view.dispatchPopulateAccessibilityEvent(event);
+        mAccessibilityManager.sendAccessibilityEvent(event);
+    }
+}
diff --git a/core/java/com/android/internal/accessibility/common/ShortcutConstants.java b/core/java/com/android/internal/accessibility/common/ShortcutConstants.java
new file mode 100644
index 0000000..1daa505
--- /dev/null
+++ b/core/java/com/android/internal/accessibility/common/ShortcutConstants.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2020 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.internal.accessibility.common;
+
+import android.annotation.IntDef;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Collection of common constants for accessibility shortcut.
+ */
+public final class ShortcutConstants {
+    private ShortcutConstants() {}
+
+    public static final char SERVICES_SEPARATOR = ':';
+    public static final float DISABLED_ALPHA = 0.5f;
+    public static final float ENABLED_ALPHA = 1.0f;
+
+    /**
+     * Annotation for different user shortcut type UI type.
+     *
+     * {@code DEFAULT} for displaying default value.
+     * {@code SOFTWARE} for displaying specifying the accessibility services or features which
+     * choose accessibility button in the navigation bar as preferred shortcut.
+     * {@code HARDWARE} for displaying specifying the accessibility services or features which
+     * choose accessibility shortcut as preferred shortcut.
+     * {@code TRIPLETAP} for displaying specifying magnification to be toggled via quickly
+     * tapping screen 3 times as preferred shortcut.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({
+            UserShortcutType.DEFAULT,
+            UserShortcutType.SOFTWARE,
+            UserShortcutType.HARDWARE,
+            UserShortcutType.TRIPLETAP,
+    })
+    public @interface UserShortcutType {
+        int DEFAULT = 0;
+        int SOFTWARE = 1; // 1 << 0
+        int HARDWARE = 2; // 1 << 1
+        int TRIPLETAP = 4; // 1 << 2
+    }
+
+    /**
+     * Annotation for different accessibilityService fragment UI type.
+     *
+     * {@code LEGACY} for displaying appearance aligned with sdk version Q accessibility service
+     * page, but only hardware shortcut allowed and under service in version Q or early.
+     * {@code INVISIBLE} for displaying appearance without switch bar.
+     * {@code INTUITIVE} for displaying appearance with version R accessibility design.
+     * {@code BOUNCE} for displaying appearance with pop-up action.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({
+            AccessibilityServiceFragmentType.LEGACY,
+            AccessibilityServiceFragmentType.INVISIBLE,
+            AccessibilityServiceFragmentType.INTUITIVE,
+            AccessibilityServiceFragmentType.BOUNCE,
+    })
+    public @interface AccessibilityServiceFragmentType {
+        int LEGACY = 0;
+        int INVISIBLE = 1;
+        int INTUITIVE = 2;
+        int BOUNCE = 3;
+    }
+
+    /**
+     * Annotation for different shortcut menu mode.
+     *
+     * {@code LAUNCH} for clicking list item to trigger the service callback.
+     * {@code EDIT} for clicking list item and save button to disable the service.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({
+            ShortcutMenuMode.LAUNCH,
+            ShortcutMenuMode.EDIT,
+    })
+    public @interface ShortcutMenuMode {
+        int LAUNCH = 0;
+        int EDIT = 1;
+    }
+
+    /**
+     * Annotation for align the element index of white listing feature
+     * {@code WHITE_LISTING_FEATURES}.
+     *
+     * {@code COMPONENT_ID} is to get the service component name.
+     * {@code LABEL_ID} is to get the service label text.
+     * {@code ICON_ID} is to get the service icon.
+     * {@code FRAGMENT_TYPE} is to get the service fragment type.
+     * {@code SETTINGS_KEY} is to get the service settings key.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({
+            WhiteListingFeatureElementIndex.COMPONENT_ID,
+            WhiteListingFeatureElementIndex.LABEL_ID,
+            WhiteListingFeatureElementIndex.ICON_ID,
+            WhiteListingFeatureElementIndex.FRAGMENT_TYPE,
+            WhiteListingFeatureElementIndex.SETTINGS_KEY,
+    })
+    public @interface WhiteListingFeatureElementIndex {
+        int COMPONENT_ID = 0;
+        int LABEL_ID = 1;
+        int ICON_ID = 2;
+        int FRAGMENT_TYPE = 3;
+        int SETTINGS_KEY = 4;
+    }
+}
diff --git a/core/java/com/android/internal/accessibility/util/AccessibilityUtils.java b/core/java/com/android/internal/accessibility/util/AccessibilityUtils.java
new file mode 100644
index 0000000..d0ead5e
--- /dev/null
+++ b/core/java/com/android/internal/accessibility/util/AccessibilityUtils.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2020 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.internal.accessibility.util;
+import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityServiceFragmentType;
+import static com.android.internal.accessibility.common.ShortcutConstants.SERVICES_SEPARATOR;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.content.ComponentName;
+import android.content.Context;
+import android.os.Build;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.ArraySet;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Collection of utilities for accessibility service.
+ */
+public final class AccessibilityUtils {
+    private AccessibilityUtils() {}
+
+    /**
+     * Returns the set of enabled accessibility services for userId. If there are no
+     * services, it returns the unmodifiable {@link Collections#emptySet()}.
+     */
+    public static Set<ComponentName> getEnabledServicesFromSettings(Context context, int userId) {
+        final String enabledServicesSetting = Settings.Secure.getStringForUser(
+                context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
+                userId);
+        if (TextUtils.isEmpty(enabledServicesSetting)) {
+            return Collections.emptySet();
+        }
+
+        final Set<ComponentName> enabledServices = new HashSet<>();
+        final TextUtils.StringSplitter colonSplitter =
+                new TextUtils.SimpleStringSplitter(SERVICES_SEPARATOR);
+        colonSplitter.setString(enabledServicesSetting);
+
+        for (String componentNameString : colonSplitter) {
+            final ComponentName enabledService = ComponentName.unflattenFromString(
+                    componentNameString);
+            if (enabledService != null) {
+                enabledServices.add(enabledService);
+            }
+        }
+
+        return enabledServices;
+    }
+
+    /**
+     * Changes an accessibility component's state.
+     */
+    public static void setAccessibilityServiceState(Context context, ComponentName componentName,
+            boolean enabled) {
+        setAccessibilityServiceState(context, componentName, enabled, UserHandle.myUserId());
+    }
+
+    /**
+     * Changes an accessibility component's state for {@param userId}.
+     */
+    public static void setAccessibilityServiceState(Context context, ComponentName componentName,
+            boolean enabled, int userId) {
+        Set<ComponentName> enabledServices = getEnabledServicesFromSettings(
+                context, userId);
+
+        if (enabledServices.isEmpty()) {
+            enabledServices = new ArraySet<>(/* capacity= */ 1);
+        }
+
+        if (enabled) {
+            enabledServices.add(componentName);
+        } else {
+            enabledServices.remove(componentName);
+        }
+
+        final StringBuilder enabledServicesBuilder = new StringBuilder();
+        for (ComponentName enabledService : enabledServices) {
+            enabledServicesBuilder.append(enabledService.flattenToString());
+            enabledServicesBuilder.append(
+                    SERVICES_SEPARATOR);
+        }
+
+        final int enabledServicesBuilderLength = enabledServicesBuilder.length();
+        if (enabledServicesBuilderLength > 0) {
+            enabledServicesBuilder.deleteCharAt(enabledServicesBuilderLength - 1);
+        }
+
+        Settings.Secure.putStringForUser(context.getContentResolver(),
+                Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
+                enabledServicesBuilder.toString(), userId);
+    }
+
+    /**
+     * Gets the corresponding fragment type of a given accessibility service.
+     *
+     * @param accessibilityServiceInfo The accessibilityService's info.
+     * @return int from {@link AccessibilityServiceFragmentType}.
+     */
+    public static @AccessibilityServiceFragmentType int getAccessibilityServiceFragmentType(
+            AccessibilityServiceInfo accessibilityServiceInfo) {
+        final int targetSdk = accessibilityServiceInfo.getResolveInfo()
+                .serviceInfo.applicationInfo.targetSdkVersion;
+        final boolean requestA11yButton = (accessibilityServiceInfo.flags
+                & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
+
+        if (targetSdk <= Build.VERSION_CODES.Q) {
+            return AccessibilityServiceFragmentType.LEGACY;
+        }
+        return requestA11yButton
+                ? AccessibilityServiceFragmentType.INVISIBLE
+                : AccessibilityServiceFragmentType.INTUITIVE;
+    }
+}
diff --git a/core/java/com/android/internal/accessibility/util/ShortcutUtils.java b/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
new file mode 100644
index 0000000..7df712f
--- /dev/null
+++ b/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2020 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.internal.accessibility.util;
+import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
+import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
+
+import static com.android.internal.accessibility.common.ShortcutConstants.SERVICES_SEPARATOR;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.view.accessibility.AccessibilityManager.ShortcutType;
+
+import java.util.StringJoiner;
+
+/**
+ * Collection of utilities for accessibility shortcut.
+ */
+public final class ShortcutUtils {
+    private ShortcutUtils() {}
+
+    private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
+            new TextUtils.SimpleStringSplitter(SERVICES_SEPARATOR);
+
+    /**
+     * Opts out component name into colon-separated {@code shortcutType} key's string in Settings.
+     *
+     * @param context The current context.
+     * @param shortcutType The preferred shortcut type user selected.
+     * @param componentId The component id that need to be opted out from Settings.
+     */
+    public static void optOutValueFromSettings(
+            Context context, @UserShortcutType int shortcutType, String componentId) {
+        final StringJoiner joiner = new StringJoiner(String.valueOf(SERVICES_SEPARATOR));
+        final String targetsKey = convertToKey(shortcutType);
+        final String targetsValue = Settings.Secure.getString(context.getContentResolver(),
+                targetsKey);
+
+        if (TextUtils.isEmpty(targetsValue)) {
+            return;
+        }
+
+        sStringColonSplitter.setString(targetsValue);
+        while (sStringColonSplitter.hasNext()) {
+            final String id = sStringColonSplitter.next();
+            if (TextUtils.isEmpty(id) || componentId.equals(id)) {
+                continue;
+            }
+            joiner.add(id);
+        }
+
+        Settings.Secure.putString(context.getContentResolver(), targetsKey, joiner.toString());
+    }
+
+    /**
+     * Returns if component name existed in one of {@code shortcutTypes} string in Settings.
+     *
+     * @param context The current context.
+     * @param shortcutTypes A combination of {@link UserShortcutType}.
+     * @param componentId The component name that need to be checked existed in Settings.
+     * @return {@code true} if componentName existed in Settings.
+     */
+    public static boolean hasValuesInSettings(Context context, int shortcutTypes,
+            @NonNull String componentId) {
+        boolean exist = false;
+        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
+            exist = hasValueInSettings(context, UserShortcutType.SOFTWARE, componentId);
+        }
+        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
+            exist |= hasValueInSettings(context, UserShortcutType.HARDWARE, componentId);
+        }
+        return exist;
+    }
+
+
+    /**
+     * Returns if component name existed in Settings.
+     *
+     * @param context The current context.
+     * @param shortcutType The preferred shortcut type user selected.
+     * @param componentId The component id that need to be checked existed in Settings.
+     * @return {@code true} if componentName existed in Settings.
+     */
+    public static boolean hasValueInSettings(Context context, @UserShortcutType int shortcutType,
+            @NonNull String componentId) {
+        final String targetKey = convertToKey(shortcutType);
+        final String targetString = Settings.Secure.getString(context.getContentResolver(),
+                targetKey);
+
+        if (TextUtils.isEmpty(targetString)) {
+            return false;
+        }
+
+        sStringColonSplitter.setString(targetString);
+        while (sStringColonSplitter.hasNext()) {
+            final String id = sStringColonSplitter.next();
+            if (componentId.equals(id)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Converts {@link UserShortcutType} to key in Settings.
+     *
+     * @param type The shortcut type.
+     * @return Mapping key in Settings.
+     */
+    public static String convertToKey(@UserShortcutType int type) {
+        switch (type) {
+            case UserShortcutType.SOFTWARE:
+                return Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT;
+            case UserShortcutType.HARDWARE:
+                return Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
+            case UserShortcutType.TRIPLETAP:
+                return Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
+            default:
+                throw new IllegalArgumentException(
+                        "Unsupported user shortcut type: " + type);
+        }
+    }
+
+    /**
+     * Converts {@link ShortcutType} to {@link UserShortcutType}.
+     *
+     * @param type The shortcut type.
+     * @return {@link UserShortcutType}.
+     */
+    public static @UserShortcutType int convertToUserType(@ShortcutType int type) {
+        switch (type) {
+            case ACCESSIBILITY_BUTTON:
+                return UserShortcutType.SOFTWARE;
+            case ACCESSIBILITY_SHORTCUT_KEY:
+                return UserShortcutType.HARDWARE;
+            default:
+                throw new IllegalArgumentException(
+                        "Unsupported shortcut type:" + type);
+        }
+    }
+}
diff --git a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java
index b4a0208..bcf731d 100644
--- a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java
+++ b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java
@@ -64,6 +64,7 @@
     private final UserHandle mPersonalProfileUserHandle;
     private final UserHandle mWorkProfileUserHandle;
     private Injector mInjector;
+    private boolean mIsWaitingToEnableWorkProfile;
 
     AbstractMultiProfilePagerAdapter(Context context, int currentPage,
             UserHandle personalProfileUserHandle,
@@ -90,10 +91,19 @@
             @Override
             public void requestQuietModeEnabled(boolean enabled, UserHandle workProfileUserHandle) {
                 userManager.requestQuietModeEnabled(enabled, workProfileUserHandle);
+                mIsWaitingToEnableWorkProfile = true;
             }
         };
     }
 
+    protected void markWorkProfileEnabledBroadcastReceived() {
+        mIsWaitingToEnableWorkProfile = false;
+    }
+
+    protected boolean isWaitingToEnableWorkProfile() {
+        return mIsWaitingToEnableWorkProfile;
+    }
+
     /**
      * Overrides the default {@link Injector} for testing purposes.
      */
@@ -144,7 +154,6 @@
     @Override
     public ViewGroup instantiateItem(ViewGroup container, int position) {
         final ProfileDescriptor profileDescriptor = getItem(position);
-        setupListAdapter(position);
         container.addView(profileDescriptor.rootView);
         return profileDescriptor.rootView;
     }
@@ -198,8 +207,8 @@
     abstract int getItemCount();
 
     /**
-     * Responsible for assigning an adapter to the list view for the relevant page, specified by
-     * <code>pageIndex</code>, and other list view-related initialization procedures.
+     * Performs view-related initialization procedures for the adapter specified
+     * by <code>pageIndex</code>.
      */
     abstract void setupListAdapter(int pageIndex);
 
@@ -294,8 +303,12 @@
                     R.drawable.ic_work_apps_off,
                     R.string.resolver_turn_on_work_apps,
                     R.string.resolver_turn_on_work_apps_explanation,
-                    (View.OnClickListener) v ->
-                            mInjector.requestQuietModeEnabled(false, mWorkProfileUserHandle));
+                    (View.OnClickListener) v -> {
+                        ProfileDescriptor descriptor = getItem(
+                                userHandleToPageIndex(activeListAdapter.getUserHandle()));
+                        showSpinner(descriptor.getEmptyStateView());
+                        mInjector.requestQuietModeEnabled(false, mWorkProfileUserHandle);
+                    });
             return false;
         }
         if (UserHandle.myUserId() != listUserHandle.getIdentifier()) {
@@ -355,7 +368,8 @@
         ProfileDescriptor descriptor = getItem(
                 userHandleToPageIndex(activeListAdapter.getUserHandle()));
         descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
-        View emptyStateView = descriptor.rootView.findViewById(R.id.resolver_empty_state);
+        View emptyStateView = descriptor.getEmptyStateView();
+        resetViewVisibilities(emptyStateView);
         emptyStateView.setVisibility(View.VISIBLE);
 
         ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
@@ -372,6 +386,23 @@
         button.setOnClickListener(buttonOnClick);
     }
 
+    private void showSpinner(View emptyStateView) {
+        emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.INVISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.INVISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_subtitle)
+                .setVisibility(View.INVISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.INVISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.VISIBLE);
+    }
+
+    private void resetViewVisibilities(View emptyStateView) {
+        emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.VISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.VISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_subtitle).setVisibility(View.VISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.INVISIBLE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.GONE);
+    }
+
     private void showListView(ResolverListAdapter activeListAdapter) {
         ProfileDescriptor descriptor = getItem(
                 userHandleToPageIndex(activeListAdapter.getUserHandle()));
@@ -409,8 +440,14 @@
 
     protected class ProfileDescriptor {
         final ViewGroup rootView;
+        private final ViewGroup mEmptyStateView;
         ProfileDescriptor(ViewGroup rootView) {
             this.rootView = rootView;
+            mEmptyStateView = rootView.findViewById(R.id.resolver_empty_state);
+        }
+
+        private ViewGroup getEmptyStateView() {
+            return mEmptyStateView;
         }
     }
 
diff --git a/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java b/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
index 86d2ed6..852deb2 100644
--- a/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
+++ b/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
@@ -22,16 +22,25 @@
 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;
-import static com.android.internal.app.AccessibilityButtonChooserActivity.WhiteListingFeatureElementIndex.COMPONENT_ID;
-import static com.android.internal.app.AccessibilityButtonChooserActivity.WhiteListingFeatureElementIndex.FRAGMENT_TYPE;
-import static com.android.internal.app.AccessibilityButtonChooserActivity.WhiteListingFeatureElementIndex.ICON_ID;
-import static com.android.internal.app.AccessibilityButtonChooserActivity.WhiteListingFeatureElementIndex.LABEL_ID;
-import static com.android.internal.app.AccessibilityButtonChooserActivity.WhiteListingFeatureElementIndex.SETTINGS_KEY;
+import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityServiceFragmentType;
+import static com.android.internal.accessibility.common.ShortcutConstants.DISABLED_ALPHA;
+import static com.android.internal.accessibility.common.ShortcutConstants.ENABLED_ALPHA;
+import static com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.WhiteListingFeatureElementIndex.COMPONENT_ID;
+import static com.android.internal.accessibility.common.ShortcutConstants.WhiteListingFeatureElementIndex.FRAGMENT_TYPE;
+import static com.android.internal.accessibility.common.ShortcutConstants.WhiteListingFeatureElementIndex.ICON_ID;
+import static com.android.internal.accessibility.common.ShortcutConstants.WhiteListingFeatureElementIndex.LABEL_ID;
+import static com.android.internal.accessibility.common.ShortcutConstants.WhiteListingFeatureElementIndex.SETTINGS_KEY;
+import static com.android.internal.accessibility.util.AccessibilityUtils.getAccessibilityServiceFragmentType;
+import static com.android.internal.accessibility.util.AccessibilityUtils.setAccessibilityServiceState;
+import static com.android.internal.accessibility.util.ShortcutUtils.convertToUserType;
+import static com.android.internal.accessibility.util.ShortcutUtils.hasValuesInSettings;
+import static com.android.internal.accessibility.util.ShortcutUtils.optOutValueFromSettings;
 import static com.android.internal.util.Preconditions.checkArgument;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.accessibilityservice.AccessibilityShortcutInfo;
-import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.Activity;
@@ -44,12 +53,8 @@
 import android.graphics.ColorMatrix;
 import android.graphics.ColorMatrixColorFilter;
 import android.graphics.drawable.Drawable;
-import android.os.Build;
 import android.os.Bundle;
-import android.os.UserHandle;
 import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.ArraySet;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -64,24 +69,14 @@
 
 import com.android.internal.R;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
-import java.util.StringJoiner;
 
 /**
  * Activity used to display and persist a service or feature target for the Accessibility button.
  */
 public class AccessibilityButtonChooserActivity extends Activity {
-    private static final char SERVICES_SEPARATOR = ':';
-    private static final float DISABLED_ALPHA = 0.5f;
-    private static final float ENABLED_ALPHA = 1.0f;
-    private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
-            new TextUtils.SimpleStringSplitter(SERVICES_SEPARATOR);
     @ShortcutType
     private int mShortcutType;
     @UserShortcutType
@@ -90,97 +85,6 @@
     private AlertDialog mAlertDialog;
     private TargetAdapter mTargetAdapter;
 
-    /**
-     * Annotation for different user shortcut type UI type.
-     *
-     * {@code DEFAULT} for displaying default value.
-     * {@code SOFTWARE} for displaying specifying the accessibility services or features which
-     * choose accessibility button in the navigation bar as preferred shortcut.
-     * {@code HARDWARE} for displaying specifying the accessibility services or features which
-     * choose accessibility shortcut as preferred shortcut.
-     * {@code TRIPLETAP} for displaying specifying magnification to be toggled via quickly
-     * tapping screen 3 times as preferred shortcut.
-     */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-            UserShortcutType.DEFAULT,
-            UserShortcutType.SOFTWARE,
-            UserShortcutType.HARDWARE,
-            UserShortcutType.TRIPLETAP,
-    })
-    /** Denotes the user shortcut type. */
-    private @interface UserShortcutType {
-        int DEFAULT = 0;
-        int SOFTWARE = 1; // 1 << 0
-        int HARDWARE = 2; // 1 << 1
-        int TRIPLETAP = 4; // 1 << 2
-    }
-
-    /**
-     * Annotation for different accessibilityService fragment UI type.
-     *
-     * {@code LEGACY} for displaying appearance aligned with sdk version Q accessibility service
-     * page, but only hardware shortcut allowed and under service in version Q or early.
-     * {@code INVISIBLE} for displaying appearance without switch bar.
-     * {@code INTUITIVE} for displaying appearance with version R accessibility design.
-     * {@code BOUNCE} for displaying appearance with pop-up action.
-     */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-            AccessibilityServiceFragmentType.LEGACY,
-            AccessibilityServiceFragmentType.INVISIBLE,
-            AccessibilityServiceFragmentType.INTUITIVE,
-            AccessibilityServiceFragmentType.BOUNCE,
-    })
-    private @interface AccessibilityServiceFragmentType {
-        int LEGACY = 0;
-        int INVISIBLE = 1;
-        int INTUITIVE = 2;
-        int BOUNCE = 3;
-    }
-
-    /**
-     * Annotation for different shortcut menu mode.
-     *
-     * {@code LAUNCH} for clicking list item to trigger the service callback.
-     * {@code EDIT} for clicking list item and save button to disable the service.
-     */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-            ShortcutMenuMode.LAUNCH,
-            ShortcutMenuMode.EDIT,
-    })
-    private @interface ShortcutMenuMode {
-        int LAUNCH = 0;
-        int EDIT = 1;
-    }
-
-    /**
-     * Annotation for align the element index of white listing feature
-     * {@code WHITE_LISTING_FEATURES}.
-     *
-     * {@code COMPONENT_ID} is to get the service component name.
-     * {@code LABEL_ID} is to get the service label text.
-     * {@code ICON_ID} is to get the service icon.
-     * {@code FRAGMENT_TYPE} is to get the service fragment type.
-     * {@code SETTINGS_KEY} is to get the service settings key.
-     */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-            WhiteListingFeatureElementIndex.COMPONENT_ID,
-            WhiteListingFeatureElementIndex.LABEL_ID,
-            WhiteListingFeatureElementIndex.ICON_ID,
-            WhiteListingFeatureElementIndex.FRAGMENT_TYPE,
-            WhiteListingFeatureElementIndex.SETTINGS_KEY,
-    })
-    @interface WhiteListingFeatureElementIndex {
-        int COMPONENT_ID = 0;
-        int LABEL_ID = 1;
-        int ICON_ID = 2;
-        int FRAGMENT_TYPE = 3;
-        int SETTINGS_KEY = 4;
-    }
-
     private static final String[][] WHITE_LISTING_FEATURES = {
             {
                     COLOR_INVERSION_COMPONENT_NAME.flattenToString(),
@@ -224,8 +128,11 @@
 
         mTargets.addAll(getServiceTargets(this, mShortcutType));
 
+        final String selectDialogTitle =
+                getString(R.string.accessibility_select_shortcut_menu_title);
         mTargetAdapter = new TargetAdapter(mTargets, mShortcutType);
         mAlertDialog = new AlertDialog.Builder(this)
+                .setTitle(selectDialogTitle)
                 .setAdapter(mTargetAdapter, /* listener= */ null)
                 .setPositiveButton(
                         getString(R.string.edit_accessibility_shortcut_menu_button),
@@ -242,27 +149,6 @@
         super.onDestroy();
     }
 
-    /**
-     * Gets the corresponding fragment type of a given accessibility service.
-     *
-     * @param accessibilityServiceInfo The accessibilityService's info.
-     * @return int from {@link AccessibilityServiceFragmentType}.
-     */
-    private static @AccessibilityServiceFragmentType int getAccessibilityServiceFragmentType(
-            AccessibilityServiceInfo accessibilityServiceInfo) {
-        final int targetSdk = accessibilityServiceInfo.getResolveInfo()
-                .serviceInfo.applicationInfo.targetSdkVersion;
-        final boolean requestA11yButton = (accessibilityServiceInfo.flags
-                & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
-
-        if (targetSdk <= Build.VERSION_CODES.Q) {
-            return AccessibilityServiceFragmentType.LEGACY;
-        }
-        return requestA11yButton
-                ? AccessibilityServiceFragmentType.INVISIBLE
-                : AccessibilityServiceFragmentType.INTUITIVE;
-    }
-
     private static List<AccessibilityButtonTarget> getServiceTargets(@NonNull Context context,
             @ShortcutType int shortcutType) {
         final List<AccessibilityButtonTarget> targets = new ArrayList<>();
@@ -761,193 +647,17 @@
     private void updateDialogListeners() {
         final boolean isEditMenuMode =
                 (mTargetAdapter.getShortcutMenuMode() == ShortcutMenuMode.EDIT);
+        final int selectDialogTitleId = R.string.accessibility_select_shortcut_menu_title;
+        final int editDialogTitleId =
+                (mShortcutType == ACCESSIBILITY_BUTTON)
+                        ? R.string.accessibility_edit_shortcut_menu_button_title
+                        : R.string.accessibility_edit_shortcut_menu_volume_title;
+
+        mAlertDialog.setTitle(getString(isEditMenuMode ? editDialogTitleId : selectDialogTitleId));
 
         mAlertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(
                 isEditMenuMode ? view -> onCancelButtonClicked() : view -> onEditButtonClicked());
         mAlertDialog.getListView().setOnItemClickListener(
                 isEditMenuMode ? this::onTargetDeleted : this::onTargetSelected);
     }
-
-    /**
-     * @return the set of enabled accessibility services for {@param userId}. If there are no
-     * services, it returns the unmodifiable {@link Collections#emptySet()}.
-     */
-    private Set<ComponentName> getEnabledServicesFromSettings(Context context, int userId) {
-        final String enabledServicesSetting = Settings.Secure.getStringForUser(
-                context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
-                userId);
-        if (TextUtils.isEmpty(enabledServicesSetting)) {
-            return Collections.emptySet();
-        }
-
-        final Set<ComponentName> enabledServices = new HashSet<>();
-        final TextUtils.StringSplitter colonSplitter =
-                new TextUtils.SimpleStringSplitter(SERVICES_SEPARATOR);
-        colonSplitter.setString(enabledServicesSetting);
-
-        for (String componentNameString : colonSplitter) {
-            final ComponentName enabledService = ComponentName.unflattenFromString(
-                    componentNameString);
-            if (enabledService != null) {
-                enabledServices.add(enabledService);
-            }
-        }
-
-        return enabledServices;
-    }
-
-    /**
-     * Changes an accessibility component's state.
-     */
-    private void setAccessibilityServiceState(Context context, ComponentName componentName,
-            boolean enabled) {
-        setAccessibilityServiceState(context, componentName, enabled, UserHandle.myUserId());
-    }
-
-    /**
-     * Changes an accessibility component's state for {@param userId}.
-     */
-    private void setAccessibilityServiceState(Context context, ComponentName componentName,
-            boolean enabled, int userId) {
-        Set<ComponentName> enabledServices = getEnabledServicesFromSettings(
-                context, userId);
-
-        if (enabledServices.isEmpty()) {
-            enabledServices = new ArraySet<>(/* capacity= */ 1);
-        }
-
-        if (enabled) {
-            enabledServices.add(componentName);
-        } else {
-            enabledServices.remove(componentName);
-        }
-
-        final StringBuilder enabledServicesBuilder = new StringBuilder();
-        for (ComponentName enabledService : enabledServices) {
-            enabledServicesBuilder.append(enabledService.flattenToString());
-            enabledServicesBuilder.append(
-                    SERVICES_SEPARATOR);
-        }
-
-        final int enabledServicesBuilderLength = enabledServicesBuilder.length();
-        if (enabledServicesBuilderLength > 0) {
-            enabledServicesBuilder.deleteCharAt(enabledServicesBuilderLength - 1);
-        }
-
-        Settings.Secure.putStringForUser(context.getContentResolver(),
-                Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
-                enabledServicesBuilder.toString(), userId);
-    }
-
-    /**
-     * Opts out component name into colon-separated {@code shortcutType} key's string in Settings.
-     *
-     * @param context The current context.
-     * @param shortcutType The preferred shortcut type user selected.
-     * @param componentId The component id that need to be opted out from Settings.
-     */
-    private void optOutValueFromSettings(
-            Context context, @UserShortcutType int shortcutType, String componentId) {
-        final StringJoiner joiner = new StringJoiner(String.valueOf(SERVICES_SEPARATOR));
-        final String targetsKey = convertToKey(shortcutType);
-        final String targetsValue = Settings.Secure.getString(context.getContentResolver(),
-                targetsKey);
-
-        if (TextUtils.isEmpty(targetsValue)) {
-            return;
-        }
-
-        sStringColonSplitter.setString(targetsValue);
-        while (sStringColonSplitter.hasNext()) {
-            final String id = sStringColonSplitter.next();
-            if (TextUtils.isEmpty(id) || componentId.equals(id)) {
-                continue;
-            }
-            joiner.add(id);
-        }
-
-        Settings.Secure.putString(context.getContentResolver(), targetsKey, joiner.toString());
-    }
-
-    /**
-     * Returns if component name existed in one of {@code shortcutTypes} string in Settings.
-     *
-     * @param context The current context.
-     * @param shortcutTypes A combination of {@link UserShortcutType}.
-     * @param componentId The component name that need to be checked existed in Settings.
-     * @return {@code true} if componentName existed in Settings.
-     */
-    private boolean hasValuesInSettings(Context context, int shortcutTypes,
-            @NonNull String componentId) {
-        boolean exist = false;
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
-            exist = hasValueInSettings(context, UserShortcutType.SOFTWARE, componentId);
-        }
-        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
-            exist |= hasValueInSettings(context, UserShortcutType.HARDWARE, componentId);
-        }
-        return exist;
-    }
-
-
-    /**
-     * Returns if component name existed in Settings.
-     *
-     * @param context The current context.
-     * @param shortcutType The preferred shortcut type user selected.
-     * @param componentId The component id that need to be checked existed in Settings.
-     * @return {@code true} if componentName existed in Settings.
-     */
-    private boolean hasValueInSettings(Context context, @UserShortcutType int shortcutType,
-            @NonNull String componentId) {
-        final String targetKey = convertToKey(shortcutType);
-        final String targetString = Settings.Secure.getString(context.getContentResolver(),
-                targetKey);
-
-        if (TextUtils.isEmpty(targetString)) {
-            return false;
-        }
-
-        sStringColonSplitter.setString(targetString);
-        while (sStringColonSplitter.hasNext()) {
-            final String id = sStringColonSplitter.next();
-            if (componentId.equals(id)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Converts {@link UserShortcutType} to key in Settings.
-     *
-     * @param type The shortcut type.
-     * @return Mapping key in Settings.
-     */
-    private String convertToKey(@UserShortcutType int type) {
-        switch (type) {
-            case UserShortcutType.SOFTWARE:
-                return Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT;
-            case UserShortcutType.HARDWARE:
-                return Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
-            case UserShortcutType.TRIPLETAP:
-                return Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
-            default:
-                throw new IllegalArgumentException(
-                        "Unsupported user shortcut type: " + type);
-        }
-    }
-
-    private static @UserShortcutType int convertToUserType(@ShortcutType int type) {
-        switch (type) {
-            case ACCESSIBILITY_BUTTON:
-                return UserShortcutType.SOFTWARE;
-            case ACCESSIBILITY_SHORTCUT_KEY:
-                return UserShortcutType.HARDWARE;
-            default:
-                throw new IllegalArgumentException(
-                        "Unsupported shortcut type:" + type);
-        }
-    }
 }
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 250b1ea..c487e96 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -241,6 +241,7 @@
     private int mChooserRowServiceSpacing;
 
     private int mCurrAvailableWidth = 0;
+    private int mLastNumberOfChildren = -1;
 
     private static final String TARGET_DETAILS_FRAGMENT_TAG = "targetDetailsFragment";
     // TODO: Update to handle landscape instead of using static value
@@ -967,6 +968,7 @@
         super.onConfigurationChanged(newConfig);
 
         adjustPreviewWidth(newConfig.orientation, null);
+        updateStickyContentPreview();
     }
 
     private boolean shouldDisplayLandscape(int orientation) {
@@ -987,8 +989,6 @@
         updateLayoutWidth(R.id.content_preview_text_layout, width, parent);
         updateLayoutWidth(R.id.content_preview_title_layout, width, parent);
         updateLayoutWidth(R.id.content_preview_file_layout, width, parent);
-        findViewById(R.id.content_preview_container)
-                .setVisibility(shouldShowStickyContentPreview() ? View.VISIBLE : View.GONE);
     }
 
     private void updateLayoutWidth(int layoutResourceId, int width, View parent) {
@@ -2398,14 +2398,17 @@
         }
 
         final int availableWidth = right - left - v.getPaddingLeft() - v.getPaddingRight();
+        if (mChooserMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) {
+            gridAdapter.calculateChooserTargetWidth(availableWidth);
+            return;
+        }
+
         if (gridAdapter.consumeLayoutRequest()
                 || gridAdapter.calculateChooserTargetWidth(availableWidth)
                 || recyclerView.getAdapter() == null
+                || mLastNumberOfChildren != recyclerView.getChildCount()
                 || availableWidth != mCurrAvailableWidth) {
             mCurrAvailableWidth = availableWidth;
-            recyclerView.setAdapter(gridAdapter);
-            ((GridLayoutManager) recyclerView.getLayoutManager())
-                    .setSpanCount(gridAdapter.getMaxTargetsPerRow());
 
             getMainThreadHandler().post(() -> {
                 if (mResolverDrawerLayout == null || gridAdapter == null) {
@@ -2415,7 +2418,8 @@
                 final int bottomInset = mSystemWindowInsets != null
                                             ? mSystemWindowInsets.bottom : 0;
                 int offset = bottomInset;
-                int rowsToShow = gridAdapter.getProfileRowCount()
+                int rowsToShow = gridAdapter.getContentPreviewRowCount()
+                        + gridAdapter.getProfileRowCount()
                         + gridAdapter.getServiceTargetRowCount()
                         + gridAdapter.getCallerAndRankedTargetRowCount();
 
@@ -2434,16 +2438,23 @@
                     return;
                 }
 
-                if (shouldShowStickyContentPreview()) {
-                    offset += findViewById(R.id.content_preview_container).getHeight();
+                View stickyContentPreview = findViewById(R.id.content_preview_container);
+                if (shouldShowStickyContentPreview() && isStickyContentPreviewShowing()) {
+                    offset += stickyContentPreview.getHeight();
                 }
 
                 if (shouldShowTabs()) {
                     offset += findViewById(R.id.tabs).getHeight();
                 }
 
+                View tabDivider = findViewById(R.id.resolver_tab_divider);
+                if (tabDivider.getVisibility() == View.VISIBLE) {
+                    offset += tabDivider.getHeight();
+                }
+
                 int directShareHeight = 0;
                 rowsToShow = Math.min(4, rowsToShow);
+                mLastNumberOfChildren = recyclerView.getChildCount();
                 for (int i = 0, childCount = recyclerView.getChildCount();
                         i < childCount && rowsToShow > 0; i++) {
                     View child = recyclerView.getChildAt(i);
@@ -2526,6 +2537,14 @@
         setupScrollListener();
 
         ChooserListAdapter chooserListAdapter = (ChooserListAdapter) listAdapter;
+        if (chooserListAdapter.getUserHandle()
+                == mChooserMultiProfilePagerAdapter.getCurrentUserHandle()) {
+            mChooserMultiProfilePagerAdapter.getActiveAdapterView()
+                    .setAdapter(mChooserMultiProfilePagerAdapter.getCurrentRootAdapter());
+            mChooserMultiProfilePagerAdapter
+                    .setupListAdapter(mChooserMultiProfilePagerAdapter.getCurrentPage());
+        }
+
         if (chooserListAdapter.mDisplayList == null
                 || chooserListAdapter.mDisplayList.isEmpty()) {
             chooserListAdapter.notifyDataSetChanged();
@@ -2617,14 +2636,29 @@
      * we instead show the content preview as a regular list item.
      */
     private boolean shouldShowStickyContentPreview() {
-        return shouldShowTabs()
-                && mMultiProfilePagerAdapter.getListAdapterForUserHandle(
-                        UserHandle.of(UserHandle.myUserId())).getCount() > 0
-                && isSendAction(getTargetIntent())
+        return shouldShowStickyContentPreviewNoOrientationCheck()
                 && getResources().getBoolean(R.bool.sharesheet_show_content_preview);
     }
 
+    private boolean shouldShowStickyContentPreviewNoOrientationCheck() {
+        return shouldShowTabs()
+                && mMultiProfilePagerAdapter.getListAdapterForUserHandle(
+                UserHandle.of(UserHandle.myUserId())).getCount() > 0
+                && isSendAction(getTargetIntent());
+    }
+
     private void updateStickyContentPreview() {
+        if (shouldShowStickyContentPreviewNoOrientationCheck()) {
+            // The sticky content preview is only shown when we show the work and personal tabs.
+            // We don't show it in landscape as otherwise there is no room for scrolling.
+            // If the sticky content preview will be shown at some point with orientation change,
+            // then always preload it to avoid subsequent resizing of the share sheet.
+            ViewGroup contentPreviewContainer = findViewById(R.id.content_preview_container);
+            if (contentPreviewContainer.getChildCount() == 0) {
+                ViewGroup contentPreviewView = createContentPreviewView(contentPreviewContainer);
+                contentPreviewContainer.addView(contentPreviewView);
+            }
+        }
         if (shouldShowStickyContentPreview()) {
             showStickyContentPreview();
         } else {
@@ -2633,15 +2667,23 @@
     }
 
     private void showStickyContentPreview() {
+        if (isStickyContentPreviewShowing()) {
+            return;
+        }
         ViewGroup contentPreviewContainer = findViewById(R.id.content_preview_container);
         contentPreviewContainer.setVisibility(View.VISIBLE);
-        ViewGroup contentPreviewView = createContentPreviewView(contentPreviewContainer);
-        contentPreviewContainer.addView(contentPreviewView);
+    }
+
+    private boolean isStickyContentPreviewShowing() {
+        ViewGroup contentPreviewContainer = findViewById(R.id.content_preview_container);
+        return contentPreviewContainer.getVisibility() == View.VISIBLE;
     }
 
     private void hideStickyContentPreview() {
+        if (!isStickyContentPreviewShowing()) {
+            return;
+        }
         ViewGroup contentPreviewContainer = findViewById(R.id.content_preview_container);
-        contentPreviewContainer.removeAllViews();
         contentPreviewContainer.setVisibility(View.GONE);
     }
 
diff --git a/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java
index d440402..b39d42ec 100644
--- a/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java
+++ b/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java
@@ -106,7 +106,6 @@
         final RecyclerView recyclerView = getItem(pageIndex).recyclerView;
         ChooserActivity.ChooserGridAdapter chooserGridAdapter =
                 getItem(pageIndex).chooserGridAdapter;
-        recyclerView.setAdapter(chooserGridAdapter);
         GridLayoutManager glm = (GridLayoutManager) recyclerView.getLayoutManager();
         glm.setSpanCount(chooserGridAdapter.getMaxTargetsPerRow());
         glm.setSpanSizeLookup(
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index 96bfe73..f745e43 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -396,11 +396,9 @@
                     | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
             rdl.setOnApplyWindowInsetsListener(this::onApplyWindowInsets);
 
-            if (shouldShowTabs()) {
-                rdl.setMaxCollapsedHeight(getResources().getDimensionPixelSize(
-                        R.dimen.resolver_empty_state_height_with_tabs));
-                findViewById(R.id.profile_pager).setMinimumHeight(
-                        getResources().getDimensionPixelSize(R.dimen.resolver_empty_state_height));
+            if (shouldShowTabs() && isIntentPicker()) {
+                rdl.setMaxCollapsedHeight(getResources()
+                        .getDimensionPixelSize(R.dimen.resolver_max_collapsed_height_with_tabs));
             }
 
             mResolverDrawerLayout = rdl;
@@ -420,6 +418,10 @@
                         + (categories != null ? Arrays.toString(categories.toArray()) : ""));
     }
 
+    private boolean isIntentPicker() {
+        return getClass().equals(ResolverActivity.class);
+    }
+
     protected AbstractMultiProfilePagerAdapter createMultiProfilePagerAdapter(
             Intent[] initialIntents,
             List<ResolveInfo> rList,
@@ -643,7 +645,7 @@
 
         final DisplayResolveInfo dri =
                 mMultiProfilePagerAdapter.getActiveListAdapter().getOtherProfile();
-        if (dri != null && !ENABLE_TABBED_VIEW) {
+        if (dri != null && !shouldShowTabs()) {
             mProfileView.setVisibility(View.VISIBLE);
             View text = mProfileView.findViewById(R.id.profile_button);
             if (!(text instanceof TextView)) {
@@ -763,7 +765,7 @@
 
     private void registerWorkProfileStateReceiver() {
         IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
+        filter.addAction(Intent.ACTION_USER_UNLOCKED);
         filter.addAction(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE);
         registerReceiverAsUser(mWorkProfileStateReceiver, UserHandle.ALL, filter, null, null);
     }
@@ -1329,7 +1331,7 @@
         }
         // We partially rebuild the inactive adapter to determine if we should auto launch
         boolean rebuildCompleted = mMultiProfilePagerAdapter.rebuildActiveTab(true);
-        if (hasWorkProfile() && ENABLE_TABBED_VIEW) {
+        if (shouldShowTabs()) {
             boolean rebuildInactiveCompleted = mMultiProfilePagerAdapter.rebuildInactiveTab(false);
             rebuildCompleted = rebuildCompleted && rebuildInactiveCompleted;
         }
@@ -1736,6 +1738,14 @@
     @Override // ResolverListCommunicator
     public void onHandlePackagesChanged(ResolverListAdapter listAdapter) {
         if (listAdapter == mMultiProfilePagerAdapter.getActiveListAdapter()) {
+            if (listAdapter.getUserHandle() == getWorkProfileUserHandle()
+                    && mMultiProfilePagerAdapter.isWaitingToEnableWorkProfile()) {
+                // We have just turned on the work profile and entered the pass code to start it,
+                // now we are waiting to receive the ACTION_USER_UNLOCKED broadcast. There is no
+                // point in reloading the list now, since the work profile user is still
+                // turning on.
+                return;
+            }
             boolean listRebuilt = mMultiProfilePagerAdapter.rebuildActiveTab(true);
             if (listRebuilt) {
                 ResolverListAdapter activeListAdapter =
@@ -1756,10 +1766,18 @@
             @Override
             public void onReceive(Context context, Intent intent) {
                 String action = intent.getAction();
-                if (!TextUtils.equals(action, Intent.ACTION_MANAGED_PROFILE_AVAILABLE)
+                if (!TextUtils.equals(action, Intent.ACTION_USER_UNLOCKED)
                         && !TextUtils.equals(action, Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE)) {
                     return;
                 }
+                int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1);
+                if (TextUtils.equals(action, Intent.ACTION_USER_UNLOCKED)
+                        && userHandle != getWorkProfileUserHandle().getIdentifier()) {
+                    return;
+                }
+                if (TextUtils.equals(action, Intent.ACTION_USER_UNLOCKED)) {
+                    mMultiProfilePagerAdapter.markWorkProfileEnabledBroadcastReceived();
+                }
                 if (mMultiProfilePagerAdapter.getCurrentUserHandle()
                         == getWorkProfileUserHandle()) {
                     mMultiProfilePagerAdapter.rebuildActiveTab(true);
diff --git a/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java
index 21e7fd9..f6382d3 100644
--- a/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java
+++ b/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java
@@ -94,6 +94,12 @@
     }
 
     @Override
+    public ViewGroup instantiateItem(ViewGroup container, int position) {
+        setupListAdapter(position);
+        return super.instantiateItem(container, position);
+    }
+
+    @Override
     @Nullable
     ResolverListAdapter getListAdapterForUserHandle(UserHandle userHandle) {
         if (getActiveListAdapter().getUserHandle() == userHandle) {
diff --git a/core/java/com/android/internal/app/ResolverViewPager.java b/core/java/com/android/internal/app/ResolverViewPager.java
index 8239018..4eb6e3b 100644
--- a/core/java/com/android/internal/app/ResolverViewPager.java
+++ b/core/java/com/android/internal/app/ResolverViewPager.java
@@ -18,16 +18,15 @@
 
 import android.content.Context;
 import android.util.AttributeSet;
-import android.view.MotionEvent;
 import android.view.View;
 
 import com.android.internal.widget.ViewPager;
 
 /**
- * A {@link ViewPager} which wraps around its first child's height.
+ * A {@link ViewPager} which wraps around its tallest child's height.
  * <p>Normally {@link ViewPager} instances expand their height to cover all remaining space in
  * the layout.
- * <p>This class is used for the intent resolver's tabbed view.
+ * <p>This class is used for the intent resolver and share sheet's tabbed view.
  */
 public class ResolverViewPager extends ViewPager {
 
@@ -56,16 +55,17 @@
         }
         widthMeasureSpec = MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.EXACTLY);
         int height = getMeasuredHeight();
-        if (getChildCount() > 0) {
-            View child = getChildAt(0);
+        int maxHeight = 0;
+        for (int i = 0; i < getChildCount(); i++) {
+            View child = getChildAt(i);
             child.measure(widthMeasureSpec,
                     MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST));
-            if (height > child.getMeasuredHeight()) {
-                height = child.getMeasuredHeight();
+            if (maxHeight < child.getMeasuredHeight()) {
+                maxHeight = child.getMeasuredHeight();
             }
         }
-        if (height < getMinimumHeight()) {
-            height = getMinimumHeight();
+        if (maxHeight > 0) {
+            height = maxHeight;
         }
         heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
diff --git a/core/java/com/android/internal/content/om/OverlayConfig.java b/core/java/com/android/internal/content/om/OverlayConfig.java
index 72f16e4..fbef027 100644
--- a/core/java/com/android/internal/content/om/OverlayConfig.java
+++ b/core/java/com/android/internal/content/om/OverlayConfig.java
@@ -21,7 +21,6 @@
 import android.content.pm.PackagePartitions;
 import android.content.pm.parsing.ParsingPackageRead;
 import android.os.Build;
-import android.os.Process;
 import android.os.Trace;
 import android.util.ArrayMap;
 import android.util.Log;
@@ -232,20 +231,26 @@
 
     /**
      * Returns whether the overlay is enabled by default.
-     * Overlays that are not configured are disabled by default mutable.
+     * Overlays that are not configured are disabled by default.
+     *
+     * If an immutable overlay has its enabled state change, the new enabled state is applied to the
+     * overlay.
+     *
+     * When a mutable is first seen by the OverlayManagerService, the default-enabled state will be
+     * applied to the overlay. If the configured default-enabled state changes in a subsequent boot,
+     * the default-enabled state will not be applied to the overlay.
+     *
+     * The configured enabled state will only be applied when:
+     * <ul>
+     * <li> The device is factory reset
+     * <li> The overlay is removed from the device and added back to the device in a future OTA
+     * <li> The overlay changes its package name
+     * <li> The overlay changes its target package name or target overlayable name
+     * <li> An immutable overlay becomes mutable
+     * </ul>
      */
     public boolean isEnabled(String packageName) {
         final Configuration config = mConfigurations.get(packageName);
-
-        // STOPSHIP(149499802): Enabling a mutable overlay currently has no effect. Either implement
-        // some behavior for default-enabled, mutable overlays or prevent parsing of the enabled
-        // attribute on overlays that are mutable.
-        if (config != null && config.parsedConfig.mutable) {
-            Log.w(TAG, "Default-enabled configuration for mutable overlay "
-                    + config.parsedConfig.packageName + " has no effect");
-            return OverlayConfigParser.DEFAULT_ENABLED_STATE;
-        }
-
         return config == null? OverlayConfigParser.DEFAULT_ENABLED_STATE
                 : config.parsedConfig.enabled;
     }
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 27c7cb6..43bd4a6 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -12598,7 +12598,6 @@
 
     /*@hide */
     public CellularBatteryStats getCellularBatteryStats() {
-        CellularBatteryStats s = new CellularBatteryStats();
         final int which = STATS_SINCE_CHARGED;
         final long rawRealTime = SystemClock.elapsedRealtime() * 1000;
         final ControllerActivityCounter counter = getModemControllerActivity();
@@ -12625,21 +12624,16 @@
             txTimeMs[i] = counter.getTxTimeCounters()[i].getCountLocked(which);
             totalTxTimeMs += txTimeMs[i];
         }
-        s.setLoggingDurationMillis(computeBatteryRealtime(rawRealTime, which) / 1000);
-        s.setKernelActiveTimeMillis(getMobileRadioActiveTime(rawRealTime, which) / 1000);
-        s.setNumPacketsTx(getNetworkActivityPackets(NETWORK_MOBILE_TX_DATA, which));
-        s.setNumBytesTx(getNetworkActivityBytes(NETWORK_MOBILE_TX_DATA, which));
-        s.setNumPacketsRx(getNetworkActivityPackets(NETWORK_MOBILE_RX_DATA, which));
-        s.setNumBytesRx(getNetworkActivityBytes(NETWORK_MOBILE_RX_DATA, which));
-        s.setSleepTimeMillis(sleepTimeMs);
-        s.setIdleTimeMillis(idleTimeMs);
-        s.setRxTimeMillis(rxTimeMs);
-        s.setEnergyConsumedMaMillis(energyConsumedMaMs);
-        s.setTimeInRatMicros(timeInRatMs);
-        s.setTimeInRxSignalStrengthLevelMicros(timeInRxSignalStrengthLevelMs);
-        s.setTxTimeMillis(txTimeMs);
-        s.setMonitoredRailChargeConsumedMaMillis(monitoredRailChargeConsumedMaMs);
-        return s;
+
+        return new CellularBatteryStats(computeBatteryRealtime(rawRealTime, which) / 1000,
+                getMobileRadioActiveTime(rawRealTime, which) / 1000,
+                getNetworkActivityPackets(NETWORK_MOBILE_TX_DATA, which),
+                getNetworkActivityBytes(NETWORK_MOBILE_TX_DATA, which),
+                getNetworkActivityPackets(NETWORK_MOBILE_RX_DATA, which),
+                getNetworkActivityBytes(NETWORK_MOBILE_RX_DATA, which),
+                sleepTimeMs, idleTimeMs, rxTimeMs, energyConsumedMaMs, timeInRatMs,
+                timeInRxSignalStrengthLevelMs, txTimeMs,
+                monitoredRailChargeConsumedMaMs);
     }
 
     /*@hide */
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index a47bd17..54cf693 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -19,6 +19,9 @@
 import static android.system.OsConstants.S_IRWXG;
 import static android.system.OsConstants.S_IRWXO;
 
+import static com.android.internal.util.FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SECONDARY_ZYGOTE_INIT_START;
+import static com.android.internal.util.FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__ZYGOTE_INIT_START;
+
 import android.app.ApplicationLoaders;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.pm.SharedLibraryInfo;
@@ -52,7 +55,7 @@
 import android.webkit.WebViewFactory;
 import android.widget.TextView;
 
-import com.android.internal.logging.MetricsLogger;
+import com.android.internal.util.FrameworkStatsLog;
 import com.android.internal.util.Preconditions;
 
 import dalvik.system.DexFile;
@@ -863,11 +866,10 @@
 
         Runnable caller;
         try {
-            // Report Zygote start time to tron unless it is a runtime restart
-            if (!"1".equals(SystemProperties.get("sys.boot_completed"))) {
-                MetricsLogger.histogram(null, "boot_zygote_init",
-                        (int) SystemClock.elapsedRealtime());
-            }
+            // Store now for StatsLogging later.
+            final long startTime = SystemClock.elapsedRealtime();
+            final boolean isRuntimeRestarted = "1".equals(
+                    SystemProperties.get("sys.boot_completed"));
 
             String bootTimeTag = Process.is64Bit() ? "Zygote64Timing" : "Zygote32Timing";
             TimingsTraceLog bootTimingsTraceLog = new TimingsTraceLog(bootTimeTag,
@@ -894,6 +896,17 @@
             }
 
             final boolean isPrimaryZygote = zygoteSocketName.equals(Zygote.PRIMARY_SOCKET_NAME);
+            if (!isRuntimeRestarted) {
+                if (isPrimaryZygote) {
+                    FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
+                            BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__ZYGOTE_INIT_START,
+                            startTime);
+                } else if (zygoteSocketName.equals(Zygote.SECONDARY_SOCKET_NAME)) {
+                    FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
+                            BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SECONDARY_ZYGOTE_INIT_START,
+                            startTime);
+                }
+            }
 
             if (abiList == null) {
                 throw new RuntimeException("No ABI list supplied.");
diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index 36025e3..51b73fc 100644
--- a/core/java/com/android/internal/policy/DecorView.java
+++ b/core/java/com/android/internal/policy/DecorView.java
@@ -78,6 +78,7 @@
 import android.view.Gravity;
 import android.view.InputQueue;
 import android.view.InsetsState;
+import android.view.InsetsController;
 import android.view.InsetsState.InternalInsetsType;
 import android.view.KeyEvent;
 import android.view.KeyboardShortcutGroup;
@@ -85,6 +86,7 @@
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.MotionEvent;
+import android.view.PendingInsetsController;
 import android.view.ThreadedRenderer;
 import android.view.View;
 import android.view.ViewGroup;
@@ -286,6 +288,8 @@
      */
     private boolean mUseNewInsetsApi;
 
+    private PendingInsetsController mPendingInsetsController = new PendingInsetsController();
+
     DecorView(Context context, int featureId, PhoneWindow window,
             WindowManager.LayoutParams params) {
         super(context);
@@ -1780,6 +1784,8 @@
             getViewRootImpl().removeWindowCallbacks(this);
             mWindowResizeCallbacksAdded = false;
         }
+
+        mPendingInsetsController.detach();
     }
 
     @Override
@@ -1819,6 +1825,11 @@
         updateColorViewTranslations();
     }
 
+    @Override
+    public PendingInsetsController providePendingInsetsController() {
+        return mPendingInsetsController;
+    }
+
     private ActionMode createActionMode(
             int type, ActionMode.Callback2 callback, View originatingView) {
         switch (type) {
@@ -2540,6 +2551,15 @@
     }
 
     @Override
+    public WindowInsetsController getWindowInsetsController() {
+        if (isAttachedToWindow()) {
+            return super.getWindowInsetsController();
+        } else {
+            return mPendingInsetsController;
+        }
+    }
+
+    @Override
     public String toString() {
         return "DecorView@" + Integer.toHexString(this.hashCode()) + "["
                 + getTitleSuffix(mWindow.getAttributes()) + "]";
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index 24222d3..138d0dd 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -135,6 +135,29 @@
 
     private final static String TAG = "PhoneWindow";
 
+    /**
+     * @see Window#setDecorFitsSystemWindows
+     */
+    private static final OnContentApplyWindowInsetsListener sDefaultContentInsetsApplier =
+            (view, insets) -> {
+                if ((view.getWindowSystemUiVisibility() & SYSTEM_UI_LAYOUT_FLAGS) != 0) {
+                    return new Pair<>(Insets.NONE, insets);
+                }
+
+                boolean includeIme = (view.getViewRootImpl().mWindowAttributes.softInputMode
+                        & SOFT_INPUT_MASK_ADJUST)
+                        == SOFT_INPUT_ADJUST_RESIZE;
+                Insets insetsToApply;
+                if (ViewRootImpl.sNewInsetsMode == 0) {
+                    insetsToApply = insets.getSystemWindowInsets();
+                } else {
+                    insetsToApply = insets.getInsets(systemBars() | (includeIme ? ime() : 0));
+                }
+                insets = insets.inset(insetsToApply);
+                return new Pair<>(insetsToApply,
+                        insets.inset(insetsToApply).consumeSystemWindowInsets());
+            };
+
     /* If true, shadows drawn around the window will be rendered by the system compositor. If
      * false, shadows will be drawn by the client by setting an elevation on the root view and
      * the contents will be inset by the shadow radius. */
@@ -320,8 +343,8 @@
     /** @see ViewRootImpl#mActivityConfigCallback */
     private ActivityConfigCallback mActivityConfigCallback;
 
-    private OnContentApplyWindowInsetsListener mPendingOnContentApplyWindowInsetsListener
-            = createDefaultContentWindowInsetsListener();
+    private OnContentApplyWindowInsetsListener mPendingOnContentApplyWindowInsetsListener =
+            sDefaultContentInsetsApplier;
 
     static class WindowManagerHolder {
         static final IWindowManager sWindowManager = IWindowManager.Stub.asInterface(
@@ -2120,27 +2143,6 @@
         mPendingOnContentApplyWindowInsetsListener = null;
     }
 
-    private OnContentApplyWindowInsetsListener createDefaultContentWindowInsetsListener() {
-        return insets -> {
-            if ((getDecorView().getWindowSystemUiVisibility() & SYSTEM_UI_LAYOUT_FLAGS) != 0) {
-                return new Pair<>(Insets.NONE, insets);
-            }
-
-            boolean includeIme =
-                    (getViewRootImpl().mWindowAttributes.softInputMode & SOFT_INPUT_MASK_ADJUST)
-                            == SOFT_INPUT_ADJUST_RESIZE;
-            Insets insetsToApply;
-            if (ViewRootImpl.sNewInsetsMode == 0) {
-                insetsToApply = insets.getSystemWindowInsets();
-            } else {
-                insetsToApply = insets.getInsets(systemBars() | (includeIme ? ime() : 0));
-            }
-            insets = insets.inset(insetsToApply);
-            return new Pair<>(insetsToApply,
-                    insets.inset(insetsToApply).consumeSystemWindowInsets());
-        };
-    }
-
     static private final String FOCUSED_ID_TAG = "android:focusedViewId";
     static private final String VIEWS_TAG = "android:views";
     static private final String PANELS_TAG = "android:Panels";
@@ -3907,7 +3909,7 @@
     public void setDecorFitsSystemWindows(boolean decorFitsSystemWindows) {
         ViewRootImpl impl = getViewRootImplOrNull();
         OnContentApplyWindowInsetsListener listener = decorFitsSystemWindows
-                ? createDefaultContentWindowInsetsListener()
+                ? sDefaultContentInsetsApplier
                 : null;
         if (impl != null) {
             impl.setOnContentApplyWindowInsetsListener(listener);
diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl
index 2106712..380a20c 100644
--- a/core/java/com/android/internal/statusbar/IStatusBar.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl
@@ -220,4 +220,10 @@
      * Notifies SystemUI to stop tracing.
      */
     void stopTracing();
+
+    /**
+     * If true, suppresses the ambient display from showing. If false, re-enables the ambient
+     * display.
+     */
+    void suppressAmbientDisplay(boolean suppress);
 }
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
index 5ce83c2..9907b99 100644
--- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
@@ -139,4 +139,10 @@
      * Returns whether SystemUI tracing is enabled.
      */
     boolean isTracing();
+
+    /**
+     * If true, suppresses the ambient display from showing. If false, re-enables the ambient
+     * display.
+     */
+    void suppressAmbientDisplay(boolean suppress);
 }
diff --git a/core/java/com/android/internal/util/Parcelling.java b/core/java/com/android/internal/util/Parcelling.java
index 6258a69..7f567b9 100644
--- a/core/java/com/android/internal/util/Parcelling.java
+++ b/core/java/com/android/internal/util/Parcelling.java
@@ -167,6 +167,33 @@
             }
         }
 
+        class ForStringSet implements Parcelling<Set<String>> {
+            @Override
+            public void parcel(Set<String> item, Parcel dest, int parcelFlags) {
+                if (item == null) {
+                    dest.writeInt(-1);
+                } else {
+                    dest.writeInt(item.size());
+                    for (String string : item) {
+                        dest.writeString(string);
+                    }
+                }
+            }
+
+            @Override
+            public Set<String> unparcel(Parcel source) {
+                final int size = source.readInt();
+                if (size < 0) {
+                    return emptySet();
+                }
+                Set<String> set = new ArraySet<>();
+                for (int count = 0; count < size; count++) {
+                    set.add(source.readString());
+                }
+                return set;
+            }
+        }
+
         class ForInternedStringSet implements Parcelling<Set<String>> {
             @Override
             public void parcel(Set<String> item, Parcel dest, int parcelFlags) {
diff --git a/core/java/com/android/internal/view/IInlineSuggestionsRequestCallback.aidl b/core/java/com/android/internal/view/IInlineSuggestionsRequestCallback.aidl
index 6b54910..46da474 100644
--- a/core/java/com/android/internal/view/IInlineSuggestionsRequestCallback.aidl
+++ b/core/java/com/android/internal/view/IInlineSuggestionsRequestCallback.aidl
@@ -16,6 +16,7 @@
 
 package com.android.internal.view;
 
+import android.view.autofill.AutofillId;
 import android.view.inputmethod.InlineSuggestionsRequest;
 
 import com.android.internal.view.IInlineSuggestionsResponseCallback;
@@ -27,5 +28,8 @@
 oneway interface IInlineSuggestionsRequestCallback {
     void onInlineSuggestionsUnsupported();
     void onInlineSuggestionsRequest(in InlineSuggestionsRequest request,
-            in IInlineSuggestionsResponseCallback callback);
+            in IInlineSuggestionsResponseCallback callback, in AutofillId imeFieldId,
+            boolean inputViewStarted);
+    void onInputMethodStartInputView(in AutofillId imeFieldId);
+    void onInputMethodFinishInputView(in AutofillId imeFieldId);
 }
diff --git a/core/java/com/android/internal/view/IInlineSuggestionsResponseCallback.aidl b/core/java/com/android/internal/view/IInlineSuggestionsResponseCallback.aidl
index 0f93b8e..5a78e0d 100644
--- a/core/java/com/android/internal/view/IInlineSuggestionsResponseCallback.aidl
+++ b/core/java/com/android/internal/view/IInlineSuggestionsResponseCallback.aidl
@@ -16,6 +16,7 @@
 
 package com.android.internal.view;
 
+import android.view.autofill.AutofillId;
 import android.view.inputmethod.InlineSuggestionsResponse;
 
 /**
@@ -23,5 +24,5 @@
  * {@hide}
  */
 oneway interface IInlineSuggestionsResponseCallback {
-    void onInlineSuggestionsResponse(in InlineSuggestionsResponse response);
+    void onInlineSuggestionsResponse(in AutofillId fieldId, in InlineSuggestionsResponse response);
 }
diff --git a/core/java/com/android/internal/view/RootViewSurfaceTaker.java b/core/java/com/android/internal/view/RootViewSurfaceTaker.java
index 433ec73..efd5fb2 100644
--- a/core/java/com/android/internal/view/RootViewSurfaceTaker.java
+++ b/core/java/com/android/internal/view/RootViewSurfaceTaker.java
@@ -15,8 +15,11 @@
  */
 package com.android.internal.view;
 
+import android.annotation.Nullable;
 import android.view.InputQueue;
+import android.view.PendingInsetsController;
 import android.view.SurfaceHolder;
+import android.view.WindowInsetsController;
 
 /** hahahah */
 public interface RootViewSurfaceTaker {
@@ -26,4 +29,5 @@
     void setSurfaceKeepScreenOn(boolean keepOn);
     InputQueue.Callback willYouTakeTheInputQueue();
     void onRootViewScrollYChanged(int scrollY);
+    @Nullable PendingInsetsController providePendingInsetsController();
 }
diff --git a/core/java/com/android/internal/view/inline/IInlineContentCallback.aidl b/core/java/com/android/internal/view/inline/IInlineContentCallback.aidl
index 8cc49ca..29bdf56 100644
--- a/core/java/com/android/internal/view/inline/IInlineContentCallback.aidl
+++ b/core/java/com/android/internal/view/inline/IInlineContentCallback.aidl
@@ -16,12 +16,12 @@
 
 package com.android.internal.view.inline;
 
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
 
 /**
  * Binder interface to send the inline content from one process to the other.
  * {@hide}
  */
 oneway interface IInlineContentCallback {
-    void onContent(in SurfaceControl content);
+    void onContent(in SurfaceControlViewHost.SurfacePackage content);
 }
diff --git a/core/jni/android_service_DataLoaderService.cpp b/core/jni/android_service_DataLoaderService.cpp
index ed0d381..5d9cd56 100644
--- a/core/jni/android_service_DataLoaderService.cpp
+++ b/core/jni/android_service_DataLoaderService.cpp
@@ -50,8 +50,8 @@
     return DataLoaderService_OnDestroy(env, storageId);
 }
 
-
-static jboolean nativePrepareImage(JNIEnv* env, jobject thiz, jint storageId, jobject addedFiles, jobject removedFiles) {
+static jboolean nativePrepareImage(JNIEnv* env, jobject thiz, jint storageId,
+                                   jobjectArray addedFiles, jobjectArray removedFiles) {
     return DataLoaderService_OnPrepareImage(env, storageId, addedFiles, removedFiles);
 }
 
@@ -75,7 +75,9 @@
         {"nativeStartDataLoader", "(I)Z", (void*)nativeStartDataLoader},
         {"nativeStopDataLoader", "(I)Z", (void*)nativeStopDataLoader},
         {"nativeDestroyDataLoader", "(I)Z", (void*)nativeDestroyDataLoader},
-        {"nativePrepareImage", "(ILjava/util/List;Ljava/util/List;)Z", (void*)nativePrepareImage},
+        {"nativePrepareImage",
+         "(I[Landroid/content/pm/InstallationFileParcel;[Ljava/lang/String;)Z",
+         (void*)nativePrepareImage},
         {"nativeWriteData", "(JLjava/lang/String;JJLandroid/os/ParcelFileDescriptor;)V",
          (void*)nativeWriteData},
 };
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index a9ef257..b2ca0a7 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -91,6 +91,7 @@
     jfieldID refreshRate;
     jfieldID appVsyncOffsetNanos;
     jfieldID presentationDeadlineNanos;
+    jfieldID configGroup;
 } gDisplayConfigClassInfo;
 
 static struct {
@@ -874,6 +875,7 @@
                           config.appVsyncOffset);
         env->SetLongField(object, gDisplayConfigClassInfo.presentationDeadlineNanos,
                           config.presentationDeadline);
+        env->SetIntField(object, gDisplayConfigClassInfo.configGroup, config.configGroup);
         env->SetObjectArrayElement(configArray, static_cast<jsize>(c), object);
         env->DeleteLocalRef(object);
     }
@@ -1614,6 +1616,7 @@
             GetFieldIDOrDie(env, configClazz, "appVsyncOffsetNanos", "J");
     gDisplayConfigClassInfo.presentationDeadlineNanos =
             GetFieldIDOrDie(env, configClazz, "presentationDeadlineNanos", "J");
+    gDisplayConfigClassInfo.configGroup = GetFieldIDOrDie(env, configClazz, "configGroup", "I");
 
     jclass rectClazz = FindClassOrDie(env, "android/graphics/Rect");
     gRectClassInfo.bottom = GetFieldIDOrDie(env, rectClazz, "bottom", "I");
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 359fd48..4e139a3 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -793,31 +793,6 @@
   }
 }
 
-static void BindMountObbPackage(std::string_view package_name, int userId, fail_fn_t fail_fn) {
-
-  // TODO(148772775): Pass primary volume name from zygote argument to here
-  std::string source;
-  if (IsFilesystemSupported("sdcardfs")) {
-    source = StringPrintf("/mnt/runtime/default/emulated/%d/Android/obb/%s",
-        userId, package_name.data());
-  } else {
-    source = StringPrintf("/mnt/pass_through/%d/emulated/%d/Android/obb/%s",
-        userId, userId, package_name.data());
-  }
-  std::string target(
-      StringPrintf("/storage/emulated/%d/Android/obb/%s", userId, package_name.data()));
-
-  if (access(source.c_str(), F_OK) != 0) {
-    fail_fn(CREATE_ERROR("Cannot access source %s: %s", source.c_str(), strerror(errno)));
-  }
-
-  if (access(target.c_str(), F_OK) != 0) {
-    fail_fn(CREATE_ERROR("Cannot access target %s: %s", target.c_str(), strerror(errno)));
-  }
-
-  BindMount(source, target, fail_fn);
-}
-
 // Create a private mount namespace and bind mount appropriate emulated
 // storage for the given user.
 static void MountEmulatedStorage(uid_t uid, jint mount_mode,
@@ -1540,10 +1515,39 @@
   }
 }
 
-// Bind mount all obb directories that are visible to this app.
+static void BindMountStorageToLowerFs(const userid_t user_id, const char* dir_name,
+    const char* package, fail_fn_t fail_fn) {
+
+  bool hasPackage = (package != nullptr);
+  bool hasSdcardFs = IsFilesystemSupported("sdcardfs");
+  std::string source;
+  if (hasSdcardFs) {
+    source = hasPackage ?
+        StringPrintf("/mnt/runtime/default/emulated/%d/%s/%s", user_id, dir_name, package) :
+        StringPrintf("/mnt/runtime/default/emulated/%d/%s", user_id, dir_name);
+  } else {
+    source = hasPackage ?
+        StringPrintf("/mnt/pass_through/%d/emulated/%d/%s/%s",
+            user_id, user_id, dir_name, package) :
+        StringPrintf("/mnt/pass_through/%d/emulated/%d/%s", user_id, user_id, dir_name);
+  }
+  std::string target = hasPackage ?
+      StringPrintf("/storage/emulated/%d/%s/%s", user_id, dir_name, package) :
+      StringPrintf("/storage/emulated/%d/%s", user_id, dir_name);
+
+  if (access(source.c_str(), F_OK) != 0) {
+    fail_fn(CREATE_ERROR("Error accessing %s: %s", source.c_str(), strerror(errno)));
+  }
+  if (access(target.c_str(), F_OK) != 0) {
+    fail_fn(CREATE_ERROR("Error accessing %s: %s", target.c_str(), strerror(errno)));
+  }
+  BindMount(source, target, fail_fn);
+}
+
+// Bind mount all obb & data directories that are visible to this app.
 // If app data isolation is not enabled for this process, bind mount the whole obb
-// directory instead.
-static void BindMountAppObbDirs(JNIEnv* env, jobjectArray pkg_data_info_list,
+// and data directory instead.
+static void BindMountStorageDirs(JNIEnv* env, jobjectArray pkg_data_info_list,
     uid_t uid, const char* process_name, jstring managed_nice_name, fail_fn_t fail_fn) {
 
   auto extract_fn = std::bind(ExtractJString, env, process_name, managed_nice_name, _1);
@@ -1571,18 +1575,8 @@
 
   if (size == 0) {
     // App data isolation is not enabled for this process, so we bind mount to whole obb/ dir.
-    std::string source;
-    if (IsFilesystemSupported("sdcardfs")) {
-      source = StringPrintf("/mnt/runtime/default/emulated/%d/Android/obb", user_id);
-    } else {
-      source = StringPrintf("/mnt/pass_through/%d/emulated/%d/Android/obb", user_id, user_id);
-    }
-    std::string target(StringPrintf("/storage/emulated/%d/Android/obb", user_id));
-
-    if (access(source.c_str(), F_OK) != 0) {
-      fail_fn(CREATE_ERROR("Error accessing %s: %s", source.c_str(), strerror(errno)));
-    }
-    BindMount(source, target, fail_fn);
+    BindMountStorageToLowerFs(user_id, "Android/obb", /* package */ nullptr, fail_fn);
+    BindMountStorageToLowerFs(user_id, "Android/data", /* package */ nullptr, fail_fn);
     return;
   }
 
@@ -1590,7 +1584,8 @@
   for (int i = 0; i < size; i += 3) {
     jstring package_str = (jstring) (env->GetObjectArrayElement(pkg_data_info_list, i));
     std::string packageName = extract_fn(package_str).value();
-    BindMountObbPackage(packageName, user_id, fail_fn);
+    BindMountStorageToLowerFs(user_id, "Android/obb", packageName.c_str(), fail_fn);
+    BindMountStorageToLowerFs(user_id, "Android/data", packageName.c_str(), fail_fn);
   }
 }
 
@@ -1645,7 +1640,7 @@
   if ((mount_external != MOUNT_EXTERNAL_INSTALLER) &&
         GetBoolProperty(kPropFuse, false) &&
         GetBoolProperty(ANDROID_VOLD_APP_DATA_ISOLATION_ENABLED_PROPERTY, false)) {
-    BindMountAppObbDirs(env, pkg_data_info_list, uid, process_name, managed_nice_name, fail_fn);
+    BindMountStorageDirs(env, pkg_data_info_list, uid, process_name, managed_nice_name, fail_fn);
   }
 
   // If this zygote isn't root, it won't be able to create a process group,
diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
index cfd3c09..c72668f 100644
--- a/core/jni/fd_utils.cpp
+++ b/core/jni/fd_utils.cpp
@@ -33,7 +33,6 @@
 
 // Static whitelist of open paths that the zygote is allowed to keep open.
 static const char* kPathWhitelist[] = {
-        "/apex/com.android.appsearch/javalib/framework-appsearch.jar",
         "/apex/com.android.conscrypt/javalib/conscrypt.jar",
         "/apex/com.android.ipsec/javalib/ike.jar",
         "/apex/com.android.media/javalib/updatable-media.jar",
diff --git a/core/proto/android/app/appexit_enums.proto b/core/proto/android/app/appexit_enums.proto
new file mode 100644
index 0000000..491e1dc
--- /dev/null
+++ b/core/proto/android/app/appexit_enums.proto
@@ -0,0 +1,240 @@
+/*
+ * Copyright (C) 2020 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.
+ */
+
+syntax = "proto2";
+option java_multiple_files = true;
+
+package android.app;
+
+/**
+ * The reason code that why app process is killed.
+ */
+enum AppExitReasonCode {
+    /**
+     * Application process died due to unknown reason.
+     */
+    REASON_UNKNOWN = 0;
+
+    /**
+     * Application process exit normally by itself, for example,
+     * via {@link android.os.Process#exit}; {@link #status} will specify the exit code.
+     *
+     * <p>Applications should normally not do this, as the system has a better knowledge
+     * in terms of process management.</p>
+     */
+    REASON_EXIT_SELF = 1;
+
+    /**
+     * Application process died due to the result of an OS signal; for example,
+     * {@link android.os.Process#SIGNAL_KILL}; {@link #status} will specify the signum.
+     */
+    REASON_SIGNALED = 2;
+
+    /**
+     * Application process was killed by the system low memory killer, meaning the system was
+     * under memory pressure at the time of kill.
+     */
+    REASON_LOW_MEMORY = 3;
+
+    /**
+     * Application process died because of an unhandled exception in Java code.
+     */
+    REASON_CRASH = 4;
+
+    /**
+     * Application process died because it's crashed due to a native code crash.
+     */
+    REASON_CRASH_NATIVE = 5;
+
+    /**
+     * Application process was killed due to being unresponsive (ANR).
+     */
+    REASON_ANR = 6;
+
+    /**
+     * Application process was killed because it took too long to attach to the system
+     * during the start.
+     */
+    REASON_INITIALIZATION_FAILURE = 7;
+
+    /**
+     * Application process was killed because of initialization failure,
+     * for example, it took too long to attach to the system during the start,
+     * or there was an error during initialization.
+     */
+    REASON_PERMISSION_CHANGE = 8;
+
+    /**
+     * Application process was killed by the activity manager due to excessive resource usage.
+     */
+    REASON_EXCESSIVE_RESOURCE_USAGE = 9;
+
+    /**
+     * Application process was killed because of the user request, for example,
+     * user clicked the "Force stop" button of the application in the Settings,
+     * or swiped away the application from Recents.
+     */
+    REASON_USER_REQUESTED = 10;
+
+    /**
+     * Application process was killed, because the user they are running as on devices
+     * with mutlple users, was stopped.
+     */
+    REASON_USER_STOPPED = 11;
+
+    /**
+     * Application process was killed because its dependency was going away, for example,
+     * a stable content provider connection's client will be killed if the provider is killed.
+     */
+    REASON_DEPENDENCY_DIED = 12;
+
+    /**
+     * Application process was killed by the system for various other reasons,
+     * for example, the application package got disabled by the user;
+     * {@link #description} will specify the cause given by the system.
+     */
+    REASON_OTHER = 13;
+}
+
+/**
+ * The supplemental reason code that why app process is killed
+ */
+enum AppExitSubReasonCode {
+    /**
+     * Application process kills subReason is unknown.
+     */
+    SUBREASON_UNKNOWN = 0;
+
+    /**
+     * Application process was killed because user quit it on the "wait for debugger" dialog.
+     */
+    SUBREASON_WAIT_FOR_DEBUGGER = 1;
+
+    /**
+     * Application process was killed by the activity manager because there were too many cached
+     * processes.
+     */
+    SUBREASON_TOO_MANY_CACHED = 2;
+
+    /**
+     * Application process was killed by the activity manager because there were too many empty
+     * processes.
+     */
+    SUBREASON_TOO_MANY_EMPTY = 3;
+
+    /**
+     * Application process was killed by the activity manager because there were too many cached
+     * processes and this process had been in empty state for a long time.
+     */
+    SUBREASON_TRIM_EMPTY = 4;
+
+    /**
+     * Application process was killed by the activity manager because system was on
+     * memory pressure and this process took large amount of cached memory.
+     */
+    SUBREASON_LARGE_CACHED = 5;
+
+    /**
+     * Application process was killed by the activity manager because the system was on
+     * low memory pressure for a significant amount of time since last idle.
+     */
+    SUBREASON_MEMORY_PRESSURE = 6;
+
+    /**
+     * Application process was killed by the activity manager due to excessive CPU usage.
+     */
+    SUBREASON_EXCESSIVE_CPU = 7;
+
+    /**
+     * System update has done (so the system update process should be killed).
+     */
+    SUBREASON_SYSTEM_UPDATE_DONE = 8;
+
+    /**
+     * Kill all foreground services, for now it only occurs when enabling the quiet
+     * mode for the managed profile.
+     */
+    SUBREASON_KILL_ALL_FG = 9;
+
+    /**
+     * All background processes except certain ones were killed, for now it only occurs
+     * when the density of the default display is changed.
+     */
+    SUBREASON_KILL_ALL_BG_EXCEPT = 10;
+
+    /**
+     * The process associated with the UID was explicitly killed, for example,
+     * it could be because of permission changes.
+     */
+    SUBREASON_KILL_UID = 11;
+
+    /**
+     * The process was explicitly killed with its PID, typically because of
+     * the low memory for surfaces.
+     */
+    SUBREASON_KILL_PID = 12;
+
+    /**
+     * The start of the process was invalid.
+     */
+    SUBREASON_INVALID_START = 13;
+
+    /**
+     * The process was killed because it's in an invalid state, typically
+     * it's triggered from SHELL.
+     */
+    SUBREASON_INVALID_STATE = 14;
+
+    /**
+     * The process was killed when it's imperceptible to user, because it was
+     * in a bad state.
+     */
+    SUBREASON_IMPERCEPTIBLE = 15;
+
+    /**
+     * The process was killed because it's being moved out from LRU list.
+     */
+    SUBREASON_REMOVE_LRU = 16;
+
+    /**
+     * The process was killed because it's isolated and was in a cached state.
+     */
+    SUBREASON_ISOLATED_NOT_NEEDED = 17;
+}
+
+/**
+ * The relative importance level that the system places on a process.
+ * Keep sync with the definitions in
+ * {@link android.app.ActivityManager.RunningAppProcessInfo}
+ */
+enum Importance {
+    option allow_alias = true;
+
+    IMPORTANCE_FOREGROUND = 100;
+    IMPORTANCE_FOREGROUND_SERVICE = 125;
+    IMPORTANCE_TOP_SLEEPING_PRE_28 = 150;
+    IMPORTANCE_VISIBLE = 200;
+    IMPORTANCE_PERCEPTIBLE_PRE_26 = 130;
+    IMPORTANCE_PERCEPTIBLE = 230;
+    IMPORTANCE_CANT_SAVE_STATE_PRE_26 = 170;
+    IMPORTANCE_SERVICE = 300;
+    IMPORTANCE_TOP_SLEEPING = 325;
+    IMPORTANCE_CANT_SAVE_STATE = 350;
+    IMPORTANCE_CACHED = 400;
+    IMPORTANCE_BACKGROUND = 400;
+    IMPORTANCE_EMPTY = 500;
+    IMPORTANCE_GONE = 1000;
+}
diff --git a/core/proto/android/app/appexitinfo.proto b/core/proto/android/app/appexitinfo.proto
index 6a49220..66173f6 100644
--- a/core/proto/android/app/appexitinfo.proto
+++ b/core/proto/android/app/appexitinfo.proto
@@ -20,6 +20,7 @@
 package android.app;
 
 import "frameworks/base/core/proto/android/privacy.proto";
+import "frameworks/base/core/proto/android/app/appexit_enums.proto";
 
 /**
  * An android.app.ApplicationExitInfo object.
@@ -33,150 +34,9 @@
     optional int32 defining_uid = 4;
     optional string process_name = 5;
     optional int32 connection_group = 6;
-
-    enum ReasonCode {
-        /**
-         * Application process died due to unknown reason.
-         */
-        REASON_UNKNOWN = 0;
-
-        /**
-         * Application process exit normally by itself, for example,
-         * via {@link android.os.Process#exit}; {@link #status} will specify the exit code.
-         *
-         * <p>Applications should normally not do this, as the system has a better knowledge
-         * in terms of process management.</p>
-         */
-        REASON_EXIT_SELF = 1;
-
-        /**
-         * Application process died due to the result of an OS signal; for example,
-         * {@link android.os.Process#SIGNAL_KILL}; {@link #status} will specify the signum.
-         */
-        REASON_SIGNALED = 2;
-
-        /**
-         * Application process was killed by the system low memory killer, meaning the system was
-         * under memory pressure at the time of kill.
-         */
-        REASON_LOW_MEMORY = 3;
-
-        /**
-         * Application process died because of an unhandled exception in Java code.
-         */
-        REASON_CRASH = 4;
-
-        /**
-         * Application process died because it's crashed due to a native code crash.
-         */
-        REASON_CRASH_NATIVE = 5;
-
-        /**
-         * Application process was killed due to being unresponsive (ANR).
-         */
-        REASON_ANR = 6;
-
-        /**
-         * Application process was killed because it took too long to attach to the system
-         * during the start.
-         */
-        REASON_INITIALIZATION_FAILURE = 7;
-
-        /**
-         * Application process was killed because of initialization failure,
-         * for example, it took too long to attach to the system during the start,
-         * or there was an error during initialization.
-         */
-        REASON_PERMISSION_CHANGE = 8;
-
-        /**
-         * Application process was killed by the activity manager due to excessive resource usage.
-         */
-        REASON_EXCESSIVE_RESOURCE_USAGE = 9;
-
-        /**
-         * Application process was killed by the system for various other reasons,
-         * for example, the application package got disabled by the user;
-         * {@link #description} will specify the cause given by the system.
-         */
-        REASON_OTHER = 10;
-
-    }
-    optional ReasonCode reason = 7;
-
-    enum SubReason {
-        /**
-         * Application process kills subReason is unknown.
-         */
-        SUBREASON_UNKNOWN = 0;
-
-        /**
-         * Application process was killed because user quit it on the "wait for debugger" dialog.
-         */
-        SUBREASON_WAIT_FOR_DEBUGGER = 1;
-
-        /**
-         * Application process was killed by the activity manager because there were too many cached
-         * processes.
-         */
-        SUBREASON_TOO_MANY_CACHED = 2;
-
-        /**
-         * Application process was killed by the activity manager because there were too many empty
-         * processes.
-         */
-        SUBREASON_TOO_MANY_EMPTY = 3;
-
-        /**
-         * Application process was killed by the activity manager because there were too many cached
-         * processes and this process had been in empty state for a long time.
-         */
-        SUBREASON_TRIM_EMPTY = 4;
-
-        /**
-         * Application process was killed by the activity manager because system was on
-         * memory pressure and this process took large amount of cached memory.
-         */
-        SUBREASON_LARGE_CACHED = 5;
-
-        /**
-         * Application process was killed by the activity manager because the system was on
-         * low memory pressure for a significant amount of time since last idle.
-         */
-        SUBREASON_MEMORY_PRESSURE = 6;
-
-        /**
-         * Application process was killed by the activity manager due to excessive CPU usage.
-         */
-        SUBREASON_EXCESSIVE_CPU = 7;
-    }
-
-    optional SubReason sub_reason = 8;
-
+    optional AppExitReasonCode reason = 7;
+    optional AppExitSubReasonCode sub_reason = 8;
     optional int32 status = 9;
-
-    enum Importance {
-        option allow_alias = true;
-        /**
-         * Keep sync with the definitions in
-         * {@link android.app.ActivityManager.RunningAppProcessInfo}
-         */
-        IMPORTANCE_FOREGROUND = 100;
-        IMPORTANCE_FOREGROUND_SERVICE = 125;
-        IMPORTANCE_TOP_SLEEPING_PRE_28 = 150;
-        IMPORTANCE_VISIBLE = 200;
-        IMPORTANCE_PERCEPTIBLE_PRE_26 = 130;
-        IMPORTANCE_PERCEPTIBLE = 230;
-        IMPORTANCE_CANT_SAVE_STATE_PRE_26 = 170;
-        IMPORTANCE_SERVICE = 300;
-        IMPORTANCE_TOP_SLEEPING = 325;
-        IMPORTANCE_CANT_SAVE_STATE = 350;
-        IMPORTANCE_CACHED = 400;
-        IMPORTANCE_BACKGROUND = 400;
-        IMPORTANCE_EMPTY = 500;
-        IMPORTANCE_GONE = 1000;
-    }
-
     optional Importance importance = 10;
     optional int64 pss = 11;
     optional int64 rss = 12;
diff --git a/core/proto/android/server/jobscheduler.proto b/core/proto/android/server/jobscheduler.proto
index 4bef2e3..bd1bae6 100644
--- a/core/proto/android/server/jobscheduler.proto
+++ b/core/proto/android/server/jobscheduler.proto
@@ -670,7 +670,7 @@
 
             repeated ExecutionStats execution_stats = 4;
 
-            optional AlarmListener in_quota_alarm_listener = 5;
+            reserved 5; // in_quota_alarm_listener
         }
         repeated PackageStats package_stats = 5;
 
@@ -683,7 +683,25 @@
         }
         repeated UidPackageMapping uid_to_package_cache = 7;
 
-        // Next tag: 8
+        message InQuotaAlarmListener {
+            option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+            // The time at which the alarm is set to go off, in the elapsed realtime timebase.
+            optional int64 trigger_time_elapsed = 1;
+
+            message Alarm {
+                option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+                optional Package pkg = 1;
+
+                // The time at which the package will be in quota, in the elapsed realtime timebase.
+                optional int64 in_quota_time_elapsed = 2;
+            }
+            repeated Alarm alarms = 2;
+        }
+        optional InQuotaAlarmListener in_quota_alarm_listener = 8;
+
+        // Next tag: 9
     }
     message StorageController {
         option (.android.msg_privacy).dest = DEST_AUTOMATIC;
diff --git a/core/proto/android/stats/style/style_enums.proto b/core/proto/android/stats/style/style_enums.proto
index 5b64d1e..f3f491f 100644
--- a/core/proto/android/stats/style/style_enums.proto
+++ b/core/proto/android/stats/style/style_enums.proto
@@ -36,6 +36,8 @@
     LIVE_WALLPAPER_DELETE_SUCCESS = 14;
     LIVE_WALLPAPER_DELETE_FAILED = 15;
     LIVE_WALLPAPER_APPLIED = 16;
+    LIVE_WALLPAPER_INFO_SELECT = 17;
+    LIVE_WALLPAPER_CUSTOMIZE_SELECT = 18;
 }
 
 enum LocationPreference {
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 6062102..8851170 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -522,6 +522,7 @@
     <protected-broadcast android:name="com.android.server.telecom.intent.action.CALLS_ADD_ENTRY" />
     <protected-broadcast android:name="com.android.settings.location.MODE_CHANGING" />
     <protected-broadcast android:name="com.android.settings.bluetooth.ACTION_DISMISS_PAIRING" />
+    <protected-broadcast android:name="com.android.settings.wifi.action.NETWORK_REQUEST" />
 
     <protected-broadcast android:name="NotificationManagerService.TIMEOUT" />
     <protected-broadcast android:name="ScheduleConditionProvider.EVALUATE" />
diff --git a/core/res/res/layout/accessibility_button_chooser_item.xml b/core/res/res/layout/accessibility_button_chooser_item.xml
index d19e313..c01766b 100644
--- a/core/res/res/layout/accessibility_button_chooser_item.xml
+++ b/core/res/res/layout/accessibility_button_chooser_item.xml
@@ -38,7 +38,9 @@
         android:layout_height="wrap_content"
         android:layout_marginStart="14dp"
         android:layout_weight="1"
-        android:textColor="?attr/textColorPrimary"/>
+        android:textSize="20sp"
+        android:textColor="?attr/textColorPrimary"
+        android:fontFamily="sans-serif-medium"/>
 
     <FrameLayout
         android:id="@+id/accessibility_button_target_item_container"
diff --git a/core/res/res/layout/chooser_grid.xml b/core/res/res/layout/chooser_grid.xml
index 5676049..c0de693 100644
--- a/core/res/res/layout/chooser_grid.xml
+++ b/core/res/res/layout/chooser_grid.xml
@@ -90,7 +90,7 @@
                 android:id="@android:id/tabcontent"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
-                <com.android.internal.widget.ViewPager
+                <com.android.internal.app.ResolverViewPager
                     android:id="@+id/profile_pager"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"/>
diff --git a/core/res/res/layout/chooser_list_per_profile.xml b/core/res/res/layout/chooser_list_per_profile.xml
index 38b1b52..6b1b002 100644
--- a/core/res/res/layout/chooser_list_per_profile.xml
+++ b/core/res/res/layout/chooser_list_per_profile.xml
@@ -16,8 +16,7 @@
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_marginTop="8dp">
+    android:layout_height="match_parent">
     <com.android.internal.widget.RecyclerView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
diff --git a/core/res/res/layout/resolve_grid_item.xml b/core/res/res/layout/resolve_grid_item.xml
index 9aecfd9..fdd965f 100644
--- a/core/res/res/layout/resolve_grid_item.xml
+++ b/core/res/res/layout/resolve_grid_item.xml
@@ -18,7 +18,7 @@
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:orientation="vertical"
-              android:layout_width="@dimen/chooser_target_width"
+              android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:minHeight="100dp"
               android:gravity="center"
diff --git a/core/res/res/layout/resolver_empty_states.xml b/core/res/res/layout/resolver_empty_states.xml
index 5ed4c53..619b392 100644
--- a/core/res/res/layout/resolver_empty_states.xml
+++ b/core/res/res/layout/resolver_empty_states.xml
@@ -14,45 +14,62 @@
   ~ limitations under the License.
   -->
 
-<LinearLayout
+<RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/resolver_empty_state"
     android:layout_width="match_parent"
     android:layout_height="@dimen/resolver_empty_state_height"
     android:orientation="vertical"
-    android:layout_centerInParent="true"
-    android:gravity="center"
+    android:gravity="center_horizontal"
     android:visibility="gone"
     android:paddingStart="24dp"
     android:paddingEnd="24dp">
     <ImageView
         android:id="@+id/resolver_empty_state_icon"
-        android:layout_width="32dp"
-        android:layout_height="32dp"/>
+        android:layout_marginTop="48dp"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_centerHorizontal="true" />
     <TextView
         android:id="@+id/resolver_empty_state_title"
-        android:layout_marginTop="16dp"
+        android:layout_below="@+id/resolver_empty_state_icon"
+        android:layout_marginTop="8dp"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:fontFamily="@string/config_headlineFontFamilyMedium"
         android:textColor="@color/resolver_empty_state_text"
-        android:textSize="18sp"/>
+        android:textSize="18sp"
+        android:layout_centerHorizontal="true" />
     <TextView
         android:id="@+id/resolver_empty_state_subtitle"
-        android:layout_marginTop="8dp"
+        android:layout_below="@+id/resolver_empty_state_title"
+        android:layout_marginTop="4dp"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="@color/resolver_empty_state_text"
         android:textSize="14sp"
-        android:gravity="center_horizontal" />
+        android:gravity="center_horizontal"
+        android:layout_centerHorizontal="true" />
     <Button
         android:id="@+id/resolver_empty_state_button"
-        android:layout_marginTop="24dp"
+        android:layout_below="@+id/resolver_empty_state_subtitle"
+        android:layout_marginTop="16dp"
         android:text="@string/resolver_switch_on_work"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:background="@null"
         android:fontFamily="@string/config_headlineFontFamilyMedium"
         android:textSize="14sp"
-        android:textColor="@color/resolver_tabs_active_color"/>
-</LinearLayout>
\ No newline at end of file
+        android:textColor="@color/resolver_tabs_active_color"
+        android:layout_centerHorizontal="true" />
+    <ProgressBar
+        android:id="@+id/resolver_empty_state_progress"
+        style="@style/Widget.Material.Light.ProgressBar"
+        android:visibility="gone"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:indeterminate="true"
+        android:layout_centerHorizontal="true"
+        android:layout_below="@+id/resolver_empty_state_subtitle"
+        android:indeterminateTint="@color/resolver_tabs_active_color"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/core/res/res/layout/resolver_list.xml b/core/res/res/layout/resolver_list.xml
index 4359b10..e17fc8a 100644
--- a/core/res/res/layout/resolver_list.xml
+++ b/core/res/res/layout/resolver_list.xml
@@ -21,7 +21,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:maxWidth="@dimen/resolver_max_width"
-    android:maxCollapsedHeight="192dp"
+    android:maxCollapsedHeight="@dimen/resolver_max_collapsed_height"
     android:maxCollapsedHeightSmall="56dp"
     android:id="@id/contentPanel">
 
@@ -100,7 +100,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="1dp"
                 android:background="?attr/colorBackgroundFloating"
-                android:foreground="?attr/dividerVertical" />
+                android:foreground="?attr/dividerVertical"
+                android:layout_marginBottom="@dimen/resolver_tab_divider_bottom_padding"/>
             <FrameLayout
                 android:id="@android:id/tabcontent"
                 android:layout_width="match_parent"
@@ -108,8 +109,7 @@
                 <com.android.internal.app.ResolverViewPager
                     android:id="@+id/profile_pager"
                     android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:minHeight="@dimen/resolver_empty_state_height" />
+                    android:layout_height="wrap_content" />
             </FrameLayout>
         </LinearLayout>
     </TabHost>
diff --git a/core/res/res/layout/resolver_list_per_profile.xml b/core/res/res/layout/resolver_list_per_profile.xml
index c4f9ed9..9410301 100644
--- a/core/res/res/layout/resolver_list_per_profile.xml
+++ b/core/res/res/layout/resolver_list_per_profile.xml
@@ -17,8 +17,7 @@
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_marginTop="8dp">
+    android:layout_height="match_parent">
     <ListView
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
diff --git a/core/res/res/layout/resolver_list_with_default.xml b/core/res/res/layout/resolver_list_with_default.xml
index 72e8b0c..0d4523a 100644
--- a/core/res/res/layout/resolver_list_with_default.xml
+++ b/core/res/res/layout/resolver_list_with_default.xml
@@ -153,12 +153,14 @@
 
     <FrameLayout
         android:id="@+id/stub"
+        android:layout_alwaysShow="true"
         android:visibility="gone"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="?attr/colorBackgroundFloating"/>
 
     <TabHost
+        android:layout_alwaysShow="true"
         android:id="@+id/profile_tabhost"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -178,11 +180,11 @@
             <View
                 android:id="@+id/resolver_tab_divider"
                 android:visibility="gone"
-                android:layout_alwaysShow="true"
                 android:layout_width="match_parent"
                 android:layout_height="1dp"
                 android:background="?attr/colorBackgroundFloating"
-                android:foreground="?attr/dividerVertical" />
+                android:foreground="?attr/dividerVertical"
+                android:layout_marginBottom="@dimen/resolver_tab_divider_bottom_padding"/>
             <FrameLayout
                 android:id="@android:id/tabcontent"
                 android:layout_width="match_parent"
@@ -190,8 +192,7 @@
                 <com.android.internal.app.ResolverViewPager
                     android:id="@+id/profile_pager"
                     android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:minHeight="@dimen/resolver_empty_state_height" />
+                    android:layout_height="wrap_content" />
             </FrameLayout>
         </LinearLayout>
     </TabHost>
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 2e93904..af56edd 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Jou organisasie bestuur hierdie toestel en kan netwerkverkeer monitor. Tik vir besonderhede."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Ligginginstellings is deur jou administrateur verander"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tik om jou ligginginstellings te sien."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Landaanwyser"</string>
+    <string name="location_service" msgid="2439187616018455546">"Liggingdiens"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensorkennisgewingdiens"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Skemerdiens"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Jou toestel sal uitgevee word"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Die administrasieprogram kan nie gebruik word nie. Jou toestel sal nou uitgevee word.\n\nKontak jou organisasie se administrateur as jy vrae het."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Druk is gedeaktiveer deur <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Neem skermkiekie vir foutverslag oor <xliff:g id="NUMBER_1">%d</xliff:g> sekondes.</item>
       <item quantity="one">Neem skermkiekie vir foutverslag oor <xliff:g id="NUMBER_0">%d</xliff:g> sekonde.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Stilmodus"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Klank is AF"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Klank is AAN"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Probeer weer."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Geen vingerafdrukke is geregistreer nie."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Hierdie toetstel het nie \'n vingerafdruksensor nie."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensor is tydelik gedeaktiveer."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Vinger <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Kan nie gesig verifieer nie. Probeer weer."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Jy het nie gesigslot opgestel nie."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Gesigslot word nie op hierdie toestel gesteun nie."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensor is tydelik gedeaktiveer."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Gesig <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-ontfouting gekoppel"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tik om USB-ontfouting af te skakel"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Kies om USB-ontfouting te deaktiveer."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Draadlose ontfouting is gekoppel"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tik om draadlose ontfouting af te skakel"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Kies om draadlose ontfouting te deaktiveer."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Toetsraamwerkmodus is geaktiveer"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Voer \'n fabriekterugstelling uit om Toetsraamwerkmodus te deaktiveer."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Reekskonsole is geaktiveer"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Die voorgronddiens wat in die agtergrond begin het vanaf <xliff:g id="PACKAGENAME">%1$s</xliff:g> sal nie ingebruik-toestemming hê in toekomstige R-bouweergawes nie. Raadpleeg asseblief go/r-bg-fgs-restriction en dien \'n foutverslag in."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Verhoog volume bo aanbevole vlak?\n\nOm lang tydperke teen hoë volume te luister, kan jou gehoor beskadig."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gebruik toeganklikheidkortpad?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Wanneer die kortpad aan is, sal \'n toeganklikheidkenmerk begin word as albei volumeknoppies 3 sekondes lank gedruk word."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Wysig kortpaaie"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Kanselleer"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Skakel kortpad af"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Ongekategoriseer"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Jy stel die belangrikheid van hierdie kennisgewings."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Dit is belangrik as gevolg van die mense wat betrokke is."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Laat <xliff:g id="APP">%1$s</xliff:g> toe om \'n nuwe gebruiker met <xliff:g id="ACCOUNT">%2$s</xliff:g> te skep (\'n gebruiker met hierdie rekening bestaan reeds)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Laat <xliff:g id="APP">%1$s</xliff:g> toe om \'n nuwe gebruiker met <xliff:g id="ACCOUNT">%2$s</xliff:g> te skep?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Voeg \'n taal by"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> is in die BEPERK-groep geplaas"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoonlik"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Werk"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Kan nie met werkprogramme deel nie"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kan nie met persoonlike programme deel nie"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Jou IT-admin het deling tussen persoonlike en werkprogramme geblokkeer"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Skakel werkprogramme aan"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Skakel werkprogramme aan om toegang tot werkprogramme en -kontakte te kry"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Geen programme beskikbaar nie"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Ons kon geen programme kry nie"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Skakel werk aan"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Neem oudio in telefonie-oproepe op of speel dit"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Laat hierdie program, indien dit as die verstekbellerprogram aangewys is, toe om oudio in telefonie-oproepe op te neem of te speel."</string>
 </resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index f49e2ef..9a0ed24 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"የእርስዎ ድርጅት ይህን መሣሪያ ያስተዳድራል፣ እና የአውታረ መረብ ትራፊክን ሊከታተል ይችላል። ዝርዝሮችን ለማግኘት መታ ያድርጉ።"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"የአካባቢ ቅንብሮች በአስተዳዳሪዎ ተቀይረዋል"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"የአካባቢ ቅንብሮችዎን ለመመልከት መታ ያድርጉ።"</string>
+    <string name="country_detector" msgid="7023275114706088854">"የአገር ማወቂያ"</string>
+    <string name="location_service" msgid="2439187616018455546">"የአካባቢ አገልግሎት"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"የዳሳሽ ማሳወቂያ አገልግሎት"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"የውጋገን አገልግሎት"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"የእርስዎ መሣሪያ ይደመሰሳል"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"የአስተዳዳሪ መተግበሪያ ስራ ላይ ሊውል አይችልም። የእርስዎን መሣሪያ አሁን ይደመሰሳል።\n\nጥያቄዎች ካለዎት የድርጅትዎን አስተዳዳሪ ያነጋግሩ።"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ማተም በ<xliff:g id="OWNER_APP">%s</xliff:g> ተሰናክሏል።"</string>
@@ -245,6 +249,10 @@
       <item quantity="one">በ<xliff:g id="NUMBER_1">%d</xliff:g> ሰከንዶች ውስጥ ለሳንካ ሪፖርት ቅጽበታዊ ገጽ ዕይታን በማንሳት ላይ።</item>
       <item quantity="other">በ<xliff:g id="NUMBER_1">%d</xliff:g> ሰከንዶች ውስጥ ለሳንካ ሪፖርት ቅጽበታዊ ገጽ ዕይታን በማንሳት ላይ።</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"የፀጥታ ሁነታ"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ድምፅ ጠፍቷል"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ድምፅ በርቷል"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"እንደገና ይሞክሩ።"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"ምንም የጣት አሻራዎች አልተመዘገቡም።"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ይህ መሣሪያ የጣት አሻራ ዳሳሽ የለውም።"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"ዳሳሽ ለጊዜው ተሰናክሏል።"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"ጣት <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"ፊትን ማረጋገጥ አይቻልም። እንደገና ይሞክሩ።"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"በመልክ መክፈትን አላቀናበሩም።"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"በመልክ መክፈት መስጫ በዚህ መሣሪያ ላይ አይደገፍም።"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"ዳሳሽ ለጊዜው ተሰናክሏል።"</string>
     <string name="face_name_template" msgid="3877037340223318119">"ፊት <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB አድስ ተያይዟል"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"የዩኤስቢ ማረሚያን ለማጥፋት መታ ያድርጉ"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ማረሚያ ላለማንቃት ምረጥ።"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ገመድ-አልባ ማረም ተገናኝቷል"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ገመድ-አልባ ማረምን ለማጥፋት ይምረጡ"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ገመድ-አልባ ማረምን ለማሰናከል ይምረጡ።"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"የሙከራ ጥቅል ሁነታ ነቅቷል"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"የመሞከሪያ ጥቅል ሁነታን ለማሰናከል የፋብሪካ ዳግም ቅንብርን ይሞክሩ።"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"ተከታታይ ኮንሶል ነቅቷል"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"ዳራው ከ<xliff:g id="PACKAGENAME">%1$s</xliff:g> የጀመረው የፊት አገልግሎት ወደፊት በሚኖሩት R ግንቦች ላይ ጥቅም ላይ እየዋለ ፈቃድ አይኖረውም። እባክዎ go/r-bg-fgs-restriction እና ፋይል ሳንካ ሪፖርትን ይመልከቱ።"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ድምጹ ከሚመከረው መጠን በላይ ከፍ ይበል?\n\nበከፍተኛ ድምጽ ለረጅም ጊዜ ማዳመጥ ጆሮዎን ሊጎዳው ይችላል።"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"የተደራሽነት አቋራጭ ጥቅም ላይ ይዋል?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"አቋራጩ ሲበራ ሁለቱንም የድምጽ አዝራሮች ለ3 ሰከንዶች ተጭኖ መቆየት የተደራሽነት ባህሪን ያስጀምረዋል።"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"አቋራጮችን አርትዕ ያድርጉ"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ይቅር"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"አቋራጩን አጥፋ"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ያልተመደቡ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"የእነዚህን ማሳወቂያዎች አስፈላጊነት አዘጋጅተዋል።"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ይሄ በሚሳተፉ ሰዎች ምክንያት አስፈላጊ ነው።"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> በ<xliff:g id="ACCOUNT">%2$s</xliff:g> አዲስ ተጠቃሚ እንዲፈጥር ይፈቀድለት (ይህ መለያ ያለው ተጠቃሚ አስቀድሞ አለ)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> አዲስ ተጠቃሚ ከ <xliff:g id="ACCOUNT">%2$s</xliff:g> ጋር መፍጠር እንዲችል ይፍቀዱ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ቋንቋ ያክሉ"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ወደ የRESTRICTED ባልዲ ተከትቷል"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"የግል"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ሥራ"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"በሥራ መተግበሪያዎች ማጋራት አይቻልም"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"በግል መተግበሪያዎች ማጋራት አይቻልም"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"የእርስዎ አይቲ አስተዳዳሪ በግል እና በሥራ መተግበሪያዎች መካከል ማጋራትን አግደዋል"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"የሥራ መተግበሪያዎች ያብሩ"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"የሥራ መተግበሪያዎች እና እውቂያዎችን ለመድረስ የሥራ መተግበሪያዎችን ያብሩ"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ምንም መተግበሪያዎች አይገኙም"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"ምንም መተግበሪያዎች ልናገኝ አልቻልንም"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"ሥራን ያብሩ"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"በስልክ ጥሪዎች ላይ ኦዲዮን መቅዳት ወይም ማጫወት"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ይህ መተግበሪያ እንደ ነባሪ የመደወያ መተግበሪያ ሲመደብ በስልክ ጥሪዎች ላይ ኦዲዮን እንዲቀዳ ወይም እንዲያጫውት ያስችለዋል።"</string>
 </resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 93f5dc1..7d1e01d 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -123,12 +123,12 @@
     <string name="roamingText8" msgid="7774800704373721973">"التجوال - شريك متميز"</string>
     <string name="roamingText9" msgid="1933460020190244004">"تجوال - وظائف الخدمة الكاملة"</string>
     <string name="roamingText10" msgid="7434767033595769499">"تجوال - وظائف الخدمة الجزئية"</string>
-    <string name="roamingText11" msgid="5245687407203281407">"إعلان بانر للتجوال قيد التشغيل"</string>
+    <string name="roamingText11" msgid="5245687407203281407">"إعلان بانر للتجوال قيد التفعيل"</string>
     <string name="roamingText12" msgid="673537506362152640">"إعلان بانر للتجوال متوقف"</string>
     <string name="roamingTextSearching" msgid="5323235489657753486">"البحث عن خدمة"</string>
     <string name="wfcRegErrorTitle" msgid="3193072971584858020">"‏تعذّر إعداد الاتصال عبر Wi‑Fi."</string>
   <string-array name="wfcOperatorErrorAlertMessages">
-    <item msgid="468830943567116703">"‏لإجراء مكالمات وإرسال رسائل عبر Wi-Fi، اطلب من مشغّل شبكة الجوّال أولاً إعداد هذه الخدمة، ثم شغّل الاتصال عبر Wi-Fi مرة أخرى من خلال الإعدادات. (رمز الخطأ: <xliff:g id="CODE">%1$s</xliff:g>)"</item>
+    <item msgid="468830943567116703">"‏لإجراء مكالمات وإرسال رسائل عبر Wi-Fi، اطلب من مفعِّل شبكة الجوّال أولاً إعداد هذه الخدمة، ثم فعِّل الاتصال عبر Wi-Fi مرة أخرى من خلال الإعدادات. (رمز الخطأ: <xliff:g id="CODE">%1$s</xliff:g>)"</item>
   </string-array>
   <string-array name="wfcOperatorErrorNotificationMessages">
     <item msgid="4795145070505729156">"‏حدثت مشكلة أثناء تسجيل الاتصال عبر Wi‑Fi باستخدام مشغِّل شبكة الجوّال: <xliff:g id="CODE">%1$s</xliff:g>"</item>
@@ -199,10 +199,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"تنازل المشرف عن الجهاز للاستخدام الشخصي"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"تتم إدارة الجهاز"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"تدير مؤسستك هذا الجهاز ويمكنها مراقبة حركة بيانات الشبكة. يمكنك النقر للحصول على تفاصيل."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"غيّرَ مشرفك إعدادات الموقع الجغرافي"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"انقر لعرض إعدادات الموقع الجغرافي."</string>
+    <string name="country_detector" msgid="7023275114706088854">"أداة التعرّف على البلدان"</string>
+    <string name="location_service" msgid="2439187616018455546">"خدمات الموقع الجغرافي"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"خدمة إشعارات جهاز الاستشعار"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"خدمة الغسق"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"سيتم محو بيانات جهازك."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"تعذّر استخدام تطبيق المشرف. سيتم محو بيانات جهازك الآن.\n\nإذا كانت لديك أسئلة، اتصل بمشرف مؤسستك."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"تم إيقاف الطباعة بواسطة <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -220,7 +222,7 @@
     <string name="silent_mode_silent" msgid="5079789070221150912">"إيقاف الرنين"</string>
     <string name="silent_mode_vibrate" msgid="8821830448369552678">"اهتزاز الرنين"</string>
     <string name="silent_mode_ring" msgid="6039011004781526678">"تشغيل الرنين"</string>
-    <string name="reboot_to_update_title" msgid="2125818841916373708">"‏إعادة تحميل نظام Android"</string>
+    <string name="reboot_to_update_title" msgid="2125818841916373708">"‏تحديث نظام Android"</string>
     <string name="reboot_to_update_prepare" msgid="6978842143587422365">"جارٍ الإعداد للتحديث…"</string>
     <string name="reboot_to_update_package" msgid="4644104795527534811">"جارٍ معالجة حزمة التحديث…"</string>
     <string name="reboot_to_update_reboot" msgid="4474726009984452312">"جارٍ إعادة التشغيل…"</string>
@@ -259,11 +261,15 @@
       <item quantity="other">سيتم التقاط لقطة شاشة لتقرير الخطأ خلال <xliff:g id="NUMBER_1">%d</xliff:g> ثانية.</item>
       <item quantity="one">سيتم التقاط لقطة شاشة لتقرير الخطأ خلال <xliff:g id="NUMBER_0">%d</xliff:g> ثانية.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"وضع صامت"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"الصوت متوقف"</string>
-    <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"الصوت قيد التشغيل"</string>
+    <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"الصوت قيد التفعيل"</string>
     <string name="global_actions_toggle_airplane_mode" msgid="6911684460146916206">"وضع الطائرة"</string>
-    <string name="global_actions_airplane_mode_on_status" msgid="5508025516695361936">"وضع الطائرة قيد التشغيل"</string>
+    <string name="global_actions_airplane_mode_on_status" msgid="5508025516695361936">"وضع الطائرة قيد التفعيل"</string>
     <string name="global_actions_airplane_mode_off_status" msgid="8522219771500505475">"وضع الطائرة متوقف"</string>
     <string name="global_action_settings" msgid="4671878836947494217">"الإعدادات"</string>
     <string name="global_action_assist" msgid="2517047220311505805">"مساعدة"</string>
@@ -321,7 +327,7 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"الوصول إلى بيانات المستشعر حول علاماتك الحيوية"</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>
+    <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"تفعيل الاستكشاف باللمس"</string>
     <string name="capability_desc_canRequestTouchExploration" msgid="4394677060796752976">"سيتم قول العناصر التي تم النقر عليها بصوت عال ويمكن استكشاف الشاشة باستخدام الإيماءات."</string>
     <string name="capability_title_canRequestFilterKeyEvents" msgid="2772371671541753254">"ملاحظة النص الذي تكتبه"</string>
     <string name="capability_desc_canRequestFilterKeyEvents" msgid="2381315802405773092">"يتضمن بيانات شخصية مثل أرقام بطاقات الائتمان وكلمات المرور."</string>
@@ -372,7 +378,7 @@
     <string name="permlab_reorderTasks" msgid="7598562301992923804">"إعادة ترتيب التطبيقات قيد التشغيل"</string>
     <string name="permdesc_reorderTasks" msgid="8796089937352344183">"للسماح للتطبيق بنقل المهام إلى المقدمة والخلفية. وقد يجري التطبيق ذلك بدون إذنك."</string>
     <string name="permlab_enableCarMode" msgid="893019409519325311">"تفعيل وضع السيارة"</string>
-    <string name="permdesc_enableCarMode" msgid="56419168820473508">"للسماح للتطبيق بتمكين وضع السيارة."</string>
+    <string name="permdesc_enableCarMode" msgid="56419168820473508">"للسماح للتطبيق بتفعيل وضع السيارة."</string>
     <string name="permlab_killBackgroundProcesses" msgid="6559320515561928348">"إغلاق التطبيقات الأخرى"</string>
     <string name="permdesc_killBackgroundProcesses" msgid="2357013583055434685">"للسماح للتطبيق بإنهاء عمليات التطبيقات الأخرى في الخلفية. وقد يؤدي هذا إلى توقف تطبيقات أخرى عن العمل."</string>
     <string name="permlab_systemAlertWindow" msgid="5757218350944719065">"يمكن لهذا التطبيق الظهور في مقدمة التطبيقات الأخرى"</string>
@@ -424,7 +430,7 @@
     <string name="permdesc_writeCalendar" product="tv" msgid="951246749004952706">"‏يستطيع هذا التطبيق إضافة أحداث تقويم إلى جهاز Android TV أو إزالتها أو تغييرها، ويمكنه أيضًا إرسال رسائل تبدو واردة من مالكي التقويم، أو تغيير الأحداث بدون إبلاغ مالكيها."</string>
     <string name="permdesc_writeCalendar" product="default" msgid="5416380074475634233">"يمكن لهذا التطبيق إضافة أحداث تقويم أو إزالتها أو تغييرها على الهاتف. كما يمكنه إرسال رسائل يبدو أنها واردة من مالكي التقويم، ويمكنه كذلك تغيير الأحداث بدون إشعار مالكيها."</string>
     <string name="permlab_accessLocationExtraCommands" msgid="5162339812057983988">"الدخول إلى المزيد من أوامر موفر الموقع"</string>
-    <string name="permdesc_accessLocationExtraCommands" msgid="355369611979907967">"‏للسماح للتطبيق بالدخول إلى أوامر إضافية لموفر الموقع. قد يتيح هذا للتطبيق التداخل مع تشغيل تقنية نظام تحديد المواقع العالمي (GPS) أو مصادر الموقع الأخرى."</string>
+    <string name="permdesc_accessLocationExtraCommands" msgid="355369611979907967">"‏للسماح للتطبيق بالدخول إلى أوامر إضافية لموفر الموقع. قد يتيح هذا للتطبيق التداخل مع تفعيل تقنية نظام تحديد المواقع العالمي (GPS) أو مصادر الموقع الأخرى."</string>
     <string name="permlab_accessFineLocation" msgid="6426318438195622966">"الوصول إلى الموقع الجغرافي الدقيق في الواجهة الأمامية فقط"</string>
     <string name="permdesc_accessFineLocation" msgid="9221079523494157324">"لا يمكن لهذا التطبيق معرفة موقعك الجغرافي بالضبط عندما يعمل في الخلفية. ويجب تفعيل خدمات الموقع الجغرافي وأن تكون متاحة على جهازك حتى يتمكن التطبيق من استخدامها. وقد يؤدي هذا إلى زيادة استهلاك طاقة البطارية."</string>
     <string name="permlab_accessCoarseLocation" msgid="1561042925407799741">"الوصول إلى الموقع الجغرافي التقريبي في الواجهة الأمامية فقط"</string>
@@ -445,8 +451,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"‏إذا حصل تطبيق النظام على هذا الإذن، سيمكن لهذا التطبيق التقاط صور وتسجيل فيديوهات باستخدام كاميرا النظام في أي وقت. ويجب أن يحصل التطبيق أيضًا على الإذن android.permission.CAMERA."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"التحكم في الاهتزاز"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"للسماح للتطبيق بالتحكم في الهزّاز."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"يسمح هذا الإذن للتطبيق بالوصول إلى حالة الهزّاز."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"اتصال مباشر بأرقام الهواتف"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"للسماح للتطبيق بطلب أرقام هاتفية بدون تدخل منك. وقد يؤدي ذلك إلى تحمل رسوم غير متوقعة أو إجراء مكالمات غير متوقعة. ومن الجدير بالذكر أن ذلك لا يتيح للتطبيق الاتصال بأرقام الطوارئ. وقد تؤدي التطبيقات الضارة إلى تحملك تكاليف مالية من خلال إجراء مكالمات بدون موافقة منك."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"الوصول إلى خدمة الاتصال عبر الرسائل الفورية"</string>
@@ -561,8 +566,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"أعد المحاولة."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"ليست هناك بصمات إصبع مسجَّلة."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"لا يحتوي هذا الجهاز على مستشعِر بصمات إصبع."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"تم إيقاف جهاز الاستشعار مؤقتًا."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"الإصبع <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -606,8 +610,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"يتعذّر التحقق من الوجه. حاول مرة أخرى."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"لم يسبق لك إعداد \"فتح القفل بالوجه\"."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"\"فتح القفل بالوجه\" غير متوفر على هذا الجهاز."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"تم إيقاف جهاز الاستشعار مؤقتًا."</string>
     <string name="face_name_template" msgid="3877037340223318119">"الوجه <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -695,8 +698,8 @@
     <string name="policydesc_setGlobalProxy" msgid="7149665222705519604">"لضبط الخادم الوكيل العام في الجهاز على الاستخدام أثناء تفعيل السياسة. ولن يمكن لأحد سوى مالك الجهاز ضبط الخادم الوكيل العام."</string>
     <string name="policylab_expirePassword" msgid="6015404400532459169">"تعيين مدة انتهاء صلاحية كلمة مرور قفل الشاشة"</string>
     <string name="policydesc_expirePassword" msgid="9136524319325960675">"لتغيير عدد مرات تغيير كلمة المرور ورقم التعريف الشخصي والنمط في قفل الشاشة."</string>
-    <string name="policylab_encryptedStorage" msgid="9012936958126670110">"تعيين تشفير التخزين"</string>
-    <string name="policydesc_encryptedStorage" msgid="1102516950740375617">"يمكنك طلب تشفير بيانات التطبيق المخزنة."</string>
+    <string name="policylab_encryptedStorage" msgid="9012936958126670110">"تعيين ترميز التخزين"</string>
+    <string name="policydesc_encryptedStorage" msgid="1102516950740375617">"يمكنك طلب ترميز بيانات التطبيق المخزنة."</string>
     <string name="policylab_disableCamera" msgid="5749486347810162018">"إيقاف الكاميرات"</string>
     <string name="policydesc_disableCamera" msgid="3204405908799676104">"يمكنك منع استخدام جميع كاميرات الجهاز."</string>
     <string name="policylab_disableKeyguardFeatures" msgid="5071855750149949741">"إيقاف بعض ميزات قفل الشاشة"</string>
@@ -864,12 +867,12 @@
     <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="3069635524964070596">"‏لقد رسمت نقش فتح القفل بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الجهاز اللوحي باستخدام معلومات تسجيل الدخول إلى Google.\n\n أعد المحاولة خلال <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="6399092175942158529">"‏لقد رسمت نقش فتح القفل بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء<xliff:g id="NUMBER_1">%2$d</xliff:g> محاولة أخرى غير ناجحة، ستُطالب بإلغاء قفل جهاز Android TV باستخدام معلومات تسجيل الدخول إلى Google.\n\n يُرجى إعادة المحاولة بعد <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="5691623136957148335">"‏لقد رسمت نقش فتح القفل بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الهاتف باستخدام معلومات تسجيل الدخول إلى Google.\n\n أعد المحاولة خلال <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
-    <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="7914445759242151426">"لقد حاولت فتح قفل الجهاز اللوحي <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة، ستتم إعادة تعيين الجهاز اللوحي إلى الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="7914445759242151426">"لقد حاولت فتح قفل الجهاز اللوحي <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة، ستتم إعادة ضبط الجهاز اللوحي إلى الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
     <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="4275591249631864248">"‏لقد حاولت فتح قفل جهاز Android TV بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> محاولة أخرى غير ناجحة، ستتم إعادة ضبط جهاز Android TV على الإعداد التلقائي للمصنع وسيتم فقدان جميع بيانات المستخدمين."</string>
-    <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="1166532464798446579">"لقد حاولت فتح قفل الهاتف <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة، ستتم إعادة تعيين الهاتف إلى الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
-    <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="8682445539263683414">"لقد حاولت فتح قفل الجهاز اللوحي <xliff:g id="NUMBER">%d</xliff:g> من المرات بشكل غير صحيح. سيتم الآن إعادة تعيين الجهاز اللوحي إلى الإعدادات الأساسية."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="1166532464798446579">"لقد حاولت فتح قفل الهاتف <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة، ستتم إعادة ضبط الهاتف إلى الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="8682445539263683414">"لقد حاولت فتح قفل الجهاز اللوحي <xliff:g id="NUMBER">%d</xliff:g> من المرات بشكل غير صحيح. سيتم الآن إعادة ضبط الجهاز اللوحي إلى الإعدادات الأساسية."</string>
     <string name="lockscreen_failed_attempts_now_wiping" product="tv" msgid="2205435033340091883">"‏لقد حاولت فتح قفل جهاز Android TV بشكل غير صحيح <xliff:g id="NUMBER">%d</xliff:g> مرة. ستتم الآن إعادة ضبط جهاز Android TV على الإعداد التلقائي للمصنع."</string>
-    <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="2203704707679895487">"لقد حاولت فتح قفل الهاتف <xliff:g id="NUMBER">%d</xliff:g> من المرات بشكل غير صحيح. سيتم الآن إعادة تعيين الهاتف إلى الإعدادات الأساسية."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="2203704707679895487">"لقد حاولت فتح قفل الهاتف <xliff:g id="NUMBER">%d</xliff:g> من المرات بشكل غير صحيح. سيتم الآن إعادة ضبط الهاتف إلى الإعدادات الأساسية."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6807200118164539589">"حاول مرة أخرى خلال <xliff:g id="NUMBER">%d</xliff:g> ثانية."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="8362442730606839031">"هل نسيت النمط؟"</string>
     <string name="lockscreen_glogin_forgot_pattern" msgid="9218940117797602518">"فتح قفل الحساب"</string>
@@ -1260,7 +1263,7 @@
     <string name="anr_activity_process" msgid="3477362583767128667">"<xliff:g id="ACTIVITY">%1$s</xliff:g> لا يستجيب"</string>
     <string name="anr_application_process" msgid="4978772139461676184">"<xliff:g id="APPLICATION">%1$s</xliff:g> لا يستجيب"</string>
     <string name="anr_process" msgid="1664277165911816067">"العملية <xliff:g id="PROCESS">%1$s</xliff:g> لا تستجيب"</string>
-    <string name="force_close" msgid="9035203496368973803">"موافق"</string>
+    <string name="force_close" msgid="9035203496368973803">"حسنًا"</string>
     <string name="report" msgid="2149194372340349521">"إرسال تقرير"</string>
     <string name="wait" msgid="7765985809494033348">"انتظار"</string>
     <string name="webpage_unresponsive" msgid="7850879412195273433">"أصبحت الصفحة لا تستجيب.\n\nهل تريد إغلاقها؟"</string>
@@ -1274,18 +1277,18 @@
     <string name="unsupported_display_size_show" msgid="980129850974919375">"العرض دائمًا"</string>
     <string name="unsupported_compile_sdk_message" msgid="7326293500707890537">"‏تم تصميم <xliff:g id="APP_NAME">%1$s</xliff:g> لإصدار غير متوافق من نظام تشغيل Android وقد يحدث خلل في أدائه. قد يتوفّر إصدار محدّث من التطبيق."</string>
     <string name="unsupported_compile_sdk_show" msgid="1601210057960312248">"الإظهار دائمًا"</string>
-    <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"البحث عن إعادة تحميل"</string>
+    <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"البحث عن تحديث"</string>
     <string name="smv_application" msgid="3775183542777792638">"‏انتهك التطبيق <xliff:g id="APPLICATION">%1$s</xliff:g> (العملية <xliff:g id="PROCESS">%2$s</xliff:g>) سياسة StrictMode المفروضة ذاتيًا."</string>
     <string name="smv_process" msgid="1398801497130695446">"‏انتهكت العملية <xliff:g id="PROCESS">%1$s</xliff:g> سياسة StrictMode المفروضة ذاتيًا."</string>
-    <string name="android_upgrading_title" product="default" msgid="7279077384220829683">"جارٍ إعادة تحميل الهاتف…"</string>
-    <string name="android_upgrading_title" product="tablet" msgid="4268417249079938805">"جارٍ إعادة تحميل الجهاز اللوحي…"</string>
-    <string name="android_upgrading_title" product="device" msgid="6774767702998149762">"جارٍ إعادة تحميل الجهاز…"</string>
+    <string name="android_upgrading_title" product="default" msgid="7279077384220829683">"جارٍ تحديث الهاتف…"</string>
+    <string name="android_upgrading_title" product="tablet" msgid="4268417249079938805">"جارٍ تحديث الجهاز اللوحي…"</string>
+    <string name="android_upgrading_title" product="device" msgid="6774767702998149762">"جارٍ تحديث الجهاز…"</string>
     <string name="android_start_title" product="default" msgid="4036708252778757652">"جارٍ بدء تشغيل الهاتف…"</string>
     <string name="android_start_title" product="automotive" msgid="7917984412828168079">"‏جارٍ تشغيل Android…"</string>
     <string name="android_start_title" product="tablet" msgid="4429767260263190344">"جارٍ بدء تشغيل الجهاز اللوحي…"</string>
     <string name="android_start_title" product="device" msgid="6967413819673299309">"جارٍ بدء تشغيل الجهاز…"</string>
     <string name="android_upgrading_fstrim" msgid="3259087575528515329">"جارٍ تحسين مساحة التخزين."</string>
-    <string name="android_upgrading_notification_title" product="default" msgid="3509927005342279257">"جارٍ إنهاء إعادة تحميل النظام…"</string>
+    <string name="android_upgrading_notification_title" product="default" msgid="3509927005342279257">"جارٍ إنهاء تحديث النظام…"</string>
     <string name="app_upgrading_toast" msgid="1016267296049455585">"جارٍ ترقية <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="1339564803894466737">"جارٍ تحسين التطبيق <xliff:g id="NUMBER_0">%1$d</xliff:g> من <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
     <string name="android_preparing_apk" msgid="589736917792300956">"جارٍ تحضير <xliff:g id="APPNAME">%1$s</xliff:g>."</string>
@@ -1401,6 +1404,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"‏تم توصيل تصحيح أخطاء الجهاز عبر USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"‏انقر لإيقاف تصحيح أخطاء الجهاز عبر USB."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"‏اختيار إيقاف تصحيح أخطاء USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"‏تم تفعيل ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\""</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"‏انقر لإيقاف ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\"."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"‏اختيار إيقاف ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\""</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"تم تفعيل وضع \"مفعّل الاختبار\""</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"يمكنك إجراء إعادة ضبط على الإعدادات الأصلية لإيقاف وضع \"مفعِّل اختبار\"."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"وحدة التحكّم التسلسلية مفعّلة"</string>
@@ -1511,8 +1517,8 @@
     <string name="vpn_title_long" msgid="6834144390504619998">"‏تم تفعيل VPN بواسطة <xliff:g id="APP">%s</xliff:g>"</string>
     <string name="vpn_text" msgid="2275388920267251078">"انقر لإدارة الشبكة."</string>
     <string name="vpn_text_long" msgid="278540576806169831">"تم الاتصال بـ <xliff:g id="SESSION">%s</xliff:g>. انقر لإدارة الشبكة."</string>
-    <string name="vpn_lockdown_connecting" msgid="6096725311950342607">"‏جارٍ الاتصال بشبكة افتراضية خاصة (VPN) دائمة التشغيل..."</string>
-    <string name="vpn_lockdown_connected" msgid="2853127976590658469">"‏تم الاتصال بشبكة افتراضية خاصة (VPN) دائمة التشغيل"</string>
+    <string name="vpn_lockdown_connecting" msgid="6096725311950342607">"‏جارٍ الاتصال بشبكة افتراضية خاصة (VPN) دائمة التفعيل..."</string>
+    <string name="vpn_lockdown_connected" msgid="2853127976590658469">"‏تم الاتصال بشبكة افتراضية خاصة (VPN) دائمة التفعيل"</string>
     <string name="vpn_lockdown_disconnected" msgid="5573611651300764955">"‏تم قطع الاتصال بالشبكة الافتراضية الخاصة (VPN) التي يتم تشغيلها دائمًا"</string>
     <string name="vpn_lockdown_error" msgid="4453048646854247947">"‏تعذّر الاتصال بشبكة VPN التي يتم تشغيلها دائمًا."</string>
     <string name="vpn_lockdown_config" msgid="8331697329868252169">"‏تغيير إعدادات الشبكة أو الشبكة الافتراضية الخاصة (VPN)"</string>
@@ -1698,12 +1704,12 @@
     <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="23741434207544038">"‏لقد كتبت رمز PIN بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. \n\nأعد المحاولة خلال <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانية."</string>
     <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="3328686432962224215">"لقد كتبت كلمة المرور بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. \n\nأعد المحاولة خلال <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانية."</string>
     <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="7357404233979139075">"لقد رسمت نقش فتح القفل بطريقة غير صحيحة <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. \n\nأعد المحاولة خلال <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانية."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="3479940221343361587">"لقد حاولت فتح قفل الجهاز اللوحي بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إعادة تعيين الجهاز اللوحي على الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
+    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="3479940221343361587">"لقد حاولت فتح قفل الجهاز اللوحي بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إعادة ضبط الجهاز اللوحي على الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
     <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="9064457748587850217">"‏لقد حاولت فتح قفل جهاز Android TV بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> محاولة أخرى غير ناجحة، ستتم إعادة ضبط جهاز Android TV على الإعداد التلقائي للمصنع وسيتم فقدان جميع بيانات المستخدمين."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="5955398963754432548">"لقد حاولت فتح قفل الهاتف بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إعادة تعيين الهاتف على الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2299099385175083308">"لقد حاولت فتح قفل الجهاز اللوحي بشكل غير صحيح <xliff:g id="NUMBER">%d</xliff:g> مرة. سيتم الآن إعادة تعيين الجهاز اللوحي على الإعدادات الأساسية."</string>
+    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="5955398963754432548">"لقد حاولت فتح قفل الهاتف بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إعادة ضبط الهاتف على الإعدادات الأساسية وسيتم فقد جميع بيانات المستخدم."</string>
+    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2299099385175083308">"لقد حاولت فتح قفل الجهاز اللوحي بشكل غير صحيح <xliff:g id="NUMBER">%d</xliff:g> مرة. سيتم الآن إعادة ضبط الجهاز اللوحي على الإعدادات الأساسية."</string>
     <string name="kg_failed_attempts_now_wiping" product="tv" msgid="5045460916106267585">"‏لقد حاولت فتح قفل جهاز Android TV بشكل غير صحيح <xliff:g id="NUMBER">%d</xliff:g> مرة. ستتم الآن إعادة ضبط جهاز Android TV على الإعداد التلقائي للمصنع."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="5043730590446071189">"لقد حاولت فتح قفل الهاتف بشكل غير صحيح <xliff:g id="NUMBER">%d</xliff:g> مرة. سيتم الآن إعادة تعيين الهاتف على الإعدادات الأساسية."</string>
+    <string name="kg_failed_attempts_now_wiping" product="default" msgid="5043730590446071189">"لقد حاولت فتح قفل الهاتف بشكل غير صحيح <xliff:g id="NUMBER">%d</xliff:g> مرة. سيتم الآن إعادة ضبط الهاتف على الإعدادات الأساسية."</string>
     <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="7086799295109717623">"لقد رسمت نقش فتح القفل بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستطالَب بإلغاء تأمين الجهاز اللوحي باستخدام معلومات حساب بريد إلكتروني.\n\n أعد المحاولة خلال <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
     <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4670840383567106114">"‏لقد رسمت نقش فتح القفل بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> محاولة أخرى غير ناجحة، ستُطالب بإلغاء قفل جهاز Android TV باستخدام حساب بريد إلكتروني.\n\n يُرجى إعادة المحاولة بعد <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
     <string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"لقد رسمت نقش فتح القفل بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الهاتف باستخدام حساب بريد إلكتروني لإلغاء تأمين الهاتف.\n\n أعد المحاولة خلال <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
@@ -1712,8 +1718,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏لن يتم منح إذن الوصول إلى الموقع الجغرافي أثناء الاستخدام للخدمات التي تعمل في المقدّمة من <xliff:g id="PACKAGENAME">%1$s</xliff:g> والتي تبدأ من الخلفية في إصدارات R القادمة. يُرجى مراجعة go/r-bg-fgs-restriction وتقديم تقرير خطأ."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"هل تريد رفع مستوى الصوت فوق المستوى الموصى به؟\n\nقد يضر سماع صوت عالٍ لفترات طويلة بسمعك."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"هل تريد استخدام اختصار \"سهولة الاستخدام\"؟"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"عند تفعيل الاختصار، يؤدي الضغط على زرّي التحكّم في مستوى الصوت معًا لمدة 3 ثوانٍ إلى تفعيل إحدى ميزات إمكانية الوصول."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"تعديل الاختصارات"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"إلغاء"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"إيقاف الاختصار"</string>
@@ -1859,12 +1864,12 @@
     <string name="package_installed_device_owner" msgid="7035926868974878525">"تم التثبيت بواسطة المشرف"</string>
     <string name="package_updated_device_owner" msgid="7560272363805506941">"تم التحديث بواسطة المشرف"</string>
     <string name="package_deleted_device_owner" msgid="2292335928930293023">"تم الحذف بواسطة المشرف"</string>
-    <string name="confirm_battery_saver" msgid="5247976246208245754">"موافق"</string>
+    <string name="confirm_battery_saver" msgid="5247976246208245754">"حسنًا"</string>
     <string name="battery_saver_description_with_learn_more" msgid="1817385558636532621">"‏لإطالة عمر البطارية، \"توفير شحن البطارية\":\n·تفعيل \"التصميم الداكن\"\n إيقاف النشاط في الخلفية أو تقييده وأيضًا بعض التأثيرات المرئية والميزات الأخرى، مثلاً \"Ok Google\"\n\n"<annotation id="url">"مزيد من المعلومات"</annotation></string>
     <string name="battery_saver_description" msgid="7618492104632328184">"‏لإطالة عمر البطارية، \"توفير شحن البطارية\":\n·تفعيل \"التصميم الداكن\"\n إيقاف النشاط في الخلفية أو تقييده وأيضًا بعض التأثيرات المرئية والميزات الأخرى، مثلاً \"Ok Google\"."</string>
     <string name="data_saver_description" msgid="4995164271550590517">"للمساعدة في خفض استخدام البيانات، تمنع ميزة \"توفير البيانات\" بعض التطبيقات من إرسال البيانات وتلقّيها في الخلفية. يمكن للتطبيق الذي تستخدمه الآن الوصول إلى البيانات، ولكن لا يمكنه تنفيذ ذلك كثيرًا. وهذا يعني أن الصور مثلاً لا تظهر حتى تنقر عليها."</string>
-    <string name="data_saver_enable_title" msgid="7080620065745260137">"هل تريد تشغيل توفير البيانات؟"</string>
-    <string name="data_saver_enable_button" msgid="4399405762586419726">"تشغيل"</string>
+    <string name="data_saver_enable_title" msgid="7080620065745260137">"هل تريد تفعيل توفير البيانات؟"</string>
+    <string name="data_saver_enable_button" msgid="4399405762586419726">"تفعيل"</string>
     <plurals name="zen_mode_duration_minutes_summary" formatted="false" msgid="2877101784123058273">
       <item quantity="zero">‏لمدة أقل من دقيقة (%1$d) (حتى <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
       <item quantity="two">‏لمدة دقيقتين (%1$d) (حتى <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
@@ -1976,6 +1981,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"غير مصنفة"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"لقد عيَّنت أهمية هذه الإشعارات."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"هذه الرسالة مهمة نظرًا لأهمية الأشخاص المعنيين."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"هل تسمح لتطبيق <xliff:g id="APP">%1$s</xliff:g> بإنشاء مستخدم جديد باستخدام <xliff:g id="ACCOUNT">%2$s</xliff:g> (يوجد مستخدم بهذا الحساب مسبقًا)؟"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"هل تسمح لتطبيق <xliff:g id="APP">%1$s</xliff:g> بإنشاء مستخدم جديد باستخدام <xliff:g id="ACCOUNT">%2$s</xliff:g> ؟"</string>
     <string name="language_selection_title" msgid="52674936078683285">"إضافة لغة"</string>
@@ -1991,11 +1998,11 @@
     <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"استئناف تشغيل التطبيق"</string>
     <string name="work_mode_off_title" msgid="5503291976647976560">"تفعيل الملف الشخصي للعمل؟"</string>
     <string name="work_mode_off_message" msgid="8417484421098563803">"سيتم تفعيل تطبيقات العمل التي تستخدمها والإشعارات والبيانات وغيرها من ميزات الملف الشخصي للعمل"</string>
-    <string name="work_mode_turn_on" msgid="3662561662475962285">"تشغيل"</string>
+    <string name="work_mode_turn_on" msgid="3662561662475962285">"تفعيل"</string>
     <string name="app_blocked_title" msgid="7353262160455028160">"التطبيق غير متاح"</string>
     <string name="app_blocked_message" msgid="542972921087873023">"تطبيق <xliff:g id="APP_NAME">%1$s</xliff:g> غير متاح الآن."</string>
     <string name="deprecated_target_sdk_message" msgid="5203207875657579953">"‏تمّ إنشاء هذا التطبيق لإصدار قديم من Android وقد لا يعمل بشكل صحيح. جرِّب البحث عن تحديثات أو الاتصال بمطوّر البرامج."</string>
-    <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"البحث عن إعادة تحميل"</string>
+    <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"البحث عن تحديث"</string>
     <string name="new_sms_notification_title" msgid="6528758221319927107">"لديك رسائل جديدة"</string>
     <string name="new_sms_notification_content" msgid="3197949934153460639">"‏فتح تطبيق الرسائل القصيرة SMS للعرض"</string>
     <string name="profile_encrypted_title" msgid="9001208667521266472">"قد تكون بعض الوظائف مُقيّدة."</string>
@@ -2010,7 +2017,7 @@
     <string name="app_info" msgid="6113278084877079851">"معلومات عن التطبيق"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"جارٍ بدء العرض التوضيحي…"</string>
-    <string name="demo_restarting_message" msgid="1160053183701746766">"جارٍ إعادة تعيين الجهاز…"</string>
+    <string name="demo_restarting_message" msgid="1160053183701746766">"جارٍ إعادة ضبط الجهاز…"</string>
     <string name="suspended_widget_accessibility" msgid="6331451091851326101">"تم إيقاف <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="conference_call" msgid="5731633152336490471">"مكالمة جماعية"</string>
     <string name="tooltip_popup_title" msgid="7863719020269945722">"تلميح"</string>
@@ -2048,15 +2055,15 @@
     <string name="autofill_save_title_with_2types" msgid="3783270967447869241">"هل تريد حفظ <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> في "<b>"<xliff:g id="LABEL">%3$s</xliff:g>"</b>"؟"</string>
     <string name="autofill_save_title_with_3types" msgid="6598228952100102578">"هل تريد حفظ <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> و<xliff:g id="TYPE_2">%3$s</xliff:g> في "<b>"<xliff:g id="LABEL">%4$s</xliff:g>"</b>"؟"</string>
     <string name="autofill_update_title" msgid="3630695947047069136">"هل تريد التحديث في "<b>"<xliff:g id="LABEL">%1$s</xliff:g>"</b>"؟"</string>
-    <string name="autofill_update_title_with_type" msgid="5264152633488495704">"هل تريد إعادة تحميل <xliff:g id="TYPE">%1$s</xliff:g> في "<b>"<xliff:g id="LABEL">%2$s</xliff:g>"</b>"؟"</string>
-    <string name="autofill_update_title_with_2types" msgid="1797514386321086273">"هل تريد إعادة تحميل <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> في "<b>"<xliff:g id="LABEL">%3$s</xliff:g>"</b>"؟"</string>
-    <string name="autofill_update_title_with_3types" msgid="1312232153076212291">"هل تريد إعادة تحميل هذه العناصر في "<b>"<xliff:g id="LABEL">%4$s</xliff:g>"</b>": <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> و<xliff:g id="TYPE_2">%3$s</xliff:g>؟"</string>
+    <string name="autofill_update_title_with_type" msgid="5264152633488495704">"هل تريد تحديث <xliff:g id="TYPE">%1$s</xliff:g> في "<b>"<xliff:g id="LABEL">%2$s</xliff:g>"</b>"؟"</string>
+    <string name="autofill_update_title_with_2types" msgid="1797514386321086273">"هل تريد تحديث <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> في "<b>"<xliff:g id="LABEL">%3$s</xliff:g>"</b>"؟"</string>
+    <string name="autofill_update_title_with_3types" msgid="1312232153076212291">"هل تريد تحديث هذه العناصر في "<b>"<xliff:g id="LABEL">%4$s</xliff:g>"</b>": <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> و<xliff:g id="TYPE_2">%3$s</xliff:g>؟"</string>
     <string name="autofill_save_yes" msgid="8035743017382012850">"حفظ"</string>
     <string name="autofill_save_no" msgid="9212826374207023544">"لا، شكرًا"</string>
     <string name="autofill_save_notnow" msgid="2853932672029024195">"ليس الآن"</string>
     <string name="autofill_save_never" msgid="6821841919831402526">"أبدًا"</string>
     <string name="autofill_update_yes" msgid="4608662968996874445">"تعديل"</string>
-    <string name="autofill_continue_yes" msgid="7914985605534510385">"مواصلة"</string>
+    <string name="autofill_continue_yes" msgid="7914985605534510385">"متابعة"</string>
     <string name="autofill_save_type_password" msgid="5624528786144539944">"كلمة مرور"</string>
     <string name="autofill_save_type_address" msgid="3111006395818252885">"عنوان"</string>
     <string name="autofill_save_type_credit_card" msgid="3583795235862046693">"بطاقة ائتمان"</string>
@@ -2157,20 +2164,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"تم وضع <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> في الحزمة \"محظورة\"."</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"شخصي"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"عمل"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"تتعذّر المشاركة مع تطبيقات العمل"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"تتعذّر المشاركة مع التطبيقات الشخصية"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"حظر مشرف تكنولوجيا المعلومات لديك المشاركة بين التطبيقات الشخصية وتطبيقات العمل."</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"تشغيل تطبيقات العمل"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"تشغيل تطبيقات العمل للوصول إلى تطبيقات العمل وجهات الاتصال"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ليس هناك تطبيقات متاحة"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"تعذّر العثور على أي تطبيقات"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"تفعيل الملف الشخصي للعمل"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"تسجيل الصوت أو تشغيله في المكالمات الهاتفية"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"يسمح الإذن لهذا التطبيق بتسجيل الصوت أو تشغيله في المكالمات الهاتفية عندما يتم تخصيصه كالتطبيق التلقائي لبرنامج الاتصال."</string>
 </resources>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 9b42cf2..b646b40 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"আপোনাৰ প্ৰতিষ্ঠানটোৱে এই ডিভাইচটো পৰিচালনা কৰে আৰু ই নেটৱৰ্কৰ ট্ৰেফিক পৰ্যবেক্ষণ কৰিব পাৰে। সবিশেষ জানিবলৈ টিপক।"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"আপোনাৰ প্ৰশাসকে অৱস্থানৰ ছেটিংসমূহ সলনি কৰিছে"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"আপোনাৰ অৱস্থানৰ ছেটিংসমূহ চাবলৈ টিপক।"</string>
+    <string name="country_detector" msgid="7023275114706088854">"দেশ চিনাক্তকাৰী"</string>
+    <string name="location_service" msgid="2439187616018455546">"অৱস্থান সেৱা"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"ছেন্সৰ জাননী সেৱা"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight সেৱা"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"আপোনাৰ ডিভাইচৰ ডেটা মচা হ\'ব"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"এই প্ৰশাসক এপটো ব্যৱহাৰ কৰিব নোৱাৰি। এতিয়া আপোনাৰ ডিভাইচটোৰ ডেটা মচা হ\'ব।\n\nআপোনাৰ কিবা প্ৰশ্ন থাকিলে আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"প্ৰিণ্ট কৰা কাৰ্য <xliff:g id="OWNER_APP">%s</xliff:g>এ অক্ষম কৰি ৰাখিছে।"</string>
@@ -245,6 +249,10 @@
       <item quantity="one">ত্ৰুটি সম্পর্কীয় অভিযোগৰ বাবে <xliff:g id="NUMBER_1">%d</xliff:g>ছেকেণ্ডৰ ভিতৰত স্ক্ৰীণশ্বট লোৱা হ\'ব।</item>
       <item quantity="other">ত্ৰুটি সম্পর্কীয় অভিযোগৰ বাবে <xliff:g id="NUMBER_1">%d</xliff:g>ছেকেণ্ডৰ ভিতৰত স্ক্ৰীণশ্বট লোৱা হ\'ব।</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"নিঃশব্দ ম\'ড"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ধ্বনি অফ আছে"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ধ্বনি অন আছে"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"আকৌ চেষ্টা কৰক।"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"কোনো ফিংগাৰপ্ৰিণ্ট যোগ কৰা নহ\'ল।"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"এই ডিভাইচটোত ফিংগাৰপ্ৰিণ্ট ছেন্সৰ নাই।"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"ছেন্সৰটো সাময়িকভাৱে অক্ষম হৈ আছে।"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g> আঙুলি"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"মুখমণ্ডল সত্যাপন কৰিব পৰা নগ’ল। আকৌ চেষ্টা কৰক।"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"আপুনি মুখাৱয়বৰদ্বাৰা আনলক কৰাটো ছেট আপ কৰা নাই।"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"এই ডিভাইচটোত মুখাৱয়বৰদ্বাৰা আনলক কৰা সুবিধাটো নচলে।"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"ছেন্সৰটো সাময়িকভাৱে অক্ষম হৈ আছে।"</string>
     <string name="face_name_template" msgid="3877037340223318119">"মুখমণ্ডল <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"ইউএছবি ডিবাগিং সংযোগ কৰা হ’ল"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"ইউএছবি ডিবাগিং বন্ধ কৰিবলৈ টিপক"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"ইউএছবি ডিবাগিং অক্ষম কৰিবলৈ বাছনি কৰক।"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ৱায়াৰলেছ ডিবাগিং সংযোগ কৰা হৈছে"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ৱায়াৰলেছ ডিবাগিং অফ কৰিবলৈ টিপক"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ৱায়াৰলেছ ডিবাগিং অক্ষম কৰিবলৈ বাছনি কৰক।"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"টেষ্ট হাৰনেছ ম’ড সক্ষম কৰা আছে"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"টেষ্ট হাৰনেছ ম’ড অক্ষম কৰিবলৈ ফেক্টৰী ৰিছেট কৰক।"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"ক্ৰমিক কনছ’ল সক্ষম কৰা আছে"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"নেপথ্যই <xliff:g id="PACKAGENAME">%1$s</xliff:g>ৰ পৰা আৰম্ভ কৰা অগ্ৰভূমিৰ সেৱাটোৰ ভৱিষ্যতৰ R বিল্ডসমূহত ব্যৱহাৰ হৈ থকা সম্পৰ্কীয় অনুমতি নাথাকিব। অনুগ্ৰহ কৰি go/r-bg-fgs-restriction চাওক আৰু এটা বাগৰিপ\'ৰ্ট ফাইল কৰক।"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"অনুমোদিত স্তৰতকৈ ওপৰলৈ ভলিউম বঢ়াব নেকি?\n\nদীৰ্ঘ সময়ৰ বাবে উচ্চ ভলিউমত শুনাৰ ফলত শ্ৰৱণ ক্ষমতাৰ ক্ষতি হ\'ব পাৰে।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"দিব্যাংগসকলৰ সুবিধাৰ শ্বৰ্টকাট ব্যৱহাৰ কৰেনে?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"শ্বৰ্টকাটটো অন হৈ থকাৰ সময়ত দুয়োটা ভলিউম বুটাম ৩ ছেকেণ্ডৰ বাবে হেঁচি ধৰি ৰাখিলে এটা সাধ্য সুবিধা আৰম্ভ হ’ব।"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"শ্বৰ্টকাটসমূহ সম্পাদনা কৰক"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"বাতিল কৰক"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"শ্বৰ্টকাট অফ কৰক"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"শ্ৰেণীবদ্ধ নকৰা"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"এই জাননীবোৰৰ গুৰুত্ব আপুনি ছেট কৰব লাগিব।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"এই কার্যৰ সৈতে জড়িত থকা লোকসকলক ভিত্তি কৰি এইয়া গুৰুত্বপূর্ণ বুলি বিবেচনা কৰা হৈছ।"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>ক <xliff:g id="ACCOUNT">%2$s</xliff:g>ৰ (এই একাউণ্টটোৰ এজন ব্যৱহাৰকাৰী ইতিমধ্যে আছে) জৰিয়তে এজন নতুন ব্যৱহাৰকাৰী সৃষ্টি কৰিবলৈ অনুমতি দিবনে ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>ক <xliff:g id="ACCOUNT">%2$s</xliff:g>ৰ জৰিয়তে এজন নতুন ব্যৱহাৰকাৰী সৃষ্টি কৰিবলৈ অনুমতি দিবনে?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ভাষা যোগ কৰক"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ক সীমাবদ্ধ বাকেটটোত ৰখা হৈছে"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ব্যক্তিগত"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"কৰ্মস্থান"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"কৰ্মস্থানৰ এপ্‌সমূহৰ সৈতে শ্বেয়াৰ কৰিব নোৱাৰি"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ব্যক্তিগত এপ্‌সমূহৰ সৈতে শ্বেয়াৰ কৰিব নোৱাৰি"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"আপোনাৰ আইটি প্ৰশাসকে ব্যক্তিগত আৰু কৰ্মস্থানৰ এপ্‌সমূহৰ মাজত সমল শ্বেয়াৰ কৰাটো অৱৰোধ কৰিছে"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"কৰ্মস্থানৰ এপ্‌সমূহ অন কৰক"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"কৰ্মস্থানৰ এপ্‌ আৰু সম্পৰ্কসমূহ এক্সেছ কৰিবলৈ কৰ্মস্থানৰ এপ্‌সমূহ অন কৰক"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"কোনো এপ্‌ উপলব্ধ নহয়"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"আমি কোনো এপ্‌ বিচাৰি নাপালোঁ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"কৰ্মস্থানৰ প্ৰ’ফাইল অন কৰক"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"টেলিফ’নী কলসমূহত অডিঅ’ ৰেকৰ্ড অথবা প্লে’ কৰক"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ডিফ’ল্ট ডায়েলাৰ এপ্লিকেশ্বন হিচাপে আবণ্টন কৰিলে, এই এপ্‌টোক টেলিফ’নী কলসমূহত অডিঅ’ ৰেকৰ্ড অথবা প্লে’ কৰিবলৈ অনুমতি দিয়ে।"</string>
 </resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 73adbd8..fe5e4cf 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Təşkilat bu cihazı idarə edir və şəbəkənin ötürülməsinə nəzarət edə bilər. Detallar üçün klikləyin."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Məkan ayarları admininiz tərəfindən dəyişildi"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Məkan ayarlarınıza baxmaq üçün toxunun."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Ölkə Aşkarlayıcısı"</string>
+    <string name="location_service" msgid="2439187616018455546">"Məkan Xidməti"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Bildiriş Xidməti"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Alaqaranlıq Xidməti"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Cihazınız təmizlənəcəkdir"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Admin tətbiqini istifadə etmək mümkün deyil. Cihaz indi təmizlənəcək.\n\nSualınız varsa, təşkilatın admini ilə əlaqə saxlayın."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Çap <xliff:g id="OWNER_APP">%s</xliff:g> tərəfindən deaktiv edildi."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Baq hesabatı üçün <xliff:g id="NUMBER_1">%d</xliff:g> saniyədə sktinşot çəkilir.</item>
       <item quantity="one">Baq hesabatı üçün <xliff:g id="NUMBER_0">%d</xliff:g> saniyədə skrinşot çəkilir.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Səssiz rejim"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Səs qapalıdır"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Səs Aktivdir"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Yenidən cəhd edin."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Barmaq izi qeydə alınmayıb."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Bu cihazda barmaq izi sensoru yoxdur."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensor müvəqqəti deaktivdir."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Barmaq <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Üz doğrulanmadı. Yenidən cəhd edin."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Üz kilidi quraşdırmamısınız."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Üz kilidi bu cihazda dəstəklənmir."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensor müvəqqəti deaktivdir."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Üz <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB sazlama qoşuludur"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB sazlamanı deaktiv etmək üçün klikləyin"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USb debaqı deaktivasiya etməyi seçin."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Simsiz sazlama qoşulub"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Simsiz sazlamanı deaktiv etmək üçün toxunun"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Simsiz sazlamanı deaktiv etmək üçün seçin."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test Rejimi aktivdir"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Test Rejimini deaktiv etmək üçün fabrika ayarlarına sıfırlayın."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Ardıcıl konsol aktiv edildi"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Arxa fonda başladılan <xliff:g id="PACKAGENAME">%1$s</xliff:g> üzrə ön plan xidmətinin gələcək R versiyalarında \"istifadə zamanı\" icazəsi olmayacaq. go/r-bg-fgs-restriction bölməsinə keçin və baq hesabatı göndərin."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Səsin həcmi tövsiyə olunan səviyyədən artıq olsun?\n\nYüksək səsi uzun zaman dinləmək eşitmə qabiliyyətinizə zərər vura bilər."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Əlçatımlılıq Qısayolu istifadə edilsin?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Qısayol aktiv olduqda, hər iki səs düyməsinə 3 saniyə basıb saxlamaqla əlçatımlılıq funksiyası başladılacaq."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Qısayolları redaktə edin"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Ləğv edin"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Qısayolu Deaktiv edin"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Kateqoriyasız"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Bildirişlərin əhəmiyyətini Siz ayarlaryırsınız."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"İnsanlar cəlb olunduğu üçün bu vacibdir."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> tətbiqinə <xliff:g id="ACCOUNT">%2$s</xliff:g> (artıq bu hesabı olan İstifadəçi mövcuddur) ilə yeni İstifadəçi yaratmağa icazə verilsin?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> tətbiqinə <xliff:g id="ACCOUNT">%2$s</xliff:g> ilə yeni İstifadəçi yartmağa icazə verilsin?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Dil əlavə edin"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> MƏHDUDLAŞDIRILMIŞ səbətinə yerləşdirilib"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Şəxsi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"İş"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"İş tətbiqləri ilə paylaşmaq olmur"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Şəxsi tətbiqlərlə paylaşmaq olmur"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"İT admininiz şəxsi və iş tətbiqləri arasında paylaşımı bloklayıb"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"İş tətbiqlərini aktiv edin"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"İş tətbiqləri və kontaktlara giriş üçün iş tətbiqlərini aktiv edin"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Heç bir tətbiq əlçatan deyil"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Heç bir tətbiq tapılmadı"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"İş profilini aktiv edin"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefon zənglərində audio yazmaq və ya oxutmaq"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Defolt nömrəyığan tətbiq kimi təyin edildikdə, bu tətbiqə telefon zənglərində audio yazmaq və ya oxutmaq üçün icazə verir."</string>
 </resources>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index bf250f7..528b11b 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -195,6 +195,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organizacija upravlja ovim uređajem i može da nadgleda mrežni saobraćaj. Dodirnite za detalje."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Administrator je promenio podešavanja lokacije"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Dodirnite da biste videli podešavanja lokacije."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detektor zemlje"</string>
+    <string name="location_service" msgid="2439187616018455546">"Usluga lokacije"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Usluga obaveštenja senzora"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Usluga Sumrak"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će biti obrisan"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Ne možete da koristite ovu aplikaciju za administratore. Uređaj će sada biti obrisan.\n\nAko imate pitanja, kontaktirajte administratora organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Štampanje je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -248,6 +252,10 @@
       <item quantity="few">Napravićemo snimak ekrana radi izveštaja o grešci za <xliff:g id="NUMBER_1">%d</xliff:g> sekunde.</item>
       <item quantity="other">Napravićemo snimak ekrana radi izveštaja o grešci za <xliff:g id="NUMBER_1">%d</xliff:g> sekundi.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Nečujni režim"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Zvuk je ISKLJUČEN"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Zvuk je UKLJUČEN"</string>
@@ -549,8 +557,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Probajte ponovo."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nije registrovan nijedan otisak prsta."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Ovaj uređaj nema senzor za otisak prsta."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Senzor je privremeno onemogućen."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Prst <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +601,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Provera lica nije uspela. Probajte ponovo."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Niste podesili otključavanje licem"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Otključavanje licem nije podržano na ovom uređaju"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Senzor je privremeno onemogućen."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Lice <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1338,6 +1344,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Otklanjanje grešaka sa USB-a je omogućeno"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Dodirnite da biste isključili otklanjanje grešaka sa USB-a"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Izaberite da biste onemogućili otklanjanja grešaka sa USB-a."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Bežično otklanjanje grešaka je povezano"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Dodirnite da biste isključili bežično otklanjanje grešaka"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Izaberite da biste onemogućili bežično otklanjanje grešaka."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Omogućen je režim probnog korišćenja"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Obavite resetovanje na fabrička podešavanja da biste onemogućili režim probnog korišćenja."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serijska konzola je omogućena"</string>
@@ -1643,8 +1652,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Usluga u prvom planu sa <xliff:g id="PACKAGENAME">%1$s</xliff:g> koja je pokrenuta u pozadini neće imati dozvolu tokom korišćenja u budućim R verzijama. Posetite go/r-bg-fgs-restriction i pošaljite izveštaj o grešci."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite da pojačate zvuk iznad preporučenog nivoa?\n\nSlušanje glasne muzike duže vreme može da vam ošteti sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li da koristite prečicu za pristupačnost?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kada je prečica uključena, pritisnite oba dugmeta za jačinu zvuka da biste pokrenuli funkciju pristupačnosti."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Izmenite prečice"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Otkaži"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Isključi prečicu"</string>
@@ -1877,6 +1885,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Nekategorizovano"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Vi podešavate važnost ovih obaveštenja."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ovo je važno zbog ljudi koji učestvuju."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Želite li da dozvolite da <xliff:g id="APP">%1$s</xliff:g> napravi novog korisnika sa nalogom <xliff:g id="ACCOUNT">%2$s</xliff:g> (korisnik sa tim nalogom već postoji)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Želite li da dozvolite da <xliff:g id="APP">%1$s</xliff:g> napravi novog korisnika sa nalogom <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Dodajte jezik"</string>
@@ -2052,20 +2062,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> je dodat u segment OGRANIČENO"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Lični"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Poslovni"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ne možete da delite sadržaj sa aplikacijama za posao"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ne možete da delite sadržaj sa ličnim aplikacijama"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT administrator je blokirao deljenje između ličnih aplikacija i aplikacija za posao"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Uključite aplikacije za posao"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Uključite aplikacije za posao da biste pristupili aplikacijama i kontaktima za posao"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nema dostupnih aplikacija"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nismo pronašli nijednu aplikaciju"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Uključi profil za Work"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snimanje ili puštanje zvuka u telefonskim pozivima"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Omogućava ovoj aplikaciji, kada je dodeljena kao podrazumevana aplikacija za pozivanje, da snima ili pušta zvuk u telefonskim pozivima."</string>
 </resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 454a21e..1303126 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Ваша арганізацыя кіруе гэтай прыладай і можа сачыць за сеткавым трафікам. Дакраніцеся для атрымання дадатковай інфармацыі."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Налады месцазнаходжання зменены адміністратарам"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Націсніце, каб праглядзець налады месцазнаходжання."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Дэтэктар краіны"</string>
+    <string name="location_service" msgid="2439187616018455546">"Служба геалакацыі"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Служба апавяшчэнняў датчыка"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Служба Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Даныя вашай прылады будуць сцерты"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Немагчыма выкарыстоўваць праграму адміністравання. Звесткі на вашай прыладзе будуць выдалены.\n\nКалі ў вас ёсць пытанні, звярніцеся да адміністратара арганізацыі."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Друк адключаны ўладальнікам праграмы <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -251,6 +255,10 @@
       <item quantity="many">Здымак экрана для справаздачы пра памылкі будзе зроблены праз <xliff:g id="NUMBER_1">%d</xliff:g> секунд.</item>
       <item quantity="other">Здымак экрана для справаздачы пра памылкі будзе зроблены праз <xliff:g id="NUMBER_1">%d</xliff:g> секунды.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Бязгучны рэжым"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Гук выкл."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Гук уключаны"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Паспрабуйце яшчэ раз."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Адбіткі пальцаў не зарэгістраваны."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"На гэтай прыладзе няма сканера адбіткаў пальцаў."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Датчык часова выключаны."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Палец <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Не ўдалося спраўдзіць твар. Паўтарыце спробу."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Вы не наладзілі распазнаванне твару."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"На гэтай прыладзе распазнаванне твару не падтрымліваецца."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Датчык часова выключаны."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Твар <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Адладка па USB падключана"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Націсніце, каб выключыць адладку па USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Выберыце, каб адключыць адладку USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Бесправадная адладка падключана"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Націсніце, каб выключыць бесправадную адладку"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Выберыце, каб адключыць бесправадную адладку."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Тэставы рэжым уключаны"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Каб выключыць тэставы рэжым, скіньце налады да заводскіх значэнняў."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Паслядоўная кансоль уключана"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Запушчаны ў фонавым рэжыме асноўны сэрвіс з пакета \"<xliff:g id="PACKAGENAME">%1$s</xliff:g>\" не будзе мець дазволу while-in-use у будучых зборках на мове R. Наведайце сайт go/r-bg-fgs-restriction і адпраўце справаздачу пра памылку."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Павялiчыць гук вышэй рэкамендаванага ўзроўню?\n\nДоўгае праслухоўванне музыкi на вялiкай гучнасцi можа пашкодзiць ваш слых."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Выкарыстоўваць камбінацыю хуткага доступу для спецыяльных магчымасцей?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Калі хуткі доступ уключаны, вы можаце націснуць абедзве кнопкі гучнасці і ўтрымліваць іх 3 секунды, каб запусціць функцыю спецыяльных магчымасцей."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Змяніць ярлыкі"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Скасаваць"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Дэактываваць камбінацыю хуткага доступу"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Некатэгарызаванае"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Вы задалі важнасць гэтых апавяшчэнняў."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Гэта важна, бо з гэтым звязаны пэўныя людзі."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Дазволіць праграме \"<xliff:g id="APP">%1$s</xliff:g>\" стварыць новага Карыстальніка з уліковым запісам <xliff:g id="ACCOUNT">%2$s</xliff:g> (Карыстальнік з гэтым уліковым запісам ужо існуе)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Дазволіць праграме \"<xliff:g id="APP">%1$s</xliff:g>\" стварыць новага Карыстальніка з уліковым запісам <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Дадаць мову"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" дададзены ў АБМЕЖАВАНУЮ групу"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Асабістыя"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Працоўныя"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не ўдалося абагуліць з працоўнымі праграмамі"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не ўдалося абагуліць з асабістымі праграмамі"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Ваш ІТ-адміністратар заблакіраваў абагульванне паміж асабістымі і працоўнымі праграмамі"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Уключыце працоўныя праграмы"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Уключыце працоўныя праграмы, каб мець доступ да іх і да кантактаў"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Няма даступных праграм"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Нам не ўдалося знайсці ніводнай праграмы"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Пераключыцца на працоўны профіль"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Запісваць або прайграваць аўдыя ў тэлефонных выкліках"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дазваляе гэтай праграме (калі яна наладжана ў якасці стандартнага набіральніка нумара) запісваць або прайграваць аўдыя ў тэлефонных выкліках."</string>
 </resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index ad8fdc6..33e59aa 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Организацията ви управлява това устройство и може да наблюдава мрежовия трафик. Докоснете за подробности."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Настройките за местоположението са променени от администратора ви"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Докоснете, за да видите настройките за местоположението."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Инструмент за установяване на държавата"</string>
+    <string name="location_service" msgid="2439187616018455546">"Услуга за местоположението"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Услуга за известия за сензорите"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Услуга Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Данните на устройството ви ще бъдат изтрити"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Приложението за администриране не може да се използва. Сега данните на устройството ви ще бъдат изтрити.\n\nАко имате въпроси, свържете се с администратора на организацията си."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Отпечатването е деактивиранo от <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Екранната снимка за сигнала за програмна грешка ще бъде направена след <xliff:g id="NUMBER_1">%d</xliff:g> секунди.</item>
       <item quantity="one">Екранната снимка за сигнала за програмна грешка ще бъде направена след <xliff:g id="NUMBER_0">%d</xliff:g> секунда.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Тих режим"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Звукът е ИЗКЛЮЧЕН"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Звукът е ВКЛЮЧЕН"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Опитайте отново."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Няма регистрирани отпечатъци."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Това устройство няма сензор за отпечатъци."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Сензорът е временно деактивиран."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Пръст <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Лицето не може да се потвърди. Опитайте отново."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Не сте настроили отключването с лице."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Отключването с лице не се поддържа на това устройство."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Сензорът е временно деактивиран."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Лице <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Отстраняване на грешки през USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Докоснете, за да изключите"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Изберете, за да деактивирате отстраняването на грешки през USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Функцията за безжично отстраняване на грешки е свързана"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Докоснете, за да изключите безжичното отстраняване на грешки"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Изберете, за да деактивирате безжичното отстраняване на грешки."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Режимът за тестова среда е активиран"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Възстановете фабричните настройки, за да деактивирате режима за тестова среда."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Серийната конзола е активирана"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Задният план, който е стартирал услуга на преден план от <xliff:g id="PACKAGENAME">%1$s</xliff:g>, няма да има разрешение при използване в бъдещите компилации R. Моля, вижте go/r-bg-fgs-restriction и подайте сигнал за програмна грешка."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Да се увеличи ли силата на звука над препоръчителното ниво?\n\nПродължителното слушане при висока сила на звука може да увреди слуха ви."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Искате ли да използвате пряк път към функцията за достъпност?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Когато прекият път е включен, можете да стартирате дадена функция за достъпност, като натиснете двата бутона за силата на звука и ги задържите за 3 секунди."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Редактиране на преките пътища"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Отказ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Изключване на прекия път"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Некатегоризирани"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Зададохте важността на тези известия."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Това е важно заради участващите хора."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Да се разреши ли на <xliff:g id="APP">%1$s</xliff:g> да създаде нов потребител с профила <xliff:g id="ACCOUNT">%2$s</xliff:g> (вече съществува потребител с този профил)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Да се разреши ли на <xliff:g id="APP">%1$s</xliff:g> да създаде нов потребител с профила <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Добавяне на език"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакетът <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е поставен в ОГРАНИЧЕНИЯ контейнер"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Служебни"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Споделянето със служебни приложения не е възможно"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Споделянето с лични приложения не е възможно"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Системният ви администратор е блокирал споделянето между лични и служебни приложения"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Включете служебните приложения"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Включете служебните приложения, за да имате достъп до тях и служебните контакти"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Няма приложения"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Не успяхме да намерим приложения"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Включване на служебния потребителски профил"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Записване или възпроизвеждане на аудио при телефонни обаждания"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дава възможност на това приложение да записва или възпроизвежда аудио при телефонни обаждания, когато е зададено като основно приложение за набиране."</string>
 </resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index f5570c6..386c303 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -191,10 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"ব্যক্তিগত কাজের জন্য অ্যাডমিন এই ডিভাইস ব্যবহার করার অনুমতি দেয়নি"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"ডিভাইসটি পরিচালনা করা হচ্ছে"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"আপনার প্রতিষ্ঠান এই ডিভাইসটি পরিচালনা করে এবং এটির নেটওয়ার্ক ট্রাফিকের উপরে নজর রাখতে পারে। বিশদ বিবরণের জন্য ট্যাপ করুন।,"</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"আপনার অ্যাডমিন লোকেশন সেটিংস পরিবর্তন করেছেন"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"আপনার লোকেশন সেটিংস দেখার জন্য ট্যাপ করুন।"</string>
+    <string name="country_detector" msgid="7023275114706088854">"দেশ শনাক্তকারী"</string>
+    <string name="location_service" msgid="2439187616018455546">"লোকেশন পরিষেবা"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"সেন্সর বিজ্ঞপ্তি পরিষেবা"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"গোধূলি পরিষেবা"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"আপনার ডিভাইসটি মুছে ফেলা হবে"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"অ্যাডমিন অ্যাপটি ব্যবহার করা যাবে না। আপনার ডিভাইসে থাকা সবকিছু এখন মুছে ফেলা হবে।\n\nকোনও প্রশ্ন থাকলে আপনার প্রতিষ্ঠানের অ্যাডমিনের সাথে যোগাযোগ করুন।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> প্রিন্টিং বন্ধ রেখেছে।"</string>
@@ -247,6 +249,10 @@
       <item quantity="one"><xliff:g id="NUMBER_1">%d</xliff:g> সেকেন্ডের মধ্যে ত্রুটির প্রতিবেদনের জন্য স্ক্রিনশট নেওয়া হচ্ছে৷</item>
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> সেকেন্ডের মধ্যে ত্রুটির প্রতিবেদনের জন্য স্ক্রিনশট নেওয়া হচ্ছে৷</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"নীরব মোড"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"শব্দ বন্ধ করা আছে"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"শব্দ চালু করা আছে"</string>
@@ -433,8 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"এই প্রিভিলিজ | সিস্টেম অ্যাপটি যেকোনও সময়ে সিস্টেম ক্যামেরা ব্যবহার করে ছবি তুলতে এবং ভিডিও রেকর্ড করতে পারবে। এর জন্য অ্যাপের Android.permission.CAMERA -এর অনুমতি প্রয়োজন"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"ভাইব্রেশন নিয়ন্ত্রণ করুন"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"অ্যাপ্লিকেশানকে কম্পক নিয়ন্ত্রণ করতে দেয়৷"</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ভাইব্রেট করার স্থিতি অ্যাক্সেস করার অনুমতি দিন।"</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"সরাসরি ফোন নম্বরগুলিতে কল করে"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"অ্যাপ্লিকেশানটিকে আপনার হস্তক্ষেপ ছাড়াই ফোন নম্বরগুলিতে কল করতে মঞ্জুর করে৷ এটি অপ্রত্যাশিত পরিমাণ খরচা বা কলের কারণ হতে পারে৷ মনে রাখবেন, এটি অ্যাপ্লিকেশানটির দ্বারা জরুরি নম্বরগুলিতে কল করাকে অনুমতি দেয় না৷ ক্ষতিকারক অ্যাপ্লিকেশানগুলি আপনার সম্মতি ছাড়াই কল করার ফলে আপনাকে অহেতুক পেমেন্ট করতে হতে পারে৷"</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS পরিষেবাতে অ্যাক্সেস"</string>
@@ -549,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"আবার চেষ্টা করুন৷"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"কোনও আঙ্গুলের ছাপ নথিভুক্ত করা হয়নি।"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"এই ডিভাইসে আঙ্গুলের ছাপ নেওয়ার সেন্সর নেই।"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"সেন্সর অস্থায়ীভাবে বন্ধ করা আছে।"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"আঙ্গুল <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"আপনার মুখ যাচাই করা যাচ্ছে না। আবার চেষ্টা করুন।"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"এখনও মুখের সাহায্যে আনলক করার সুবিধা সেট-আপ করেননি।"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"এই ডিভাইসে মুখের সাহায্যে আনলক করার সুবিধাটি কাজ করে না।"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"সেন্সর অস্থায়ীভাবে বন্ধ করা আছে।"</string>
     <string name="face_name_template" msgid="3877037340223318119">"<xliff:g id="FACEID">%d</xliff:g> ফেস"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1321,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB ডিবাগিং কানেক্ট হয়েছে"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"ইউএসবি ডিবাগিং বন্ধ করতে ট্যাপ করুন"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ডিবাগিং অক্ষম করতে বেছে নিন।"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ওয়্যারলেস ডিবাগিং কানেক্ট করা হয়েছে"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ওয়্যারলেস ডিবাগিং বন্ধ করতে ট্যাপ করুন"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ওয়্যারলেস ডিবাগিং বন্ধ করতে বেছে নিন।"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"টেস্ট হারনেস মোড চালু আছে"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"টেস্ট হারনেস মোড বন্ধ করতে ফ্যাক্টরি রিসেট করুন।"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"সিরিয়াল কনসোল চালু করা হয়েছে"</string>
@@ -1624,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> থেকে শুরু হওয়া ফোরগ্রাউন্ড পরিষেবাটির ভবিষ্যতে আর বিল্ডগুলিতে ব্যবহারের অনুমতি নেই। go/r-bg-fgs-restriction দেখুন এবং বাগরিপোর্ট জমা দিন।"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"প্রস্তাবিত স্তরের চেয়ে বেশি উঁচুতে ভলিউম বাড়াবেন?\n\nউঁচু ভলিউমে বেশি সময় ধরে কিছু শুনলে আপনার শ্রবনশক্তির ক্ষতি হতে পারে।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"অ্যাক্সেসযোগ্যতা শর্টকাট ব্যবহার করবেন?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"শর্টকাট চালু করা থাকাকালীন দুটি ভলিউম বোতাম একসাথে ৩ সেকেন্ড টিপে ধরে রাখলে একটি অ্যাকসেসিবিলিটি ফিচার চালু হবে।"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"শর্টকাট এডিট করুন"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"বাতিল করুন"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"শর্টকাট বন্ধ করুন"</string>
@@ -1848,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"বিভাগ নির্ধারিত নয়"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"আপনি এই বিজ্ঞপ্তিগুলির গুরুত্ব সেট করেছেন।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"লোকজন জড়িত থাকার কারণে এটি গুরুত্বপূর্ণ।"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g>-এ (একজন ব্যবহারকারী এই অ্যাকাউন্টে আগে থেকেই রয়েছেন) একজন নতুন ব্যবহারকারী তৈরি করার অনুমতি <xliff:g id="APP">%1$s</xliff:g>-কে দেবেন?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g>-এ একজন নতুন ব্যবহারকারী তৈরি করার অনুমতি <xliff:g id="APP">%1$s</xliff:g>-কে দেবেন?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"একটি ভাষা যোগ করুন"</string>
@@ -2021,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> সীমাবদ্ধ গ্রুপে অন্তর্ভুক্ত করা হয়েছে"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ব্যক্তিগত"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"অফিস"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"অফিস অ্যাপের সাথে শেয়ার করা যাচ্ছে না"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ব্যক্তিগত অ্যাপের সাথে শেয়ার করা যাচ্ছে না"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"আপনার IT অ্যাডমিন ব্যক্তিগত ও অফিস অ্যাপের মধ্যে শেয়ার করা ব্লক করে রেখেছেন"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"অফিসের অ্যাপ চালু করুন"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"অফিসের অ্যাপ ও পরিচিতি অ্যাক্সেস করার জন্য অফিসের অ্যাপ চালু করুন"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"কোনও অ্যাপ উপলভ্য নেই"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"কোনও অ্যাপ খুঁজে পাওয়া যায়নি"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"অফিস প্রোফাইল চালু করুন"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"টেলিফোন কলে অডিও রেকর্ড বা প্লে করুন"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ডিফল্ট ডায়ালার অ্যাপ্লিকেশন হিসেবে বেছে নেওয়া হলে, টেলিফোন কলে অডিও রেকর্ড বা প্লে করার জন্য এই অ্যাপকে অনুমতি দেয়।"</string>
 </resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index fd53b69..743e8c4 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -193,8 +193,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"Administrator je ustupio uređaj za ličnu upotrebu"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"Uređajem se upravlja."</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Vaša organizacija upravlja ovim uređajem i može pratiti mrežni saobraćaj. Dodirnite za detalje."</string>
-    <string name="location_changed_notification_title" msgid="4119726617105166830">"Postavke lokacije je promijenio vaš administrator"</string>
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"Administrator je promijenio postavke lokacije"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Dodirnite da vidite postavke lokacije."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detektor zemlje"</string>
+    <string name="location_service" msgid="2439187616018455546">"Usluga lokacije"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Usluga obavještavanja putem senzora"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Usluga Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će biti izbrisan"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Nije moguće koristiti aplikaciju administratora. Potpuno će se izbrisati podaci na vašem uređaju.\n\nAko imate pitanja, obratite se administratoru svoje organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Štampanje je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -248,6 +252,10 @@
       <item quantity="few">Snimak ekrana za prijavu greške pravim za <xliff:g id="NUMBER_1">%d</xliff:g> sekunde.</item>
       <item quantity="other">Snimak ekrana za prijavu greške pravim za <xliff:g id="NUMBER_1">%d</xliff:g> sekundi.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Nečujni način rada"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Zvuk je isključen"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Zvuk je uključen"</string>
@@ -549,8 +557,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Pokušajte ponovo."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nije prijavljen nijedan otisak prsta."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Ovaj uređaj nema senzor za otisak prsta."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Senzor je privremeno onemogućen."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Prst <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +601,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nije moguće potvrditi lice. Pokušajte ponovo."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Niste postavili otključavanje licem."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Otključavanje licem nije podržano na ovom uređaju."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Senzor je privremeno onemogućen."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Lice <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1340,6 +1346,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Otklanjanje grešaka putem USB-a je uspostavljeno"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Dodirnite da isključite otklanjanje grešaka putem USB-a"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Odaberite da onemogućite ispravljanje grešaka koristeći USB"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Bežično otklanjanje grešaka je povezano"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Dodirnite da isključite bežično otklanjanje grešaka"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Odaberite da onemogućite bežično otklanjanje grešaka."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Omogućen način rada okvira za testiranje"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Izvršite vraćanje na fabričke postavke da onemogućite način rada okvira za testiranje."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serijska konzola omogućena"</string>
@@ -1645,8 +1654,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Usluge iz prvog plana započete u pozadini s web lokacije <xliff:g id="PACKAGENAME">%1$s</xliff:g> neće imati odobrenje za funkciju \"za vrijeme korištenja\" u budućim R verzijama. Pogledajte go/r-bg-fgs-restriction i podnesite izvještaj o greškama."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite li pojačati zvuk iznad preporučenog nivoa?\n\nDužim slušanjem glasnog zvuka možete oštetiti sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li koristiti Prečicu za pristupačnost?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kada je prečica uključena, pritiskom i držanjem oba dugmeta za jačinu zvuka u trajanju od 3 sekunde pokrenut će se funkcija pristupačnosti."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Uredi prečice"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Otkaži"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Isključi prečicu"</string>
@@ -1879,6 +1887,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Nije kategorizirano"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Vi određujete značaj ovih obavještenja."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ovo je značajno zbog osoba koje su uključene."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Dozvoliti aplikaciji <xliff:g id="APP">%1$s</xliff:g> da kreira novog korisnika s računom <xliff:g id="ACCOUNT">%2$s</xliff:g> (korisnik s ovim računom već postoji)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Dozvoliti aplikaciji <xliff:g id="APP">%1$s</xliff:g> da kreira novog korisnika s računom <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Dodajte jezik"</string>
@@ -2054,20 +2064,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> je stavljen u odjeljak OGRANIČENO"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Lično"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Posao"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nije moguće dijeliti s poslovnim aplikacijama"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nije moguće dijeliti s ličnim aplikacijama"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Vaš IT administrator je blokirao dijeljenje između ličnih i poslovnih aplikacija"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Uključite poslovne aplikacije"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Uključite poslovne aplikacije da pristupite poslovnim aplikacijama i kontaktima"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nema dostupnih aplikacija"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nismo pronašli nijednu aplikaciju"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Prebaci na radni"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snimanje ili reproduciranje zvuka u telefonskim pozivima"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Kad je ova aplikacija postavljena kao zadana aplikacija za pozivanje, omogućava joj snimanje ili reproduciranje zvuka u telefonskim pozivima."</string>
 </resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index fdb8f45..481cafd 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"La teva organització gestiona aquest dispositiu i és possible que supervisi el trànsit de xarxa. Toca per obtenir més informació."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"L\'administrador ha modificat la configuració d\'ubicació"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Toca per veure la configuració d\'ubicació."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector de país"</string>
+    <string name="location_service" msgid="2439187616018455546">"Servei d\'ubicació"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Servei de notificacions de sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Servei Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"El contingut del dispositiu s\'esborrarà"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"No es pot utilitzar l\'aplicació d\'administració. S\'esborraran les dades del dispositiu.\n\nSi tens cap dubte, contacta amb l\'administrador de la teva organització."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ha desactivat la impressió."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Es farà una captura de pantalla de l\'informe d\'errors d\'aquí a <xliff:g id="NUMBER_1">%d</xliff:g> segons.</item>
       <item quantity="one">Es farà una captura de pantalla de l\'informe d\'errors d\'aquí a <xliff:g id="NUMBER_0">%d</xliff:g> segon.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Mode silenciós"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"So desactivat"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"El so està activat"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Torna-ho a provar."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"No s\'ha registrat cap empremta digital."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Aquest dispositiu no té sensor d\'empremtes dactilars."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"El sensor està desactivat temporalment."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dit <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"No es pot verificar la cara. Torna-ho a provar."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"No has configurat el desbloqueig facial"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"El desbloqueig facial no és compatible amb el dispositiu."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"El sensor està desactivat temporalment."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Cara <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Depuració per USB activada"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Toca per desactivar la depuració per USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Selecciona per desactivar la depuració per USB"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"S\'ha connectat la depuració sense fil"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Toca per desactivar la depuració sense fil"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecciona per desactivar la depuració sense fil."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"S\'ha activat el mode Agent de prova"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Si vols desactivar el mode Agent de prova, restableix les dades de fàbrica."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"S\'ha activat la consola de sèrie"</string>
@@ -1499,7 +1508,7 @@
     <string name="shareactionprovider_share_with_application" msgid="4902832247173666973">"Comparteix amb <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="content_description_sliding_handle" msgid="982510275422590757">"Llisca el dit. Mantén premut."</string>
     <string name="description_target_unlock_tablet" msgid="7431571180065859551">"Llisca per desbloquejar."</string>
-    <string name="action_bar_home_description" msgid="1501655419158631974">"Torna a la pàgina d\'inici"</string>
+    <string name="action_bar_home_description" msgid="1501655419158631974">"Navega fins a la pàgina d\'inici"</string>
     <string name="action_bar_up_description" msgid="6611579697195026932">"Navega cap amunt"</string>
     <string name="action_menu_overflow_description" msgid="4579536843510088170">"Més opcions"</string>
     <string name="action_bar_home_description_format" msgid="5087107531331621803">"%1$s, %2$s"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"El servei en primer pla (<xliff:g id="PACKAGENAME">%1$s</xliff:g>) iniciat en segon pla no tindrà permís durant l\'ús en compilacions R posteriors. Consulta la pàgina go/r-bg-fgs-restriction i presenta un informe d\'errors."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vols apujar el volum per sobre del nivell recomanat?\n\nSi escoltes música a un volum alt durant períodes llargs, pots danyar-te l\'oïda."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vols fer servir la drecera d\'accessibilitat?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Si la drecera està activada, prem els dos botons de volum durant 3 segons per iniciar una funció d\'accessibilitat."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edita les dreceres"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancel·la"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactiva la drecera"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sense classificar"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Has definit la importància d\'aquestes notificacions."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Aquest missatge és important per les persones implicades."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Concedeixes permís a <xliff:g id="APP">%1$s</xliff:g> per crear un usuari amb el compte <xliff:g id="ACCOUNT">%2$s</xliff:g>? (Ja hi ha un usuari amb aquest compte.)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Concedeixes permís a <xliff:g id="APP">%1$s</xliff:g> per crear un usuari amb el compte <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Afegeix un idioma"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> s\'ha transferit al segment RESTRINGIT"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Feina"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"No es pot compartir amb les aplicacions de treball"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"No es pot compartir amb les aplicacions personals"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"L\'administrador de TI ha bloquejat la compartició entre aplicacions personals i de treball"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Activa les aplicacions de treball"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Activa les aplicacions de treball per accedir a aquestes aplicacions i als contactes de feina"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No hi ha cap aplicació disponible"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"No hem trobat cap aplicació"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Activa el perfil de treball"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar o reproduir àudio en trucades"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permet que l\'aplicació gravi o reprodueixi àudio en trucades si està assignada com a aplicació de marcador predeterminada."</string>
 </resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index a1ff467..8594e1f 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Toto zařízení je spravováno vaší organizací, která může sledovat síťový provoz. Podrobnosti zobrazíte klepnutím."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Administrátor změnil nastavení polohy"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Klepnutím zobrazíte nastavení polohy."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detektor země"</string>
+    <string name="location_service" msgid="2439187616018455546">"Služby určování polohy"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Služba oznámení ze senzoru"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Služba detekce soumraku"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Zařízení bude vymazáno"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplikaci pro správu nelze použít. Zařízení teď bude vymazáno.\n\nV případě dotazů vám pomůže administrátor organizace."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Aplikace <xliff:g id="OWNER_APP">%s</xliff:g> tisk zakazuje."</string>
@@ -251,6 +255,10 @@
       <item quantity="other">Snímek obrazovky pro zprávu o chybě bude pořízen za <xliff:g id="NUMBER_1">%d</xliff:g> sekund.</item>
       <item quantity="one">Snímek obrazovky pro zprávu o chybě bude pořízen za <xliff:g id="NUMBER_0">%d</xliff:g> sekundu.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Tichý režim"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Zvuk je VYPNUTÝ."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Zvuk je zapnutý"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Zkuste to znovu."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nejsou zaregistrovány žádné otisky prstů."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Toto zařízení nemá snímač otisků prstů."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Senzor je dočasně deaktivován."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Prst <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Obličej se nepodařilo ověřit. Zkuste to znovu."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Ověření obličejem nemáte nastavené."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Odemknutí obličejem na tomto zařízení není podporováno."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Senzor je dočasně deaktivován."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Obličej <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Ladění přes USB připojeno"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Klepnutím vypnete ladění přes USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Vyberte, chcete-li zakázat ladění přes USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Bezdrátové ladění je připojeno"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Klepnutím vypnete bezdrátové ladění"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Vyberte, chcete-li zakázat bezdrátové ladění."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Režim správce testů je aktivní"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Chcete-li deaktivovat režim správce testů, restartujte zařízení do továrního nastavení."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Je zapnutá sériová konzole"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Služba v popředí z balíčku <xliff:g id="PACKAGENAME">%1$s</xliff:g>, která byla spuštěna na pozadí, v budoucích sestavenách typu R nebude mít oprávnění ke spuštění při používání. Přejděte na adresu go/r-bg-fgs-restriction a vyplňte zprávu o chybě."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zvýšit hlasitost nad doporučenou úroveň?\n\nDlouhodobý poslech hlasitého zvuku může poškodit sluch."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Použít zkratku přístupnosti?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Když je tato zkratka zapnutá, můžete funkci přístupnosti spustit tím, že na tři sekundy podržíte obě tlačítka hlasitosti."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Upravit zkratky"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Zrušit"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Vypnout zkratku"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Neklasifikováno"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Důležitost oznámení určujete vy."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Tato zpráva je důležitá kvůli lidem zapojeným do konverzace."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Povolit aplikaci <xliff:g id="APP">%1$s</xliff:g> vytvořit nového uživatele s účtem <xliff:g id="ACCOUNT">%2$s</xliff:g>? (Uživatel s tímto účtem již existuje.)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Povolit aplikaci <xliff:g id="APP">%1$s</xliff:g> vytvořit nového uživatele s účtem <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Přidat jazyk"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Balíček <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> byl vložen do sekce OMEZENO"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobní"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Pracovní"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Sdílení s pracovními aplikacemi je zakázáno"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Sdílení s osobními aplikacemi je zakázáno"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Sdílení mezi osobními a pracovními aplikacemi zablokoval váš administrátor IT"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Zapnout pracovní aplikace"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Zapnutím pracovních aplikací získáte přístup k pracovním aplikacím a kontaktům"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Žádné aplikace k dispozici"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nenalezli jsme žádné aplikace"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Zapnout práci"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Záznam a přehrávání zvuků při telefonických hovorech"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Pokud aplikace bude mít toto oprávnění a bude vybrána jako výchozí aplikace pro vytáčení, bude při telefonických hovorech moci přehrávat a zaznamenávat zvuky."</string>
 </resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 10da1e7..617bc88 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Din organisation administrerer denne enhed og kan overvåge netværkstrafik. Tryk for at se info."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Placeringsindstillinger blev ændret af din administrator"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tryk for at se dine placeringsindstillinger."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Landeregistrering"</string>
+    <string name="location_service" msgid="2439187616018455546">"Placeringstjeneste"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Tjenesten Sensor Notification"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Tjenesten Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Enheden slettes"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administrationsappen kan ikke bruges. Enheden vil nu blive ryddet. \n\nKontakt din organisations administrator, hvis du har spørgsmål."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Udskrivning er deaktiveret af <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Der tages et screenshot til fejlrapporten om <xliff:g id="NUMBER_1">%d</xliff:g> sekund.</item>
       <item quantity="other">Der tages et screenshot til fejlrapporten om <xliff:g id="NUMBER_1">%d</xliff:g> sekunder.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Lydløs"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Lyden er slået FRA"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Lyden er TIL"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Prøv igen."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Der er ikke registreret nogen fingeraftryk."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Denne enhed har ingen fingeraftrykslæser."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensoren er midlertidigt deaktiveret."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Fingeraftryk <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Ansigtet kan ikke genkendes. Prøv igen."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Du har ikke konfigureret ansigtslås."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Ansigtslås understøttes ikke på denne enhed."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensoren er midlertidigt deaktiveret."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Ansigt <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-fejlretning er tilsluttet"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tryk for at deaktivere USB-fejlretning"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Vælg for at deaktivere USB-fejlretning."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Der er oprettet forbindelse til trådløs fejlretning"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tryk for at deaktivere trådløs fejlretning"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Vælg for at deaktivere trådløs fejlretning."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Tilstanden Testsele er aktiveret"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Gendan fabriksindstillingerne for at deaktivere tilstanden Testsele."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Seriekonsollen er aktiveret"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Tjenesten i forgrunden fra <xliff:g id="PACKAGENAME">%1$s</xliff:g>, der starter i baggrunden, vil i fremtidige R-builds ikke have tilladelse, mens den er i brug. Se go/r-bg-fgs-restriction, og indsend en fejlrapport."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vil du skrue højere op end det anbefalede lydstyrkeniveau?\n\nDu kan skade hørelsen ved at lytte til meget høj musik over længere tid."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vil du bruge genvejen til Hjælpefunktioner?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Når genvejen er aktiveret, kan du starte en hjælpefunktion ved at trykke på begge lydstyrkeknapper i tre sekunder."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Rediger genveje"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuller"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Deaktiver genvej"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Uden kategori"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Du angiver, hvor vigtige disse notifikationer er."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Dette er vigtigt på grund af de personer, det handler om."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Vil du give <xliff:g id="APP">%1$s</xliff:g> tilladelse til at oprette en ny bruger med <xliff:g id="ACCOUNT">%2$s</xliff:g> (der findes allerede en bruger med denne konto)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Vil du give <xliff:g id="APP">%1$s</xliff:g> tilladelse til at oprette en nye bruger med <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Tilføj et sprog"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> er blevet placeret i samlingen BEGRÆNSET"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personlig"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Arbejde"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Der kan ikke deles med arbejdsapps"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Der kan ikke deles med personlige apps"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Din it-administrator har blokeret deling mellem personlige apps og arbejdsapps"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Aktivér arbejdsapps"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Aktivér arbejdsapps for at få adgang til arbejdsapps og -kontakter"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ingen tilgængelige apps"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Vi kunne ikke finde nogen apps"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Aktivér arbejdsprofil"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Optage eller afspille lyd i telefonopkald"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tillader, at denne app kan optage og afspille lyd i telefonopkald, når den er angivet som standardapp til opkald."</string>
 </resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 98d9f92..f211b40 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Deine Organisation verwaltet dieses Gerät und überprüft unter Umständen den Netzwerkverkehr. Tippe hier, um weitere Informationen zu erhalten."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Standorteinstellungen durch Administrator geändert"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tippe, um deine Standorteinstellungen anzuzeigen."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Country Detector"</string>
+    <string name="location_service" msgid="2439187616018455546">"Standortdienst"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Notification Service"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Die Daten auf deinem Gerät werden gelöscht."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Die Admin-App kann nicht verwendet werden. Die Daten auf deinem Gerät werden nun gelöscht.\n\nBitte wende dich bei Fragen an den Administrator deiner Organisation."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Drucken wurde von <xliff:g id="OWNER_APP">%s</xliff:g> deaktiviert."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Screenshot für den Fehlerbericht wird in <xliff:g id="NUMBER_1">%d</xliff:g> Sekunden aufgenommen.</item>
       <item quantity="one">Screenshot für den Fehlerbericht wird in <xliff:g id="NUMBER_0">%d</xliff:g> Sekunde aufgenommen.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Lautlos-Modus"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Ton ist AUS."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Ton ist AN."</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Bitte versuche es noch einmal."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Keine Fingerabdrücke erfasst."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Dieses Gerät hat keinen Fingerabdrucksensor."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Der Sensor ist vorübergehend deaktiviert."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Finger <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Gesichtsprüfung nicht möglich. Noch mal versuchen."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Face Unlock ist nicht eingerichtet."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Face Unlock wird auf diesem Gerät nicht unterstützt."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Der Sensor ist vorübergehend deaktiviert."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Gesicht <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-Debugging aktiviert"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Zum Deaktivieren von USB-Debugging tippen"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB-Debugging deaktivieren: auswählen"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Kabelloses Debugging verbunden"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tippen, um kabelloses Debugging zu deaktivieren"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Auswählen, um kabelloses Debugging zu deaktivieren."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test-Harnischmodus aktiviert"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Setz das Gerät auf die Werkseinstellungen zurück, um den Test-Harnischmodus zu deaktivieren."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serielle Konsole aktiviert"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Der Dienst im Vordergrund von <xliff:g id="PACKAGENAME">%1$s</xliff:g>, der im Hintergrund gestartet wurde, hat in zukünftigen R-Builds keine Zugriffsberechtigung mehr während der Nutzung. Siehe dazu go/r-bg-fgs-restriction und reiche einen Fehlerbericht ein."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Lautstärke über den Schwellenwert anheben?\n\nWenn du über einen längeren Zeitraum Musik in hoher Lautstärke hörst, kann dies dein Gehör schädigen."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Verknüpfung für Bedienungshilfen verwenden?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Wenn die Verknüpfung aktiviert ist, kannst du die beiden Lautstärketasten drei Sekunden lang gedrückt halten, um eine Bedienungshilfe zu starten."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Verknüpfungen bearbeiten"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Abbrechen"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Verknüpfung deaktivieren"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Unkategorisiert"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Du hast die Wichtigkeit dieser Benachrichtigungen festgelegt."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Diese Benachrichtigung ist aufgrund der beteiligten Personen wichtig."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Es gibt bereits einen Nutzer mit <xliff:g id="ACCOUNT">%2$s</xliff:g>. Möchtest du zulassen, dass <xliff:g id="APP">%1$s</xliff:g> einen neuen Nutzer mit diesem Konto erstellt?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Möchtest du zulassen, dass <xliff:g id="APP">%1$s</xliff:g> einen neuen Nutzer mit <xliff:g id="ACCOUNT">%2$s</xliff:g> erstellt?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Sprache hinzufügen"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> wurde in den BESCHRÄNKT-Bucket gelegt"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Privat"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Geschäftlich"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Teilen mit geschäftlichen Apps nicht möglich"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Teilen mit privaten Apps nicht möglich"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Dein IT-Administrator lässt das Teilen zwischen privaten und geschäftlichen Apps nicht zu"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Geschäftliche Apps aktivieren"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Für Zugriff auf geschäftliche Apps und Kontakte geschäftliche Apps aktivieren"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Keine Apps verfügbar"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Keine Apps gefunden"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Arbeitsprofil aktivieren"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Audio bei Telefonanrufen aufnehmen oder wiedergeben"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Ermöglicht dieser App das Aufnehmen und Wiedergeben von Audio bei Telefonanrufen, wenn sie als Standard-Telefon-App festgelegt wurde."</string>
 </resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index e5cb635..c915bba 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Ο οργανισμός σας διαχειρίζεται αυτήν τη συσκευή και ενδέχεται να παρακολουθεί την επισκεψιμότητα δικτύου. Πατήστε για λεπτομέρειες."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Οι ρυθμίσεις τοποθεσίας άλλαξαν από τον διαχειριστή"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Πατήστε, για να δείτε τις ρυθμίσεις τοποθεσίας."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Ανιχνευτής χώρας"</string>
+    <string name="location_service" msgid="2439187616018455546">"Υπηρεσία τοποθεσίας"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Υπηρεσία ειδοποίησης αισθητήρα"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Υπηρεσία Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Η συσκευή σας θα διαγραφεί"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Δεν είναι δυνατή η χρήση της εφαρμογής διαχειριστή. Η συσκευή σας θα διαγραφεί.\n\nΕάν έχετε ερωτήσεις, επικοινωνήστε με τον διαχειριστή του οργανισμού σας."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Η εκτύπωση απενεργοποιήθηκε από τον χρήστη <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,8 @@
       <item quantity="other">Λήψη στιγμιότυπου οθόνης για αναφορά σφαλμάτων σε <xliff:g id="NUMBER_1">%d</xliff:g> δευτερόλεπτα.</item>
       <item quantity="one">Λήψη στιγμιότυπου οθόνης για αναφορά σφαλμάτων σε <xliff:g id="NUMBER_0">%d</xliff:g> δευτερόλεπτο.</item>
     </plurals>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Έγινε λήψη στιγμιότυπου οθόνης με αναφορά σφάλματος"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Αποτυχία λήψης στιγμιότυπου οθόνης με αναφορά σφάλματος"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Λειτουργία σίγασης"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Ο ήχος είναι απενεργοποιημένος"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Ο ήχος είναι ενεργοποιημένος"</string>
@@ -546,8 +552,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Δοκιμάστε ξανά."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Δεν έχουν καταχωριστεί δακτυλικά αποτυπώματα."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Αυτή η συσκευή δεν διαθέτει αισθητήρα δακτυλικού αποτυπώματος."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Ο αισθητήρας απενεργοποιήθηκε προσωρινά."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Δάχτυλο <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +596,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Αδύνατη επαλήθευση του προσώπου. Επανάληψη."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Δεν έχετε ρυθμίσει το Face Unlock."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Το Face Unlock δεν υποστηρίζεται σε αυτήν τη συσκευή."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Ο αισθητήρας απενεργοποιήθηκε προσωρινά."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Πρόσωπο <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1322,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Συνδέθηκε ο εντοπισμός σφαλμάτων USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Απενεργοποιήστε τον εντοπισμό/διόρθ. σφαλμάτων USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Επιλογή για απενεργοποίηση του εντοπισμού σφαλμάτων USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Συνδέθηκε ο εντοπισμός σφαλμάτων μέσω ασύρματης σύνδεσης"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Πατήστε, για να απενεργοποιήσετε τον εντοπισμό σφαλμάτων μέσω ασύρματης σύνδεσης"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Επιλέξτε, για να απενεργοποιήσετε τον εντοπισμό σφαλμάτων μέσω ασύρματης σύνδεσης."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Η λειτουργία περιβάλλοντος δοκιμών ενεργοποιήθηκε"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Εκτελέστε επαναφορά εργοστασιακών ρυθμίσεων για να απενεργοποιήσετε τη λειτουργία περιβάλλοντος δοκιμών."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Η σειριακή κονσόλα ενεργοποιήθηκε"</string>
@@ -1621,8 +1628,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Η υπηρεσία στο προσκήνιο που ξεκίνησε από το παρασκήνιο από το πακέτο <xliff:g id="PACKAGENAME">%1$s</xliff:g> δεν θα έχει άδεια πρόσβασης μόνο κατά τη χρήση σε μελλοντικές εκδόσεις R. Ανατρέξτε στο go/r-bg-fgs-restriction και υποβάλετε αναφορά σφάλματος."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Αυξάνετε την ένταση ήχου πάνω από το επίπεδο ασφαλείας;\n\nΑν ακούτε μουσική σε υψηλή ένταση για μεγάλο χρονικό διάστημα ενδέχεται να προκληθεί βλάβη στην ακοή σας."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Να χρησιμοποιείται η συντόμευση προσβασιμότητας;"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Όταν η συντόμευση είναι ενεργοποιημένη, το πάτημα και των δύο κουμπιών έντασης ήχου για 3 δευτερόλεπτα θα ξεκινήσει μια λειτουργία προσβασιμότητας."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Επεξεργασία συντομεύσεων"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Άκυρο"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Απενεργοποίηση συντόμευσης"</string>
@@ -1845,6 +1851,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Μη κατηγοριοποιημένο"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Μπορείτε να ρυθμίσετε τη βαρύτητα αυτών των ειδοποιήσεων."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Αυτό είναι σημαντικό λόγω των ατόμων που συμμετέχουν."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Επιτρέπετε στην εφαρμογή <xliff:g id="APP">%1$s</xliff:g> να δημιουργήσει έναν νέο χρήστη με τον λογαριασμό <xliff:g id="ACCOUNT">%2$s</xliff:g> (υπάρχει ήδη χρήστης με αυτόν τον λογαριασμό);"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Επιτρέπετε στην εφαρμογή <xliff:g id="APP">%1$s</xliff:g> να δημιουργήσει έναν νέο χρήστη με τον λογαριασμό <xliff:g id="ACCOUNT">%2$s</xliff:g>;"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Προσθήκη γλώσσας"</string>
@@ -2018,20 +2026,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Το πακέτο <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> τοποθετήθηκε στον κάδο ΠΕΡΙΟΡΙΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ."</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Προσωπικό"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Εργασία"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Δεν είναι δυνατή η κοινοποίηση σε εφαρμογές εργασιών"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Δεν είναι δυνατή η κοινοποίηση σε προσωπικές εφαρμογές"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Ο διαχειριστής IT απέκλεισε την κοινοποίηση μεταξύ των προσωπικών εφαρμογών και των εφαρμογών εργασιών σας"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ενεργοποίηση εφαρμογών εργασιών"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ενεργοποίηση εφαρμογών εργασιών για πρόσβαση στις εφαρμογές εργασιών και τις επαφές"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Δεν υπάρχουν διαθέσιμες εφαρμογές"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Δεν ήταν δυνατή η εύρεση εφαρμογών"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Διακόπτης ενεργοποίησης προφίλ εργασίας"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Εγγραφή ή αναπαραγωγή ήχου σε τηλεφωνικές κλήσεις"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Επιτρέπει σε αυτήν την εφαρμογή, όταν ορίζεται ως προεπιλεγμένη εφαρμογή κλήσης, να εγγράφει ή να αναπαράγει ήχο σε τηλεφωνικές κλήσεις."</string>
 </resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 7ee9846..c5259fd 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Your organisation manages this device and may monitor network traffic. Tap for details."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Location settings changed by your admin"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tap to see your location settings."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Country Detector"</string>
+    <string name="location_service" msgid="2439187616018455546">"Location Service"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Notification Service"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,8 @@
       <item quantity="other">Taking screenshot for bug report in <xliff:g id="NUMBER_1">%d</xliff:g> seconds.</item>
       <item quantity="one">Taking screenshot for bug report in <xliff:g id="NUMBER_0">%d</xliff:g> second.</item>
     </plurals>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Screenshot taken with bug report"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Failed to take screenshot with bug report"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Silent mode"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Sound is OFF"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Sound is ON"</string>
@@ -1316,6 +1322,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB debugging connected"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tap to turn off USB debugging"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Select to disable USB debugging."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Wireless debugging connected"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tap to turn off wireless debugging"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Select to disable wireless debugging."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test Harness Mode enabled"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Perform a factory reset to disable Test Harness Mode."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serial console enabled"</string>
@@ -1842,6 +1851,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Uncategorised"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"You set the importance of these notifications."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"This is important because of the people involved."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g> (a User with this account already exists)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Add a language"</string>
@@ -2023,4 +2034,6 @@
     <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
     <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"We couldn’t find any apps"</string>
     <string name="resolver_switch_on_work" msgid="8294542702883688533">"Switch on work"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
 </resources>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 4ff5975..78db758 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Your organisation manages this device and may monitor network traffic. Tap for details."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Location settings changed by your admin"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tap to see your location settings."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Country Detector"</string>
+    <string name="location_service" msgid="2439187616018455546">"Location Service"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Notification Service"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,8 @@
       <item quantity="other">Taking screenshot for bug report in <xliff:g id="NUMBER_1">%d</xliff:g> seconds.</item>
       <item quantity="one">Taking screenshot for bug report in <xliff:g id="NUMBER_0">%d</xliff:g> second.</item>
     </plurals>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Screenshot taken with bug report"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Failed to take screenshot with bug report"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Silent mode"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Sound is OFF"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Sound is ON"</string>
@@ -1316,6 +1322,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB debugging connected"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tap to turn off USB debugging"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Select to disable USB debugging."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Wireless debugging connected"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tap to turn off wireless debugging"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Select to disable wireless debugging."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test Harness Mode enabled"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Perform a factory reset to disable Test Harness Mode."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serial console enabled"</string>
@@ -1842,6 +1851,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Uncategorised"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"You set the importance of these notifications."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"This is important because of the people involved."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g> (a User with this account already exists)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Add a language"</string>
@@ -2023,4 +2034,6 @@
     <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
     <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"We couldn’t find any apps"</string>
     <string name="resolver_switch_on_work" msgid="8294542702883688533">"Switch on work"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
 </resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 7ee9846..c5259fd 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Your organisation manages this device and may monitor network traffic. Tap for details."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Location settings changed by your admin"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tap to see your location settings."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Country Detector"</string>
+    <string name="location_service" msgid="2439187616018455546">"Location Service"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Notification Service"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,8 @@
       <item quantity="other">Taking screenshot for bug report in <xliff:g id="NUMBER_1">%d</xliff:g> seconds.</item>
       <item quantity="one">Taking screenshot for bug report in <xliff:g id="NUMBER_0">%d</xliff:g> second.</item>
     </plurals>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Screenshot taken with bug report"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Failed to take screenshot with bug report"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Silent mode"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Sound is OFF"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Sound is ON"</string>
@@ -1316,6 +1322,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB debugging connected"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tap to turn off USB debugging"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Select to disable USB debugging."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Wireless debugging connected"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tap to turn off wireless debugging"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Select to disable wireless debugging."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test Harness Mode enabled"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Perform a factory reset to disable Test Harness Mode."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serial console enabled"</string>
@@ -1842,6 +1851,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Uncategorised"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"You set the importance of these notifications."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"This is important because of the people involved."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g> (a User with this account already exists)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Add a language"</string>
@@ -2023,4 +2034,6 @@
     <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
     <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"We couldn’t find any apps"</string>
     <string name="resolver_switch_on_work" msgid="8294542702883688533">"Switch on work"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
 </resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 7ee9846..c5259fd 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Your organisation manages this device and may monitor network traffic. Tap for details."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Location settings changed by your admin"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tap to see your location settings."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Country Detector"</string>
+    <string name="location_service" msgid="2439187616018455546">"Location Service"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Notification Service"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,8 @@
       <item quantity="other">Taking screenshot for bug report in <xliff:g id="NUMBER_1">%d</xliff:g> seconds.</item>
       <item quantity="one">Taking screenshot for bug report in <xliff:g id="NUMBER_0">%d</xliff:g> second.</item>
     </plurals>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Screenshot taken with bug report"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Failed to take screenshot with bug report"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Silent mode"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Sound is OFF"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Sound is ON"</string>
@@ -1316,6 +1322,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB debugging connected"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tap to turn off USB debugging"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Select to disable USB debugging."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Wireless debugging connected"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tap to turn off wireless debugging"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Select to disable wireless debugging."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test Harness Mode enabled"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Perform a factory reset to disable Test Harness Mode."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serial console enabled"</string>
@@ -1842,6 +1851,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Uncategorised"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"You set the importance of these notifications."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"This is important because of the people involved."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g> (a User with this account already exists)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Add a language"</string>
@@ -2023,4 +2034,6 @@
     <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
     <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"We couldn’t find any apps"</string>
     <string name="resolver_switch_on_work" msgid="8294542702883688533">"Switch on work"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
 </resources>
diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml
index bef3442..eb54653 100644
--- a/core/res/res/values-en-rXC/strings.xml
+++ b/core/res/res/values-en-rXC/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎Your organization manages this device and may monitor network traffic. Tap for details.‎‏‎‎‏‎"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎Location settings changed by your admin‎‏‎‎‏‎"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎Tap to see your location settings.‎‏‎‎‏‎"</string>
+    <string name="country_detector" msgid="7023275114706088854">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‎‎Country Detector‎‏‎‎‏‎"</string>
+    <string name="location_service" msgid="2439187616018455546">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎Location Service‎‏‎‎‏‎"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎‎Sensor Notification Service‎‏‎‎‏‎"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‎‎Twilight Service‎‏‎‎‏‎"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎Your device will be erased‎‏‎‎‏‎"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎The admin app can\'t be used. Your device will now be erased.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎If you have questions, contact your organization\'s admin.‎‏‎‎‏‎"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎Printing disabled by ‎‏‎‎‏‏‎<xliff:g id="OWNER_APP">%s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
@@ -245,6 +249,8 @@
       <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎Taking screenshot for bug report in ‎‏‎‎‏‏‎<xliff:g id="NUMBER_1">%d</xliff:g>‎‏‎‎‏‏‏‎ seconds.‎‏‎‎‏‎</item>
       <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎Taking screenshot for bug report in ‎‏‎‎‏‏‎<xliff:g id="NUMBER_0">%d</xliff:g>‎‏‎‎‏‏‏‎ second.‎‏‎‎‏‎</item>
     </plurals>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎Screenshot taken with bug report‎‏‎‎‏‎"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎Failed to take screenshot with bug report‎‏‎‎‏‎"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‎Silent mode‎‏‎‎‏‎"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎Sound is OFF‎‏‎‎‏‎"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‎Sound is ON‎‏‎‎‏‎"</string>
@@ -1316,6 +1322,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎USB debugging connected‎‏‎‎‏‎"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎Tap to turn off USB debugging‎‏‎‎‏‎"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‏‎Select to disable USB debugging.‎‏‎‎‏‎"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‎‎‏‎‎‏‎Wireless debugging connected‎‏‎‎‏‎"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎Tap to turn off wireless debugging‎‏‎‎‏‎"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎Select to disable wireless debugging.‎‏‎‎‏‎"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎Test Harness Mode enabled‎‏‎‎‏‎"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‎‎Perform a factory reset to disable Test Harness Mode.‎‏‎‎‏‎"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‎Serial console enabled‎‏‎‎‏‎"</string>
@@ -1842,6 +1851,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎Uncategorized‎‏‎‎‏‎"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‎You set the importance of these notifications.‎‏‎‎‏‎"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‏‏‎‎‏‏‏‎This is important because of the people involved.‎‏‎‎‏‎"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‎‏‏‎Allow ‎‏‎‎‏‏‎<xliff:g id="APP">%1$s</xliff:g>‎‏‎‎‏‏‏‎ to create a new User with ‎‏‎‎‏‏‎<xliff:g id="ACCOUNT">%2$s</xliff:g>‎‏‎‎‏‏‏‎ (a User with this account already exists) ?‎‏‎‎‏‎"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎‎Allow ‎‏‎‎‏‏‎<xliff:g id="APP">%1$s</xliff:g>‎‏‎‎‏‏‏‎ to create a new User with ‎‏‎‎‏‏‎<xliff:g id="ACCOUNT">%2$s</xliff:g>‎‏‎‎‏‏‏‎ ?‎‏‎‎‏‎"</string>
     <string name="language_selection_title" msgid="52674936078683285">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎Add a language‎‏‎‎‏‎"</string>
@@ -2023,4 +2034,6 @@
     <string name="resolver_no_apps_available" msgid="7710339903040989654">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎No apps available‎‏‎‎‏‎"</string>
     <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‎‎‎‎‎We couldn’t find any apps‎‏‎‎‏‎"</string>
     <string name="resolver_switch_on_work" msgid="8294542702883688533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‏‎‏‎Switch on work‎‏‎‎‏‎"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎Record or play audio in telephony calls‎‏‎‎‏‎"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎Allows this app, when assigned as default dialer application, to record or play audio in telephony calls.‎‏‎‎‏‎"</string>
 </resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 29318bd..7933f68 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -191,8 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"El administrador no permite hacer un uso personal del dispositivo"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"Dispositivo administrado"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Tu organización administra este dispositivo y es posible que controle el tráfico de red. Presiona para obtener más información."</string>
-    <string name="location_changed_notification_title" msgid="4119726617105166830">"Tu administrador cambió la configuración de la ubicación"</string>
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"El administrador cambió la configuración de la ubicación"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Presiona para ver la configuración de la ubicación."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector de país"</string>
+    <string name="location_service" msgid="2439187616018455546">"Servicio de ubicación"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Servicio de notificaciones del sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Servicio de Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Se borrarán los datos del dispositivo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"No se puede usar la app de administrador. Ahora se borrará tu dispositivo.\n\nSi tienes preguntas, comunícate con el administrador de tu organización."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> inhabilitó la impresión."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Se tomará una captura de pantalla para el informe de errores en <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
       <item quantity="one">Se tomará una captura de pantalla para el informe de errores en <xliff:g id="NUMBER_0">%d</xliff:g> segundo.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <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>
@@ -431,7 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"Esta privilegiada | app del sistema puede tomar fotos y grabar videos con una cámara del sistema en cualquier momento. También se requiere que la app posea el permiso android.permission.CAMERA."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar la vibración"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que la aplicación controle la vibración."</string>
-    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que la app acceda al estado del vibrador."</string>
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que la app acceda al estado del modo de vibración."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"llamar directamente a números de teléfono"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"Permite que la aplicación haga llamadas a números de teléfono sin intervención del usuario, lo que puede dar lugar a llamadas o cargos inesperados. Ten en cuenta que las aplicaciones no pueden usar este servicio para realizar llamadas a números de emergencia, pero las aplicaciones malintencionadas pueden causarte gastos imprevistos al realizar llamadas sin tu confirmación."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"acceder al servicio IMS para realizar llamadas"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Vuelve a intentarlo."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"No se registraron huellas digitales."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Este dispositivo no tiene sensor de huellas digitales."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Se inhabilitó temporalmente el sensor."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dedo <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"No se pudo verificar la cara. Vuelve a intentarlo."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"No configuraste el Desbloqueo facial."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"No se admite el Desbloqueo facial en este dispositivo."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Se inhabilitó temporalmente el sensor."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Rostro <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Depuración por USB conectada"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Presiona para desactivar la depuración por USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Seleccionar para desactivar la depuración por USB"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Se conectó la depuración inalámbrica"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Presiona para desactivar la depuración inalámbrica"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecciona para inhabilitar la depuración inalámbrica."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Se habilitó el modo de agente de prueba"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Restablece la configuración de fábrica para inhabilitar el modo de agente de prueba."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Se habilitó la consola en serie"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"El servicio que pasó del segundo al primer plano de <xliff:g id="PACKAGENAME">%1$s</xliff:g> no tendrá permiso durante el uso en las próximas compilaciones de R. Ve a go/r-bg-fgs-restriction y envía un informe de errores."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"¿Quieres subir el volumen por encima del nivel recomendado?\n\nEscuchar a un alto volumen durante largos períodos puede dañar tu audición."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"¿Usar acceso directo de accesibilidad?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Cuando la combinación de teclas está activada, puedes presionar los botones de volumen durante 3 segundos para iniciar una función de accesibilidad."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar accesos directos"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactivar acceso directo"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sin categoría"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Estableciste la importancia de estas notificaciones."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Es importante debido a las personas involucradas."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"¿Quieres permitir que <xliff:g id="APP">%1$s</xliff:g> cree un usuario nuevo con <xliff:g id="ACCOUNT">%2$s</xliff:g>? (Ya existe un usuario con esta cuenta)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"¿Deseas permitir que <xliff:g id="APP">%1$s</xliff:g> cree un usuario nuevo con <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Agregar un idioma"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Se colocó <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> en el depósito RESTRICTED"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabajo"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"No se puede compartir con apps de trabajo"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"No se puede compartir con apps personales"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Tu administrador de TI bloqueó el uso compartido entre las apps personales y de trabajo"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Activa las apps de trabajo"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Activa las apps de trabajo para acceder a apps y contactos de trabajo"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No hay apps disponibles"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"No se pudo encontrar ninguna app"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Activar perfil de trabajo"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Graba o reproduce audio en llamadas de telefonía"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que esta app grabe o reproduzca audio en llamadas de telefonía cuando se la asigna como aplicación de teléfono predeterminada."</string>
 </resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 5db4f42..7bbfcae 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -191,8 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"El administrador no permite hacer un uso personal del dispositivo"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"El dispositivo está administrado"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Tu organización administra este dispositivo y puede supervisar el tráfico de red. Toca la notificación para obtener más información."</string>
-    <string name="location_changed_notification_title" msgid="4119726617105166830">"Tu administrador ha cambiado los ajustes de ubicación-"</string>
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"Tu administrador ha cambiado los ajustes de ubicación"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Toca para ver tus ajustes de ubicación."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector de país"</string>
+    <string name="location_service" msgid="2439187616018455546">"Servicio de ubicación"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Servicio de notificación de sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Servicio de Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Tu dispositivo se borrará"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"No se puede utilizar la aplicación de administración. Se borrarán todos los datos del dispositivo.\n\nSi tienes alguna pregunta, ponte en contacto con el administrador de tu organización."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ha inhabilitado la impresión."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">La captura de pantalla para el informe de errores se realizará en <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
       <item quantity="one">La captura de pantalla para el informe de errores se realizará en <xliff:g id="NUMBER_0">%d</xliff:g> segundo.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modo silencio"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"El sonido está desactivado. Activar"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"El sonido está activado. Desactivar"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Vuelve a intentarlo."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"No se ha registrado ninguna huella digital."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Este dispositivo no tiene sensor de huellas digitales."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"El sensor está inhabilitado en estos momentos."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dedo <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"No se ha verificado tu cara. Vuelve a intentarlo."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"No has configurado el desbloqueo facial."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"El desbloqueo facial no está disponible en este dispositivo."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"El sensor está inhabilitado en estos momentos."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Cara <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1227,9 +1233,9 @@
     <string name="volume_music" msgid="7727274216734955095">"Volumen de multimedia"</string>
     <string name="volume_music_hint_playing_through_bluetooth" msgid="2614142915948898228">"Reproduciendo a través de Bluetooth"</string>
     <string name="volume_music_hint_silent_ringtone_selected" msgid="1514829655029062233">"Tono de silencio establecido"</string>
-    <string name="volume_call" msgid="7625321655265747433">"Volumen de la llamada"</string>
-    <string name="volume_bluetooth_call" msgid="2930204618610115061">"Volumen de la llamada de Bluetooth"</string>
-    <string name="volume_alarm" msgid="4486241060751798448">"Volumen de la alarma"</string>
+    <string name="volume_call" msgid="7625321655265747433">"Volumen de llamada"</string>
+    <string name="volume_bluetooth_call" msgid="2930204618610115061">"Volumen de llamada Bluetooth"</string>
+    <string name="volume_alarm" msgid="4486241060751798448">"Volumen de alarma"</string>
     <string name="volume_notification" msgid="6864412249031660057">"Volumen de notificaciones"</string>
     <string name="volume_unknown" msgid="4041914008166576293">"Volumen"</string>
     <string name="volume_icon_description_bluetooth" msgid="7540388479345558400">"Volumen de Bluetooth"</string>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Depuración USB habilitada"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tocar para desactivar depuración USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Seleccionar para inhabilitar la depuración USB"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Depuración inalámbrica conectada"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Toca para desactivar la depuración inalámbrica"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecciona para inhabilitar la depuración inalámbrica."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Modo de agente de prueba habilitado"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Restablece los ajustes de fábrica para inhabilitar el modo de agente de prueba."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Se ha habilitado la consola en serie"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"El servicio en primer plano que se inició en segundo plano en <xliff:g id="PACKAGENAME">%1$s</xliff:g> no tendrá permisos en compilaciones R futuras mientras se estén usando. Ve a go/r-bg-fgs-restriction y envía un informe de errores."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"¿Quieres subir el volumen por encima del nivel recomendado?\n\nEscuchar sonidos fuertes durante mucho tiempo puede dañar los oídos."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"¿Utilizar acceso directo de accesibilidad?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Si el acceso directo está activado, pulsa los dos botones de volumen durante 3 segundos para iniciar una función de accesibilidad."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar accesos directos"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactivar acceso directo"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sin clasificar"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Tú determinas la importancia de estas notificaciones."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Esto es importante por los usuarios implicados."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"¿Permitir que <xliff:g id="APP">%1$s</xliff:g> cree otro usuario con la cuenta <xliff:g id="ACCOUNT">%2$s</xliff:g>, que ya tiene uno?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"¿Permitir que <xliff:g id="APP">%1$s</xliff:g> cree otro usuario con la cuenta <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Añadir un idioma"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> se ha incluido en el grupo de restringidos"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabajo"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"No se puede compartir con las aplicaciones de trabajo"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"No se puede compartir con las aplicaciones personales"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"No se puede compartir contenido entre las aplicaciones personales y las de trabajo porque el administrador de TI ha bloqueado esta función"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Activa las aplicaciones de trabajo"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Activa las aplicaciones de trabajo para acceder a ellas y a los contactos"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No hay ninguna aplicación disponible"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"No se ha podido encontrar ninguna aplicación"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Switch on work"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Grabar o reproducir audio en llamadas telefónicas"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que la aplicación grabe o reproduzca audio en las llamadas telefónicas si está asignada como aplicación Teléfono predeterminada."</string>
 </resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 2c98716..34f3a6a 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Teie organisatsioon haldab seda seadet ja võib jälgida võrguliiklust. Puudutage üksikasjade vaatamiseks."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Administraator muutis teie asukohaseadeid"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Puudutage oma asukohaseadete nägemiseks."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Riigi tuvastaja"</string>
+    <string name="location_service" msgid="2439187616018455546">"Asukohateenus"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Anduri märguande teenus"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Teenus Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Seade kustutatakse"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administraatori rakendust ei saa kasutada. Teie seade tühjendatakse nüüd.\n\nKui teil on küsimusi, võtke ühendust organisatsiooni administraatoriga."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Rakendus <xliff:g id="OWNER_APP">%s</xliff:g> on printimise keelanud."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Veaaruande jaoks ekraanipildi jäädvustamine <xliff:g id="NUMBER_1">%d</xliff:g> sekundi pärast.</item>
       <item quantity="one">Veaaruande jaoks ekraanipildi jäädvustamine <xliff:g id="NUMBER_0">%d</xliff:g> sekundi pärast.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Hääletu režiim"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Heli on VÄLJAS"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Heli on SEES"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Proovige uuesti."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Ühtegi sõrmejälge pole registreeritud."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Selles seadmes pole sõrmejäljeandurit."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Andur on ajutiselt keelatud."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Sõrm <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nägu ei saa kinnitada. Proovige uuesti."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Face Unlocki ei ole seadistatud."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Seade ei toeta Face Unlocki."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Andur on ajutiselt keelatud."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Nägu <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-silumine ühendatud"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Puudutage USB silumise väljalülitamiseks"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Valige USB silumise keelamiseks"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Juhtmevaba silumine on ühendatud"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Puudutage juhtmevaba silumise väljalülitamiseks"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Valige juhtmevaba silumise keelamiseks."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Testrakendirežiim on lubatud"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Testrakendirežiimi keelamiseks taastage tehaseseaded."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Seeriakonsool on lubatud"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Taustal käitatud esiplaanil oleval teenusel paketist <xliff:g id="PACKAGENAME">%1$s</xliff:g> ei ole tulevastes R-järkudes luba „kui kasutuses”. Vaadake saiti go/r-bg-fgs-restriction ja esitage veaaruanne."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Kas suurendada helitugevuse taset üle soovitatud taseme?\n\nPikaajaline valju helitugevusega kuulamine võib kuulmist kahjustada."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Kas kasutada juurdepääsetavuse otseteed?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kui otsetee on sisse lülitatud, käivitab mõlema helitugevuse nupu kolm sekundit all hoidmine juurdepääsetavuse funktsiooni."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Muuda otseteid"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Tühista"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Lülita otsetee välja"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Kategoriseerimata"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Teie määrasite nende märguannete tähtsuse."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"See on tähtis osalevate inimeste tõttu."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Kas lubada rakendusel <xliff:g id="APP">%1$s</xliff:g> luua uus kasutaja kontoga <xliff:g id="ACCOUNT">%2$s</xliff:g> (selle kontoga kasutaja on juba olemas)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Kas lubada rakendusel <xliff:g id="APP">%1$s</xliff:g> luua uus kasutaja kontoga <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Keele lisamine"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> on lisatud salve PIIRANGUTEGA"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Isiklik"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Töö"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Töörakendustega ei saa jagada"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Isiklike rakendustega ei saa jagada"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Teie IT-administraator blokeeris isiklike ja töörakenduste vahel jagamise"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Lülita sisse töörakendused"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Lülitage sisse töörakendused, et töörakendustele ja -kontaktidele juurde pääseda"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ühtegi rakendust pole saadaval"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Me ei leidnud ühtegi rakendust"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Lülita sisse tööprofiil"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefonikõnede heli salvestamine ja esitamine"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Kui see rakendus on määratud helistamise vaikerakenduseks, lubatakse sellel salvestada ja esitada telefonikõnede heli."</string>
 </resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index 8e247fc..34cb6fb 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -89,7 +89,7 @@
     <string name="EmergencyCallWarningSummary" msgid="1194185880092805497">"Ezin duzu egin larrialdi-deirik Wi-Fi bidez"</string>
     <string name="notification_channel_network_alert" msgid="4788053066033851841">"Alertak"</string>
     <string name="notification_channel_call_forward" msgid="8230490317314272406">"Dei-desbideratzea"</string>
-    <string name="notification_channel_emergency_callback" msgid="54074839059123159">"Larrialdi-deiak soilik jasotzeko modua"</string>
+    <string name="notification_channel_emergency_callback" msgid="54074839059123159">"Larrialdi-zerbitzuen deiak jasotzeko modua"</string>
     <string name="notification_channel_mobile_data_status" msgid="1941911162076442474">"Datu-konexioaren egoera"</string>
     <string name="notification_channel_sms" msgid="1243384981025535724">"SMS mezuak"</string>
     <string name="notification_channel_voice_mail" msgid="8457433203106654172">"Erantzungailuko mezuak"</string>
@@ -191,10 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"Erabilera pertsonalerako utzi du gailua administratzaileak"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"Jabeak kudeatzen du gailua"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Erakundeak kudeatzen du gailua eta baliteke sareko trafikoa gainbegiratzea. Sakatu hau xehetasunak ikusteko."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"Administratzaileak kokapen-ezarpenak aldatu ditu"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"Sakatu kokapen-ezarpenak ikusteko."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Herrialde-hautemailea"</string>
+    <string name="location_service" msgid="2439187616018455546">"Kokapen-zerbitzua"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sentsorearen jakinarazpen-zerbitzua"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Ilunabarreko zerbitzua"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Gailuko datuak ezabatu egingo dira"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Ezin da erabili administratzeko aplikazioa. Ezabatu egingo da gailuko eduki guztia.\n\nZalantzarik baduzu, jarri erakundeko administratzailearekin harremanetan."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> aplikazioak desgaitu egin du inprimatzeko aukera."</string>
@@ -247,6 +249,10 @@
       <item quantity="other">Akatsen txostenaren argazkia aterako da <xliff:g id="NUMBER_1">%d</xliff:g> segundo barru.</item>
       <item quantity="one">Akatsen txostenaren argazkia aterako da <xliff:g id="NUMBER_0">%d</xliff:g> segundo barru.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Isilik modua"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Soinua DESAKTIBATUTA dago"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Soinua AKTIBATUTA dago"</string>
@@ -433,8 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"Pribilegioa duen sistema-aplikazio honek edonoiz erabil dezake kamera argazkiak ateratzeko eta bideoak grabatzeko. Halaber, android.permission.CAMERA baimena izan behar du aplikazioak."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrolatu dardara"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Bibragailua kontrolatzeko aukera ematen die aplikazioei."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Dardara-egoera atzitzeko baimena ematen dio aplikazioari."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"deitu zuzenean telefono-zenbakietara"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"Telefono-zenbakietara zuk esku hartu gabe deitzeko baimena ematen die aplikazioei. Horrela, ustekabeko gastuak edo deiak eragin daitezke. Aplikazio gaiztoek erabil dezakete zuk berretsi gabeko deiak eginda gastuak eragiteko."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"atzitu IMS dei-zerbitzua"</string>
@@ -497,7 +502,7 @@
     <string name="permdesc_changeWimaxState" product="tablet" msgid="4011097664859480108">"Tableta WiMAX sareetara konektatzeko edo haietatik deskonektatzeko baimena ematen die aplikazioei."</string>
     <string name="permdesc_changeWimaxState" product="tv" msgid="5373274458799425276">"Android TV gailua WiMAX sareetara konektatzeko edo haietatik deskonektatzeko baimena ematen die aplikazioei."</string>
     <string name="permdesc_changeWimaxState" product="default" msgid="1551666203780202101">"Telefonoa WiMAX sareetara konektatzeko edo haietatik deskonektatzeko baimena ematen die aplikazioei."</string>
-    <string name="permlab_bluetooth" msgid="586333280736937209">"partekatu Bluetooth gailuekin"</string>
+    <string name="permlab_bluetooth" msgid="586333280736937209">"partekatu Bluetooth bidezko gailuekin"</string>
     <string name="permdesc_bluetooth" product="tablet" msgid="3053222571491402635">"Tabletaren Bluetooth konfigurazioa ikusteko eta parekatutako gailuekin konexioak egiteko eta onartzeko baimena ematen die aplikazioei."</string>
     <string name="permdesc_bluetooth" product="tv" msgid="8851534496561034998">"Android TV gailuaren Bluetooth konexioaren konfigurazioa ikusteko eta parekatutako gailuekin konexioak sortzeko eta onartzeko baimena ematen die aplikazioei."</string>
     <string name="permdesc_bluetooth" product="default" msgid="2779606714091276746">"Telefonoaren Bluetooth konfigurazioa ikusteko eta parekatutako gailuekin konexioak egiteko eta onartzeko baimena ematen die aplikazioei."</string>
@@ -549,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Saiatu berriro."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Ez da erregistratu hatz-markarik."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Gailu honek ez du hatz-marken sentsorerik."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sentsorea aldi baterako desgaitu da."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g> hatza"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Ezin da egiaztatu aurpegia. Saiatu berriro."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Ez duzu konfiguratu aurpegiaren bidez desblokeatzeko aukera."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Gailu honek ez du onartzen aurpegiaren bidez desblokeatzea."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sentsorea aldi baterako desgaitu da."</string>
     <string name="face_name_template" msgid="3877037340223318119">"<xliff:g id="FACEID">%d</xliff:g> aurpegia"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1321,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB bidezko arazketa konektatuta"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Sakatu USB bidezko arazketa desaktibatzeko"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Hautatu USB bidezko arazketa desgaitzeko."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Konektatu da hari gabeko arazketa"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Sakatu hau hari gabeko arazketa desaktibatzeko"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Hautatu hau hari gabeko arazketa desgaitzeko"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Proba-materialeko modua gaitu da"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Proba-materialaren modua desgaitzeko, berrezarri jatorrizko datuak."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serie-kontsola gaituta dago"</string>
@@ -1557,7 +1563,7 @@
     <string name="default_audio_route_name" product="default" msgid="9213546147739983977">"Telefonoa"</string>
     <string name="default_audio_route_name_dock_speakers" msgid="1551166029093995289">"Konektatu bozgorailuak oinarrira"</string>
     <string name="default_audio_route_name_hdmi" msgid="5474470558160717850">"HDMI"</string>
-    <string name="default_audio_route_name_headphones" msgid="6954070994792640762">"Aurikularrak"</string>
+    <string name="default_audio_route_name_headphones" msgid="6954070994792640762">"Entzungailuak"</string>
     <string name="default_audio_route_name_usb" msgid="895668743163316932">"USB"</string>
     <string name="default_audio_route_category_name" msgid="5241740395748134483">"Sistema"</string>
     <string name="bluetooth_a2dp_audio_route_name" msgid="4214648773120426288">"Bluetooth bidezko audioa"</string>
@@ -1624,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> webgunearen atzeko planoak hasitako aurreko planoko zerbitzuak ez du izango erabili bitarteko baimenik etorkizuneko R konpilazioetan. Joan go/r-bg-fgs-restriction atalera eta egin akatsaren txostena."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Bolumena gomendatutako mailatik gora igo nahi duzu?\n\nMusika bolumen handian eta denbora luzez entzuteak entzumena kalte diezazuke."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Erabilerraztasun-lasterbidea erabili nahi duzu?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Lasterbidea aktibatuta dagoenean, bi bolumen-botoiak hiru segundoz sakatuta abiaraziko da erabilerraztasun-eginbidea."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editatu lasterbideak"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Utzi"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desaktibatu lasterbidea"</string>
@@ -1848,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Kategoriarik gabea"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Zuk ezarri duzu jakinarazpen hauen garrantzia."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Garrantzitsua da eragiten dien pertsonengatik."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> kontua duen erabiltzailea sortzeko baimena eman nahi diozu <xliff:g id="APP">%1$s</xliff:g> aplikazioari? (Badago kontu hori duen erabiltzaile bat)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> kontua duen erabiltzailea sortzeko baimena eman nahi diozu <xliff:g id="APP">%1$s</xliff:g> aplikazioari?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Gehitu hizkuntza"</string>
@@ -2021,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Murriztuen edukiontzian ezarri da <xliff:g id="PACKAGE_NAME">%1$s</xliff:g>"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pertsonala"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Lanekoa"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ezin da partekatu laneko aplikazioekin"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ezin da partekatu aplikazio pertsonalekin"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IKT administratzaileak blokeatu egin du edukia aplikazio pertsonalen eta laneko aplikazioen artean partekatzeko aukera"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Aktibatu laneko aplikazioak"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Aktibatu laneko aplikazioak, haiek eta kontaktuak atzitzeko"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ez dago aplikaziorik erabilgarri"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Ezin izan dugu aurkitu aplikaziorik"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Aktibatu laneko profila"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Grabatu edo erreproduzitu telefono-deietako audioa"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Aplikazio hau markagailu lehenetsia denean, telefono-deietako audioa grabatu edo erreproduzitzeko aukera ematen dio."</string>
 </resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index c603da3..472bd0f 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"سازمانتان این دستگاه را مدیریت می‌کند و ممکن است ترافیک شبکه را پایش کند. برای اطلاع از جزئیات، ضربه بزنید."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"سرپرست شما تنظیمات مکان را تغییر داده است"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"برای مشاهده تنظیمات مکان ضربه بزنید."</string>
+    <string name="country_detector" msgid="7023275114706088854">"کشوریاب"</string>
+    <string name="location_service" msgid="2439187616018455546">"خدمات مکان"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"سرویس اعلان حسگر"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"‏سرویس Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"دستگاهتان پاک خواهد شد"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"برنامه سرپرست سیستم را نمی‌توان استفاده کرد. دستگاه شما در این لحظه پاک می‌شود.\n\nاگر سؤالی دارید، با سرپرست سیستم سازمانتان تماس بگیرید."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> چاپ کردن را غیرفعال کرده است."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">تا <xliff:g id="NUMBER_1">%d</xliff:g> ثانیه دیگر عکس صفحه‌نمایش برای گزارش اشکال گرفته می‌شود.</item>
       <item quantity="other">تا <xliff:g id="NUMBER_1">%d</xliff:g> ثانیه دیگر عکس صفحه‌نمایش برای گزارش اشکال گرفته می‌شود.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"حالت ساکت"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"صدا خاموش است"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"صدا روشن است"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"دوباره امتحان کنید."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"اثر انگشتی ثبت نشده است."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"این دستگاه حسگر اثر انگشت ندارد."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"حسگر به‌طور موقت غیرفعال است."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"انگشت <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"چهره تأیید نشد. دوباره امتحان کنید."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"«بازگشایی با چهره» را راه‌اندازی نکرده‌اید."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"«بازگشایی با چهره» در این دستگاه پشتیبانی نمی‌شود."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"حسگر به‌طور موقت غیرفعال است."</string>
     <string name="face_name_template" msgid="3877037340223318119">"چهره <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"‏اشکال‌زدایی USB متصل شد"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"‏برای خاموش کردن اشکال‌زدایی USB ضربه بزنید"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"‏انتخاب کنید تا رفع عیب USB غیرفعال شود."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"اشکال‌زدایی بی‌سیم متصل است"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"برای خاموش کردن اشکال‌زدایی بی‌سیم ضربه بزنید"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"برای غیرفعال کردن اشکال‌زدایی بی‌سیم انتخاب کنید."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"«حالت مجموعه داده‌های تست» فعال شد"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"برای غیرفعال کردن «حالت مجموعه داده‌های تست»، بازنشانی کارخانه‌ای کنید."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"کنسول سریال فعال است"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏سرویس پیش‌نمای <xliff:g id="PACKAGENAME">%1$s</xliff:g>، که در پس‌زمینه شروع شده، در ساخت‌های آتی R اجازهٔ حین استفاده نخواهد داشت. لطفاً به go/r-bg-fgs-restriction بروید و گزارش اشکال ارسال کنید."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"میزان صدا را به بالاتر از حد توصیه شده افزایش می‌دهید؟\n\nگوش دادن به صداهای بلند برای مدت طولانی می‌تواند به شنوایی‌تان آسیب وارد کند."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"از میان‌بر دسترس‌پذیری استفاده شود؟"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"وقتی میان‌بر روشن باشد، با فشار دادن هردو دکمه صدا به‌مدت ۳ ثانیه ویژگی دسترس‌پذیری فعال می‌شود."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ویرایش میان‌برها"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"لغو"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"خاموش کردن میان‌بر"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"دسته‌بندی‌نشده"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"شما اهمیت این اعلان‌ها را تنظیم می‌کنید."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"به دلیل افراد درگیر مهم است."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"به<xliff:g id="APP">%1$s</xliff:g> اجازه می‌دهید با <xliff:g id="ACCOUNT">%2$s</xliff:g> (کاربری با این حساب درحال‌حاضر وجود دارد) کاربری جدید ایجاد کند؟"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"به <xliff:g id="APP">%1$s</xliff:g> اجازه می‌دهید با <xliff:g id="ACCOUNT">%2$s</xliff:g> کاربری جدید ایجاد کند؟"</string>
     <string name="language_selection_title" msgid="52674936078683285">"افزودن زبان"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> در سطل «محدودشده» قرار گرفت"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"شخصی"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"کاری"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"هم‌رسانی بااستفاده از «برنامه‌های کاری» امکان‌پذیر نیست"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"هم‌رسانی بااستفاده از برنامه‌های شخصی امکان‌پذیر نیست"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"سرپرست فناوری اطلاعات شما هم‌رسانی بین برنامه‌های شخصی و کاری را مسدود کرده است"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"روشن کردن «برنامه‌های کاری»"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"برای دسترسی به برنامه‌های کاری و مخاطبین، «برنامه‌های کاری» را روشن کنید"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"هیچ برنامه‌ای در دسترس نیست"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"هیچ برنامه‌ای پیدا نکردیم"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"فعال کردن نمایه کاری"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ضبط یا پخش صدا در تماس‌های تلفنی"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"به این برنامه اجازه می‌دهد وقتی به‌عنوان برنامه شماره‌گیر پیش‌فرض تنظیم شده است، در تماس‌های تلفنی صدا ضبط یا پخش کند."</string>
 </resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 5ee67d95..6aa1a9b 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organisaatiosi hallinnoi tätä laitetta ja voi tarkkailla verkkoliikennettä. Katso lisätietoja napauttamalla."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Järjestelmänvalvoja muutti sijaintiasetuksia"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Katso sijaintiasetukset napauttamalla."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Maan tunnistin"</string>
+    <string name="location_service" msgid="2439187616018455546">"Sijaintipalvelu"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Anturin ilmoituspalvelu"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight-palvelu"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Laitteen tiedot poistetaan"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Hallintasovellusta ei voi käyttää. Laitteen tiedot pyyhitään.\n\nPyydä ohjeita järjestelmänvalvojaltasi."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> on poistanut tulostuksen käytöstä."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Virheraporttiin otetaan kuvakaappaus <xliff:g id="NUMBER_1">%d</xliff:g> sekunnin kuluttua.</item>
       <item quantity="one">Virheraporttiin otetaan kuvakaappaus <xliff:g id="NUMBER_0">%d</xliff:g> sekunnin kuluttua.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Äänetön tila"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Äänet ovat POISSA KÄYTÖSTÄ"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Äänet ovat KÄYTÖSSÄ"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Yritä uudelleen."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Sormenjälkiä ei ole otettu käyttöön."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Laitteessa ei ole sormenjälkitunnistinta."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Tunnistin poistettu väliaikaisesti käytöstä."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Sormi <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Kasvoja ei voi vahvistaa. Yritä uudelleen."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Et ole määrittänyt Face Unlockia."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Tämä laite ei tue Face Unlockia."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Tunnistin poistettu väliaikaisesti käytöstä."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Kasvot <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-vianetsintä yhdistetty"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Poista USB-virheenkorjaus käytöstä napauttamalla."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Poista USB-vianetsintä käytöstä valitsemalla tämä."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Langaton virheenkorjaus yhdistetty"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Poista langaton virheenkorjaus käytöstä napauttamalla"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Poista langaton virheenkorjaus käytöstä valitsemalla tämä."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Testikehystila käytössä"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Palauta tehdasasetukset, niin voit poistaa testikehystilan käytöstä."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Sarjakonsoli käytössä"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Taustalla aloitettu etualan palvelu (<xliff:g id="PACKAGENAME">%1$s</xliff:g>) ei ole käytön aikana sallittu R:n tulevissa versioissa. Lue go/r-bg-fgs-restriction ja lähetä virheraportti."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Nostetaanko äänenvoimakkuus suositellun tason yläpuolelle?\n\nPitkäkestoinen kova äänenvoimakkuus saattaa heikentää kuuloa."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Käytetäänkö esteettömyyden pikanäppäintä?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kun pikanäppäin on käytössä, voit käynnistää esteettömyystoiminnon pitämällä molempia äänenvoimakkuuspainikkeita painettuna kolmen sekunnin ajan."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Muokkaa pikakuvakkeita"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Peruuta"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Poista pikanäppäin käytöstä"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Luokittelematon"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Voit valita näiden ilmoitusten tärkeyden."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Tämä on tärkeää siihen liittyvien ihmisten perusteella."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Saako <xliff:g id="APP">%1$s</xliff:g> luoda uuden käyttäjän (<xliff:g id="ACCOUNT">%2$s</xliff:g>) – tällä käyttäjällä on jo tili?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Saako <xliff:g id="APP">%1$s</xliff:g> luoda uuden käyttäjän (<xliff:g id="ACCOUNT">%2$s</xliff:g>)?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Lisää kieli"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> on nyt rajoitettujen ryhmässä"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Henkilökohtainen"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Työ"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ei voi jakaa työsovellusten kanssa"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ei voi jakaa henkilökohtaisten sovellusten kanssa"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT-järjestelmänvalvojasi esti jakamisen henkilökohtaisten ja työsovellusten välillä"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ota työsovellukset käyttöön"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ota työsovellukset käyttöön päästäksesi työsovelluksiin ja yhteystietoihin"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Sovelluksia ei ole käytettävissä"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Sovelluksia ei löytynyt"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ota työprofiili käyttöön"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Äänen tallentaminen tai toistaminen puheluiden aikana"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Sallii tämän sovelluksen tallentaa tai toistaa ääntä puheluiden aikana, kun sovellus on valittu oletuspuhelusovellukseksi."</string>
 </resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 7c4dd03..6f47049 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -191,10 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"L\'administrateur a libéré l\'appareil pour un usage personnel"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"L\'appareil est géré"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Votre organisation gère cet appareil et peut surveiller le trafic réseau. Touchez ici pour obtenir plus d\'information."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"Les paramètres de localisation ont été changés par votre administrateur"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"Touchez l\'écran pour voir vos paramètres de localisation."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Détecteur de pays"</string>
+    <string name="location_service" msgid="2439187616018455546">"Service de localisation"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Service de notification de capteur"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Service de crépuscule"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Le contenu de votre appareil sera effacé"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Impossible d\'utiliser l\'application d\'administration. Les données de votre appareil vont maintenant être effacées.\n\nSi vous avez des questions, communiquez avec l\'administrateur de votre organisation."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impression désactivée par <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -247,6 +249,10 @@
       <item quantity="one">Saisie d\'écran pour le rapport de bogue dans <xliff:g id="NUMBER_1">%d</xliff:g> seconde.</item>
       <item quantity="other">Saisie d\'écran pour le rapport de bogue dans <xliff:g id="NUMBER_1">%d</xliff:g> secondes.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Mode silencieux"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Le son est désactivé."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Le son est activé."</string>
@@ -433,8 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"Cette application privilégiée | système peut prendre des photos ou filmer des vidéos à l\'aide d\'un appareil photo système en tout temps. L\'application doit également posséder l\'autorisation android.permission.CAMERA"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"gérer le vibreur"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permet à l\'application de gérer le vibreur de l\'appareil."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permet à l\'application d\'accéder au mode vibration."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"appeler directement des numéros de téléphone"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"Permet à l\'application d\'appeler des numéros de téléphone sans votre intervention. Cette autorisation peut entraîner des frais ou des appels imprévus et ne permet pas à l\'application d\'appeler des numéros d\'urgence. Des applications malveillantes peuvent générer des frais en passant des appels sans votre consentement."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"accéder au service d\'appel IMS"</string>
@@ -549,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Réessayer."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Aucune empreinte digitale enregistrée."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Cet appareil ne possède pas de capteur d\'empreintes digitales."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Le capteur a été désactivé temporairement."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Doigt <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Impossible de vérifier le visage. Réessayez."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Vous n\'avez pas config. le déverr. par reconn. faciale."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Cet appar. ne prend pas en charge le déverr. par reconn. faciale."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Le capteur a été désactivé temporairement."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Visage <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1321,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Débogage USB activé"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Touchez l\'écran pour désactiver le débogage USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Sélectionnez cette option pour désactiver le débogage USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Débogage sans fil connecté"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Touchez l\'écran pour désactiver le débogage sans fil"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Sélectionnez cette option pour désactiver le débogage sans fil."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Mode Logiciel de test activé"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Effectuez une réinitialisation pour désactiver le mode Logiciel de test."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"La console série est activée"</string>
@@ -1624,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Le service de premier plan qui a démarré en arrière-plan provenant de <xliff:g id="PACKAGENAME">%1$s</xliff:g> ne disposera pas de l\'autorisation pendant l\'utilisation dans les futures versions R. Veuillez accéder à go/r-bg-fgs-restriction et envoyer un rapport de bogue."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Augmenter le volume au-dessus du niveau recommandé?\n\nL\'écoute prolongée à un volume élevé peut endommager vos facultés auditives."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utiliser le raccourci d\'accessibilité?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quand le raccourci est activé, appuyez sur les deux boutons de volume pendant trois secondes pour lancer une fonctionnalité d\'accessibilité."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Modifier les raccourcis"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuler"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Désactiver le raccourci"</string>
@@ -1848,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sans catégorie"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Vous définissez l\'importance de ces notifications."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ces notifications sont importantes en raison des participants."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Autoriser <xliff:g id="APP">%1$s</xliff:g> à créer un utilisateur <xliff:g id="ACCOUNT">%2$s</xliff:g>? (Un utilisateur est déjà associé à ce compte)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Autoriser <xliff:g id="APP">%1$s</xliff:g> à créer un profil d\'utilisateur avec le compte <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Ajouter une langue"</string>
@@ -2021,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> a été placé dans le compartiment RESTREINT"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personnel"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Bureau"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Partage impossible avec les applications professionnelles"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Partage impossible avec les applications personnelles"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Votre administrateur informatique a bloqué le partage entre vos applications personnelles et professionnelles"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Activer les applications professionnelles"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Activez les applications professionnelles pour accéder à celles-ci ainsi qu\'à vos contacts professionnels"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Aucune application disponible"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nous n\'avons trouvé aucune application"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Activer le profil professionnel"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Enregistrer ou lire du contenu audio lors des appels téléphoniques"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permet à cette application, lorsqu\'elle est définie comme composeur par défaut, d\'enregistrer ou de lire du contenu audio lors des appels téléphoniques."</string>
 </resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 9d2e267..20f0406 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Votre organisation gère cet appareil et peut surveiller le trafic réseau. Appuyez ici pour obtenir plus d\'informations."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Paramètres de localisation modifiés par l\'administrateur"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Appuyez pour afficher les paramètres de localisation."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Détecteur de pays"</string>
+    <string name="location_service" msgid="2439187616018455546">"Service de localisation"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Service de notification du capteur"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Service Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Les données de votre appareil vont être effacées"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Impossible d\'utiliser l\'application d\'administration. Les données de votre appareil vont maintenant être effacées.\n\nSi vous avez des questions, contactez l\'administrateur de votre organisation."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impression désactivée par <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Capture d\'écran pour le rapport de bug dans <xliff:g id="NUMBER_1">%d</xliff:g> seconde</item>
       <item quantity="other">Capture d\'écran pour le rapport de bug dans <xliff:g id="NUMBER_1">%d</xliff:g> secondes</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Mode silencieux"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Le son est désactivé."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Le son est activé."</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Veuillez réessayer."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Aucune empreinte digitale enregistrée."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Aucun lecteur d\'empreinte digitale n\'est installé sur cet appareil."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Capteur temporairement désactivé."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Doigt <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Impossible de valider votre visage. Réessayez."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Face Unlock n\'est pas configuré."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Face Unlock n\'est pas compatible avec cet appareil."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Capteur temporairement désactivé."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Visage <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Débogage USB activé"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Appuyez pour désactiver le débogage USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Sélectionnez cette option pour désactiver le débogage USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Débogage via Wi-Fi activé"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Appuyez pour désactiver le débogage via Wi-Fi"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Sélectionnez cette option pour désactiver le débogage via Wi-Fi."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Mode Atelier de test activé"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Rétablissez la configuration d\'usine pour désactiver le mode Atelier de test."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Console série activée"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Le service de premier plan qui a démarré en arrière-plan et provenant de <xliff:g id="PACKAGENAME">%1$s</xliff:g> ne disposera pas de l\'autorisation \"pendant l\'utilisation\" dans les futurs builds R. Veuillez accéder à go/r-bg-fgs-restriction et envoyer un rapport de bug."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Augmenter le volume au dessus du niveau recommandé ?\n\nL\'écoute prolongée à un volume élevé peut endommager vos facultés auditives."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utiliser le raccourci d\'accessibilité ?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quand le raccourci est activé, appuyez sur les deux boutons de volume pendant trois secondes pour démarrer une fonctionnalité d\'accessibilité."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Modifier les raccourcis"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuler"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Désactiver le raccourci"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sans catégorie"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Vous définissez l\'importance de ces notifications."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ces notifications sont importantes en raison des participants."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Autoriser <xliff:g id="APP">%1$s</xliff:g> à créer un profil utilisateur avec le compte <xliff:g id="ACCOUNT">%2$s</xliff:g> (un utilisateur associé à ce compte existe déjà) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Autoriser <xliff:g id="APP">%1$s</xliff:g> à créer un profil utilisateur avec le compte <xliff:g id="ACCOUNT">%2$s</xliff:g> ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Ajouter une langue"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> a été placé dans le bucket RESTRICTED"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personnel"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Professionnel"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Partage impossible avec les applications professionnelles"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Partage impossible avec les applications personnelles"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Votre administrateur informatique a bloqué le partage entre vos applications personnelles et professionnelles"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Activer les applications professionnelles"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Activez les applications professionnelles pour accéder à celles-ci ainsi qu\'à vos contacts pour le travail"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Aucune application disponible"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Aucune application détectée"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Activer le profil professionnel"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Enregistrer ou lire du contenu audio lors des appels téléphoniques"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permet à cette application d\'enregistrer ou de lire du contenu audio lors des appels téléphoniques lorsqu\'elle est définie comme clavier par défaut."</string>
 </resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 0170f16..cee03a1 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"A túa organización xestiona este dispositivo e pode controlar o tráfico de rede. Toca para obter máis detalles."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"O administrador cambiou a configuración de localización"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Toca para ver a configuración de localización."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector do país"</string>
+    <string name="location_service" msgid="2439187616018455546">"Servizo de localización"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Servizo de notificacións dos sensores"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Servizo Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Borrarase o teu dispositivo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Non se pode utilizar a aplicación de administración. Borrarase o teu dispositivo.\n\nSe tes preguntas, contacta co administrador da organización."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> desactivou a impresión."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Vaise facer unha captura de pantalla para o informe de erros en <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
       <item quantity="one">Vaise facer unha captura de pantalla para o informe de erros en <xliff:g id="NUMBER_0">%d</xliff:g> segundo.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modo de silencio"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"O son está desactivado"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"O son está activado"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Téntao de novo."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Non se rexistraron impresións dixitais."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Este dispositivo non ten sensor de impresión dixital."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Desactivouse o sensor temporalmente."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dedo <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Non se puido verificar a cara. Téntao de novo."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Non configuraches o desbloqueo facial."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Este dispositivo non admite o desbloqueo facial."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Desactivouse o sensor temporalmente."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Cara <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Depuración por USB conectada"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Toca para desactivar a depuración por USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Selecciona a opción para desactivar a depuración por USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"A depuración sen fíos está conectada"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Toca para desactivar a depuración sen fíos"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecciona para desactivar a depuración sen fíos."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Activouse o modo de axente de proba"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Restablece a configuración de fábrica para desactivar o modo de axente de proba."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"A consola de serie está activada"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Nas futuras compilacións R, o servizo en primeiro plano iniciado en segundo plano desde <xliff:g id="PACKAGENAME">%1$s</xliff:g> non terá permiso mentres estea en uso. Consulta go/r-bg-fgs-restriction e presenta un informe de erros."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Queres subir o volume máis do nivel recomendado?\n\nA reprodución de son a un volume elevado durante moito tempo pode provocar danos nos oídos."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Queres utilizar o atallo de accesibilidade?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Cando o atallo está activado, podes premer os dous botóns de volume durante 3 segundos para iniciar unha función de accesibilidade."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atallos"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactivar atallo"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sen clasificar"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ti defines a importancia destas notificacións."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"É importante polas persoas involucradas."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Queres permitir que <xliff:g id="APP">%1$s</xliff:g> cree un usuario novo con <xliff:g id="ACCOUNT">%2$s</xliff:g>? (Xa existe un usuario con esta conta)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Queres permitir que <xliff:g id="APP">%1$s</xliff:g> cree un usuario novo con <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Engadir un idioma"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> incluíuse no grupo RESTRINXIDO"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Traballo"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Non se pode compartir información coas aplicacións do traballo"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Non se pode compartir información coas aplicacións persoais"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"O teu administrador de TI bloqueou a función de compartir información entre as aplicacións persoais e as do traballo"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Activa as aplicacións do traballo"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Activa as aplicacións do traballo para acceder a elas e aos contactos do traballo"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Non hai aplicacións dispoñibles"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Non se puideron atopar aplicacións"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Activar perfil do traballo"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou reproducir audio en chamadas telefónicas"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que esta aplicación, cando está asignada como aplicación predeterminada do marcador, grave e reproduza audio en chamadas telefónicas."</string>
 </resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 8b0b374..c718124 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -191,10 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"વ્યવસ્થાપકે ડિવાઇસ વ્યક્તિગત ઉપયોગ માટે આપી દીધું છે"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"ઉપકરણ સંચાલિત છે"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"તમારી સંસ્થા આ ઉપકરણનું સંચાલન કરે છે અને નેટવર્ક ટ્રાફિફનું નિયમન કરી શકે છે. વિગતો માટે ટૅપ કરો."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"તમારા વ્યવસ્થાપક દ્વારા સ્થાન સેટિંગ બદલવામાં આવ્યાં"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"તમારા સ્થાન સેટિંગને જોવા માટે ટૅપ કરો."</string>
+    <string name="country_detector" msgid="7023275114706088854">"દેશને ઓળખાવનારી સુવિધા"</string>
+    <string name="location_service" msgid="2439187616018455546">"સ્થાન સેવા"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"સેન્સર નોટિફિકેશન સેવા"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ટ્વાઇલાઇટ સેવા"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"તમારું ઉપકરણ કાઢી નાખવામાં આવશે"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"વ્યવસ્થાપક ઍપનો ઉપયોગ કરી શકાશે નહીં. તમારું ઉપકરણ હવે કાઢી નાખવામાં આવશે.\n\nજો તમને પ્રશ્નો હોય, તો તમારી સંસ્થાના વ્યવસ્થાપકનો સંપર્ક કરો."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> દ્વારા પ્રિન્ટ કરવાનું બંધ કરાયું છે."</string>
@@ -247,6 +249,10 @@
       <item quantity="one">બગ રિપોર્ટ માટે <xliff:g id="NUMBER_1">%d</xliff:g> સેકન્ડમાં સ્ક્રીનશોટ લઈ રહ્યાં છે.</item>
       <item quantity="other">બગ રિપોર્ટ માટે <xliff:g id="NUMBER_1">%d</xliff:g> સેકન્ડમાં સ્ક્રીનશોટ લઈ રહ્યાં છે.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"સાઇલેન્ટ મોડ"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"અવાજ બંધ છે"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ધ્વનિ ચાલુ છે"</string>
@@ -433,8 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"આ વિશેષાધિકૃત | સિસ્ટમ ઍપ કોઈપણ સમયે સિસ્ટમ કૅમેરાનો ઉપયોગ કરીને ફોટા લઈ અને વીડિયો રેકોર્ડ કરી શકે છે. ઍપ દ્વારા આયોજિત કરવા માટે android.permission.CAMERAની પરવાનગી પણ જરૂરી છે"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"વાઇબ્રેશન નિયંત્રિત કરો"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"એપ્લિકેશનને વાઇબ્રેટરને નિયંત્રિત કરવાની મંજૂરી આપે છે."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ઍપને વાઇબ્રેટર સ્થિતિને ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"સીધા જ ફોન નંબર્સ પર કૉલ કરો"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"એપ્લિકેશનને તમારા હસ્તક્ષેપ વિના ફોન નંબર્સ પર કૉલ કરવાની મંજૂરી આપે છે. આ અનપેક્ષિત શુલ્ક અથવા કૉલ્સમાં પરિણમી શકે છે. નોંધો કે આ એપ્લિકેશનને કટોકટીના નંબર્સ પર કૉલ કરવાની મંજૂરી આપતું નથી. દુર્ભાવનાપૂર્ણ ઍપ્લિકેશનો તમારી પુષ્ટિ વિના કૉલ્સ કરીને તમારા પૈસા ખર્ચ કરી શકે છે."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS કૉલ સેવા ઍક્સેસ કરો"</string>
@@ -549,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ફરી પ્રયાસ કરો."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"કોઈ ફિંગરપ્રિન્ટની નોંધણી કરવામાં આવી નથી."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"આ ડિવાઇસમાં કોઈ ફિંગરપ્રિન્ટ સેન્સર નથી."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"સેન્સર હંગામી રૂપે બંધ કર્યું છે."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"આંગળી <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"ચહેરો ચકાસી શકાતો નથી. ફરી પ્રયાસ કરો."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"તમે ફેસ અનલૉકનું સેટઅપ કર્યું નથી."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"આ ડિવાઇસ પર ફેસ અનલૉક કરવાની સુવિધા નથી."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"સેન્સર હંગામી રૂપે બંધ કર્યું છે."</string>
     <string name="face_name_template" msgid="3877037340223318119">"ચહેરાનું <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1321,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB ડીબગિંગ કનેક્ટ થયું."</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB ડિબગીંગ બંધ કરવા માટે ટૅપ કરો"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ડિબગીંગને અક્ષમ કરવા માટે પસંદ કરો."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"વાયરલેસ ડિબગીંગ કનેક્ટ કરો"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"વાયરલેસ ડિબગીંગ બંધ કરવા માટે ટૅપ કરો"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"વાયરલેસ ડિબગીંગ બંધ કરવા માટે પસંદ કરો."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"ટેસ્ટ હાર્નેસ મોડ ચાલુ કર્યો"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"ટેસ્ટ હાર્નેસ મોડ બંધ કરવા માટે ફૅક્ટરી રીસેટ કરો."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"સિરીયલ કન્સોલ ચાલુ થયો"</string>
@@ -1624,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"બૅકગ્રાઉન્ડમાં શરૂ થયેલી <xliff:g id="PACKAGENAME">%1$s</xliff:g>ની ફોરગ્રાઉન્ડ સેવા પાસે ભવિષ્યની R બિલ્ડમાં ઉપયોગમાં હોય તે સમયની પરવાનગી હશે નહીં. કૃપા કરીને go/r-bg-fgs-restriction જુઓ અને ભૂલનો અહેવાલ દાખલ કરો."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ભલામણ કરેલ સ્તરની ઉપર વૉલ્યૂમ વધાર્યો?\n\nલાંબા સમય સુધી ઊંચા અવાજે સાંભળવું તમારી શ્રવણક્ષમતાને નુકસાન પહોંચાડી શકે છે."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ઍક્સેસિબિલિટી શૉર્ટકટનો ઉપયોગ કરીએ?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"જ્યારે શૉર્ટકટ ચાલુ હોય, ત્યારે બન્ને વૉલ્યૂમ બટનને 3 સેકન્ડ સુધી દબાવી રાખવાથી ઍક્સેસિબિલિટી સુવિધા શરૂ થઈ જશે."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"શૉર્ટકટમાં ફેરફાર કરો"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"રદ કરો"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"શૉર્ટકટ બંધ કરો"</string>
@@ -1848,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"અવર્ગીકૃત"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"તમે આ સૂચનાઓનું મહત્વ સેટ કર્યું છે."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"શામેલ થયેલ લોકોને કારણે આ મહત્વપૂર્ણ છે."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>ને <xliff:g id="ACCOUNT">%2$s</xliff:g> માટે એક નવા વપરાશકર્તા બનાવવાની મંજૂરી આપીએ (આ એકાઉન્ટ માટે એક વપરાશકર્તા પહેલાંથી અસ્તિત્વમાં છે) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>ને <xliff:g id="ACCOUNT">%2$s</xliff:g> માટે એક નવા વપરાશકર્તા બનાવવાની મંજૂરી આપીએ ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ભાષા ઉમેરો"</string>
@@ -2021,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ને પ્રતિબંધિત સમૂહમાં મૂકવામાં આવ્યું છે"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"વ્યક્તિગત"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"કાર્યાલય"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ઑફિસ માટેની ઍપની સાથે શેર કરી શકતાં નથી"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"વ્યક્તિગત ઍપની સાથે શેર કરી શકતાં નથી"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"તમારા IT વ્યવસ્થાપકે વ્યક્તિગત અને ઑફિસ માટેની ઍપ વચ્ચે શેરિંગની સુવિધાને બ્લૉક કરી છે"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"ઑફિસ માટેની ઍપ ચાલુ કરો"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"ઑફિસ માટેની ઍપ અને સંપર્કોને ઍક્સેસ કરવા માટે ઑફિસ માટેની ઍપ ચાલુ કરો"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"કોઈ ઍપ ઉપલબ્ધ નથી"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"અમે કોઈપણ ઍપ શોધી શક્યાં નથી"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"ઑફિસ માટેની પ્રોફાઇલ પર સ્વિચ કરો"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ટેલિફોની કૉલમાં ઑડિયો રેકૉર્ડ કરો અથવા ચલાવો"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ડિફૉલ્ટ ડાયલર ઍપ તરીકે સોંપણી કરવામાં આવવા પર આ ઍપને ટેલિફોની કૉલમાં ઑડિયો રેકૉર્ડ કરવાની અથવા ચલાવવાની મંજૂરી આપે છે."</string>
 </resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 989cb15..eab79c0 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -195,6 +195,14 @@
     <skip />
     <!-- no translation found for location_changed_notification_text (198907268219396399) -->
     <skip />
+    <!-- no translation found for country_detector (7023275114706088854) -->
+    <skip />
+    <!-- no translation found for location_service (2439187616018455546) -->
+    <skip />
+    <!-- no translation found for sensor_notification_service (7474531979178682676) -->
+    <skip />
+    <!-- no translation found for twilight_service (8964898045693187224) -->
+    <skip />
     <string name="factory_reset_warning" msgid="6858705527798047809">"आपके डिवाइस को मिटा दिया जाएगा"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"एडमिन ऐप्लिकेशन का इस्तेमाल नहीं किया जा सकता. आपके डिवाइस पर मौजूद डेटा अब मिटा दिया जाएगा.\n\nअगर आप कुछ पूछना चाहते हैं तो, अपने संगठन के एडमिन से संपर्क करें."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ने प्रिंटिंग सुविधा बंद कर दी है."</string>
@@ -247,6 +255,10 @@
       <item quantity="one">गड़बड़ी की रिपोर्ट के लिए <xliff:g id="NUMBER_1">%d</xliff:g> सेकंड में स्‍क्रीनशॉट लिया जा रहा है.</item>
       <item quantity="other">गड़बड़ी की रिपोर्ट के लिए <xliff:g id="NUMBER_1">%d</xliff:g> सेकंड में स्‍क्रीनशॉट लिया जा रहा है.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"साइलेंट मोड (खामोश)"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ध्‍वनि बंद है"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ध्‍वनि चालू है"</string>
@@ -549,8 +561,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"फिर से प्रयास करें."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"कोई फ़िंगरप्रिंट रजिस्टर नहीं किया गया है."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"इस डिवाइस में फ़िंगरप्रिंट सेंसर नहीं है."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"सेंसर कुछ समय के लिए बंद कर दिया गया है."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"फ़िंगरप्रिंट <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +605,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"चेहरा नहीं पहचान पा रहे. फिर से कोशिश करें."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"आपने \'मालिक का चेहरा पहचानकर अनलॉक\' सेट नहीं की है."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"इस डिवाइस पर \'मालिक का चेहरा पहचानकर अनलॉक\' काम नहीं करती है."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"सेंसर कुछ समय के लिए बंद कर दिया गया है."</string>
     <string name="face_name_template" msgid="3877037340223318119">"चेहरा <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1321,6 +1331,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"यूएसबी डीबग करने के लिए एडीबी कनेक्ट किया गया"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"यूएसबी को डीबग करने की सुविधा बंद करने के लिए टैप करें"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB डीबग करना अक्षम करने के लिए चुनें."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"वायरलेस तरीके से डीबग करने की सुविधा फ़ोन से कनेक्ट है"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"वायरलेस तरीके से डीबग करने की सुविधा बंद करने के लिए टैप करें"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"वायरलेस तरीके से डीबग करने की सुविधा बंद करने के लिए चुनें."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"टेस्ट हार्नेस मोड चालू किया गया"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"टेस्ट हार्नेस मोड बंद करने के लिए फ़ैक्ट्री रीसेट करें."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"सीरियल कंसोल को चालू करें"</string>
@@ -1624,8 +1637,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g>से बैकग्राउंड में शुरू की गई फ़ॉरग्राउंड सेवा के लिए, भविष्य के R बिल्ड में \'इस्तेमाल के समय अनुमति दें\' की सुविधा नहीं होगी. कृपया go/r-bg-fgs-restriction देखें और गड़बड़ी की शिकायत करें."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"वॉल्यूम को सुझाए गए स्तर से ऊपर बढ़ाएं?\n\nअत्यधिक वॉल्यूम पर ज़्यादा समय तक सुनने से आपकी सुनने की क्षमता को नुकसान हो सकता है."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"सुलभता शॉर्टकट का इस्तेमाल करना चाहते हैं?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"शॉर्टकट के चालू होने पर, दाेनाें वॉल्यूम बटन (आवाज़ कम या ज़्यादा करने वाले बटन) को तीन सेकंड तक दबाने से, सुलभता सुविधा शुरू हाे जाएगी."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"शॉर्टकट में बदलाव करें"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"अभी नहीं"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"शॉर्टकट बंद करें"</string>
@@ -1848,6 +1860,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"बिना किसी श्रेणी के"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"आपने इन सूचनाओं की अहमियत सेट की है."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"यह मौजूद व्यक्तियों के कारण महत्वपूर्ण है."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> को <xliff:g id="ACCOUNT">%2$s</xliff:g> के नाम से एक नया उपयोगकर्ता बनाने की अनुमति दें (इस नाम से एक खाता पहले से मौजूद है)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"भाषा जोड़ें"</string>
@@ -2021,20 +2035,16 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> को प्रतिबंधित बकेट में रखा गया है"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"निजी प्रोफ़ाइल"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"वर्क प्रोफ़ाइल"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ऑफ़िस के काम से जुड़े ऐप्लिकेशन के साथ चीज़ें शेयर नहीं की जा सकतीं"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"निजी ऐप्लिकेशन के साथ कुछ शेयर नहीं किया जा सकता"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"आपके आईटी एडमिन ने निजी ऐप्लिकेशन और ऑफ़िस के काम से जुड़े ऐप्लिकेशन के बीच कुछ शेयर करने की सुविधा पर रोक लगा दी है"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"ऑफ़िस के काम से जुड़े ऐप्लिकेशन चालू करें"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"ऑफ़िस के काम से जुड़े ऐप्लिकेशन और संपर्क ऐक्सेस करने के लिए, इन ऐप्लिकेशन को चालू करें"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"कोई ऐप्लिकेशन उपलब्ध नहीं है"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"हमें कोई ऐप्लिकेशन नहीं मिला"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"वर्क प्रोफ़ाइल को चालू करें"</string>
+    <!-- no translation found for permlab_accessCallAudio (1682957511874097664) -->
     <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
+    <!-- no translation found for permdesc_accessCallAudio (8448360894684277823) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index cd8eae5..5b7ec23 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -195,6 +195,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Vaša organizacija upravlja ovim uređajem i može nadzirati mrežni promet. Dodirnite za pojedinosti."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Postavke lokacije koje je promijenio administrator"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Dodirnite da biste vidjeli svoje postavke lokacije."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detektor zemlje"</string>
+    <string name="location_service" msgid="2439187616018455546">"Usluga lokacije"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Usluga Obavijesti senzora"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Usluga Sumrak"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će se izbrisati"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratorska aplikacija ne može se upotrebljavati. Uređaj će se izbrisati.\n\nAko imate pitanja, obratite se administratoru organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Ispis je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -248,6 +252,10 @@
       <item quantity="few">Izrada snimke zaslona za izvješće o programskoj pogrešci za <xliff:g id="NUMBER_1">%d</xliff:g> sekunde.</item>
       <item quantity="other">Izrada snimke zaslona za izvješće o programskoj pogrešci za <xliff:g id="NUMBER_1">%d</xliff:g> sekundi.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Bešumni način"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Zvuk je isključen"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Zvuk je uključen"</string>
@@ -549,8 +557,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Pokušajte ponovo."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nije registriran nijedan otisak prsta."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Ovaj uređaj nema senzor otiska prsta."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Senzor je privremeno onemogućen."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Prst <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +601,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Lice nije potvrđeno. Pokušajte ponovo."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Niste postavili otključavanje licem"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Otključavanje licem nije podržano na ovom uređaju."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Senzor je privremeno onemogućen."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Lice <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1338,6 +1344,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Priključen je alat za otklanjanje pogrešaka putem USB-a"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Dodirnite da isključite otklanjanje pogrešaka putem USB-a"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Odaberite da biste onemogućili rješavanje programske pogreške na USB-u."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Bežično otklanjanje pogrešaka povezano"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Dodirnite da biste isključili bežično otklanjanje pogrešaka"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Odaberite da biste onemogućili bežično otklanjanje pogrešaka."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Omogućen je način testnog okvira"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Vratite na tvorničke postavke da biste onemogućili način testnog okvira."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serijska konzola omogućena"</string>
@@ -1643,8 +1652,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Usluga u prednjem planu s <xliff:g id="PACKAGENAME">%1$s</xliff:g> pokrenuta u pozadini neće imati dopuštenje tijekom upotrebe u budućim R kompilacijama. Pogledajte go/r-bg-fgs-restriction i pošaljite izvješće o programskoj pogrešci."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite li pojačati zvuk iznad preporučene razine?\n\nDugotrajno slušanje glasne glazbe može vam oštetiti sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li upotrebljavati prečac za pristupačnost?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kad je taj prečac uključen, pritiskom na obje tipke za glasnoću na tri sekunde pokrenut će se značajka pristupačnosti."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Uredi prečace"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Otkaži"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Isključi prečac"</string>
@@ -1877,6 +1885,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Nema kategorije"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Postavili ste važnost tih obavijesti."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Važno je zbog uključenih osoba."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Dopustiti aplikaciji <xliff:g id="APP">%1$s</xliff:g> da izradi novog korisnika s računom <xliff:g id="ACCOUNT">%2$s</xliff:g> (korisnik s ovim računom već postoji)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Dopustiti aplikaciji <xliff:g id="APP">%1$s</xliff:g> da izradi novog korisnika s računom <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Dodavanje jezika"</string>
@@ -2052,20 +2062,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> premješten je u spremnik OGRANIČENO"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobno"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Posao"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Dijeljenje s poslovnim aplikacijama nije moguće"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Dijeljenje s osobnim aplikacijama nije moguće"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Vaš IT administrator blokirao je dijeljenje između osobnih i poslovnih aplikacija"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Uključite poslovne aplikacije"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Uključite poslovne aplikacije da biste pristupili poslovnim aplikacijama i kontaktima"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Aplikacije nisu dostupne"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nismo pronašli nijednu aplikaciju"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Prebaci na poslovni profil"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snimanje ili reprodukcija zvuka u telefonskim pozivima"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Kad je ova aplikacija postavljena kao zadana aplikacija za biranje, omogućuje joj snimanje ili reprodukciju zvuka u telefonskim pozivima."</string>
 </resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index bb1ad32..a474ac7 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Ezt az eszközt szervezete kezeli, és lehetséges, hogy a hálózati forgalmat is figyelik. További részletekért koppintson."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"A helybeállításokat módosította a adminisztrátora"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Koppintson a helybeállítások megtekintéséhez."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Országfelismerő"</string>
+    <string name="location_service" msgid="2439187616018455546">"Helyszolgáltatás"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Szenzoros értesítési szolgáltatás"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight szolgáltatás"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"A rendszer törölni fogja eszközét"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"A rendszergazdai alkalmazás nem használható. A rendszer most törli az eszközt.\n\nKérdéseivel forduljon szervezete rendszergazdájához."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"A(z) <xliff:g id="OWNER_APP">%s</xliff:g> letiltotta a nyomtatást."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Képernyőkép készítése a hibajelentéshez <xliff:g id="NUMBER_1">%d</xliff:g> másodpercen belül.</item>
       <item quantity="one">Képernyőkép készítése a hibajelentéshez <xliff:g id="NUMBER_0">%d</xliff:g> másodpercen belül.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Néma üzemmód"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Hang kikapcsolva"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Hang bekapcsolva"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Próbálkozzon újra."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nincsenek regisztrált ujjlenyomatok."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Ez az eszköz nem rendelkezik ujjlenyomat-érzékelővel."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Az érzékelő átmenetileg le van tiltva."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g>. ujj"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nem sikerült ellenőrizni az arcát. Próbálja újra."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Nem állította be az arcalapú feloldást."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Az eszköz nem támogatja az arcalapú feloldást"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Az érzékelő átmenetileg le van tiltva."</string>
     <string name="face_name_template" msgid="3877037340223318119">"<xliff:g id="FACEID">%d</xliff:g> arc"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-hibakereső csatlakoztatva"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Koppintson az USB-hibakeresés kikapcsolásához"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Válassza ezt az USB hibakeresés kikapcsolásához."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Vezeték nélküli hibakereső csatlakoztatva"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Koppintson a vezeték nélküli hibakeresés kikapcsolásához"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Válassza ezt a vezeték nélküli hibakeresés letiltásához."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Tesztelési alapkörnyezet mód engedélyezve"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"A Tesztelési alapkörnyezet mód kikapcsolásához állítsa vissza a gyári beállításokat."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Soros konzol engedélyezve"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"A háttér által indított előtérben futó szolgáltatás (innen: <xliff:g id="PACKAGENAME">%1$s</xliff:g>) nem tartalmaz majd használat közbeni engedélyt a jövőbeli R buildekben. Kérjük, keresse fel a go/r-bg-fgs-restriction webhelyet, és jelentse a hibát."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Az ajánlott szint fölé szeretné emelni a hangerőt?\n\nHa hosszú időn át teszi ki magát nagy hangerőnek, azzal károsíthatja a hallását."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Szeretné használni a Kisegítő lehetőségek billentyűparancsot?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Ha a gyorsparancs aktív, akkor a két hangerőgomb három másodpercig tartó együttes lenyomásával kisegítő funkciót indíthat el."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Gyorsparancsszerkesztés"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Mégse"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Billentyűparancs kikapcsolása"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Nincs kategóriába sorolva"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ön állította be ezen értesítések fontossági szintjét."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ez az üzenet a résztvevők miatt fontos."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Engedélyezi a(z) <xliff:g id="APP">%1$s</xliff:g> számára, hogy új felhasználót hozzon létre a(z) <xliff:g id="ACCOUNT">%2$s</xliff:g> fiókkal? (Már létezik felhasználó ezzel a fiókkal.)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Engedélyezi a(z) <xliff:g id="APP">%1$s</xliff:g> számára, hogy új felhasználót hozzon létre a(z) <xliff:g id="ACCOUNT">%2$s</xliff:g> fiókkal?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Nyelv hozzáadása"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"A következő csomag a KORLÁTOZOTT csoportba került: <xliff:g id="PACKAGE_NAME">%1$s</xliff:g>"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Személyes"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Munka"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nem lehetséges a munkahelyi alkalmazásokkal való megosztás"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nem lehetséges a személyes alkalmazásokkal való megosztás"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Rendszergazdája letiltotta a személyes és a munkahelyi alkalmazások közti megosztást"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Kapcsolja be a munkahelyi alkalmazásokat"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Kapcsolja be a munkahelyi alkalmazásokat a munkahelyi alkalmazásokhoz és a névjegyekhez való hozzáférés érdekében"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nem áll rendelkezésre alkalmazás"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nem találtunk egy alkalmazást sem"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Munkaprofil bekapcsolása"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Audiotartalmak felvétele és lejátszása telefonhívások közben"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Lehetővé teszi ennek az alkalmazásnak audiotartalmak felvételét és lejátszását telefonhívások közben, amennyiben az alkalmazás alapértelmezett tárcsázóalkalmazásként van kijelölve."</string>
 </resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index aabfc80..80b7985 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Ձեր կազմակերպությունը կառավարում է այս սարքը և կարող է վերահսկել ցանցի թրաֆիկը: Հպեք՝ մանրամասները դիտելու համար:"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Տեղադրության կարգավորումները փոփոխվել են ձեր ադմինիստրատորի կողմից։"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Հպեք՝ ձեր տեղադրության կարգավորումները տեսնելու համար։"</string>
+    <string name="country_detector" msgid="7023275114706088854">"Երկրի որոշում"</string>
+    <string name="location_service" msgid="2439187616018455546">"Տեղորոշման ծառայություն"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Տվիչների ծանուցումների մշակման ծառայություն"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Մթնշաղի սկիզբը որոշող ծառայություն"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Ձեր սարքը ջնջվելու է"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Հնարավոր չէ օգտագործել ադմինիստրատորի հավելվածը։ Ձեր սարքից բոլոր տվյալները կջնջվեն։\n\nՀարցեր ունենալու դեպքում դիմեք ձեր կազմակերպության ադմինիստրատորին։"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Տպումն անջատված է <xliff:g id="OWNER_APP">%s</xliff:g> հավելվածի կողմից։"</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Սքրինշոթը կարվի <xliff:g id="NUMBER_1">%d</xliff:g> վայրկյանից:</item>
       <item quantity="other">Սքրինշոթը կարվի <xliff:g id="NUMBER_1">%d</xliff:g> վայրկյանից:</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Անձայն ռեժիմ"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Ձայնը անջատված է"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Ձայնը միացված է"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Փորձեք նորից:"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Գրանցված մատնահետք չկա:"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Այս սարքը չունի մատնահետքերի սկաներ։"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Տվիչը ժամանակավորապես անջատված է:"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Մատնահետք <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Չհաջողվեց հաստատել դեմքը։ Նորից փորձեք։"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Դուք չեք կարգավորել դեմքով ապակողպումը:"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Դեմքով ապակողպումն այս սարքում չի աջակցվում"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Տվիչը ժամանակավորապես անջատված է:"</string>
     <string name="face_name_template" msgid="3877037340223318119">"Դեմք <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-ով վրիպազերծումը միացված է"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Հպեք՝ USB-ով վրիպազերծումն անջատելու համար"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Սեղմեք՝ USB-ով վրիպազերծումն անջատելու համար:"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Անլար վրիպազերծումը միացված է"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Հպեք՝ անլար վրիպազերծումն անջատելու համար"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Սեղմեք՝ անլար վրիպազերծումն անջատելու համար:"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Թեստային ռեժիմը միացված է"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Թեստային ռեժիմն անջատելու համար զրոյացրեք կարգավորումները։"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Սերիական վահանակը միացված է"</string>
@@ -1542,7 +1551,7 @@
     <string name="activity_chooser_view_dialog_title_default" msgid="8880731437191978314">"Ընտրել գործունեությունը"</string>
     <string name="share_action_provider_share_with" msgid="1904096863622941880">"Կիսվել"</string>
     <string name="sending" msgid="206925243621664438">"Ուղարկվում է..."</string>
-    <string name="launchBrowserDefault" msgid="6328349989932924119">"Գործարկե՞լ զննարկիչը:"</string>
+    <string name="launchBrowserDefault" msgid="6328349989932924119">"Գործարկե՞լ դիտարկիչը:"</string>
     <string name="SetupCallDefault" msgid="5581740063237175247">"Ընդունե՞լ զանգը:"</string>
     <string name="activity_resolver_use_always" msgid="5575222334666843269">"Միշտ"</string>
     <string name="activity_resolver_set_always" msgid="4142825808921411476">"Միշտ բացել"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Ֆոնային ռեժիմում <xliff:g id="PACKAGENAME">%1$s</xliff:g>-ից գործարկված առաջին պլանի ծառայությունը հետագա R կառուցումներում թույլտվություն չի ունենա օգտագործման ընթացքում։ Անցեք go/r-bg-fgs-restriction էջ և հաղորդեք վրիպակի մասին։"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ձայնը բարձրացնե՞լ խորհուրդ տրվող մակարդակից ավել:\n\nԵրկարատև բարձրաձայն լսելը կարող է վնասել ձեր լսողությունը:"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Օգտագործե՞լ Մատչելիության դյուրանցումը։"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Հատուկ գործառույթն օգտագործելու համար սեղմեք և 3 վայրկյան սեղմած պահեք ձայնի ուժգնության երկու կոճակները, երբ գործառույթը միացված է:"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Փոփոխել դյուրանցումները"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Չեղարկել"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Անջատել դյուրանցումը"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Չդասակարգված"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Դուք սահմանել եք այս ծանուցումների կարևորությունը:"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Կարևոր է, քանի որ որոշակի մարդիկ են ներգրավված:"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Թույլատրե՞լ <xliff:g id="APP">%1$s</xliff:g> հավելվածին <xliff:g id="ACCOUNT">%2$s</xliff:g> հաշվով նոր Օգտատեր ստեղծել (նման հաշվով Օգտատեր արդեն գոյություն ունի):"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Թույլատրե՞լ <xliff:g id="APP">%1$s</xliff:g> հավելվածին <xliff:g id="ACCOUNT">%2$s</xliff:g> հաշվով նոր Օգտատեր ստեղծել:"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Ավելացնել լեզու"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> փաթեթը գցվեց ՍԱՀՄԱՆԱՓԱԿՎԱԾ զամբյուղի մեջ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Անձնական"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Աշխատանքային"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Հնարավոր չէ կիսվել աշխատանքային հավելվածների հետ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Հնարավոր չէ կիսվել անձնական հավելվածների հետ"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Ձեր ՏՏ ադմինիստրատորն արգելափակել է աշխատանքային և անձնական հավելվածների միջև տվյալների փոխանակումը։"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Միացրեք աշխատանքային հավելվածները"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Միացրեք աշխատանքային հավելվածները, որպեսզի կարողանաք օգտագործել աշխատանքային տվյալները (հավելվածներն ու կոնտակտները)"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Հասանելի հավելվածներ չկան"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Չհաջողվեց գտնել հավելվածներ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Անցնել աշխատանքային հաշվին"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Հեռախոսային զանգերի ձայնագրում և նվագարկում"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Եթե այս հավելվածն ըստ կանխադրման օգտագործվում է զանգերի համար, այն կարող է ձայնագրել և նվագարկել հեռախոսային խոսակցությունները։"</string>
 </resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 7963ba7..d45370a 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organisasi mengelola perangkat ini dan mungkin memantau traffic jaringan. Ketuk untuk melihat detailnya."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Setelan lokasi diubah oleh admin Anda"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Ketuk untuk melihat setelan lokasi Anda."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Pendeteksi Negara"</string>
+    <string name="location_service" msgid="2439187616018455546">"Layanan Lokasi"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Layanan Notifikasi Sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Layanan Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Perangkat akan dihapus"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplikasi admin tidak dapat digunakan. Perangkat Anda kini akan dihapus.\n\nJika ada pertanyaan, hubungi admin organisasi."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Fitur pencetakan dinonaktifkan oleh <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Mengambil screenshot untuk laporan bug dalam <xliff:g id="NUMBER_1">%d</xliff:g> detik.</item>
       <item quantity="one">Mengambil screenshot untuk laporan bug dalam <xliff:g id="NUMBER_0">%d</xliff:g> detik.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Mode senyap"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Suara MATI"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Suara AKTIF"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Coba lagi."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Tidak ada sidik jari yang terdaftar."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Perangkat ini tidak memiliki sensor sidik jari."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensor dinonaktifkan untuk sementara."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Jari <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Tidak dapat memverifikasi wajah. Coba lagi."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Anda belum menyiapkan face unlock."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Face unlock tidak didukung di perangkat ini."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensor dinonaktifkan untuk sementara."</string>
     <string name="face_name_template" msgid="3877037340223318119">"<xliff:g id="FACEID">%d</xliff:g> wajah"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Proses debug USB terhubung"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Ketuk untuk menonaktifkan proses debug USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Pilih untuk menonaktifkan debugging USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Proses debug nirkabel terhubung"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Ketuk untuk menonaktifkan proses debug nirkabel."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Pilih untuk menonaktifkan proses debug nirkabel."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Mode Tes Otomatis diaktifkan"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Lakukan reset ke setelan pabrik untuk menonaktifkan Mode Tes Otomatis."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Konsol serial diaktifkan"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Layanan latar depan yang dimulai oleh latar belakang dari <xliff:g id="PACKAGENAME">%1$s</xliff:g> tidak akan memiliki izin saat-sedang-digunakan pada build R masa mendatang Lihat go/r-bg-fgs-restriction dan kirim laporan bug."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Mengeraskan volume di atas tingkat yang disarankan?\n\nMendengarkan dengan volume keras dalam waktu yang lama dapat merusak pendengaran Anda."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gunakan Pintasan Aksesibilitas?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Saat pintasan aktif, menekan kedua tombol volume selama 3 detik akan memulai fitur aksesibilitas."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit pintasan"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Batal"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Nonaktifkan Pintasan"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Belum dikategorikan"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Anda menyetel nilai penting notifikasi ini."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ini penting karena orang-orang yang terlibat."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Izinkan <xliff:g id="APP">%1$s</xliff:g> membuat Pengguna baru dengan <xliff:g id="ACCOUNT">%2$s</xliff:g> (Pengguna dengan akun ini sudah ada) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Izinkan <xliff:g id="APP">%1$s</xliff:g> membuat Pengguna baru dengan <xliff:g id="ACCOUNT">%2$s</xliff:g> ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Tambahkan bahasa"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> telah dimasukkan ke dalam bucket DIBATASI"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pribadi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Kerja"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Tidak dapat membagikan ke aplikasi kerja"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Tidak dapat membagikan ke aplikasi pribadi"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Admin IT memblokir berbagi antara aplikasi kerja dan pribadi"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Aktifkan aplikasi kerja"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Aktifkan aplikasi kerja untuk mengakses aplikasi kerja &amp; kontak"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Tidak ada aplikasi yang tersedia"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Kami tidak menemukan aplikasi"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Aktifkan profil kerja"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Rekam atau putar audio dalam panggilan telepon"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Mengizinkan aplikasi ini, saat ditetapkan sebagai aplikasi telepon default, untuk merekam atau memutar audio dalam panggilan telepon."</string>
 </resources>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index b128e53..342f6f2 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Fyrirtækið þitt stjórnar þessu tæki og kann að fylgjast með netnotkun. Ýttu hér til að fá upplýsingar."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Stjórnandi breytti staðsetningarstillingum"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Ýttu til að sjá staðsetningarstillingar."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Landsgreining"</string>
+    <string name="location_service" msgid="2439187616018455546">"Staðsetningarþjónusta"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Tilkynningaþjónusta nema"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Ljósaskiptaþjónusta"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Tækið verður hreinsað"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Ekki er hægt að nota stjórnunarforritið. Tækinu verður eytt.\n\nEf spurningar vakna skaltu hafa samband við kerfisstjóra fyrirtækisins."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> lokaði á prentun."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Tekur skjámynd fyrir villutilkynningu eftir <xliff:g id="NUMBER_1">%d</xliff:g> sekúndu.</item>
       <item quantity="other">Tekur skjámynd fyrir villutilkynningu eftir <xliff:g id="NUMBER_1">%d</xliff:g> sekúndur.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Hljóðlaus stilling"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"SLÖKKT er á hljóði"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"KVEIKT er á hljóði"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Reyndu aftur."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Engin fingraför hafa verið skráð."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Þetta tæki er ekki með fingrafaralesara."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Slökkt tímabundið á skynjara."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Fingur <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Ekki tókst að staðfesta andlit. Reyndu aftur."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Þú hefur ekki sett upp andlitsopnun."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Andlitsopnun er ekki studd í þessu tæki."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Slökkt tímabundið á skynjara."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Andlit <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-villuleit tengd"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Ýttu til að slökkva á USB-villuleit"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Veldu til að gera USB-villuleit óvirka."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Þráðlaus villuleit tengd"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Ýttu til að slökkva á þráðlausri villuleit"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Veldu til að slökkva á þráðlausri villuleit."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Kveikt á stillingu prófunarvangs"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Núllstilltu til að slökkva á stillingu prófunarvangs."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Raðstjórnborð virkjað"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Forgrunnsþjónusta frá <xliff:g id="PACKAGENAME">%1$s</xliff:g> sem er ræst úr bakgrunni mun ekki hafa heimild við notkun í framtíðarútgáfum R. Farðu á go/r-bg-fgs-restriction og gefðu villuskýrslu."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Hækka hljóðstyrk umfram ráðlagðan styrk?\n\nEf hlustað er á háum hljóðstyrk í langan tíma kann það að skaða heyrnina."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Viltu nota aðgengisflýtileið?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Þegar flýtileiðin er virk er kveikt á aðgengiseiginleikanum með því að halda báðum hljóðstyrkshnöppunum inni í þrjár sekúndur."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Breyta flýtileiðum"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Hætta við"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Slökkva á flýtileið"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Óflokkað"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Þú stilltir mikilvægi þessara tilkynninga."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Þetta er mikilvægt vegna fólksins sem tekur þátt í þessu."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Viltu leyfa <xliff:g id="APP">%1$s</xliff:g> að stofna nýjan notanda með <xliff:g id="ACCOUNT">%2$s</xliff:g> (notandi með þennan reikning er þegar fyrir hendi)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Leyfa <xliff:g id="APP">%1$s</xliff:g> að stofna nýjan notanda með <xliff:g id="ACCOUNT">%2$s</xliff:g> ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Bæta við tungumáli"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> var sett í flokkinn TAKMARKAÐ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persónulegt"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Vinna"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ekki er hægt að deila með vinnuforritum"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ekki er hægt að deila með persónulegum forritum"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Kerfisstjórinn þinn hefur lokað á deilingu milli persónulegra forrita og vinnuforrita"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Kveikja á vinnuforritum"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Kveiktu á vinnuforritum til að fá aðgang að þeim og vinnutengiliðum"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Engin forrit í boði"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Við fundum engin forrit"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Skipta yfir í vinnu"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Taka upp eða spila hljóð í símtölum"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Gerir þessu forriti kleift að taka upp og spila hljóð í símtölum þegar það er valið sem sjálfgefið hringiforrit."</string>
 </resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index b8515df..783e45e 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Questo dispositivo è gestito dalla tua organizzazione, che potrebbe monitorare il traffico di rete. Tocca per i dettagli."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Impostazioni di geolocalizzazione modificate dal tuo amministratore"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tocca per vedere le tue impostazioni di geolocalizzazione."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Rilevatore paese"</string>
+    <string name="location_service" msgid="2439187616018455546">"Servizio di geolocalizzazione"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Servizio di notifica dei sensori"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Servizio Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Il dispositivo verrà resettato"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Impossibile usare l\'app di amministrazione. Il dispositivo verrà resettato.\n\nPer eventuali domande, contatta l\'amministratore della tua organizzazione."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Stampa disattivata da <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Lo screenshot per la segnalazione di bug verrà acquisito tra <xliff:g id="NUMBER_1">%d</xliff:g> secondi.</item>
       <item quantity="one">Lo screenshot per la segnalazione di bug verrà acquisito tra <xliff:g id="NUMBER_0">%d</xliff:g> secondo.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modalità silenziosa"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Audio non attivo"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Audio attivo"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Riprova."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nessuna impronta digitale registrata."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Questo dispositivo non dispone di sensore di impronte."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensore temporaneamente disattivato."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dito <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Impossibile verificare il volto. Riprova."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Non hai configurato Sblocco con il volto."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Sblocco con il volto non supportato su questo dispositivo."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensore temporaneamente disattivato."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Volto <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Debug USB collegato"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tocca per disattivare il debug USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Seleziona per disattivare il debug USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Debug wireless connesso"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tocca per disattivare il debug wireless"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Seleziona per disattivare il debug wireless."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Modalità test harness attivata"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Ripristina le impostazioni di fabbrica per disattivare la modalità test harness."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Console seriale attivata"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Il servizio in primo piano avviato in background da <xliff:g id="PACKAGENAME">%1$s</xliff:g> non avrà l\'autorizzazione \"durante l\'uso\" nelle future build R. Visita la pagina go/r-bg-fgs-restriction e invia una segnalazione di bug."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vuoi aumentare il volume oltre il livello consigliato?\n\nL\'ascolto ad alto volume per lunghi periodi di tempo potrebbe danneggiare l\'udito."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usare la scorciatoia Accessibilità?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando la scorciatoia è attiva, puoi premere entrambi i pulsanti del volume per tre secondi per avviare una funzione di accessibilità."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Modifica scorciatoie"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annulla"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Disattiva scorciatoia"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Senza categoria"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Stabilisci tu l\'importanza di queste notifiche."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Importante a causa delle persone coinvolte."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Consentire a <xliff:g id="APP">%1$s</xliff:g> di creare un nuovo utente con l\'account <xliff:g id="ACCOUNT">%2$s</xliff:g> (esiste già un utente con questo account)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Consentire a <xliff:g id="APP">%1$s</xliff:g> di creare un nuovo utente con l\'account <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Aggiungi una lingua"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> è stato inserito nel bucket RESTRICTED"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personale"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Lavoro"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Impossibile condividere con app di lavoro"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Impossibile condividere con app personali"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Il tuo amministratore IT ha bloccato la condivisione tra app personali e di lavoro"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Attiva app di lavoro"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Attiva le app di lavoro per accedere alle app e ai contatti di lavoro"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nessuna app disponibile"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nessuna app trovata"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Attiva profilo di lavoro"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Registrazione o riproduzione dell\'audio delle telefonate"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Consente a questa app, se assegnata come applicazione telefono predefinita, di registrare o riprodurre l\'audio delle telefonate."</string>
 </resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 4886b4a..b2b5657 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"הארגון שלך מנהל מכשיר זה ועשוי לנטר את התנועה ברשת. הקש לקבלת פרטים."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"מנהל המערכת שינה את הגדרות המיקום"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"יש להקיש כדי לראות את הגדרות המיקום שלך."</string>
+    <string name="country_detector" msgid="7023275114706088854">"גלאי מדינה"</string>
+    <string name="location_service" msgid="2439187616018455546">"שירות מיקום"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"שירות להתראות מחיישנים"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"שירות דמדומים"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"תתבצע מחיקה של המכשיר"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"לא ניתן להשתמש באפליקציה של מנהל המערכת.\n\nאם יש לך שאלות, יש ליצור קשר עם מנהל המערכת של הארגון."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ההדפסה הושבתה על ידי <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -251,6 +255,10 @@
       <item quantity="other">יוצר צילום מסך לדוח על באג בעוד <xliff:g id="NUMBER_1">%d</xliff:g> שניות.</item>
       <item quantity="one">יוצר צילום מסך לדוח על באג בעוד שנייה <xliff:g id="NUMBER_0">%d</xliff:g>.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"מצב שקט"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"הקול כבוי"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"קול מופעל"</string>
@@ -437,7 +445,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"‏לאפליקציית המערכת | הזו יש הרשאות מיוחדות והיא יכולה לצלם תמונות ולהקליט סרטונים באמצעות מצלמת מערכת בכל זמן. בנוסף, לאפליקציה נדרשת ההרשאה android.permission.CAMERA"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"שליטה ברטט"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"מאפשר לאפליקציה לשלוט ברטט."</string>
-    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"מאפשרת לאפליקציה לקבל גישה למצב הרטט."</string>
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"מאפשרת לאפליקציה לקבל גישה למצב רטט."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"התקשר ישירות למספרי טלפון"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"מאפשר לאפליקציה להתקשר למספרי טלפון ללא התערבותך. פעולה זו עשויה לגרום לשיחות או לחיובים לא צפויים. שים לב שהדבר לא מאפשר לאפליקציה להתקשר למספרי חירום. אפליקציות זדוניות עשויות לגרום לעלויות על ידי ביצוע שיחות ללא התערבותך."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"‏גישה אל שירות שיחות IMS"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"כדאי לנסות שוב."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"לא נרשמו טביעות אצבע."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"במכשיר זה אין חיישן טביעות אצבע."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"החיישן מושבת באופן זמני."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"אצבע <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"לא ניתן לאמת את הפנים. יש לנסות שוב."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"לא הגדרת שחרור נעילה על ידי זיהוי פנים."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"המכשיר הזה לא תומך בשחרור נעילה על ידי זיהוי פנים."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"החיישן מושבת באופן זמני."</string>
     <string name="face_name_template" msgid="3877037340223318119">"פנים <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"‏ניפוי באגים של USB מחובר"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"‏יש להקיש כדי לכבות את ניפוי הבאגים ב-USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"‏בחר להשבית ניפוי באגים ב-USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ניפוי הבאגים האלחוטי מחובר"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"יש להקיש כדי להשבית ניפוי באגים אלחוטי"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"יש לבחור כדי להשבית ניפוי באגים אלחוטי."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"מצב מסגרת בדיקה הופעל"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"כדי להשבית את מצב מסגרת בדיקה צריך לאפס להגדרות היצרן."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"קונסולה סדרתית מופעלת"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏לשירות שפועל בחזית מ-<xliff:g id="PACKAGENAME">%1$s</xliff:g> שהחל ברקע לא תהיה הרשאת while-in-use בגרסאות R build בעתיד. יש לעיין בכתובת go/r-bg-fgs-restriction ולהגיש דוח על באג."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"האם להעלות את עוצמת הקול מעל לרמה המומלצת?\n\nהאזנה בעוצמת קול גבוהה למשכי זמן ממושכים עלולה לפגוע בשמיעה."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"להשתמש בקיצור הדרך לתכונת הנגישות?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"כשקיצור הדרך מופעל, לחיצה על שני לחצני עוצמת הקול למשך שלוש שניות מפעילה את תכונת הנגישות."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"עריכת קיצורי הדרך"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ביטול"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"כבה את קיצור הדרך"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ללא שיוך לקטגוריה"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"עליך להגדיר את החשיבות של ההתראות האלה."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ההודעה חשובה בשל האנשים המעורבים."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"האם לאפשר לאפליקציה <xliff:g id="APP">%1$s</xliff:g> ליצור משתמש חדש באמצעות <xliff:g id="ACCOUNT">%2$s</xliff:g> (כבר קיים משתמש לחשבון הזה) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"האם לאפשר לאפליקציה <xliff:g id="APP">%1$s</xliff:g> ליצור משתמש חדש באמצעות <xliff:g id="ACCOUNT">%2$s</xliff:g> ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"הוספת שפה"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> התווספה לקטגוריה \'מוגבל\'"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"אישי"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"עבודה"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"לא ניתן לשתף עם אפליקציות לעבודה"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"לא ניתן לשתף עם אפליקציות פרטיות"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"‏השיתוף בין אפליקציות לעבודה לאפליקציות פרטיות נחסמה על ידי מנהל ה-IT"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"הפעלה של אפליקציות לעבודה"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"יש להפעיל אפליקציות לעבודה כדי לגשת אל אפליקציות ואנשי קשר לעבודה"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"אין אפליקציות זמינות"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"לא מצאנו אפליקציות"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"הפעלה לעבודה"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"הקלטה או הפעלה של אודיו בשיחות טלפוניות"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"כאשר האפליקציה הזו מוגדרת כאפליקציית חייגן בברירת מחדל, תהיה לה הרשאה להקליט ולהפעיל אודיו בשיחות טלפוניות."</string>
 </resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 9de1672..850f601 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"このデバイスは組織によって管理され、ネットワーク トラフィックが監視される場合があります。詳しくはタップしてください。"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"位置情報の設定が管理者によって変更されました"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"タップすると位置情報の設定が表示されます。"</string>
+    <string name="country_detector" msgid="7023275114706088854">"国の検出"</string>
+    <string name="location_service" msgid="2439187616018455546">"位置情報サービス"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"センサー通知サービス"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"トワイライト サービス"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"デバイスのデータが消去されます"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"管理アプリを使用できません。デバイスのデータはこれから消去されます。\n\nご不明な点がある場合は、組織の管理者にお問い合わせください。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」により印刷は無効にされています。"</string>
@@ -245,6 +249,10 @@
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> 秒後にバグレポートのスクリーンショットが作成されます。</item>
       <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> 秒後にバグレポートのスクリーンショットが作成されます。</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"マナーモード"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"サウンドOFF"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"サウンドON"</string>
@@ -431,7 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"権限を付与されたこのシステムアプリは、いつでもシステムカメラを使用して写真と動画を撮影できます。アプリには android.permission.CAMERA 権限も必要です"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"バイブレーションの制御"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"バイブレーションの制御をアプリに許可します。"</string>
-    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"バイブレーションの状態へのアクセスをアプリに許可します。"</string>
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"バイブレーションのオン / オフ状態の把握をアプリに許可します。"</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"電話番号発信"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"電話番号への自動発信をアプリに許可します。これにより、予期せぬ発信や料金が発生する可能性があります。なお、緊急通報番号への発信は許可されません。悪意のあるアプリが確認なしで発信し、料金が発生する恐れがあります。"</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS通話サービスへのアクセス"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"もう一度お試しください。"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"指紋が登録されていません。"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"このデバイスには指紋認証センサーがありません。"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"センサーが一時的に無効になっています。"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"指紋 <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"顔を確認できません。もう一度お試しください。"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"顔認証を設定していません。"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"このデバイスでは、顔認証はご利用いただけません。"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"センサーが一時的に無効になっています。"</string>
     <string name="face_name_template" msgid="3877037340223318119">"顔 <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USBデバッグが接続されました"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB デバッグを無効にするにはここをタップしてください"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USBデバッグを無効にする場合に選択します。"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ワイヤレス デバッグが接続されました"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ワイヤレス デバッグをUSB デバッグを無効にするにはここをタップしてください"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ワイヤレス デバッグを無効にする場合に選択します。"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"テストハーネス モード有効"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"出荷時設定にリセットしてテストハーネス モードを無効にしてください。"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"シリアル コンソールは有効です"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"今後の R ビルドでは、<xliff:g id="PACKAGENAME">%1$s</xliff:g> からバックグラウンドで開始されるフォアグラウンド サービスに「使用中のみ許可」の権限がありません。go/r-bg-fgs-restriction を確認し、バグレポートを提出してください。"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"推奨レベルを超えるまで音量を上げますか?\n\n大音量で長時間聞き続けると、聴力を損なう恐れがあります。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ユーザー補助機能のショートカットの使用"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ショートカットが ON の場合、両方の音量ボタンを 3 秒ほど長押しするとユーザー補助機能が起動します。"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ショートカットの編集"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"キャンセル"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ショートカットを OFF にする"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"カテゴリなし"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"このような通知の重要度を設定します。"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"関係するユーザーのため、この設定は重要です。"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> が <xliff:g id="ACCOUNT">%2$s</xliff:g> で新しいユーザーを作成できるようにしますか?(このアカウントのユーザーはすでに存在します)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> が <xliff:g id="ACCOUNT">%2$s</xliff:g> で新しいユーザーを作成できるようにしますか?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"言語を追加"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> は RESTRICTED バケットに移動しました。"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"個人用"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"仕事用"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"仕事用アプリと共有できません"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"個人用アプリと共有できません"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT 管理者が個人用アプリと仕事用アプリの間の共有をブロックしました"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"仕事用アプリを ON にする"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"仕事用のアプリや連絡先にアクセスするには、仕事用アプリを ON にしてください"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"利用できるアプリはありません"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"アプリが見つかりませんでした"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"仕事用に切り替え"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"通話中に録音または音声の再生を行う"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"デフォルトの電話アプリケーションとして割り当てられている場合、このアプリに通話中の録音または音声の再生を許可します。"</string>
 </resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 2d15c16..1ed4854 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ამ მოწყობილობას თქვენი ორგანიზაცია მართავს და მას ქსელის ტრაფიკის მონიტორინგი შეუძლია. შეეხეთ დამატებითი დეტალებისთვის."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"მდებარეობის პარამეტრები თქვენმა ადმინისტრატორმა შეცვალა"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"შეეხეთ თქვენი მდებარეობის პარამეტრების სანახავად."</string>
+    <string name="country_detector" msgid="7023275114706088854">"ქვეყნის დეტექტორი"</string>
+    <string name="location_service" msgid="2439187616018455546">"მდებარეობის სერვისი"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"სენსორის შეტყობინების სერვისი"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight სერვისი"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"თქვენი მოწყობილობა წაიშლება"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ადმინისტრატორის აპის გამოყენება ვერ მოხერხდება. თქვენი მოწყობილობა ახლა ამოიშლება.\n\nთუ შეკითხვები გაქვთ, დაუკავშირდით თქვენი ორგანიზაციის ადმინისტრატორს."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ბეჭდვა გათიშულია <xliff:g id="OWNER_APP">%s</xliff:g>-ის მიერ."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">ხარვეზის შესახებ ანგარიშის ეკრანის ანაბეჭდის გადაღება მოხდება <xliff:g id="NUMBER_1">%d</xliff:g> წამში.</item>
       <item quantity="one">ხარვეზის შესახებ ანგარიშის ეკრანის ანაბეჭდის გადაღება მოხდება <xliff:g id="NUMBER_0">%d</xliff:g> წამში.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"ჩუმი რეჟიმი"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ხმა გამორთულია"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ხმა ჩართულია"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ხელახლა სცადეთ"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"თითის ანაბეჭდები რეგისტრირებული არ არის."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ამ მოწყობილობას არ აქვს თითის ანაბეჭდის სენსორი."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"სენსორი დროებით გათიშულია."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"თითი <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"სახის დადასტურება ვერ ხერხდება. ცადეთ ხელახლა."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"თქვენ არ დაგიყენებიათ სახით განბლოკვა."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"განბლოკვა სახით ამ მოწყობილობაზე მხარდაჭერილი არ არის."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"სენსორი დროებით გათიშულია."</string>
     <string name="face_name_template" msgid="3877037340223318119">"სახე <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB გამართვა შეერთებულია"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"შეეხეთ, რათა გამორთოთ USB შეცდომების გამართვა"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"მონიშნეთ რათა შეწყვიტოთ USB-ის გამართვა"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"შეცდომების უსადენო გამართვა დაკავშირებულია"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"შეეხეთ შეცდომების უსადენო გამართვის გამოსართავად"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"აირჩიეთ შეცდომების უსადენო გამართვის გასათიშად."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"რეჟიმი „გარემო ტესტირებისთვის“ ჩართულია"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"დააბრუნეთ ქარხნული პარამეტრები „გარემო ტესტირებისთვის“ რეჟიმის გასათიშად."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"სერიული კონსოლი ჩართულია"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g>-ის ფონურად დაწყებულ წინა პლანის სერვისს მომავალ R build-ებში გამოყენების პროცესში წვდომის ნებართვა არ ექნება. გთხოვთ, იხილოთ go/r-bg-fgs-restriction და გამოგზავნოთ ხარვეზის ანგარიში."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"გსურთ ხმის რეკომენდებულ დონეზე მაღლა აწევა?\n\nხანგრძლივად ხმამაღლა მოსმენით შესაძლოა სმენადობა დაიზიანოთ."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"გსურთ მარტივი წვდომის მალსახმობის გამოყენება?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"თუ მალსახმობი ჩართულია, ხმის ორივე ღილაკზე 3 წამის განმავლობაში დაჭერით მარტივი წვდომის ფუნქცია ჩაირთვება."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"მალსახმობების რედაქტირება"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"გაუქმება"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"მალსახმობის გამორთვა"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"კატეგორიის გარეშე"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ამ შეტყობინებების მნიშვნელობის დონე განისაზღვრა თქვენ მიერ."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"მნიშვნელოვანია ჩართული მომხმარებლების გამო."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"მიეცეს უფლება <xliff:g id="APP">%1$s</xliff:g>-ს <xliff:g id="ACCOUNT">%2$s</xliff:g>-ის მეშვეობით ახალი მომხმარებელი შექმნას (ამ ანგარიშის მქონე მომხმარებელი უკვე არსებობს)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"მიეცეს უფლება <xliff:g id="APP">%1$s</xliff:g>-ს <xliff:g id="ACCOUNT">%2$s</xliff:g>-ის მეშვეობით ახალი მომხმარებელი შექმნას?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ენის დამატება"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> მოთავსდა კალათაში „შეზღუდული“"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"პირადი"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"სამსახური"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"სამსახურის აპებით გაზიარება შეუძლებელია"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"პირადი აპებით გაზიარება შეუძლებელია"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"თქვენმა IT ადმინისტრატორმა დაბლოკა გაზიარება პირად და სამსახურის აპებს შორის"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"სამსახურის აპების ჩართვა"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"სამსახურის აპებსა და კონტაქტებზე წვდომისთვის ჩართეთ სამსახურის აპები"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ხელმისაწვდომი აპები არ არის"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"აპები ვერ მოიძებნა"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"სამსახურზე გადართვა"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"სატელეფონო ზარებში აუდიოს ჩაწერა ან დაკვრა"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ნაგულისხმევ დასარეკ აპლიკაციად არჩევის შემთხვევაში, ნებას რთავს აპს ჩაიწეროს ან დაუკრას აუდიო სატელეფონო ზარებში."</string>
 </resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 1406a8b..2e10b16 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -191,10 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"Әкімші құрылғыны жеке пайдалануға ұсынды."</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"Құрылғы басқарылады"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Ұйымыңыз осы құрылғыны басқарады және желі трафигін бақылауы мүмкін. Мәліметтер алу үшін түртіңіз."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"Орналасу параметрлерін әкімшіңіз өзгертті."</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"Орналасу параметрлерін көру үшін түртіңіз."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Ел детекторы"</string>
+    <string name="location_service" msgid="2439187616018455546">"Орынды анықтау қызметі"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Датчик хабарландыруы қызметі"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight қызметі"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Құрылғыңыздағы деректер өшіріледі"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Әкімші қолданбасын пайдалану мүмкін емес. Қазір құрылғыдағы деректер өшіріледі\n\nСұрақтарыңыз болса, ұйым әкімшісіне хабарласыңыз."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Басып шығаруды <xliff:g id="OWNER_APP">%s</xliff:g> өшірді."</string>
@@ -247,6 +249,10 @@
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> секундтан кейін қате туралы есептің скриншоты түсіріледі.</item>
       <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> секундтан кейін қате туралы есептің скриншоты түсіріледі.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Үнсіз режимі"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Дыбыс ӨШІРУЛІ"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Дыбыс ҚОСУЛЫ"</string>
@@ -433,8 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"Осы айрықша | жүйе қолданбасы кез келген уақытта жүйелік камера арқылы суретке не бейнеге түсіре алады. Қолданбаға android.permission.CAMERA рұқсаты қажет болады."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"тербелісті басқару"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Қолданбаға вибраторды басқаруға рұқсат береді."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Қолданбаға діріл күйін пайдалануға мүмкіндік береді."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"нөмірлерге тікелей телефон шалу"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"Қолданбаға сіздің қатысуыңызсыз қоңырау шалу мүмкіндігін береді. Нәтижесінде қосымша төлем немесе күтпеген қоңырау алуыңыз мүмкін. Есіңізде болсын, қолданба төтенше байланыстарға қоңырау шала алмайды. Залалды қолданбалар сіздің рұқсатыңызсыз қоңыраулар шалып, күтпеген төлемдерге себеп болуы мүмкін."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS қоңырау қызметін пайдалану"</string>
@@ -549,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Әрекетті қайталаңыз."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Саусақ іздері тіркелмеген."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Бұл құрылғыда саусақ ізін оқу сканері жоқ."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Датчик уақытша өшірулі."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g> саусағы"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Бетті тану мүмкін емес. Әрекетті қайталаңыз."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Face Unlock реттелмеді."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Бұл құрылғыда Face Unlock функциясы істемейді."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Датчик уақытша өшірулі."</string>
     <string name="face_name_template" msgid="3877037340223318119">"<xliff:g id="FACEID">%d</xliff:g> беті"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1321,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB түзетуі қосылған"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB арқылы түзетуді өшіру үшін түртіңіз"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB түзетуін өшіру үшін таңдаңыз."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Сымсыз түзету байланыстырылды"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Сымсыз түзетуді өшіру үшін түртіңіз."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Сымсыз түзетуді өшіріңіз."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Сынақ бағдарламасы режимі қосылды"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Сынақ бағдарламасы режимін өшіру үшін зауыттық күйіне қайтарыңыз."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Сериялық консоль қосылды"</string>
@@ -1624,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Фондық режимде іске қосылған <xliff:g id="PACKAGENAME">%1$s</xliff:g> белсенді пакетінің алдағы R құрамаларында \"Пайдаланғанда ғана рұқсат ету\" рұқсаты болмайды. go/r-bg-fgs-restriction бетіне өтіп, қате туралы есеп жіберіңіз."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Дыбыс деңгейін ұсынылған деңгейден көтеру керек пе?\n\nЖоғары дыбыс деңгейінде ұзақ кезеңдер бойы тыңдау есту қабілетіңізге зиян тигізуі мүмкін."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Арнайы мүмкіндік төте жолын пайдалану керек пе?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Түймелер тіркесімі қосулы кезде, екі дыбыс түймесін 3 секунд басып тұрсаңыз, \"Арнайы мүмкіндіктер\" функциясы іске қосылады."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Таңбашаларды өзгерту"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Бас тарту"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Төте жолды өшіру"</string>
@@ -1848,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Санатқа жатқызылмаған"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Сіз осы хабарландырулардың маңыздылығын орнатасыз."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Қатысты адамдарға байланысты бұл маңызды."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> қолданбасына <xliff:g id="ACCOUNT">%2$s</xliff:g> есептік жазбасы бар жаңа пайдаланушы (мұндай есептік жазбаға ие пайдаланушы бұрыннан бар) жасауға рұқсат етілсін бе?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> қолданбасына <xliff:g id="ACCOUNT">%2$s</xliff:g> есептік жазбасы бар жаңа пайдаланушы жасауға рұқсат етілсін бе?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Тілді қосу"</string>
@@ -2021,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ШЕКТЕЛГЕН себетке салынды."</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Жеке"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Жұмыс"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Жұмыс қолданбаларымен бөлісілмейді"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Жеке қолданбалармен бөлісілмейді"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"АТ әкімшісі жеке және жұмыс қолданбалары арасында деректер бөлісуді бөгеді."</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Жұмыс қолданбаларын іске қосу"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Жұмыс қолданбаларын және контактілерді пайдалану үшін, оларды іске қосыңыз."</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Қолданбалар жоқ"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Ешқандай қолданба табылмады."</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Жұмыс профилін іске қосу"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Телефон қоңырауларында аудио жазу немесе ойнату"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Қолданба әдепкі нөмір тергіш қолданба ретінде тағайындалған кезде, телефон қоңырауларында аудионы жазуға немесе ойнатуға мүмкіндік береді."</string>
 </resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 50e2e15..ce89832 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ស្ថាប័នរបស់អ្នកគ្រប់គ្រងឧបករណ៍នេះ ហើយអាចនឹងតាមដានចរាចរណ៍បណ្តាញ។ ចុចដើម្បីទទួលបានព័ត៌មានលម្អិត។"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"ការកំណត់​ទីតាំង​ត្រូវបានប្ដូរដោយ​អ្នកគ្រប់គ្រង​របស់អ្នក"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"ចុច​ដើម្បី​មើល​ការកំណត់​ទីតាំង​របស់អ្នក។"</string>
+    <string name="country_detector" msgid="7023275114706088854">"ឧបករណ៍​សម្គាល់​ប្រទេស"</string>
+    <string name="location_service" msgid="2439187616018455546">"សេវាកម្ម​ទីតាំង"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"សេវាកម្ម​ជូនដំណឹង​ឧបករណ៍​ចាប់សញ្ញា"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"សេវាកម្ម​ព្រលប់"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"ឧបករណ៍របស់អ្នកនឹងត្រូវបានលុប"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"មិនអាច​ប្រើ​កម្មវិធី​អ្នកគ្រប់គ្រង​បានទេ។ ឧបករណ៍​របស់អ្នក​នឹងលុប​ឥឡូវនេះ។\n\nប្រសិនបើ​អ្នកមាន​សំណួរផ្សេងៗ​ សូមទាក់ទង​ទៅអ្នក​គ្រប់គ្រង​ស្ថាប័ន​របស់​អ្នក។"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ការបោះពុម្ព​ត្រូវបាន​បិទ​ដោយ <xliff:g id="OWNER_APP">%s</xliff:g> ។"</string>
@@ -245,6 +249,10 @@
       <item quantity="other">នឹងថតរូបអេក្រង់សម្រាប់របាយការណ៍កំហុសក្នុងរយៈពេល <xliff:g id="NUMBER_1">%d</xliff:g> វិនាទីទៀត។</item>
       <item quantity="one">នឹងថតរូបអេក្រង់សម្រាប់របាយការណ៍កំហុសក្នុងរយៈពេល <xliff:g id="NUMBER_0">%d</xliff:g> វិនាទីទៀត។</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"របៀប​ស្ងាត់"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"បិទ​សំឡេង"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"បើក​សំឡេង"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ព្យាយាមម្ដងទៀត។"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"មិន​មាន​ការ​ចុះឈ្មោះស្នាម​ម្រាមដៃទេ។"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ឧបករណ៍នេះ​មិនមាន​ឧបករណ៍ចាប់​ស្នាមម្រាមដៃទេ។"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"បានបិទ​ឧបករណ៍​ចាប់សញ្ញាជា​បណ្តោះអាសន្ន។"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"ម្រាមដៃ <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"មិន​អាច​ផ្ទៀងផ្ទាត់​មុខ​បាន​ទេ។ សូមព្យាយាមម្ដងទៀត។"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"អ្នក​មិនទាន់​រៀបចំ​ការដោះសោតាមទម្រង់មុខ​នៅឡើយទេ។"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"មិនអាចប្រើ​ការដោះសោតាមទម្រង់មុខ​នៅលើ​ឧបករណ៍​នេះ​បានទេ។"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"បានបិទ​ឧបករណ៍​ចាប់សញ្ញាជា​បណ្តោះអាសន្ន។"</string>
     <string name="face_name_template" msgid="3877037340223318119">"ផ្ទៃមុខទី <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1320,6 +1326,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"បាន​ភ្ជាប់​ការ​កែ​កំហុសតាម​ USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"ចុច​ដើម្បី​បិទ​ការកែកំហុសតាម ​USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"ជ្រើស​រើស ដើម្បី​បិទ​ការ​កែ​កំហុសតាម USB ។"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"បានភ្ជាប់​ការជួសជុល​ដោយឥតខ្សែ"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ចុច ដើម្បី​បិទ​ការជួសជុល​ដោយឥតខ្សែ"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ជ្រើសរើស ដើម្បី​បិទ​ការជួសជុល​ដោយឥតខ្សែ។"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"បាន​បើក​មុខងារប្រមូលធ្វើតេស្ត"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"ធ្វើការកំណត់ដូចដើមឡើងវិញ ដើម្បី​បិទ​មុខងារប្រមូលធ្វើតេស្ត។"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"កុងសូល​ស៊េរី​ត្រូវបានបើក"</string>
@@ -1623,8 +1632,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"សេវាកម្ម​ផ្ទៃខាងមុខ​ដែលចាប់ផ្ដើមដោយ​ផ្ទៃខាងក្រោយ​ពី <xliff:g id="PACKAGENAME">%1$s</xliff:g> នឹង​មិនមាន​ការអនុញ្ញាត​ខណៈពេល​កំពុង​ប្រើប្រាស់​ទេ នៅក្នុង​កំណែបង្កើត R នៅពេល​អនាគត​។ សូម​មើល go/r-bg-fgs-restriction និង​ផ្ញើ​របាយការណ៍​អំពី​បញ្ហា​។"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"បង្កើន​កម្រិត​សំឡេង​លើស​ពី​កម្រិត​បាន​ផ្ដល់​យោបល់?\n\nការ​ស្ដាប់​នៅ​កម្រិត​សំឡេង​ខ្លាំង​យូរ​អាច​ធ្វើឲ្យ​ខូច​ត្រចៀក។"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ប្រើប្រាស់​ផ្លូវកាត់​ភាព​ងាយស្រួល?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"នៅពេលបើក​ផ្លូវកាត់ ការចុច​ប៊ូតុង​កម្រិតសំឡេង​ទាំងពីរ​រយៈពេល 3 វិនាទី​នឹង​ចាប់ផ្តើម​មុខងារ​ភាពងាយប្រើ។"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"កែ​ផ្លូវកាត់"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"បោះបង់"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"បិទ​ផ្លូវកាត់"</string>
@@ -1847,6 +1855,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"មិន​​បែងចែក​ប្រភេទ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"អ្នកបានកំណត់សារៈសំខាន់នៃការជូនដំណឹងទាំងនេះ"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"វាមានសារៈសំខាន់ដោយសារតែមនុស្សដែលពាក់ព័ន្ធ"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"អនុញ្ញាតឱ្យ <xliff:g id="APP">%1$s</xliff:g> បង្កើតអ្នកប្រើប្រាស់​ថ្មីដោយប្រើ <xliff:g id="ACCOUNT">%2$s</xliff:g> (អ្នកប្រើប្រាស់ដែលមានគណនីនេះមានរួចហើយ) ដែរឬទេ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"អនុញ្ញាតឱ្យ <xliff:g id="APP">%1$s</xliff:g> បង្កើតអ្នកប្រើប្រាស់​ថ្មីដោយប្រើ <xliff:g id="ACCOUNT">%2$s</xliff:g> ដែរឬទេ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"បន្ថែមភាសា"</string>
@@ -2020,20 +2030,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ត្រូវបានដាក់​ទៅក្នុងធុង​ដែលបានដាក់កំហិត"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ផ្ទាល់ខ្លួន"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ការងារ"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"មិនអាច​ចែករំលែក​ជាមួយ​កម្មវិធី​ការងារ​បានទេ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"មិនអាច​ចែករំលែក​ជាមួយ​កម្មវិធី​ផ្ទាល់ខ្លួន​បានទេ"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"អ្នកគ្រប់គ្រង​ផ្នែកព័ត៌មានវិទ្យា​របស់អ្នក​បានទប់ស្កាត់​ការចែករំលែក​រវាង​កម្មវិធី​ការងារ និង​ផ្ទាល់ខ្លួន"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"បើក​កម្មវិធី​ការងារ"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"បើក​កម្មវិធី​ការងារ ដើម្បី​ចូល​ប្រើ​ទំនាក់ទំនង និងកម្មវិធី​ការងារ"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"មិនមាន​កម្មវិធី​ដែល​អាចប្រើ​បានទេ"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"យើង​រកមិនឃើញ​កម្មវិធី​ណាមួយទេ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"បើក​កម្រងព័ត៌មាន​ការងារ"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ថត ឬចាក់សំឡេង​នៅក្នុង​ការហៅទូរសព្ទ"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"នៅពេលកំណត់​ជាកម្មវិធីផ្ទាំងចុច​ហៅទូរសព្ទលំនាំដើម សូមអនុញ្ញាត​ឱ្យកម្មវិធីនេះថត ឬចាក់សំឡេង​នៅក្នុង​ការហៅទូរសព្ទ។"</string>
 </resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 4099d30..93721a5 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ಈ ಸಾಧನವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಅದು ನೆಟ್‌ವರ್ಕ್ ಟ್ರಾಫಿಕ್ ಮೇಲೆ ಗಮನವಿರಿಸಬಹುದು. ವಿವರಗಳಿಗಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಂದ ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"ನಿಮ್ಮ ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನೋಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="country_detector" msgid="7023275114706088854">"ಕಂಟ್ರಿ ಡಿಟೆಕ್ಟರ್"</string>
+    <string name="location_service" msgid="2439187616018455546">"ಸ್ಥಳ ಸೇವೆ"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"ಸೆನ್ಸರ್ ಅಧಿಸೂಚನೆ ಸೇವೆ"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ಟ್ವಿಲೈಟ್ ಸೇವೆ"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಇದೀಗ ಅಳಿಸಲಾಗುತ್ತದೆ.\n\nನಿಮ್ಮಲ್ಲಿ ಪ್ರಶ್ನೆಗಳಿದ್ದರೆ, ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ಮೂಲಕ ಪ್ರಿಂಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">ಬಗ್ ವರದಿ ಮಾಡಲು <xliff:g id="NUMBER_1">%d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ.</item>
       <item quantity="other">ಬಗ್ ವರದಿ ಮಾಡಲು <xliff:g id="NUMBER_1">%d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"ಶಾಂತ ಮೋಡ್"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ಶಬ್ಧ ಆಫ್ ಆಗಿದೆ"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ಶಬ್ಧ ಆನ್ ಆಗಿದೆ"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"ಯಾವುದೇ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್‌ ಅನ್ನು ನೋಂದಣಿ ಮಾಡಿಲ್ಲ."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ಈ ಸಾಧನವು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್‌‌ ಅನ್ನು ಹೊಂದಿಲ್ಲ."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"ಸೆನ್ಸಾರ್ ಅನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"ಫಿಂಗರ್ <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"ಮುಖವನ್ನು ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"ನೀವು ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿಲ್ಲ."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"ಈ ಸಾಧನದಲ್ಲಿ ಫೇಸ್ ಅನ್‌ಲಾಕ್ ವೈಶಿಷ್ಟ್ಯವು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"ಸೆನ್ಸಾರ್ ಅನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
     <string name="face_name_template" msgid="3877037340223318119">"ಮುಖದ <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -876,7 +882,7 @@
     <string name="lockscreen_access_pattern_detected" msgid="3931150554035194012">"ಪ್ಯಾಟರ್ನ್ ಪೂರ್ಣಗೊಂಡಿದೆ"</string>
     <string name="lockscreen_access_pattern_area" msgid="1288780416685002841">"ಪ್ಯಾಟರ್ನ್ ಪ್ರದೇಶ."</string>
     <string name="keyguard_accessibility_widget_changed" msgid="7298011259508200234">"%1$s.%3$d ರಲ್ಲಿ %2$d ವಿಜೆಟ್."</string>
-    <string name="keyguard_accessibility_add_widget" msgid="8245795023551343672">"ವಿಜೆಟ್ ಸೇರಿಸು."</string>
+    <string name="keyguard_accessibility_add_widget" msgid="8245795023551343672">"ವಿಜೆಟ್ ಸೇರಿಸಿ."</string>
     <string name="keyguard_accessibility_widget_empty_slot" msgid="544239307077644480">"ಖಾಲಿ"</string>
     <string name="keyguard_accessibility_unlock_area_expanded" msgid="7768634718706488951">"ಅನ್‌ಲಾಕ್ ಪ್ರದೇಶವನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ."</string>
     <string name="keyguard_accessibility_unlock_area_collapsed" msgid="4729922043778400434">"ಅನ್‌ಲಾಕ್ ಪ್ರದೇಶವನ್ನು ಸಂಕುಚಿಸಲಾಗಿದೆ."</string>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB ಡೀಬಗಿಂಗ್‌‌ ಸಂಪರ್ಕಗೊಂಡಿದೆ"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB ಡೀಬಗ್‌ ಮಾಡುವಿಕೆಯನ್ನು ಆಫ್‌ ಮಾಡಲು ಟ್ಯಾಪ್‌ ಮಾಡಿ"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ಡೀಬಗ್‌ ಮಾಡುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಆಯ್ಕೆ ಮಾಡಿ."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ವೈರ್‌ಲೆಸ್ ಡೀಬಗ್‌ ಮಾಡುವಿಕೆಯನ್ನು ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ವೈರ್‌ಲೆಸ್ ಡೀಬಗ್‌ ಮಾಡುವಿಕೆಯನ್ನು ಆಫ್‌ ಮಾಡಲು ಟ್ಯಾಪ್‌ ಮಾಡಿ"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ವೈರ್‌ಲೆಸ್ ಡೀಬಗ್‌ ಮಾಡುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಆಯ್ಕೆ ಮಾಡಿ."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"ಸ್ವಯಂ ಪರೀಕ್ಷೆಯಾಗುವಿಕೆ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"ಸ್ವಯಂ ಪರೀಕ್ಷೆಯಾಗುವಿಕೆ ಮೋಡ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಫ್ಯಾಕ್ಟರಿ ರಿಸೆಟ್ ಮಾಡಬೇಕು."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"ಸರಣಿ ಕನ್ಸೋಲ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> ನಿಂದ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲಾದ ಮುನ್ನೆಲೆ ಸೇವೆ ಭವಿಷ್ಯದ R ಬಿಲ್ಡ್‌ಗಳಿಂದ ಬಳಕೆಯಲ್ಲಿರುವಾಗ ಅನುಮತಿಯನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. go/r-bg-fgs-restriction ಅನ್ನು ನೋಡಿ ಮತ್ತು ದೋಷವರದಿಯನ್ನು ಫೈಲ್‌ ಮಾಡಿ."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ವಾಲ್ಯೂಮ್‌ ಅನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾದ ಮಟ್ಟಕ್ಕಿಂತಲೂ ಹೆಚ್ಚು ಮಾಡುವುದೇ?\n\nದೀರ್ಘ ಅವಧಿಯವರೆಗೆ ಹೆಚ್ಚಿನ ವಾಲ್ಯೂಮ್‌ನಲ್ಲಿ ಆಲಿಸುವುದರಿಂದ ನಿಮ್ಮ ಆಲಿಸುವಿಕೆ ಸಾಮರ್ಥ್ಯಕ್ಕೆ ಹಾನಿಯುಂಟು ಮಾಡಬಹುದು."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ಪ್ರವೇಶಿಸುವಿಕೆ ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸುವುದೇ?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ಶಾರ್ಟ್‌ಕಟ್ ಆನ್ ಆಗಿರುವಾಗ, ಎರಡೂ ವಾಲ್ಯೂಮ್ ಬಟನ್‌ಗಳನ್ನು 3 ಸೆಕೆಂಡುಗಳ ಕಾಲ ಒತ್ತಿದರೆ ಪ್ರವೇಶಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯವೊಂದು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ಶಾರ್ಟ್‌ಕಟ್‌‍ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ರದ್ದುಗೊಳಿಸಿ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ಶಾರ್ಟ್‌ಕಟ್‌ ಆಫ್ ಮಾಡಿ"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ವರ್ಗೀಕರಿಸದಿರುವುದು"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ನೀವು ಈ ಅಧಿಸೂಚನೆಗಳ ಪ್ರಾಮುಖ್ಯತೆಯನ್ನು ಹೊಂದಿಸಿರುವಿರಿ."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ಜನರು ತೊಡಗಿಕೊಂಡಿರುವ ಕಾರಣ ಇದು ಅತ್ಯಂತ ಪ್ರಮುಖವಾಗಿದೆ."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> (ಈ ಖಾತೆಯ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ) ಮೂಲಕ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲು <xliff:g id="APP">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸಬೇಕೆ ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> ಮೂಲಕ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲು <xliff:g id="APP">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸುವುದೇ ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ಭಾಷೆ ಸೇರಿಸಿ"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ಅನ್ನು ನಿರ್ಬಂಧಿತ ಬಕೆಟ್‌ಗೆ ಹಾಕಲಾಗಿದೆ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ವೈಯಕ್ತಿಕ"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ಕೆಲಸ"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ಕೆಲಸದ ಆ್ಯಪ್‌ಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ವೈಯಕ್ತಿಕ ಆ್ಯಪ್‌ಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"ನಿಮ್ಮ ಐಟಿ ನಿರ್ವಾಹಕರು, ವೈಯಕ್ತಿಕ ಮತ್ತು ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳ ನಡುವೆ ಹಂಚಿಕೊಳ್ಳುವುದನ್ನು ನಿರ್ಬಂಧಿಸಿದ್ದಾರೆ"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ಆನ್ ಮಾಡಿ"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸಂಪರ್ಕಗಳನ್ನು ಪ್ರವೇಶಿಸಲು, ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ಆನ್ ಮಾಡಿ"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ಯಾವುದೇ ಆ್ಯಪ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"ನಮಗೆ ಯಾವುದೇ ಆ್ಯಪ್‌ಗಳನ್ನು ಹುಡುಕಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ಆನ್ ಮಾಡಿ"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ಫೋನ್ ಕರೆಗಳಲ್ಲಿ ಆಡಿಯೊವನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಿ ಅಥವಾ ಪ್ಲೇ ಮಾಡಿ"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ಡೀಫಾಲ್ಟ್ ಡಯಲರ್ ಅಪ್ಲಿಕೇಶನ್ ರೀತಿ ಬಳಸಿದಾಗ ಫೋನ್ ಕರೆಗಳಲ್ಲಿ ಆಡಿಯೊವನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಲು ಅಥವಾ ಪ್ಲೇ ಮಾಡಲು ಈ ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸಿ."</string>
 </resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index bae739c..7ec0e77 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"조직에서 이 기기를 관리하며 네트워크 트래픽을 모니터링할 수도 있습니다. 자세한 내용을 보려면 탭하세요."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"관리자가 위치 설정을 변경함"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"위치 설정을 보려면 탭하세요."</string>
+    <string name="country_detector" msgid="7023275114706088854">"국가 감지기"</string>
+    <string name="location_service" msgid="2439187616018455546">"위치 서비스"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"센서 알림 서비스"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"새벽 서비스"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"기기가 삭제됩니다."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"관리자 앱을 사용할 수 없습니다. 곧 기기가 삭제됩니다.\n\n궁금한 점이 있으면 조직의 관리자에게 문의하세요."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g>에 의해 사용 중지되었습니다."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">버그 신고 스크린샷을 <xliff:g id="NUMBER_1">%d</xliff:g>초 후에 찍습니다.</item>
       <item quantity="one">버그 신고 스크린샷을 <xliff:g id="NUMBER_0">%d</xliff:g>초 후에 찍습니다.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"무음 모드"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"소리 꺼짐"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"소리 켜짐"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"다시 시도해 보세요."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"등록된 지문이 없습니다."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"기기에 지문 센서가 없습니다."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"센서가 일시적으로 사용 중지되었습니다."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"손가락 <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"얼굴을 확인할 수 없습니다. 다시 시도하세요."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"얼굴인식 잠금해제를 설정하지 않았습니다."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"이 기기에서는 얼굴인식 잠금해제가 지원되지 않습니다."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"센서가 일시적으로 사용 중지되었습니다."</string>
     <string name="face_name_template" msgid="3877037340223318119">"얼굴 <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB 디버깅 연결됨"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB 디버깅을 사용 중지하려면 탭하세요."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB 디버깅을 사용하지 않으려면 선택합니다."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"무선 디버깅 연결됨"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"무선 디버깅을 사용 중지하려면 탭하세요."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"무선 디버깅을 사용 중지하려면 선택하세요."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"테스트 하네스 모드 사용 설정됨"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"테스트 하네스 모드를 사용 중지하려면 초기화하세요."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"시리얼 콘솔 사용 설정됨"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"향후 R 빌드에서는 백그라운드에서 시작된 <xliff:g id="PACKAGENAME">%1$s</xliff:g>의 포그라운드 서비스에 더 이상 사용 중인 상태에서 필요한 권한이 부여되지 않습니다. go/r-bg-fgs-restriction 페이지에서 버그 신고를 제출하세요."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"권장 수준 이상으로 볼륨을 높이시겠습니까?\n\n높은 볼륨으로 장시간 청취하면 청력에 손상이 올 수 있습니다."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"접근성 단축키를 사용하시겠습니까?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"단축키가 사용 설정된 경우 볼륨 버튼 두 개를 동시에 3초간 누르면 접근성 기능이 시작됩니다."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"단축키 수정"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"취소"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"단축키 사용 중지"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"지정된 카테고리 없음"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"이러한 알림의 중요도를 설정했습니다."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"관련된 사용자가 있으므로 중요합니다."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>에서 <xliff:g id="ACCOUNT">%2$s</xliff:g> 계정으로 신규 사용자를 만들도록 허용하시겠습니까? 이 계정으로 등록된 사용자가 이미 존재합니다."</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>에서 <xliff:g id="ACCOUNT">%2$s</xliff:g> 계정으로 신규 사용자를 만들도록 허용하시겠습니까?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"언어 추가"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 항목이 RESTRICTED 버킷으로 이동함"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"개인"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"직장"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"직장 앱과 공유할 수 없음"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"개인 앱과 공유할 수 없음"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT 관리자가 개인 앱과 직장 앱 간의 공유를 차단함"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"직장 앱 사용 설정"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"직장 앱 및 연락처에 액세스하도록 직장 앱 사용 설정"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"사용 가능한 앱 없음"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"앱을 찾을 수 없음"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"직장 프로필 사용"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"전화 통화 중에 오디오 녹음 또는 재생"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"이 앱이 기본 다이얼러 애플리케이션으로 지정되었을 때 전화 통화 중에 오디오를 녹음하거나 재생하도록 허용합니다."</string>
 </resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index e9177ab..74e03c0 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -191,10 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"Админ түзмөктөн жеке колдонуу үчүн баш тартты"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"Түзмөктү ишкана башкарат"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Ишканаңыз бул түзмөктү башкарат жана тармак трафигин көзөмөлдөшү мүмкүн. Чоо-жайын билгиңиз келсе, таптап коюңуз."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"Жайгашкан жерди аныктоо жөндөөлөрүн администраторуңуз өзгөртүп койду"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"Жайгашкан жерди аныктоо жөндөөлөрүн көрүү үчүн таптап коюңуз."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Өлкөнү аныктагыч"</string>
+    <string name="location_service" msgid="2439187616018455546">"Жайгашкан жерди аныктоо кызматы"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Сенсордун билдирмелеринин кызматы"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight кызматы"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Түзмөгүңүз тазаланат"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Түзмөктү башкаруучу колдонмо жараксыз. Түзмөгүңүз азыр тазаланат.\n\nСуроолоруңуз болсо, ишканаңыздын администраторуна кайрылыңыз."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Басып чыгаруу <xliff:g id="OWNER_APP">%s</xliff:g> тарабынан өчүрүлдү."</string>
@@ -247,6 +249,10 @@
       <item quantity="other">Мүчүлүштүк тууралуу кабарлоо үчүн <xliff:g id="NUMBER_1">%d</xliff:g> секундда скриншот алынат.</item>
       <item quantity="one">Мүчүлүштүк тууралуу кабарлоо үчүн <xliff:g id="NUMBER_0">%d</xliff:g> секундда скриншот алынат.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Үнсүз режим"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Добушу ӨЧҮК"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Добушу КҮЙҮК"</string>
@@ -433,12 +439,11 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"Бул артыкчылыктуу | тутум колдонмосу тутумдун камерасын каалаган убакта колдонуп, сүрөткө тартып, видео жаздыра алат. Ошондой эле колдонмого android.permission.CAMERA уруксатын берүү керек."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"титирөөнү башкаруу"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Колдонмого дирилдегичти көзөмөлдөө мүмкүнчүлүгүн берет."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Колдонмого дирилдөө абалына кирүүгө уруксат берет."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"телефон номерлерине түз чалуу"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"Колдонмого сиздин катышууңузсуз телефон номурларга чалуу уруксатын берет. Бул сиз күтпөгөн чыгымдарга же чалууларга алып келиши мүмкүн. Бул куткаруучулардын номурларына чалууга уруксат бербей тургандыгын эске алыңыз. Зыяндуу колдонмолор, сиздин ырастооңузсуз чалууларды аткарып, көп чыгымдарга себепкер болушу мүмкүн."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS чалуу кызматына мүмкүнчүлүк алуу"</string>
-    <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Колдонмого сизди катыштырбай туруп, IMS кызматынын жардамы менен чалууларды жасоо мүмкүнчүлүгүн берет."</string>
+    <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Колдонмого сизди катыштырбай туруп, IMS кызматынын жардамы менен, чалууларды жасоо мүмкүнчүлүгүн берет."</string>
     <string name="permlab_readPhoneState" msgid="8138526903259297969">"телефондун абалын жана аныктыгын окуу"</string>
     <string name="permdesc_readPhoneState" msgid="7229063553502788058">"Колдонмого түзмөктүн чалуу мүмкүнчүлүктөрүнө жетки алуу уруксатын берет. Бул уруксат колдонмого, телефондун номурун, түзмөктүн ID-син, чалуунун абалын жана байланышта чыккан номурду аныктоого жол берет."</string>
     <string name="permlab_manageOwnCalls" msgid="9033349060307561370">"чалууларды тутум аркылуу өткөрүү"</string>
@@ -549,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Кайра бир аракеттениңиз."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Бир да манжа изи катталган эмес."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Бул түзмөктө манжа изинин сенсору жок."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Сенсор убактылуу өчүрүлгөн."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g>-манжа"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Жүз ырасталбай жатат. Кайталап көрүңүз."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Жүзүнөн таануу функциясын жөндөй элексиз."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Жүзүнөн таануу функциясы бул түзмөктө иштебейт."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Сенсор убактылуу өчүрүлгөн."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Жүз <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1254,7 +1257,7 @@
     <string name="wifi_no_internet" msgid="1386911698276448061">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> Интернетке туташуусу жок"</string>
     <string name="wifi_no_internet_detailed" msgid="634938444133558942">"Параметрлерди ачуу үчүн таптап коюңуз"</string>
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобилдик Интернет жок"</string>
-    <string name="other_networks_no_internet" msgid="6698711684200067033">"Тармактын Интернет байланышы жок"</string>
+    <string name="other_networks_no_internet" msgid="6698711684200067033">"Тармактын Интернет жок"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Жеке DNS сервери жеткиликсиз"</string>
     <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Туташты"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> байланышы чектелген"</string>
@@ -1321,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Мүчүлүштүктөрдү USB аркылуу оңдоо иштеп жатат"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Өчүрүү үчүн тийип коюңуз"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB аркылуу мүчүлүштүктөрдү оңдоону өчүрүүнү тандаңыз."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Мүчүлүштүктөрдү зымсыз оңдоо иштетилди"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Мүчүлүштүктөрдү зымсыз оңдоону өчүрүү үчүн таптап коюңуз"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Мүчүлүштүктөрдү зымсыз оңдоону өчүрүүнү тандаңыз."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Сыноо программасынын режими иштетилди"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Сыноо программасынын режимин өчүрүү үчүн, баштапкы жөндөөлөргө кайтарыңыз."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Сериялык консоль иштетилди"</string>
@@ -1624,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Фондогу <xliff:g id="PACKAGENAME">%1$s</xliff:g> кызматы активдүү режимде иштеп баштап, кийинки R курамаларында колдонуу учурунда уруксаты болбойт. Төмөнкү бөлүмгө өтүп, мүчүлүштүк тууралуу кабарды тапшырыңыз: go/r-bg-fgs-restriction."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Сунушталган деңгээлден да катуулатып уккуңуз келеби?\n\nМузыканы узакка чейин катуу уксаңыз, угууңуз начарлап кетиши мүмкүн."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Ыкчам иштетесизби?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Атайын мүмкүнчүлүктөр функциясын пайдалануу үчүн ал күйгүзүлгөндө, үндү катуулатып/акырындаткан эки баскычты тең 3 секунддай коё бербей басып туруңуз."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Кыска жолдорду түзөтүү"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Жокко чыгаруу"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Кыска жолду өчүрүү"</string>
@@ -1848,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Категорияларга бөлүнгөн эмес"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Бул эскертмелердин маанилүүлүгүн белгиледиңиз."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Булар сиз үчүн маанилүү адамдар."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> колдонмосуна <xliff:g id="ACCOUNT">%2$s</xliff:g> аккаунту менен жаңы колдонуучу түзүүгө уруксат бересизби (мындай аккаунту бар колдонуучу мурунтан эле бар)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> колдонмосуна <xliff:g id="ACCOUNT">%2$s</xliff:g> аккаунту менен жаңы колдонуучу түзүүгө уруксат бересизби?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Тил кошуу"</string>
@@ -2021,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ЧЕКТЕЛГЕН чакага коюлган"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Жеке"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Жумуш"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Жумуш колдонмолору менен бөлүшүүгө болбойт"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Жеке колдонмолор менен бөлүшүүгө болбойт"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT администраторуңуз жеке жана жумуш колдонмолорунун ортосунда бөлүшүүнү бөгөттөп койгон"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Жумуш колдонмолорун күйгүзүү"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Жумуш колдонмолоруна жана байланыштарга кирүү үчүн жумуш колдонмолорун күйүгүзүңүз"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Колдонмолор жок"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Эч кандай колдонмо табылган жок"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Жумуш профилине которулуу"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Телефон чалууларда жаздырып же аудиону ойнотуу"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Бул колдонмо демейки телефон катары дайындалганда ага чалууларды жаздырууга жана аудиону ойнотууга уруксат берет."</string>
 </resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index ce17258..862aa53 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ອົງກອນຂອງທ່ານຈັດການອຸປະກອນນີ້ ແລະ ອາດກວດສອບທຣາບຟິກເຄືອຂ່າຍນຳ. ແຕະເພື່ອເບິ່ງລາຍລະອຽດ."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"ຜູ້ເບິ່ງແຍງຂອງທ່ານປ່ຽນການຕັ້ງຄ່າສະຖານທີ່ແລ້ວ"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"ແຕະເພື່ອເບິ່ງການຕັ້ງຄ່າສະຖານທີ່ຂອງທ່ານ."</string>
+    <string name="country_detector" msgid="7023275114706088854">"ຕົວກວດຫາປະເທດ"</string>
+    <string name="location_service" msgid="2439187616018455546">"​ບໍ​ລິ​ການ​ສະ​ຖານ​ທີ່"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"ບໍລິການການແຈ້ງເຕືອນເຊັນເຊີ"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ບໍລິການ Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ລຶບ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ບໍ່ສາມາດໃຊ້ແອັບຜູ້ເບິ່ງແຍງລະບົບໄດ້. ອຸປະກອນຂອງທ່ານຈະຖືກລຶບຂໍ້ມູນໃນຕອນນີ້.\n\nຫາກທ່ານມີຄຳຖາມ, ໃຫ້ຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບອົງກອນຂອງທ່ານ."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ການພິມຖືກປິດໄວ້ໂດຍ <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">ກຳລັງຈະຖ່າຍພາບໜ້າຈໍສຳລັບການລາຍງານຂໍ້ຜິດພາດໃນ <xliff:g id="NUMBER_1">%d</xliff:g> ວິນາທີ.</item>
       <item quantity="one">ກຳລັງຈະຖ່າຍພາບໜ້າຈໍສຳລັບການລາຍງານຂໍ້ຜິດພາດໃນ <xliff:g id="NUMBER_0">%d</xliff:g> ວິນາທີ.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"ໂໝດປິດສຽງ"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ປິດສຽງແລ້ວ"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ເປິດສຽງແລ້ວ"</string>
@@ -1316,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"ເຊື່ອມຕໍ່ການດີບັກຜ່ານ USB ແລ້ວ"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"ແຕະເພື່ອປິດການດີບັກ USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"ເລືອກເພື່ອປິດການດີບັ໊ກຜ່ານ USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ເຊື່ອມຕໍ່ການດີບັກໄຮ້ສາຍແລ້ວ"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ແຕະເພື່ອປິດການດີບັກໄຮ້ສາຍ"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ເລືອກປິດການປິດການນຳໃຊ້ການດີບັກໄຮ້ສາຍ."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"ເປີດໃຊ້ໂໝດ Test Harness ແລ້ວ"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"ດຳເນີນການຣີເຊັດເປັນຄ່າຈາກໂຮງງານເພື່ອປິດການນຳໃຊ້ໂໝດ Test Harness."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"ເປີດນຳໃຊ້ຊີຣຽວຄອນໂຊແລ້ວ"</string>
@@ -1842,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ບໍ່​ມີ​ໝວດ​ໝູ່"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ທ່ານຕັ້ງຄວາມສຳຄັນຂອງການແຈ້ງເຕືອນເຫຼົ່ານີ້."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ຂໍ້ຄວາມນີ້ສຳຄັນເນື່ອງຈາກບຸກຄົນທີ່ກ່ຽວຂ້ອງ."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"ອະນຸຍາດໃຫ້ <xliff:g id="APP">%1$s</xliff:g> ສ້າງຜູ້ໃຊ້ໃໝ່ກັບ <xliff:g id="ACCOUNT">%2$s</xliff:g> ໄດ້ບໍ່ (ມີຜູ້ໃຊ້ທີ່ໃຊ້ບັນຊີນີ້ຢູ່ກ່ອນແລ້ວ) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"ອະນຸຍາດໃຫ້ <xliff:g id="APP">%1$s</xliff:g> ສ້າງຜູ້ໃຊ້ໃໝ່ກັບ <xliff:g id="ACCOUNT">%2$s</xliff:g> ໄດ້ບໍ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ເພີ່ມພາສາ"</string>
@@ -2023,4 +2036,6 @@
     <string name="resolver_no_apps_available" msgid="7710339903040989654">"ບໍ່ມີແອັບທີ່ສາມາດໃຊ້ໄດ້"</string>
     <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"ພວກເຮົາບໍ່ພົບແອັບໃດໆເລີຍ"</string>
     <string name="resolver_switch_on_work" msgid="8294542702883688533">"ປຸ່ມເປີດຢູ່ວຽກ"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ບັນທຶກ ຫຼື ຫຼິ້ນສຽງໃນການໂທລະສັບ"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ອະນຸຍາດແອັບນີ້, ເມື່ອມອບໝາຍເປັນແອັບພລິເຄຊັນໂທລະສັບເລີ່ມຕົ້ນເພື່ອບັນທຶກ ຫຼື ຫຼິ້ນສຽງໃນການໂທລະສັບ."</string>
 </resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 2c7e96b..e816f5e 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Šį įrenginį tvarko organizacija ir gali stebėti tinklo srautą. Palieskite, kad gautumėte daugiau informacijos."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Vietovės nustatymus pakeitė administratorius"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Palieskite, kad peržiūrėtumėte vietovės nustatymus."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Šalies detektorius"</string>
+    <string name="location_service" msgid="2439187616018455546">"Vietovės paslauga"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Jutiklių pranešimų paslauga"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Paslauga „Twilight“"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Įrenginys bus ištrintas"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratoriaus programos negalima naudoti. Dabar įrenginio duomenys bus ištrinti.\n\nJei turite klausimų, susisiekite su organizacijos administratoriumi."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Neleidžiama spausdinti (<xliff:g id="OWNER_APP">%s</xliff:g>)."</string>
@@ -251,6 +255,10 @@
       <item quantity="many">Pranešimo apie riktą ekrano kopija bus užfiksuota po <xliff:g id="NUMBER_1">%d</xliff:g> sekundės.</item>
       <item quantity="other">Pranešimo apie riktą ekrano kopija bus užfiksuota po <xliff:g id="NUMBER_1">%d</xliff:g> sekundžių.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Tylus režimas"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Garsas IŠJUNGTAS"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Garsas ĮJUNGTAS"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Bandykite dar kartą."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Neužregistruota jokių kontrolinių kodų."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Šiame įrenginyje nėra kontrolinio kodo jutiklio."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Jutiklis laikinai išjungtas."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g> pirštas"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nepavyko patvirtinti veido. Bandykite dar kartą."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Nenustatėte Atrakinimo pagal veidą."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Atrakinimas pagal veidą šiame įrenginyje nepalaikomas."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Jutiklis laikinai išjungtas."</string>
     <string name="face_name_template" msgid="3877037340223318119">"<xliff:g id="FACEID">%d</xliff:g> veidas"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB derinimas prijungtas"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Palieskite, kad išjungtumėte USB derinimą"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Pasirinkite, kas išjungtumėte USB derinimą."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Belaidžio ryšio derinimas prijungtas"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Palieskite, kad išjungtumėte belaidžio ryšio derinimą"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Pasirinkite, kad išjungtumėte belaidžio ryšio derinimą."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Testavimo sistemos režimas įgalintas"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Atkurkite gamyklinius duomenis, kad išjungtumėte testavimo sistemos režimą."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serijos pultas įgalintas"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Fone pradėtai priekinio plano paslaugai iš „<xliff:g id="PACKAGENAME">%1$s</xliff:g>“ nebus suteiktas leidimas naudojimo metu būsimose R versijose. Apsilankykite go/r-bg-fgs-restriction ir pateikite pranešimą apie riktą."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Padidinti garsą daugiau nei rekomenduojamas lygis?\n\nIlgai klausydami dideliu garsu galite pažeisti klausą."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Naudoti spartųjį pritaikymo neįgaliesiems klavišą?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kai spartusis klavišas įjungtas, paspaudus abu garsumo mygtukus ir palaikius 3 sekundes bus įjungta pritaikymo neįgaliesiems funkcija."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Redaguoti sparčiuosius klavišus"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Atšaukti"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Išjungti spartųjį klavišą"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Be kategorijos"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Galite nustatyti šių pranešimų svarbą."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Tai svarbu dėl susijusių žmonių."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Leisti „<xliff:g id="APP">%1$s</xliff:g>“ kurti naują <xliff:g id="ACCOUNT">%2$s</xliff:g> naudotoją (šią paskyrą naudojantis naudotojas jau yra)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Leisti „<xliff:g id="APP">%1$s</xliff:g>“ kurti naują <xliff:g id="ACCOUNT">%2$s</xliff:g> naudotoją?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Pridėkite kalbą"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"„<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>“ įkeltas į grupę APRIBOTA"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Asmeninė"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Darbo"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Negalima bendrinti su darbo programomis"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Negalima bendrinti su asmeninėmis programomis"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT administratorius užblokavo bendrinimą tarp asmeninių programų ir darbo programų"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Įjunkite darbo programas"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Įjunkite darbo programas, kad galėtumėte pasiekti darbo programas ir kontaktus"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nėra pasiekiamų programų"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nepavyko rasti programų"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Įjungti darbo profilį"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefonų skambučių garso įrašo įrašymas arba leidimas"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Leidžiama šiai programai, esant prisijungus kaip numatytajai numerio rinkiklio programai, įrašyti ar leisti telefonų skambučių garso įrašą."</string>
 </resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 8614214..8aa7e5a 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -195,6 +195,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Jūsu organizācija pārvalda šo ierīci un var uzraudzīt tīkla datplūsmu. Pieskarieties, lai saņemtu detalizētu informāciju."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Atrašanās vietas iestatījumus nomainīja administrators"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Pieskarieties, lai skatītu atrašanās vietas iestatījumus."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Valsts noteikšanas rīks"</string>
+    <string name="location_service" msgid="2439187616018455546">"Atrašanās vietas pakalpojums"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensoru paziņojumu pakalpojums"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Krēslas noteikšanas pakalpojums"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Jūsu ierīces dati tiks dzēsti"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratora lietotni nevar izmantot. Ierīcē saglabātie dati tiks dzēsti.\n\nJa jums ir kādi jautājumi, sazinieties ar savas organizācijas administratoru."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Drukāšanu atspējoja <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -248,6 +252,10 @@
       <item quantity="one">Pēc <xliff:g id="NUMBER_1">%d</xliff:g> sekundes tiks veikts ekrānuzņēmums kļūdas pārskatam.</item>
       <item quantity="other">Pēc <xliff:g id="NUMBER_1">%d</xliff:g> sekundēm tiks veikts ekrānuzņēmums kļūdas pārskatam.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Klusuma režīms"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Skaņa ir IZSLĒGTA."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Skaņa ir IESLĒGTA."</string>
@@ -549,8 +557,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Mēģiniet vēlreiz."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nav reģistrēts neviens pirksta nospiedums."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Šajā ierīcē nav pirksta nospieduma sensora."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensors ir īslaicīgi atspējots."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g>. pirksts"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +601,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nevar verificēt seju. Mēģiniet vēlreiz."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Autorizācija pēc sejas nav iestatīta."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Autorizācija pēc sejas šajā ierīcē netiek atbalstīta"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensors ir īslaicīgi atspējots."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Seja <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1338,6 +1344,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB atkļūdošana ir pievienota."</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Pieskarieties, lai izslēgtu USB atkļūdošanu"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Atlasiet, lai atspējotu USB atkļūdošanu."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Aktivizēta bezvadu atkļūdošana"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Pieskarieties, lai izslēgtu bezvadu atkļūdošanu."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Atlasiet, lai atspējotu bezvadu atkļūdošanu."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Drošības pārbaudes režīms ir iespējots"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Lai atspējotu drošības pārbaudes režīmu, veiciet rūpnīcas datu atiestatīšanu."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Seriālā konsole ir iespējota"</string>
@@ -1643,8 +1652,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Fonā sāktam priekšplāna pakalpojumam no pakotnes <xliff:g id="PACKAGENAME">%1$s</xliff:g> nebūs atļaujas “while-in-use” turpmākajās R versijās. Lūdzu, skatiet vietni go/r-bg-fgs-restriction un iesniedziet kļūdas pārskatu."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vai palielināt skaļumu virs ieteicamā līmeņa?\n\nIlgstoši klausoties skaņu lielā skaļumā, var tikt bojāta dzirde."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vai izmantot pieejamības saīsni?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kad īsinājumtaustiņš ir ieslēgts, nospiežot abas skaļuma pogas un 3 sekundes turot tās, tiks aktivizēta pieejamības funkcija."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Rediģēt īsinājumtaustiņus"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Atcelt"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Izslēgt saīsni"</string>
@@ -1877,6 +1885,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Nav kategorijas"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Jūs iestatījāt šo paziņojumu svarīguma līmeni."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Tas ir svarīgi iesaistīto personu dēļ."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Vai atļaut lietotnei <xliff:g id="APP">%1$s</xliff:g> izveidot jaunu lietotāju, izmantojot e-pasta adresi <xliff:g id="ACCOUNT">%2$s</xliff:g> (lietotājs ar šādu kontu jau pastāv)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Vai atļaut lietotnei <xliff:g id="APP">%1$s</xliff:g> izveidot jaunu lietotāju, izmantojot e-pasta adresi <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Pievienot valodu"</string>
@@ -2052,20 +2062,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Pakotne “<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>” ir ievietota ierobežotā kopā."</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Privātais profils"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Darba profils"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nevar kopīgot ar darba lietotnēm"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nevar kopīgot ar personīgajām lietotnēm"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Jūsu IT administrators bloķēja datu kopīgošanu starp personīgajām un darba lietotnēm."</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ieslēdziet darba lietotnes"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ieslēdziet darba lietotnes, lai piekļūtu darba lietotnēm un kontaktpersonām."</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nav pieejamu lietotņu"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Netika atrasta neviena lietotne."</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ieslēgt darba profilu"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Ierakstīt vai atskaņot audio tālruņa sarunās"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Ļauj šai lietotnei ierakstīt vai atskaņot audio tālruņa sarunās, kad tā ir iestatīta kā noklusējuma tālruņa lietojumprogramma."</string>
 </resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index a80779c..14979bd 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Вашата организација управува со уредов и можно е да го следи сообраќајот на мрежата. Допрете за детали."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Администраторот ги променил поставките за локација"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Допрете за да ги видите поставките за локација."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Детектор на земја"</string>
+    <string name="location_service" msgid="2439187616018455546">"Услуги според локација"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Услуга за известување од сензорот"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Услуга за самрак"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Уредот ќе се избрише"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Апликацијата на администраторот не може да се користи. Уредот ќе се избрише сега.\n\nАко имате прашања, контактирајте со администраторот на организацијата."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Печатењето е оневозможено од <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Ќе се направи слика од екранот за извештајот за грешки за <xliff:g id="NUMBER_1">%d</xliff:g> секунда.</item>
       <item quantity="other">Ќе се направи слика од екранот за извештајот за грешки за <xliff:g id="NUMBER_1">%d</xliff:g> секунди.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Тивок режим"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Звукот е исклучен"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Звукот е вклучен"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Обидете се повторно."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Не се запишани отпечатоци."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Уредов нема сензор за отпечатоци."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Сензорот е привремено оневозможен."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Прст <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Ликот не може да се потврди. Обидете се повторно."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Не сте поставиле „Отклучување со лик“."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"„Отклучувањето со лик“ не е поддржано на уредов."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Сензорот е привремено оневозможен."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Лице <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1167,7 +1173,7 @@
     <string name="aerr_application_repeated" msgid="7804378743218496566">"<xliff:g id="APPLICATION">%1$s</xliff:g> постојано запира"</string>
     <string name="aerr_process_repeated" msgid="1153152413537954974">"<xliff:g id="PROCESS">%1$s</xliff:g> постојано запира"</string>
     <string name="aerr_restart" msgid="2789618625210505419">"Отвори ја апликацијата повторно"</string>
-    <string name="aerr_report" msgid="3095644466849299308">"Испрати повратни информации"</string>
+    <string name="aerr_report" msgid="3095644466849299308">"Испратете повратни информации"</string>
     <string name="aerr_close" msgid="3398336821267021852">"Затвори"</string>
     <string name="aerr_mute" msgid="2304972923480211376">"Исклучи го звукот додека уредот не се рестартира"</string>
     <string name="aerr_wait" msgid="3198677780474548217">"Почекај"</string>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Поврзано е отстранување грешки преку USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Допрете за да го исклучите"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Изберете за да се оневозможи отстранување грешки на USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Безжичното отстранување грешки е поврзано"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Допрете за да се исклучи безжичното отстранување грешки"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Изберете за да се оневозможи безжично отстранување грешки."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Овозможен е режимот на рамка за тестирање"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Извршете фабричко ресетирање за да го оневозможите режимот на рамка за тестирање."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Сериската конзола е овозможена"</string>
@@ -1623,8 +1632,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Услугата од преден план започната во заднина од <xliff:g id="PACKAGENAME">%1$s</xliff:g> нема да има дозола за „додека се користи“ во идните R-верзии. Погледнете на go/r-bg-fgs-restriction и испратете извештај за грешка."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Да го зголемиме звукот над препорачаното ниво?\n\nСлушањето звуци со голема јачина подолги периоди може да ви го оштети сетилото за слух."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Да се користи кратенка за „Пристапност“?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Кога е вклучена кратенката, ако ги притиснете двете копчиња за јачина на звук во времетраење од 3 секунди, ќе се стартува функција за пристапност."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Изменете ги кратенките"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Откажи"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Исклучи ја кратенката"</string>
@@ -1847,6 +1855,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Некатегоризирано"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ја поставивте важноста на известувањава."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ова е важно заради луѓето кои се вклучени."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Дозволувате <xliff:g id="APP">%1$s</xliff:g> да создаде нов корисник со <xliff:g id="ACCOUNT">%2$s</xliff:g>? (Веќе постои корисник со оваа сметка.)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Дозволувате <xliff:g id="APP">%1$s</xliff:g> да создаде нов корисник со <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Додај јазик"</string>
@@ -2020,20 +2030,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е ставен во корпата ОГРАНИЧЕНИ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Службени"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не може да се споделува со работни апликации"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не може да се споделува со лични апликации"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Вашиот администратор за ИТ го блокирал споделувањето помеѓу лични и работни апликации"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Вклучете работни апликации"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Вклучете работни апликации за да пристапувате до работни апликации и контакти"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Нема достапни апликации"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Не можевме да најдеме ниедна апликација"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Промени на работен"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Снимајте или пуштајте аудио во телефонски повици"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дозволува апликацијава да снима или да пушта аудио во телефонски повици кога е назначена како стандардна апликација за бирање."</string>
 </resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index ccc6b31..1513db1 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -191,10 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"വ്യക്തിപരമായ ഉപയോഗത്തിനായി, ഉപകരണത്തിന്റെ ഔദ്യോഗിക ഉപയോഗം അഡ്‌മിൻ അവസാനിപ്പിച്ചു"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"ഉപകരണം മാനേജുചെയ്യുന്നുണ്ട്"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"നിങ്ങളുടെ സ്ഥാപനമാണ് ഈ ഉപകരണം മാനേജുചെയ്യുന്നത്, നെറ്റ്‌വർക്ക് ട്രാഫിക്ക് നിരീക്ഷിക്കുകയും ചെയ്തേക്കാം, വിശദാംശങ്ങൾ അറിയാൻ ടാപ്പുചെയ്യുക."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
-    <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
-    <skip />
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"നിങ്ങളുടെ അഡ്‌മിൻ ലൊക്കേഷൻ ക്രമീകരണം മാറ്റി"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"നിങ്ങളുടെ ലൊക്കേഷൻ ക്രമീകരണം കാണാൻ ടാപ്പ് ചെയ്യുക."</string>
+    <string name="country_detector" msgid="7023275114706088854">"രാജ്യം കണ്ടെത്താനുള്ള സംവിധാനം"</string>
+    <string name="location_service" msgid="2439187616018455546">"ലൊക്കേഷൻ സേവനം"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"സെൻസർ അറിയിപ്പ് സേവനം"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"സന്ധ്യാസമയത്തെ സേവനം"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"നിങ്ങളുടെ ഉപകരണം മായ്‌ക്കും"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"അഡ്‌മിൻ ആപ്പ് ഉപയോഗിക്കാനാകില്ല. നിങ്ങളുടെ ഉപകരണം ഇപ്പോൾ മായ്ക്കപ്പെടും.\n\nനിങ്ങൾക്ക് ചോദ്യങ്ങൾ ഉണ്ടെങ്കിൽ, നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ അഡ്‌മിനെ ബന്ധപ്പെടുക."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> പ്രിന്റിംഗ് പ്രവർത്തനരഹിതമാക്കി."</string>
@@ -247,6 +249,10 @@
       <item quantity="other">ബഗ് റിപ്പോർട്ടിനായി <xliff:g id="NUMBER_1">%d</xliff:g> സെക്കൻഡിൽ സ്ക്രീൻഷോട്ട് എടുക്കുന്നു.</item>
       <item quantity="one">ബഗ് റിപ്പോർട്ടിനായി <xliff:g id="NUMBER_0">%d</xliff:g> സെക്കൻഡിൽ സ്ക്രീൻഷോട്ട് എടുക്കുന്നു.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"നിശബ്‌ദ മോഡ്"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ശബ്‌ദം ഓഫാണ്"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ശബ്‌ദം ഓണാണ്"</string>
@@ -433,8 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"സിസ്‌റ്റം ക്യാമറ ഉപയോഗിച്ച് ഏത് സമയത്തും ചിത്രങ്ങളെടുക്കാനും വീഡിയോകൾ റെക്കോർഡ് ചെയ്യാനും ഈ വിശേഷാധികാര | സിസ്‌റ്റം ആപ്പിന് കഴിയും. ആപ്പിലും android.permission.CAMERA അനുമതി ഉണ്ടായിരിക്കണം"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"വൈബ്രേറ്റുചെയ്യൽ നിയന്ത്രിക്കുക"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"വൈബ്രേറ്റർ നിയന്ത്രിക്കുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"വൈബ്രേറ്റ് ചെയ്യൽ ആക്‌സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"ഫോൺ നമ്പറുകളിലേക്ക് നേരിട്ട് വിളിക്കുക"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"നിങ്ങളുടെ ഇടപെടൽ ഇല്ലാതെ ഫോൺ നമ്പറുകളിലേക്ക് കോൾ ചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ഇത് അപ്രതീക്ഷിത നിരക്കുകൾക്കോ കോളുകൾക്കോ ഇടയാക്കാം. ഇത് അടിയന്തര നമ്പറുകളിലേക്ക് വിളിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കില്ലെന്ന കാര്യം ശ്രദ്ധിക്കുക. ക്ഷുദ്രകരമായ അപ്ലിക്കേഷനുകൾ നിങ്ങളുടെ സ്ഥിരീകരണമില്ലാതെ കോളുകൾ ചെയ്യുന്നത് പണച്ചെലവിനിടയാക്കാം."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS കോൾ സേവനം ആക്സസ് ചെയ്യുക"</string>
@@ -549,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"വീണ്ടും ശ്രമിക്കൂ."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"വിരലടയാളങ്ങൾ എൻറോൾ ചെയ്തിട്ടില്ല."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ഈ ഉപകരണത്തിൽ ഫിംഗർപ്രിന്റ് സെൻസറില്ല."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"സെൻസർ താൽക്കാലികമായി പ്രവർത്തനരഹിതമാക്കി."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"കൈവിരൽ <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"മുഖം പരിശോധിക്കാൻ കഴിയില്ല. വീണ്ടും ശ്രമിക്കൂ."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"മുഖം തിരിച്ചറിഞ്ഞുള്ള അൺലോക്ക് സജ്ജീകരിച്ചില്ല."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"മുഖം തിരിച്ചറിഞ്ഞുള്ള അൺലോക്ക് ഈ ഉപകരണം പിന്തുണയ്ക്കുന്നില്ല."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"സെൻസർ താൽക്കാലികമായി പ്രവർത്തനരഹിതമാക്കി."</string>
     <string name="face_name_template" msgid="3877037340223318119">"മുഖം <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1321,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB ഡീബഗ്ഗിംഗ് കണക്റ്റ് ചെയ്തു"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB ഡീബഗ്ഗിംഗ് ഓഫാക്കാൻ ടാപ്പ് ചെയ്യുക"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ഡീബഗ്ഗുചെയ്യൽ പ്രവർത്തനരഹിതമാക്കാൻ തിരഞ്ഞെടുക്കുക."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"വയർലെസ് ഡീബഗ്ഗ് ചെയ്യൽ കണക്റ്റ് ചെയ്തിരിക്കുന്നു"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"വയർലെസ് ഡീബഗ്ഗ് ചെയ്യൽ ഓഫാക്കാൻ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"വയർലെസ് ഡീബഗ്ഗ് ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കാൻ തിരഞ്ഞെടുക്കുക."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"പരിശോധനാ സംവിധാനങ്ങൾ മോഡ് പ്രവർത്തനക്ഷമമാക്കി"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"പരിശോധനാ സംവിധാന മോഡ് പ്രവർത്തനരഹിതമാക്കാൻ ഫാക്‌ടറി പുനഃക്രമീകരണം നിർവഹിക്കുക."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"സീരിയൽ കൺസോൾ പ്രവർത്തനക്ഷമമാക്കി"</string>
@@ -1624,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> എന്നതിൽ നിന്നുള്ള പശ്ചാത്തലത്തിൽ ആരംഭിച്ച് ഫോർഗ്രൗണ്ടിൽ വരുന്ന സേവനത്തിന് ഭാവി R ബിൽഡുകളിൽ, \'ഉപയോഗിക്കുമ്പോൾ മാത്രമുള്ള അനുമതി\' ഉണ്ടായിരിക്കില്ല. go/r-bg-fgs-restriction കണ്ട് ബഗ് റിപ്പോർട്ട് ഫയൽ ചെയ്യുക."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"മുകളിൽക്കൊടുത്തിരിക്കുന്ന ശുപാർശചെയ്‌ത ലെവലിലേക്ക് വോളിയം വർദ്ധിപ്പിക്കണോ?\n\nഉയർന്ന വോളിയത്തിൽ ദീർഘനേരം കേൾക്കുന്നത് നിങ്ങളുടെ ശ്രവണ ശേഷിയെ ദോഷകരമായി ബാധിക്കാം."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ഉപയോഗസഹായി കുറുക്കുവഴി ഉപയോഗിക്കണോ?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"കുറുക്കുവഴി ഓണായിരിക്കുമ്പോൾ, രണ്ട് വോളിയം ബട്ടണുകളും 3 സെക്കൻഡ് നേരത്തേക്ക് അമർത്തുന്നത് ഉപയോഗസഹായി ഫീച്ചർ ആരംഭിക്കും."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"കുറുക്കുവഴികൾ തിരുത്തുക"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"റദ്ദാക്കുക"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"കുറുക്കുവഴി ‌ഓഫാക്കുക"</string>
@@ -1848,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"വർഗ്ഗീകരിച്ചിട്ടില്ലാത്ത"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ഈ അറിയിപ്പുകളുടെ പ്രാധാന്യം നിങ്ങൾ സജ്ജീകരിച്ചു."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ഉൾപ്പെട്ടിട്ടുള്ള ആളുകളെ കണക്കിലെടുക്കുമ്പോള്‍ ഇത് പ്രധാനപ്പെട്ടതാണ്‌."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> എന്ന അക്കൗണ്ട് (ഈ അക്കൗണ്ട് ഉപയോഗിക്കുന്ന ഒരു ഉപയോക്താവ് നിലവിലുണ്ട്) ഉപയോഗിച്ച് പുതിയ ഉപയോക്താവിനെ സൃഷ്‌ടിക്കാൻ <xliff:g id="APP">%1$s</xliff:g> എന്നതിനെ അനുവദിക്കണോ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> എന്ന അക്കൗണ്ട് ഉപയോഗിച്ച് പുതിയ ഉപയോക്താവിനെ സൃഷ്‌ടിക്കാൻ <xliff:g id="APP">%1$s</xliff:g> എന്നതിനെ അനുവദിക്കണോ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ഒരു ഭാഷ ചേർക്കുക"</string>
@@ -2021,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> നിയന്ത്രിത ബക്കറ്റിലേക്ക് നീക്കി"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"വ്യക്തിപരമായത്"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ജോലിസ്ഥലം"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ഔദ്യോഗിക ആപ്പുകൾ ഉപയോഗിച്ച് പങ്കിടാനാവില്ല"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"വ്യക്തിപരമാക്കിയ ആപ്പുകൾ ഉപയോഗിച്ച് പങ്കിടാനാവില്ല"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"വ്യക്തിപരമാക്കിയ ആപ്പുകളുടെയും ഔദ്യോഗിക ആപ്പുകളുടെയും ഇടയിലുള്ള പങ്കിടൽ നിങ്ങളുടെ ഐടി അഡ്മിൻ ബ്ലോക്ക് ചെയ്തു"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"ഔദ്യോഗിക ആപ്പുകൾ ഓണാക്കുക"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"ഔദ്യോഗിക ആപ്പുകൾ, കോൺടാക്റ്റുകൾ എന്നിവ ആക്സസ് ചെയ്യാൻ ഔദ്യോഗിക ആപ്പുകൾ ഓണാക്കുക"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ആപ്പുകളൊന്നും ലഭ്യമല്ല"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"ഞങ്ങൾക്ക് ആപ്പുകളൊന്നും കണ്ടെത്താൻ കഴിഞ്ഞില്ല"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"ഔദ്യോഗിക പ്രൊഫൈൽ ഓണാക്കുക"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ടെലിഫോൺ കോളുകൾ ചെയ്യുമ്പോൾ റെക്കോർഡ് ചെയ്യുക അല്ലെങ്കിൽ ഓഡിയോ പ്ലേ ചെയ്യുക"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ഡിഫോൾട്ട് ഡയലർ ആപ്പായി അസെെൻ ചെയ്യുന്ന സമയത്ത്, ടെലിഫോൺ കോളുകൾ ചെയ്യുമ്പോൾ റെക്കോർഡ് ചെയ്യാൻ അല്ലെങ്കിൽ ഓഡിയോ പ്ലേ ചെയ്യാൻ ഈ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
 </resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index a21f6ec..b61474d 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Таны байгууллага энэ төхөөрөмжийг удирдаж, сүлжээний ачааллыг хянадаг. Дэлгэрэнгүй мэдээлэл авах бол товшино уу."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Таны админ байршлын тохиргоог өөрчилсөн байна"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Байршлын тохиргоогоо харахын тулд товшино уу."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Улс тодорхойлогч"</string>
+    <string name="location_service" msgid="2439187616018455546">"Байршлын үйлчилгээ"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Мэдрэгчийн мэдэгдлийн үйлчилгээ"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight үйлчилгээ"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Таны төхөөрөмж устах болно."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Админ аппыг ашиглах боломжгүй. Таны төхөөрөмжийг одоо устгана.\n\nХэрэв танд асуулт байгаа бол байгууллагынхаа админтай холбогдоно уу."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> хэвлэх үйлдлийг идэвхгүй болгосон."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Алдааны тайлангийн дэлгэцийн зургийг <xliff:g id="NUMBER_1">%d</xliff:g> секундад авна.</item>
       <item quantity="one">Алдааны тайлангийн дэлгэцийн зургийг <xliff:g id="NUMBER_0">%d</xliff:g> секундад авна.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Дуугүй горим"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Дуу хаагдсан"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Дуу асав"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Дахин оролдно уу."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Бүртгүүлсэн хурууны хээ алга."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Энэ төхөөрөмжид хурууны хээ мэдрэгч алга."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Мэдрэгчийг түр хугацаанд идэвхгүй болгосон."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Хурууны хээ <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Царайг бататгаж чадсангүй. Дахин оролдоно уу."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Та царайгаар тайлахыг тохируулаагүй байна."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Царайгаар тайлахыг энэ төхөөрөмж дээр дэмждэггүй."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Мэдрэгчийг түр хугацаанд идэвхгүй болгосон."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Царай <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB дебаг холбогдсон"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB дебаг хийхийг унтраахын тулд товшино уу"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB дебаг хийхийг идэвхгүй болгох бол сонгоно уу."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Утасгүй дебагийг холболоо"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Утасгүй дебагийг унтраахын тулд товшино уу"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Утасгүй дебагийг идэвхгүй болгохын тулд сонгоно уу."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Туршилтын цогц горимыг идэвхжүүлсэн"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Туршилтын цогц горимыг идэвхгүй болгохын тулд үйлдвэрийн төлөвт шинэчилнэ үү."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Цуваа консолыг идэвхжүүлсэн"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g>-н дэлгэц дээрх үйлчилгээг эхлүүлдэг дэвсгэр нь цаашид R хийцийн ашиглах үеийн зөвшөөрөлгүй болно. go/r-bg-fgs-restriction-г үзэж, алдааны мэдээ илгээнэ үү."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Дууг санал болгосноос чанга болгож өсгөх үү?\n\nУрт хугацаанд чанга хөгжим сонсох нь таны сонсголыг муутгаж болно."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Хүртээмжийн товчлолыг ашиглах уу?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Товчлол асаалттай үед дууны түвшний хоёр товчлуурыг хамтад нь 3 секунд дарснаар хандалтын онцлогийг эхлүүлнэ."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Товчлолуудыг засах"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Болих"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Товчлолыг унтраах"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Ангилаагүй"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Та эдгээр мэдэгдлийн ач холбогдлыг тогтоосон."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Оролцсон хүмүүсээс шалтгаалан энэ нь өндөр ач холбогдолтой."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>-д <xliff:g id="ACCOUNT">%2$s</xliff:g>-тай (ийм бүртгэлтэй хэрэглэгч аль хэдийн байна) шинэ хэрэглэгч үүсгэхийг зөвшөөрөх үү ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>-д <xliff:g id="ACCOUNT">%2$s</xliff:g>-тай шинэ хэрэглэгч үүсгэхийг зөвшөөрөх үү?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Хэл нэмэх"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>-г ХЯЗГААРЛАСАН сагс руу орууллаа"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Хувийн"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Ажил"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ажлын аппуудтай хуваалцах боломжгүй"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Хувийн аппуудтай хуваалцах боломжгүй"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Танай IT админ хувийн болон ажлын аппуудын хооронд хуваалцахыг блоклосон."</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ажлын аппуудыг асаана уу"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ажлын апп, харилцагчдад хандахын тулд ажлын аппыг асаана уу"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Боломжтой апп алга байна"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Бид ямар ч апп олж чадсангүй"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ажил дээр сэлгэх"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Утасны дуудлагын үеэр аудио бичих эсвэл тоглуулах"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Энэ аппыг залгагч өгөгдмөл аппликэйшн болгосон үед түүнд утасны дуудлагын үеэр аудио бичих эсвэл тоглуулахыг зөвшөөрдөг."</string>
 </resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 5f392af..d3c31a5 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -193,6 +193,14 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"तुमची संस्था हे डिव्हाइस व्यवस्थापित करते आणि नेटवर्क रहदारीचे निरीक्षण करू शकते. तपशीलांसाठी टॅप करा."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"तुमच्या ॲडमिनने स्थान सेटिंग्ज बदलल्या आहेत"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"तुमची स्थान सेटिंग्ज पाहण्यासाठी टॅप करा."</string>
+    <!-- no translation found for country_detector (7023275114706088854) -->
+    <skip />
+    <!-- no translation found for location_service (2439187616018455546) -->
+    <skip />
+    <!-- no translation found for sensor_notification_service (7474531979178682676) -->
+    <skip />
+    <!-- no translation found for twilight_service (8964898045693187224) -->
+    <skip />
     <string name="factory_reset_warning" msgid="6858705527798047809">"तुमचे डिव्हाइस मिटविले जाईल"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"प्रशासक अ‍ॅप वापरता येणार नाही. तुमचे डिव्हाइस आता साफ केले जाईल.\n\nतुम्हाला कुठलेही प्रश्न असल्यास, तुमच्या संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> नी प्रिंट करणे बंद केले आहे."</string>
@@ -245,6 +253,10 @@
       <item quantity="other">दोष अहवालासाठी <xliff:g id="NUMBER_1">%d</xliff:g> सेकंदांमध्‍ये स्क्रीनशॉट घेत आहे.</item>
       <item quantity="one">दोष अहवालासाठी <xliff:g id="NUMBER_0">%d</xliff:g> सेकंदामध्‍ये स्क्रीनशॉट घेत आहे.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"मूक मोड"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ध्वनी बंद आहे"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ध्वनी चालू आहे"</string>
@@ -546,8 +558,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"पुन्हा प्रयत्न करा."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"कोणत्याही फिंगरप्रिंटची नोंद झाली नाही"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"या डिव्हाइसमध्ये फिंगरप्रिंट सेन्सर नाही."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"सेन्सर तात्पुरता बंद केला आहे."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g> बोट"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +602,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"चेहरा पडताळणी करू शकत नाही. पुन्हा प्रयत्न करा."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"तुम्ही फेस अनलॉक सेट केले नाही."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"या डिव्हाइसवर फेस अनलॉकला सपोर्ट नाही."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"सेन्सर तात्पुरता बंद केला आहे."</string>
     <string name="face_name_template" msgid="3877037340223318119">"चेहरा <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1328,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB डीबगिंग कनेक्‍ट केले"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB डीबगिंग बंद करण्यासाठी टॅप करा"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB डीबगिंग बंद करण्यासाठी निवडा."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"वायरलेस डीबगिंग कनेक्ट केले आहे"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"वायरलेस डीबगिंग बंद करण्यासाठी टॅप करा"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"वायरलेस डीबगिंग बंद करण्यासाठी निवडा."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"टेस्ट हार्नेस मोड सुरू केला आहे"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"टेस्ट हार्नेस मोड बंद करण्यासाठी फॅक्टरी रीसेट करा."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"सिरीअल कन्सोल सुरू केला आहे"</string>
@@ -1621,8 +1634,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> कडून बॅकग्राउंडने फोरग्राउंडमध्ये सुरू केलेल्या सेवेला भविष्यातील आर बिल्डमध्ये वापर करते वेळची परवानगी नसेल. कृपया go/r-bg-fgs-restriction पहा आणि बगची तक्रार नोंदवा."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"शिफारस केलेल्‍या पातळीच्या वर आवाज वाढवायचा?\n\nउच्च आवाजात दीर्घ काळ ऐकण्‍याने आपल्‍या श्रवणशक्तीची हानी होऊ शकते."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"प्रवेशयोग्यता शॉर्टकट वापरायचा?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"शॉर्टकट सुरू असताना, दोन्ही व्‍हॉल्‍यूम बटणे तीन सेकंदांसाठी दाबून ठेवल्याने अ‍ॅक्सेसिबिलिटी वैशिष्ट्य सुरू होईल."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"शॉर्टकट संपादित करा"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"रद्द करा"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"शॉर्टकट बंद करा"</string>
@@ -1845,6 +1857,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"वर्गीकरण न केलेले"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"तुम्ही या सूचनांचे महत्त्व सेट केले."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"सामील असलेल्या लोकांमुळे हे महत्वाचे आहे."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> सह नवीन वापरकर्ता तयार करण्याची (हे खाते असलेला वापरकर्ता आधीपासून अस्तित्वात आहे) <xliff:g id="APP">%1$s</xliff:g> ला अनुमती द्यायची आहे का?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> सह नवीन वापरकर्ता तयार करण्याची <xliff:g id="APP">%1$s</xliff:g> ला अनुमती द्यायची आहे का?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"एक भाषा जोडा"</string>
@@ -2018,20 +2032,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> हे प्रतिबंधित बादलीमध्ये ठेवण्यात आले आहे"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"वैयक्तिक"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ऑफिस"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ऑफिस ॲप्स सोबत शेअर करू शकत नाही"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"वैयक्तिक अ‍ॅप्स सोबत शेअर करू शकत नाही"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"तुमच्या आयटी ॲडमिनने वैयक्तिक आणि ऑफिस ॲप्स दरम्यान शेअर करणे ब्लॉक केले आहे"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"ऑफिस अ‍ॅप्स सुरू करा"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"ऑफिस ॲप्स &amp; संपर्क अ‍ॅक्सेस करण्यासाठी ऑफिस ॲप्स सुरू करा"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"कोणतीही अ‍ॅप्स उपलब्ध नाहीत"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"आम्हाला कोणतीही अ‍ॅप्स सापडली नाहीत"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"ऑफिस प्रोफाइलवर स्विच करा"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"टेलिफोनी कॉलमध्ये ऑडिओ रेकॉर्ड करा किंवा प्ले करा"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"टेलिफोनी कॉलमध्ये ऑडिओ रेकॉर्ड करण्याची किंवा प्ले करण्यासाठी डीफॉल्ट डायलर अ‍ॅप्लिकेशन म्हणून असाइन केले असताना या ॲपला परवानगी देते."</string>
 </resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 848ebf4..909fcc9 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organisasi anda mengurus peranti ini dan mungkin memantau trafik rangkaian. Ketik untuk mendapatkan butiran."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Tetapan lokasi diubah oleh pentadbir anda"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Ketik untuk melihat tetapan lokasi anda."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Pengesan Negara"</string>
+    <string name="location_service" msgid="2439187616018455546">"Perkhidmatan Lokasi"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Perkhidmatan Pemberitahuan Penderia"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Perkhidmatan Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Peranti anda akan dipadam"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Apl pentadbir tidak dapat digunakan. Peranti anda akan dipadamkan sekarang.\n\nJika anda ingin mengemukakan soalan, hubungi pentadbir organisasi anda."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Pencetakan dilumpuhkan oleh <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Mengambil tangkapan skrin untuk laporan pepijat dalam masa <xliff:g id="NUMBER_1">%d</xliff:g> saat.</item>
       <item quantity="one">Mengambil tangkapan skrin untuk laporan pepijat dalam masa <xliff:g id="NUMBER_0">%d</xliff:g> saat.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Mod senyap"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Bunyi DIMATIKAN"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Bunyi DIHIDUPKAN"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Cuba lagi."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Tiada cap jari didaftarkan."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Peranti ini tiada penderia cap jari."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Penderia dilumpuhkan sementara."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Jari <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Tidak dapat mengesahkan wajah. Cuba lagi."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Anda belum menyediakan wajah buka kunci."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Wajah buka kunci tidak disokong pada peranti ini."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Penderia dilumpuhkan sementara."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Wajah <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Penyahpepijatan USB disambungkan"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Ketik untuk mematikan penyahpepijatan USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Pilih untuk melumpuhkan penyahpepijatan USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Penyahpepijatan wayarles disambungkan"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Ketik untuk mematikan penyahpepijatan wayarles"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Pilih untuk melumpuhkan penyahpepijatan wayarles."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Mod Abah-abah Ujian didayakan"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Laksanakan tetapan semula kilang untuk melumpuhkan Mod Abah-abah Ujian."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Konsol bersiri didayakan"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Perkhidmatan latar depan dimulakan latar belakang daripada <xliff:g id="PACKAGENAME">%1$s</xliff:g> tidak akan mempunyai kebenaran semasa-dalam-penggunaan dalam binaan R akan datang. Sila lihat go/r-bg-fgs-restriction dan failkan laporan pepijat."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Naikkan kelantangan melebihi paras yang disyokorkan?\n\nMendengar pada kelantangan yang tinggi untuk tempoh yang lama boleh merosakkan pendengaran anda."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gunakan Pintasan Kebolehaksesan?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Apabila pintasan dihidupkan, tindakan menekan kedua-dua butang kelantangan selama 3 saat akan memulakan ciri kebolehaksesan."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit pintasan"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Batal"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Matikan pintasan"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Tidak dikategorikan"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Anda menetapkan kepentingan pemberitahuan ini."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Mesej ini penting disebabkan orang yang terlibat."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Benarkan <xliff:g id="APP">%1$s</xliff:g> membuat Pengguna baharu dengan <xliff:g id="ACCOUNT">%2$s</xliff:g> (Pengguna dengan akaun ini sudah wujud) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Benarkan <xliff:g id="APP">%1$s</xliff:g> membuat Pengguna baharu dengan <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Tambahkan bahasa"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> telah diletakkan dalam baldi TERHAD"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Peribadi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Kerja"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Tidak dapat berkongsi dengan apl kerja"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Tidak dapat berkongsi dengan apl peribadi"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Pentadbir IT anda menyekat perkongsian antara apl peribadi dan kerja"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Hidupkan apl kerja"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Hidupkan apl kerja untuk mengakses apl &amp; kenalan kerja"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Tiada rangkaian yang tersedia"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Kami tidak menemukan sebarang apl"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Hidupkan kerja"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Rakam atau mainkan audio dalam panggilan telefoni"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Apabila ditetapkan sebagai apl pendail lalai, membenarkan apl ini merakam atau memainkan audio dalam panggilan telefoni."</string>
 </resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 95a41f2..9a902c8 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ဤစက်ပစ္စည်းကို သင်၏ အဖွဲ့အစည်းက စီမံပြီး ကွန်ရက်အသွားအလာကို စောင့်ကြည့်နိုင်ပါသည်။ ထပ်မံလေ့လာရန် တို့ပါ။"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"သင့်စီမံခန့်ခွဲသူက တည်နေရာပြ ဆက်တင်များကို ပြောင်းထားသည်"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"သင့်တည်နေရာပြ ဆက်တင်များကို ကြည့်ရန် တို့ပါ။"</string>
+    <string name="country_detector" msgid="7023275114706088854">"နိုင်ငံ ရှာဖွေစနစ်"</string>
+    <string name="location_service" msgid="2439187616018455546">"တည်နေရာဝန်ဆောင်မှု"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"အာရုံခံကိရိယာ အကြောင်းကြားချက် ဝန်ဆောင်မှု"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"နေဝင်ဆည်းဆာ ဝန်ဆောင်မှု"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"သင့်ကိရိယာအား ပယ်ဖျက်လိမ့်မည်"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"စီမံခန့်ခွဲမှု အက်ပ်ကို သုံး၍မရပါ။ သင်၏ စက်ပစ္စည်းအတွင်းရှိ အရာများကို ဖျက်လိုက်ပါမည်\n\nမေးစရာများရှိပါက သင့်အဖွဲ့အစည်း၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> က ပုံနှိပ်ထုတ်ယူခြင်းကို ပိတ်ထားသည်။"</string>
@@ -245,6 +249,10 @@
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> စက္ကန့်အတွင်း ချွတ်ယွင်းချက် အစီရင်ခံရန်အတွက် မျက်နှာပြင်ဓာတ်ပုံ ရိုက်ပါမည်။</item>
       <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> စက္ကန့်အတွင်း ချွတ်ယွင်းချက် အစီရင်ခံရန်အတွက် မျက်နှာပြင်ဓာတ်ပုံ ရိုက်ပါမည်။</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"အသံတိတ်စနစ်"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"အသံပိတ်ထားသည်"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"အသံဖွင့်ထားသည်"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ပြန်ကြိုးစားပါ"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"မည်သည့် လက်ဗွေကိုမျှ ထည့်သွင်းမထားပါ။"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ဤစက်တွင် လက်ဗွေအာရုံခံကိရိယာ မရှိပါ။"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"အာရုံခံကိရိယာကို ယာယီပိတ်ထားသည်။"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"လက်ချောင်း <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"မျက်နှာကို အတည်ပြု၍ မရပါ။ ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"မျက်နှာမှတ် သော့ဖွင့်ခြင်းကို ထည့်သွင်းမထားပါ"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"ဤစက်ပစ္စည်းတွင် မျက်နှာမှတ် သော့ဖွင့်ခြင်းကို သုံး၍မရပါ။"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"အာရုံခံကိရိယာကို ယာယီပိတ်ထားသည်။"</string>
     <string name="face_name_template" msgid="3877037340223318119">"မျက်နှာ <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1239,7 +1245,7 @@
     <string name="volume_icon_description_notification" msgid="579091344110747279">"အကြောင်းကြားသံအတိုးအကျယ်"</string>
     <string name="ringtone_default" msgid="9118299121288174597">"မူရင်းမြည်သံ"</string>
     <string name="ringtone_default_with_actual" msgid="2709686194556159773">"မူရင်း (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
-    <string name="ringtone_silent" msgid="397111123930141876">"တစ်ခုမှမဟုတ်"</string>
+    <string name="ringtone_silent" msgid="397111123930141876">"တစ်ခုမျှမဟုတ်"</string>
     <string name="ringtone_picker_title" msgid="667342618626068253">"မြည်သံများ"</string>
     <string name="ringtone_picker_title_alarm" msgid="7438934548339024767">"နှိုးစက်သံ"</string>
     <string name="ringtone_picker_title_notification" msgid="6387191794719608122">"အကြောင်းကြားချက်အသံ"</string>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB အမှားရှာပြင်စနစ် ချိတ်ဆက်ထားသည်"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB အမှားရှာပြင်ခြင်းကို ပိတ်ရန် တို့ပါ"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ဖြင့် အမှားရှာပြင်ခြင်းကို ပိတ်ရန် ရွေးပါ။"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ကြိုးမဲ့ အမှားရှာပြင်ခြင်းကို ချိတ်ဆက်ပြီးပြီ"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ကြိုးမဲ့ အမှားရှာပြင်ခြင်းကို ပိတ်ရန် တို့ပါ"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ကြိုးမဲ့ အမှားရှာပြင်ခြင်းကို ပိတ်ရန် ရွေးပါ။"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"\'စမ်းသပ်ခြင်းစနစ်မုဒ်\' ဖွင့်ထားသည်"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"\'စမ်းသပ်ခြင်းစနစ် မုဒ်\' ကိုပိတ်ရန် စက်ရုံထုတ်အတိုင်း ပြင်ဆင်သတ်မှတ်ပါ။"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"အမှတ်စဉ် ကွန်ဆိုးလ်ကို ဖွင့်ထားသည်"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> တွင် မှ စတင်သည့် foreground ဝန်ဆောင်မှုသည် နောက်ထွက်ရှိမည့် R စုပေါင်းစပ်ပေါင်း ပရိုဂရမ်များတွင် အသုံးပြုစဉ်အတွင်း ခွင့်ပြုချက် ရရှိမည်မဟုတ်ပါ။ go/r-bg-fgs-ကန့်သတ်ချက်များကို ကြည့်ပြီး အမှားသတင်းပို့ချက်တစ်ခု တင်သွင်းပါ။"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"အသံကို အကြံပြုထားသည့် ပမာဏထက် မြှင့်ပေးရမလား?\n\nအသံကို မြင့်သည့် အဆင့်မှာ ကြာရှည်စွာ နားထောင်ခြင်းက သင်၏ နားကို ထိခိုက်စေနိုင်သည်။"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"အများသုံးစွဲနိုင်မှု ဖြတ်လမ်းလင့်ခ်ကို အသုံးပြုလိုပါသလား။"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ဖြတ်လမ်းလင့်ခ်ကို ဖွင့်ထားစဉ် အသံထိန်းခလုတ် နှစ်ခုစလုံးကို ၃ စက္ကန့်ခန့် ဖိထားခြင်းဖြင့် အများသုံးစွဲနိုင်မှုဆိုင်ရာ ဝန်ဆောင်မှုကို ဖွင့်နိုင်သည်။"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ဖြတ်လမ်းများကို တည်းဖြတ်ရန်"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"မလုပ်တော့"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ဖြတ်လမ်းလင့်ခ်ကို ပိတ်ရန်"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"အမျိုးအစားမခွဲရသေးပါ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ဤသတိပေးချက်များ၏ အရေးပါမှုကိုသတ်မှတ်ပြီးပါပြီ။"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ပါဝင်သည့်လူများကြောင့် အရေးပါပါသည်။"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> ဖြင့်အသုံးပြုသူအသစ်ကို <xliff:g id="APP">%1$s</xliff:g> အား ဖန်တီးခွင့်ပြုလိုပါသလား (ဤအကောင့်ဖြင့် အသုံးပြုသူ ရှိနှင့်ပြီးဖြစ်သည်) ။"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> ဖြင့်အသုံးပြုသူအသစ်ကို <xliff:g id="APP">%1$s</xliff:g> အား ဖန်တီးခွင့်ပြုလိုပါသလား ။"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ဘာသာစကားတစ်ခု ထည့်ပါ"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ကို တားမြစ်ထားသော သိမ်းဆည်းမှုအတွင်းသို့ ထည့်ပြီးပါပြီ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ကိုယ်ပိုင်"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"အလုပ်"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"အလုပ်သုံးအက်ပ်များနှင့် မျှဝေ၍ မရပါ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ကိုယ်ပိုင်သုံးအက်ပ်များနှင့် မျှဝေ၍ မရပါ"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"သင့်အိုင်တီ စီမံခန့်ခွဲသူက ကိုယ်ပိုင်သုံးနှင့် အလုပ်သုံးအက်ပ်များအကြား မျှဝေခြင်းကို ပိတ်ထားသည်"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"အလုပ်သုံးအက်ပ်များကို ဖွင့်ပါ"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"အလုပ်သုံးအက်ပ်နှင့် အဆက်အသွယ်များကို သုံးရန် အလုပ်သုံးအက်ပ်များကို ဖွင့်ပါ"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"မည်သည့်အက်ပ်မျှ မရှိပါ"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"မည်သည့်အက်ပ်ကိုမျှ မတွေ့ပါ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"အလုပ်သုံးအနေအထားကို ဖွင့်ပါ"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ဖုန်းခေါ်ဆိုမှုများအတွင်း အသံဖမ်းခြင်း သို့မဟုတ် ဖွင့်ခြင်း"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ဤအက်ပ်အား မူလ dialer အပလီကေးရှင်းအဖြစ် သတ်မှတ်ထားစဉ် ဖုန်းခေါ်ဆိုမှုများအတွင်း အသံဖမ်းခြင်း သို့မဟုတ် ဖွင့်ခြင်း ပြုလုပ်ရန် ခွင့်ပြုပါ။"</string>
 </resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 7145ef3..93afcb2 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organisasjonen din kontrollerer denne enheten og kan overvåke nettverkstrafikk. Trykk for å få mer informasjon."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Posisjonsinnstillingene er endret av administratoren din"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Trykk for å se posisjonsinnstillingene dine."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Landsoppdagelse"</string>
+    <string name="location_service" msgid="2439187616018455546">"Posisjonstjeneste"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Notification Service"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Enheten blir slettet"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratorappen kan ikke brukes. Enheten din blir nå tømt.\n\nTa kontakt med administratoren for organisasjonen din hvis du har spørsmål."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> har slått av utskrift."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Tar skjermdump for feilrapporten om <xliff:g id="NUMBER_1">%d</xliff:g> sekunder.</item>
       <item quantity="one">Tar skjermdump for feilrapporten om <xliff:g id="NUMBER_0">%d</xliff:g> sekund.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Stillemodus"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Lyden er av"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Lyden er på"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Prøv igjen."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Ingen fingeravtrykk er registrert."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Denne enheten har ikke fingeravtrykkssensor."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensoren er midlertidig slått av."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Finger <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Kan ikke bekrefte ansiktet. Prøv igjen."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Du har ikke konfigurert Ansiktslås."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Ansiktslås støttes ikke på denne enheten"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensoren er midlertidig slått av."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Ansikt <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-feilsøking tilkoblet"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Trykk for å slå av USB-feilsøking"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Velg for å deaktivere USB-debugging."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Trådløs feilsøking er koblet til"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Trykk for å slå av trådløs feilsøking"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Velg for å slå av trådløs feilsøking."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Testrammeverk-modus er slått på"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Tilbakestill enheten til fabrikkstandard for å slå av Testrammeverk-modus."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Seriekonsollen er aktivert"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Forgrunnstjenesten fra <xliff:g id="PACKAGENAME">%1$s</xliff:g>, som ble startet i bakgrunnen, kommer ikke til å ha tillatelser mens den er i bruk i fremtidige R-delversjoner. Les go/r-bg-fgs-restriction og send inn en feilrapport."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vil du øke volumet til over anbefalt nivå?\n\nHvis du hører på et høyt volum over lengre perioder, kan det skade hørselen din."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vil du bruke tilgjengelighetssnarveien?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Når snarveien er på, starter en tilgjengelighetsfunksjon når du trykker inn begge volumknappene i tre sekunder."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Endre snarveier"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Avbryt"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Slå av snarveien"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Uten kategori"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Du angir viktigheten for disse varslene."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Dette er viktig på grunn av folkene som er involvert."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Vil du la <xliff:g id="APP">%1$s</xliff:g> opprette en ny bruker med <xliff:g id="ACCOUNT">%2$s</xliff:g> (en bruker med denne kontoen eksisterer allerede)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Vil du la <xliff:g id="APP">%1$s</xliff:g> opprette en ny bruker med <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Legg til et språk"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> er blitt plassert i TILGANGSBEGRENSET-toppmappen"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personlig"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Jobb"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Kan ikke dele med jobbapper"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kan ikke dele med personlige apper"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT-administratoren din har blokkert deling mellom personlige apper og jobbapper"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Slå på jobbapper"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Slå på jobbapper for å få tilgang til jobbapper og kontakter"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ingen apper er tilgjengelige"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Vi fant ingen apper"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Slå på jobbprofilen"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Ta opp eller spill av lyd i telefonsamtaler"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tillater at denne appen tar opp eller spiller av lyd i telefonsamtaler når den er angitt som standard ringeapp."</string>
 </resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index 6a61636..d47a8ed 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"तपाईंको संगठनले यस यन्त्रको व्यवस्थापन गर्दछ र नेटवर्क ट्राफिकको अनुगमन गर्न सक्छ। विवरणहरूका लागि ट्याप गर्नुहोस्।"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"तपाईंका प्रशासकले परिवर्तन गरेका स्थानसम्बन्धी सेटिङहरू"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"आफ्नो स्थानका सेटिङहरू हेर्न ट्याप गर्नुहोस्।"</string>
+    <string name="country_detector" msgid="7023275114706088854">"देश पत्ता लगाउने सुविधा"</string>
+    <string name="location_service" msgid="2439187616018455546">"स्थानसम्बन्धी सेवा"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"सेन्सरको सूचनासम्बन्धी सेवा"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ट्वाइलाइट सेवा"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"तपाईंको यन्त्र मेटिनेछ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"प्रशासकको अनुप्रयोग प्रयोग गर्न मिल्दैन। तपाईंको यन्त्रको डेटा अब मेटाइने छ।\n\nतपाईंसँग प्रश्नहरू भएका खण्डमा आफ्नो संगठनका प्रशासकसँग सम्पर्क गर्नुहोस्।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ले छाप्ने कार्यलाई असक्षम पार्यो।"</string>
@@ -245,6 +249,10 @@
       <item quantity="other"> बग रिपोर्टको लागि <xliff:g id="NUMBER_1">%d</xliff:g> सेकेन्डमा स्क्रिसट लिँदै।</item>
       <item quantity="one"> बग रिपोर्टको लागि <xliff:g id="NUMBER_0">%d</xliff:g> सेकेन्डमा स्क्रिसट लिँदै।</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"मौन मोड"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"आवाज बन्द छ"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ध्वनि खुल्ला छ"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"पुन: प्रयास गर्नुहोला।"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"कुनै पनि फिंगरप्रिन्ट दर्ता गरिएको छैन।"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"यो यन्त्रमा कुनै पनि फिंगरप्रिन्ट सेन्सर छैन।"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"केही समयका लागि सेन्सर असक्षम पारियो।"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"औंला <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"अनुहार पुष्टि गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"तपाईंले फेस अनलक सुविधा सेट अप गर्नुभएको छैन।"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"यस यन्त्रमा फेस अनलक सुविधा प्रयोग गर्न मिल्दैन।"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"केही समयका लागि सेन्सर असक्षम पारियो।"</string>
     <string name="face_name_template" msgid="3877037340223318119">"अनुहार <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1324,6 +1330,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB डिबग गर्ने सुविधा सुचारू छ"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB डिबग प्रक्रिया निष्क्रिय पार्न ट्याप गर्नुहोस्‌"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB डिबगिङलाई असक्षम पार्न ट्याप गर्नुहोस्।"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"वायरलेस डिबग प्रक्रिया जडान गरियो"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"वायरलेस डिबग प्रक्रिया निष्क्रिय पार्न ट्याप गर्नुहोस्"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"वायरलेस डिबग प्रक्रिया असक्षम पार्ने विकल्प चयन गर्नुहोस्।"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"परीक्षण प्याकेज मोड सक्षम पारियो"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"परीक्षण प्याकेज मोड असक्षम पार्न फ्याक्ट्री रिसेट गर्नुहोस्।"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"क्रमसम्बन्धी कन्सोल सक्षम पारियो"</string>
@@ -1627,8 +1636,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> को पृष्ठभूमिबाट सुरु गरिने अग्रभूमि सेवाका भविष्यमा आउने R बिल्डहरूमा चलाउँदै गर्दा प्रयोग गर्ने अनुमतिको दिइने छैन। कृपया go/r-bg-fgs-restriction हेर्नुहोस् र कुनै बगसम्बन्धी रिपोर्ट फाइल गर्नुहोस्।"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"सिफारिस तहभन्दा आवाज ठुलो गर्नुहुन्छ?\n\nलामो समय सम्म उच्च आवाजमा सुन्दा तपाईँको सुन्ने शक्तिलाई हानी गर्न सक्छ।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"पहुँच सम्बन्धी सर्टकट प्रयोग गर्ने हो?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"यो सर्टकट सक्रिय हुँदा, ३ सेकेन्डसम्म दुवै भोल्युम बटन थिच्नुले पहुँचसम्बन्धी कुनै सुविधा सुरु गर्ने छ।"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"सर्टकटहरू सम्पादन गर्नुहोस्"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"रद्द गर्नुहोस्"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"सर्टकटलाई निष्क्रिय पार्नुहोस्"</string>
@@ -1851,6 +1859,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"वर्गीकरण नगरिएको"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"तपाईंले यी सूचनाहरूको महत्त्व सेट गर्नुहोस् ।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"यसमा सङ्लग्न भएका मानिसहरूको कारणले गर्दा यो महत्वपूर्ण छ।"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> (यस खाताको प्रयोगकर्ता पहिले नै अवस्थित छ) मा नयाँ प्रयोगकर्ता सिर्जना गर्न <xliff:g id="APP">%1$s</xliff:g> लाई अनुमति दिने हो?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> मा नयाँ प्रयोगकर्ता सिर्जना गर्न <xliff:g id="APP">%1$s</xliff:g> लाई अनुमति दिने हो?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"भाषा थप्नुहोस्"</string>
@@ -2024,20 +2034,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> लाई प्रतिबन्धित बाल्टीमा राखियो"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"व्यक्तिगत"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"काम"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"कामसम्बन्धी अनुप्रयोगहरूसँग आदान प्रदान गर्न सकिँदैन"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"व्यक्तिगत अनुप्रयोगहरूसँग आदान प्रदान गर्न सकिँदैन"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"तपाईंका IT प्रशासकले व्यक्तिगत र कामसम्बन्धी अनुप्रयोगहरूबिच आदान प्रदान गर्ने सुविधामाथि रोक लगाउनुभयो"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"कामसम्बन्धी अनुप्रयोगहरू सक्रिय गर्नुहोस्"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"कामसम्बन्धी अनुप्रयोग र सम्पर्क ठेगानाहरूमाथि पहुँच राख्न कामसम्बन्धी अनुप्रयोगहरू सक्रिय गर्नुहोस्"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"कुनै पनि अनुप्रयोग उपलब्ध छैन"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"हामीले कुनै पनि अनुप्रयोग फेला पार्न सकेनौँ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"कार्य प्रोफाइल सक्षम पार्नुहोस्"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"टेलिफोन कल गर्दै गर्दा अडियो रेकर्ड गर्नुहोस् वा प्ले गर्नुहोस्"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"यस अनुप्रयोगलाई पूर्वनिर्धारित डायलर अनुप्रयोग निर्धारण गर्दा टेलिफोन कलको अडियो रेकर्ड गर्ने र प्ले गर्ने अनुमति दिन्छ।"</string>
 </resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index e959a07..df2f963 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Dit apparaat wordt beheerd door je organisatie. Het netwerkverkeer kan worden bijgehouden. Tik voor meer informatie."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Locatie-instellingen gewijzigd door je beheerder"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tik om je locatie-instellingen te bekijken."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Landdetectie"</string>
+    <string name="location_service" msgid="2439187616018455546">"Locatieservice"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Service voor sensormeldingen"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Service voor schemering"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Je apparaat wordt gewist"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"De beheer-app kan niet worden gebruikt. Je apparaat wordt nu gewist.\n\nNeem contact op met de beheerder van je organisatie als je vragen hebt."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Afdrukken uitgeschakeld door <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Er wordt over <xliff:g id="NUMBER_1">%d</xliff:g> seconden een screenshot gemaakt voor het bugrapport.</item>
       <item quantity="one">Er wordt over <xliff:g id="NUMBER_0">%d</xliff:g> seconde een screenshot gemaakt voor het bugrapport.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Stille modus"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Geluid is UIT"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Geluid is AAN"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Probeer het opnieuw."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Geen vingerafdrukken geregistreerd."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Dit apparaat heeft geen vingerafdruksensor."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensor tijdelijk uitgeschakeld."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Vinger <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Kan gezicht niet verifiëren. Probeer het nog eens."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Je hebt ontgrendelen via gezichtsherkenning niet ingesteld."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Ontgrendelen via gezichtsherkenning wordt niet ondersteund op dit apparaat."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensor tijdelijk uitgeschakeld."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Gezicht <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-foutopsporing verbonden"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tik om USB-foutopsporing uit te schakelen"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Selecteer deze optie om USB-foutopsporing uit te schakelen."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Draadloze foutopsporing verbonden"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tik om draadloze foutopsporing uit te schakelen"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecteer deze optie om draadloze foutopsporing uit te schakelen."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test harness-modus is ingeschakeld"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Reset de fabrieksinstellingen om de test harness-modus uit te schakelen."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Seriële console ingeschakeld"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"De op de achtergrond gestarte voorgrondservice van <xliff:g id="PACKAGENAME">%1$s</xliff:g> heeft geen rechten tijdens gebruik in toekomstige R-builds. Ga naar go/r-bg-fgs-restriction en dien een bugrapport in."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Volume verhogen tot boven het aanbevolen niveau?\n\nAls je langere tijd op hoog volume naar muziek luistert, raakt je gehoor mogelijk beschadigd."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Snelkoppeling toegankelijkheid gebruiken?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Als de snelkoppeling is ingeschakeld, kun je drie seconden op beide volumeknoppen drukken om een toegankelijkheidsfunctie te starten."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Snelkoppelingen bewerken"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuleren"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Sneltoets uitschakelen"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Geen categorie"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Je stelt het belang van deze meldingen in."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Dit is belangrijk vanwege de betrokken mensen."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Toestaan dat <xliff:g id="APP">%1$s</xliff:g> een nieuwe gebruiker met <xliff:g id="ACCOUNT">%2$s</xliff:g> maakt (er is al een gebruiker met dit account)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Toestaan dat <xliff:g id="APP">%1$s</xliff:g> een nieuwe gebruiker met <xliff:g id="ACCOUNT">%2$s</xliff:g> maakt?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Een taal toevoegen"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> is in de bucket RESTRICTED geplaatst"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoonlijk"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Werk"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Kan niet delen met werk-apps"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kan niet delen met persoonlijke apps"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Je IT-beheerder heeft delen tussen persoonlijke en werk-apps geblokkeerd"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Schakel werk-apps in"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Schakel werk-apps in om toegang tot werk-apps en -contacten te krijgen"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Geen apps beschikbaar"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"We kunnen geen apps vinden"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Werkprofiel inschakelen"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Audio opnemen of afspelen in telefoongesprekken"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Hiermee mag deze app (indien toegewezen als standaard dialer-app) audio opnemen of afspelen in telefoongesprekken."</string>
 </resources>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index 53b231c..cc5aa28 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ଆପଣଙ୍କ ସଂସ୍ଥା ଏହି ଡିଭାଇସକୁ ପରିଚାଳନା କରନ୍ତି ଏବଂ ନେଟୱର୍କ ଟ୍ରାଫିକ୍‍ ନୀରିକ୍ଷଣ କରନ୍ତି। ବିବରଣୀ ପାଇଁ ଟାପ୍‍ କରନ୍ତୁ।"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"ଲୋକେସନ୍ ସେଟିଂସ୍ ଆପଣଙ୍କର ଆଡମିନଙ୍କ ଦ୍ୱରା ବଦଳାଯାଇଛି"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"ଆପଣଙ୍କର ଲୋକେସନ୍ ସେଟିଂସ୍ ଦେଖିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ।"</string>
+    <string name="country_detector" msgid="7023275114706088854">"କଣ୍ଟ୍ରି ଡିଟେକ୍ଟର୍"</string>
+    <string name="location_service" msgid="2439187616018455546">"ଲୋକେସନ୍ ସର୍ଭିସ୍"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"ସେନ୍ସର୍ ନୋଟିଫିକେସନ୍ ସର୍ଭିସ୍"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ଟ୍ୱିଲାଇଟ୍ ସର୍ଭିସ୍"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"ଆପଣଙ୍କ ଡିଭାଇସ୍‍ ବର୍ତ୍ତମାନ ଲିଭାଯିବ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ଆଡମିନ୍‍ ଆପ୍‍‍ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଡିଭାଇସ୍‍‌ର ସମସ୍ତ ଡାଟାକୁ ବର୍ତ୍ତମାନ ଲିଭାଇଦିଆଯିବ। \n\nଯଦି ଆପଣଙ୍କର କୌଣସି ପ୍ରଶ୍ନ ରହିଥାଏ, ଆପଣଙ୍କ ସଂସ୍ଥାର ଆଡମିନ୍‌ଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ଦ୍ଵାରା ପ୍ରିଣ୍ଟିଙ୍ଗ ଅକ୍ଷମ କରାଯାଇଛି"</string>
@@ -245,6 +249,10 @@
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> ସେକେଣ୍ଡରେ ବଗ୍‍ ରିପୋର୍ଟ ପାଇଁ ସ୍କ୍ରୀନଶଟ୍‍ ନେଉଛି।</item>
       <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> ସେକେଣ୍ଡରେ ବଗ୍‍ ରିପୋର୍ଟ ପାଇଁ ସ୍କ୍ରୀନଶଟ୍‍ ନେଉଛି।</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"ସାଇଲେଣ୍ଟ ମୋଡ୍"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ସାଉଣ୍ଡ ଅଫ୍ ଅଛି"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ସାଉଣ୍ଡ ଅନ୍ ଅଛି"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"କୌଣସି ଆଙ୍ଗୁଠି ଚିହ୍ନ ପଞ୍ଜୀକୃତ ହୋଇନାହିଁ।"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ଏହି ଡିଭାଇସ୍‌ରେ ଟିପଚିହ୍ନ ସେନ୍‍ସର୍ ନାହିଁ।"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"ସେନ୍ସରକୁ ଅସ୍ଥାୟୀ ଭାବେ ଅକ୍ଷମ କରାଯାଇଛି।"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"ଆଙ୍ଗୁଠି <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"ମୁହଁ ଚିହ୍ନଟ କରିପାରିଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"ଆପଣ ଫେସ୍ ଅନ୍‌ଲକ୍ ସେଟ୍ ଅପ୍ କରିନାହାଁନ୍ତି"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"ଏହି ଡିଭାଇସ୍‌ରେ ଫେସ୍ ଅନ୍‌ଲକ୍ ସମର୍ଥିତ ନୁହେଁ।"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"ସେନ୍ସରକୁ ଅସ୍ଥାୟୀ ଭାବେ ଅକ୍ଷମ କରାଯାଇଛି।"</string>
     <string name="face_name_template" msgid="3877037340223318119">"<xliff:g id="FACEID">%d</xliff:g>ଙ୍କ ଫେସ୍‍"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB ଡିବଗିଙ୍ଗ ସଂଯୁକ୍ତ ହୋଇଛି"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USBର ଡିବଗିଙ୍ଗ ସୁବିଧାକୁ ବନ୍ଦ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ଡିବଗିଙ୍ଗକୁ ଅକ୍ଷମ କରିବା ପାଇଁ ଚୟନ କରନ୍ତୁ।"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ୱେୟାରଲେସ୍ ଡିବଗିଂ ସଂଯୋଗ କରାଯାଇଛି"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ୱାୟାରଲେସର ଡିବଗିଂକୁ ବନ୍ଦ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ୱାୟାରଲେସ୍ ଡିବଗିଂକୁ ଅକ୍ଷମ କରିବା ପାଇଁ ଚୟନ କରନ୍ତୁ।"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"ଟେଷ୍ଟ ହାର୍ନେସ୍ ମୋଡ୍ ସକ୍ଷମ ଅଛି"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"ଟେଷ୍ଟ ହାର୍‌ନେସ୍ ମୋଡ୍ ଅକ୍ଷମ କରିବାକୁ ଏକ ଫ୍ୟାକ୍ଟରୀ ରିସେଟ୍ କରନ୍ତୁ।"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"କ୍ରମିକ କନ୍‍‍ସୋଲ୍‍କୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"ପୃଷ୍ଠଭୂମିରେ <xliff:g id="PACKAGENAME">%1$s</xliff:g>ରୁ ଆରମ୍ଭ ହୋଇଥିବା ସମ୍ମୁଖଭାଗ ସେବା ପାଇଁ ଭବିଷ୍ୟତର R ବିଲ୍ଡଗୁଡ଼ିକରେ ବ୍ୟବହାର କରାଯିବା ସମୟରେ ଅନୁମତି ସୁବିଧା ରହିବ ନାହିଁ। ଦୟାକରି go/r-bg-fgs-restriction ଦେଖନ୍ତୁ ଏବଂ ଏକ ବଗରିପୋର୍ଟ ଫାଇଲ୍ କରନ୍ତୁ।"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ମାତ୍ରା ବଢ଼ାଇ ସୁପାରିଶ ସ୍ତର ବଢ଼ାଉଛନ୍ତି? \n\n ଲମ୍ବା ସମୟ ପର୍ଯ୍ୟନ୍ତ ଉଚ୍ଚ ଶବ୍ଦରେ ଶୁଣିଲେ ଆପଣଙ୍କ ଶ୍ରବଣ ଶକ୍ତି ଖରାପ ହୋଇପାରେ।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ଆକ୍ସେସବିଲିଟି ଶର୍ଟକଟ୍‍ ବ୍ୟବହାର କରିବେ?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ସର୍ଟକଟ୍ ଚାଲୁ ଥିବା ବେଳେ, ଉଭୟ ଭଲ୍ୟୁମ୍ ବଟନ୍ 3 ସେକେଣ୍ଡ ପାଇଁ ଦବାଇବା ଦ୍ୱାରା ଏକ ଆକ୍ସେସବିଲିଟି ଫିଚର୍ ଆରମ୍ଭ ହେବ।"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ସର୍ଟକଟଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ବାତିଲ୍ କରନ୍ତୁ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ଶର୍ଟକଟ୍‍ ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ଅବର୍ଗୀକୃତ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ପ୍ରମୁଖତା ଆପଣ ସେଟ୍‍ କରନ୍ତି।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ସମ୍ପୃକ୍ତ ଲୋକଙ୍କ କାରଣରୁ ଏହା ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ଅଟେ।"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>ରେ ଏକ ନୂଆ ଉପଯୋଗକର୍ତ୍ତା ତିଆରି କରିବା ପାଇଁ <xliff:g id="ACCOUNT">%2$s</xliff:g>କୁ (ପୂର୍ବରୁ ଏହି ଆକାଉଣ୍ଟ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ନାମରେ ଅଛି) ଅନୁମତି ଦେବେ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>ରେ ଏକ ନୂଆ ଉପଯୋଗକର୍ତ୍ତା ତିଆରି କରିବା ପାଇଁ <xliff:g id="ACCOUNT">%2$s</xliff:g>କୁ ଅନୁମତି ଦେବେ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ଏକ ଭାଷା ଯୋଡ଼ନ୍ତୁ"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>କୁ ପ୍ରତିବନ୍ଧିତ ବକେଟରେ ରଖାଯାଇଛି"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ବ୍ୟକ୍ତିଗତ"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"କାର୍ଯ୍ୟ"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପଗୁଡ଼ିକ ସହ ସେୟାର୍ କରିପାରିବ ନାହିଁ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ବ୍ୟକ୍ତିଗତ ଆପଗୁଡ଼ିକ ସହ ସେୟାର୍ କରିପାରିବ ନାହିଁ"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"ଆପଣଙ୍କର IT ଆଡମିନ୍ ବ୍ୟକ୍ତିଗତ ଏବଂ କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପଗୁଡ଼ିକ ମଧ୍ୟରେ ସେୟାରିଂ ବ୍ଲକ୍ କରିଛନ୍ତି"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପଗୁଡ଼ିକୁ ଚାଲୁ କରନ୍ତୁ"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପ୍ ଏବଂ ଯୋଗାଯୋଗଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପଗୁଡ଼ିକୁ ଚାଲୁ କରନ୍ତୁ"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"କୌଣସି ଆପ୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"ଆମେ କୌଣସି ଆପ୍ ପାଇଲୁ ନାହିଁ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"କାର୍ଯ୍ୟସ୍ଥଳୀ ପ୍ରୋଫାଇଲରେ ସ୍ୱିଚ୍ କରନ୍ତୁ"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ଟେଲିଫୋନି କଲଗୁଡ଼ିକରେ ଅଡିଓ ରେକର୍ଡ କରନ୍ତୁ ବା ଚଲାନ୍ତୁ"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ଏହି ଆପ୍ ଡିଫଲ୍ଟ ଡାଏଲର୍ ଆପ୍ଲିକେସନ୍ ଭାବରେ ଆସାଇନ୍ ହୋଇଥିଲେ ଟେଲିଫୋନି କଲଗୁଡ଼ିକରେ ଅଡିଓ ରେକର୍ଡ କରିବା ବା ଚଲାଇବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
 </resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index b5194eb7..6c8b5c3 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -193,6 +193,14 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ਤੁਹਾਡਾ ਸੰਗਠਨ ਇਸ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ ਅਤੇ ਨੈੱਟਵਰਕ ਟਰੈਫਿਕ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ। ਵੇਰਵਿਆਂ ਲਈ ਟੈਪ ਕਰੋ।"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲ ਦਿੱਤਾ ਹੈ"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"ਆਪਣੀਆਂ ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਨੂੰ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ।"</string>
+    <!-- no translation found for country_detector (7023275114706088854) -->
+    <skip />
+    <!-- no translation found for location_service (2439187616018455546) -->
+    <skip />
+    <!-- no translation found for sensor_notification_service (7474531979178682676) -->
+    <skip />
+    <!-- no translation found for twilight_service (8964898045693187224) -->
+    <skip />
     <string name="factory_reset_warning" msgid="6858705527798047809">"ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਮਿਟਾਇਆ ਜਾਏਗਾ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਵਰਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ। ਹੁਣ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਡਾਟਾ ਮਿਟਾਇਆ ਜਾਵੇਗਾ।\n\nਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਸਵਾਲ ਹਨ, ਤਾਂ ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ਵੱਲੋਂ ਪ੍ਰਿੰਟ ਕਰਨਾ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
@@ -245,6 +253,10 @@
       <item quantity="one">ਬੱਗ ਰਿਪੋਰਟ ਲਈ <xliff:g id="NUMBER_1">%d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ।</item>
       <item quantity="other">ਬੱਗ ਰਿਪੋਰਟ ਲਈ <xliff:g id="NUMBER_1">%d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ।</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"ਸਾਈਲੈਂਟ ਮੋਡ"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ਅਵਾਜ਼ ਬੰਦ ਹੈ"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ਅਵਾਜ਼ ਚਾਲੂ ਹੈ"</string>
@@ -546,8 +558,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"ਕੋਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਰਜ ਨਹੀਂ ਕੀਤੇ ਗਏ।"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਨਹੀਂ ਹੈ।"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"ਸੈਂਸਰ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"ਉਂਗਲ <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +602,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"ਚਿਹਰੇ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"ਤੁਸੀਂ ਚਿਹਰਾ ਅਣਲਾਕ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਹੈ।"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਚਿਹਰਾ ਅਣਲਾਕ ਦੀ ਸੁਵਿਧਾ ਨਹੀਂ ਹੈ।"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"ਸੈਂਸਰ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
     <string name="face_name_template" msgid="3877037340223318119">"ਚਿਹਰਾ <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1328,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB ਡੀਬਗਿੰਗ ਕਨੈਕਟ ਕੀਤੀ"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB ਡੀਬੱਗਿੰਗ ਬੰਦ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ਡੀਬੱਗਿੰਗ ਅਯੋਗ ਬਣਾਉਣ ਲਈ ਚੁਣੋ।"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ਵਾਇਰਲੈੱਸ ਡੀਬੱਗਿੰਗ ਨੂੰ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"ਵਾਇਰਲੈੱਸ ਡੀਬੱਗਿੰਗ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"ਵਾਇਰਲੈੱਸ ਡੀਬੱਗਿੰਗ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ ਚੁਣੋ।"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"ਟੈਸਟ ਹਾਰਨੈੱਸ ਮੋਡ ਚਾਲੂ ਹੈ"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"ਟੈਸਟ ਹਾਰਨੈੱਸ ਮੋਡ ਬੰਦ ਕਰਨ ਲਈ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਕਰੋ।"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"ਸੀਰੀਅਲ ਕੰਸੋਲ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
@@ -1621,8 +1634,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> ਤੋਂ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਸ਼ੁਰੂ ਕੀਤੀ ਗਈ ਫੋਰਗ੍ਰਾਊਂਡ ਸੇਵਾ ਲਈ ਭਵਿੱਖੀ R ਬਿਲਡ ਵਿੱਚ \'ਵਰਤੋਂ ਵਿੱਚ ਹੋਣ \'ਤੇ ਇਜਾਜ਼ਤ\' ਵਿਸ਼ੇਸ਼ਤਾ ਨਹੀਂ ਹੋਵੇਗੀ। ਕਿਰਪਾ ਕਰਕੇ go/r-bg-fgs-restriction ਦੇਖੋ ਅਤੇ ਬੱਗ ਰਿਪੋਰਟ ਫ਼ਾਈਲ ਕਰੋ।"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ਕੀ ਵੌਲਿਊਮ  ਸਿਫ਼ਾਰਸ਼  ਕੀਤੇ ਪੱਧਰ ਤੋਂ ਵਧਾਉਣੀ ਹੈ?\n\nਲੰਮੇ ਸਮੇਂ ਤੱਕ ਉੱਚ ਵੌਲਿਊਮ ਤੇ ਸੁਣਨ ਨਾਲ ਤੁਹਾਡੀ ਸੁਣਨ ਸ਼ਕਤੀ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ਕੀ ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ ਵਰਤਣਾ ਹੈ?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ਸ਼ਾਰਟਕੱਟ ਚਾਲੂ ਹੋਣ \'ਤੇ, ਕਿਸੇ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਦੋਵੇਂ ਅਵਾਜ਼ ਬਟਨਾਂ ਨੂੰ 3 ਸਕਿੰਟ ਲਈ ਦਬਾ ਕੇ ਰੱਖੋ।"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ਸ਼ਾਰਟਕੱਟਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰੋ"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ਰੱਦ ਕਰੋ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ਸ਼ਾਰਟਕੱਟ ਬੰਦ ਕਰੋ"</string>
@@ -1845,6 +1857,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ਗੈਰ-ਸ਼੍ਰੇਣੀਕਿਰਤ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ਤੁਸੀਂ ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਦੀ ਮਹੱਤਤਾ ਸੈੱਟ ਕੀਤੀ।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ਇਹ ਸ਼ਾਮਲ ਲੋਕਾਂ ਦੇ ਕਾਰਨ ਮਹੱਤਵਪੂਰਨ ਹੈ।"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"ਕੀ <xliff:g id="APP">%1$s</xliff:g> ਨੂੰ <xliff:g id="ACCOUNT">%2$s</xliff:g> ਨਾਲ ਨਵਾਂ ਵਰਤੋਂਕਾਰ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੈ (ਇਸ ਖਾਤੇ ਨਾਲ ਇੱਕ ਵਰਤੋਂਕਾਰ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਹੈ)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"ਕੀ <xliff:g id="APP">%1$s</xliff:g> ਨੂੰ <xliff:g id="ACCOUNT">%2$s</xliff:g> ਨਾਲ ਨਵਾਂ ਵਰਤੋਂਕਾਰ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੈ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ਇੱਕ ਭਾਸ਼ਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
@@ -2018,20 +2032,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਖਾਨੇ ਵਿੱਚ ਪਾਇਆ ਗਿਆ ਹੈ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ਨਿੱਜੀ"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ਕੰਮ"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨਾਲ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ਨਿੱਜੀ ਐਪਾਂ ਨਾਲ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਨਿੱਜੀ ਅਤੇ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਵਿਚਕਾਰ ਸਾਂਝਾਕਰਨ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਹੈ"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਅਤੇ ਸੰਪਰਕਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ਕੋਈ ਐਪ ਉਪਲਬਧ ਨਹੀਂ"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"ਅਸੀਂ ਕੋਈ ਐਪ ਨਹੀਂ ਲੱਭ ਸਕੇ"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ \'ਤੇ ਜਾਓ"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ਟੈਲੀਫ਼ੋਨੀ ਕਾਲਾਂ ਵਿੱਚ ਰਿਕਾਰਡ ਕਰੋ ਜਾਂ ਆਡੀਓ ਚਲਾਓ"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ਇਹ ਇਸ ਐਪ ਨੂੰ, ਪੂਰਵ-ਨਿਰਧਾਰਤ ਡਾਇਲਰ ਐਪਲੀਕੇਸ਼ਨ ਵਜੋਂ ਜਿੰਮੇ ਲਾਏ ਜਾਣ \'ਤੇ, ਟੈਲੀਫ਼ੋਨੀ ਕਾਲਾਂ ਵਿੱਚ ਰਿਕਾਰਡ ਕਰਨ ਜਾਂ ਆਡੀਓ ਚਲਾਉਣ ਦਿੰਦਾ ਹੈ।"</string>
 </resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 50e6974..c4246fa 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Twoja organizacja zarządza tym urządzeniem i może monitorować ruch w sieci. Kliknij, by dowiedzieć się więcej."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Ustawienia lokalizacji zmienione przez administratora"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Kliknij, aby zobaczyć ustawienia lokalizacji."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Wykrywanie kraju"</string>
+    <string name="location_service" msgid="2439187616018455546">"Usługa lokalizacyjna"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Usługa powiadomień czujnika"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Usługa Zmierzch"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Twoje urządzenie zostanie wyczyszczone"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Nie można użyć aplikacji administratora. Dane z urządzenia zostaną wykasowane.\n\nJeśli masz pytania, skontaktuj się z administratorem organizacji."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Drukowanie wyłączone przez: <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -251,6 +255,10 @@
       <item quantity="other">Zrzut ekranu do raportu o błędzie zostanie zrobiony za <xliff:g id="NUMBER_1">%d</xliff:g> sekundy.</item>
       <item quantity="one">Zrzut ekranu do raportu o błędzie zostanie zrobiony za <xliff:g id="NUMBER_0">%d</xliff:g> sekundę.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Tryb cichy"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Dźwięk jest wyłączony"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Dźwięk jest włączony"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Spróbuj ponownie."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nie zarejestrowano odcisków palców."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"To urządzenie nie jest wyposażone w czytnik linii papilarnych."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Czujnik jest tymczasowo wyłączony."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Odcisk palca <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nie można zweryfikować twarzy. Spróbuj ponownie."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Rozpoznawanie twarzy nie jest skonfigurowane."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"To urządzenie nie obsługuje rozpoznawania twarzy."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Czujnik jest tymczasowo wyłączony."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Twarz <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Podłączono moduł debugowania USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Kliknij, by wyłączyć debugowanie USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Wybierz, aby wyłączyć debugowanie USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Podłączono debugowanie bezprzewodowe"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Kliknij, by wyłączyć debugowanie bezprzewodowe"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Wybierz, by wyłączyć debugowanie bezprzewodowe."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Tryb jarzma testowego został włączony"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Przywróć ustawienia fabryczne, by wyłączyć tryb jarzma testowego."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Konsola szeregowa włączona"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Uruchomiona w tle usługa działająca w pierwszym planie z pakietu <xliff:g id="PACKAGENAME">%1$s</xliff:g> nie będzie miała uprawnień obowiązujących podczas używania w przyszłych kompilacjach R. Zapoznaj się z ograniczeniem go/r-bg-fgs-restriction i zgłoś błąd."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zwiększyć głośność ponad zalecany poziom?\n\nSłuchanie głośno przez długi czas może uszkodzić Twój słuch."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Użyć skrótu do ułatwień dostępu?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Gdy skrót jest włączony, jednoczesne naciskanie przez trzy sekundy obu przycisków głośności uruchamia funkcję ułatwień dostępu."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edytuj skróty"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Anuluj"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Wyłącz skrót"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Bez kategorii"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ustawiłeś ważność tych powiadomień."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ta wiadomość jest ważna ze względu na osoby uczestniczące w wątku."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Zezwolić aplikacji <xliff:g id="APP">%1$s</xliff:g> na utworzenie nowego użytkownika dla konta <xliff:g id="ACCOUNT">%2$s</xliff:g> (użytkownik dla tego konta już istnieje)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Zezwolić aplikacji <xliff:g id="APP">%1$s</xliff:g> na utworzenie nowego użytkownika dla konta <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Dodaj język"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Umieszczono pakiet <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> w zasobniku danych RESTRICTED"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobiste"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Do pracy"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nie można udostępnić aplikacji do pracy"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nie można udostępnić aplikacji osobistej"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Administrator IT zablokował udostępnianie między aplikacjami osobistymi i aplikacjami do pracy"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Włącz aplikacje do pracy"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Włącz aplikacje do pracy, aby uzyskać dostęp do kontaktów i aplikacji do pracy"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Brak dostępnych aplikacji"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nie znaleźliśmy żadnych aplikacji"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Włącz profil do pracy"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Nagrywanie lub odtwarzanie dźwięku podczas połączeń telefonicznych"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Zezwala na odtwarzanie dźwięku podczas rozmów telefonicznych przez aplikację przypisaną jako domyślnie wybierającą numery."</string>
 </resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 5677ab2..dfb5bef 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Sua organização gerencia este dispositivo e pode monitorar o tráfego de rede. Toque para ver detalhes."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Configurações de localização modificadas pelo administrador"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Toque para ver as configurações de localização."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector de país"</string>
+    <string name="location_service" msgid="2439187616018455546">"Serviço de localização"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Serviço de notificações do sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Serviço de crepúsculo"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Seu dispositivo será limpo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Não é possível usar o aplicativo para administrador. Seu dispositivo passará por uma limpeza agora.\n\nEm caso de dúvidas, entre em contato com o administrador da sua organização."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Capturas de tela para o relatório de bug serão feitas em <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
       <item quantity="other">Capturas de tela para o relatório de bug serão feitas em <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modo silencioso"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Som DESATIVADO"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"O som está ATIVADO"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Tente novamente."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nenhuma impressão digital registrada."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Este dispositivo não tem um sensor de impressão digital."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensor desativado temporariamente."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dedo <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Não é possível verificar o rosto. Tente novamente."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"O desbloqueio facial não foi configurado."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"O desbloqueio facial não é compatível com este dispositivo."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensor desativado temporariamente."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Rosto <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -914,7 +920,7 @@
     <string name="js_dialog_before_unload_title" msgid="7012587995876771246">"Confirmar navegação"</string>
     <string name="js_dialog_before_unload_positive_button" msgid="4274257182303565509">"Sair desta página"</string>
     <string name="js_dialog_before_unload_negative_button" msgid="3873765747622415310">"Permanecer nesta página"</string>
-    <string name="js_dialog_before_unload" msgid="7213364985774778744">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nTem certeza que quer sair desta página?"</string>
+    <string name="js_dialog_before_unload" msgid="7213364985774778744">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nVocê quer mesmo sair desta página?"</string>
     <string name="save_password_label" msgid="9161712335355510035">"Confirmar"</string>
     <string name="double_tap_toast" msgid="7065519579174882778">"Dica: toque duas vezes para aumentar e diminuir o zoom."</string>
     <string name="autofill_this_form" msgid="3187132440451621492">"Preench. aut."</string>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Depuração USB conectada"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Toque para desativar a depuração USB."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Selecione para desativar a depuração USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Depuração sem fio conectada"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Toque para desativar a depuração sem fio"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecione para desativar a depuração sem fio."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Modo Arcabouço de testes ativado"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Realize uma redefinição para configuração original para desativar o modo Arcabouço de testes."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Console serial ativado"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"O serviço em primeiro plano iniciado em segundo plano por <xliff:g id="PACKAGENAME">%1$s</xliff:g> não receberá uma permissão durante o uso em futuras versões R. Consulte go/r-bg-fgs-restriction e crie um relatório de bug."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir em volume alto por longos períodos pode danificar sua audição."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usar atalho de Acessibilidade?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando o atalho estiver ativado, pressione os dois botões de volume por três segundos para iniciar um recurso de acessibilidade."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atalhos"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desativar atalho"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sem classificação"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Você definiu a importância dessas notificações."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Isso é importante por causa das pessoas envolvidas."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Permitir que o app <xliff:g id="APP">%1$s</xliff:g> crie um novo usuário com <xliff:g id="ACCOUNT">%2$s</xliff:g> (já existe um usuário com essa conta)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Permitir que o app <xliff:g id="APP">%1$s</xliff:g> crie um novo usuário com <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Adicionar um idioma"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no intervalo \"RESTRITO\""</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Não é possível compartilhar com apps de trabalho"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Não é possível compartilhar com apps pessoais"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Seu administrador de TI bloqueou o compartilhamento entre apps pessoais e de trabalho"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ativar apps de trabalho"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ative os apps de trabalho para acessar apps e contatos profissionais"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nenhum app disponível"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Não foi possível encontrar nenhum app"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ativar perfil de trabalho"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou tocar áudio em chamadas telefônicas"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permitir que esse app grave ou toque áudio em chamadas telefônicas quando for usado como aplicativo discador padrão."</string>
 </resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 4bdb07f..00c56dd 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"A sua entidade gere este dispositivo e pode monitorizar o tráfego de rede. Toque para obter mais detalhes."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Definições de localização alteradas pelo administrador"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Toque para ver as definições de localização."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detetor de país"</string>
+    <string name="location_service" msgid="2439187616018455546">"Serviço de localização"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Serviço de notificações do sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Serviço de crepúsculo"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"O seu dispositivo será apagado"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Não é possível utilizar a aplicação de administrador. O seu dispositivo será agora apagado.\n\nSe tiver questões, contacte o administrador da entidade."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">A tirar uma captura de ecrã do relatório de erro dentro de <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
       <item quantity="one">A tirar uma captura de ecrã do relatório de erro dentro de <xliff:g id="NUMBER_0">%d</xliff:g> segundo…</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modo silencioso"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Som desativado"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"O som está ativado"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Tente novamente."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nenhuma impressão digital registada."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Este dispositivo não tem sensor de impressões digitais."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensor temporariamente desativado."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dedo <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Não é possível validar o rosto. Tente novamente."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Não configurou o Desbloqueio Através do Rosto."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Desbloqueio Através do Rosto não suportado neste dispositivo."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensor temporariamente desativado."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Rosto <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Depuração USB ligada"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Toque para desativar a depuração USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Selecione para desativar a depuração por USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Depuração sem fios ligada"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Toque para desativar a depuração sem fios."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecione para desativar a depuração sem fios."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Modo de estrutura de teste ativado"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Efetue uma reposição de dados de fábrica para desativar o Modo de estrutura de teste."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Consola de série ativada"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"O serviço em primeiro plano iniciado em segundo plano de <xliff:g id="PACKAGENAME">%1$s</xliff:g> não terá a autorização durante a utilização em compilações R futuras. Aceda a go/r-bg-fgs-restriction e envie um relatório de erros."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir com um volume elevado durante longos períodos poderá ser prejudicial para a sua audição."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Pretende utilizar o atalho de acessibilidade?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando o atalho está ativado, premir ambos os botões de volume durante 3 segundos inicia uma funcionalidade de acessibilidade."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atalhos"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desativar atalho"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sem categoria"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Definiu a importância destas notificações."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"É importante devido às pessoas envolvidas."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Pretende permitir que a aplicação <xliff:g id="APP">%1$s</xliff:g> crie um novo utilizador com a conta <xliff:g id="ACCOUNT">%2$s</xliff:g> (já existe um utilizador com esta conta)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Pretende permitir que a aplicação <xliff:g id="APP">%1$s</xliff:g> crie um novo utilizador com a conta <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Adicionar um idioma"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no contentor RESTRITO."</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Não é possível partilhar com apps de trabalho."</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Não é possível partilhar com apps pessoais."</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"O seu administrador de TI bloqueou a partilha entre as apps de trabalho e pessoais."</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ative as apps de trabalho."</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ative as apps de trabalho para aceder às apps de trabalho e aos contactos."</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nenhuma app disponível."</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Não foi possível encontrar quaisquer apps."</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ativar perfil de trabalho"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou reproduzir áudio em chamadas telefónicas"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que esta app, quando atribuída como uma aplicação de telefone predefinida, grave ou reproduza áudio em chamadas telefónicas."</string>
 </resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 5677ab2..dfb5bef 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Sua organização gerencia este dispositivo e pode monitorar o tráfego de rede. Toque para ver detalhes."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Configurações de localização modificadas pelo administrador"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Toque para ver as configurações de localização."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector de país"</string>
+    <string name="location_service" msgid="2439187616018455546">"Serviço de localização"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Serviço de notificações do sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Serviço de crepúsculo"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Seu dispositivo será limpo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Não é possível usar o aplicativo para administrador. Seu dispositivo passará por uma limpeza agora.\n\nEm caso de dúvidas, entre em contato com o administrador da sua organização."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Capturas de tela para o relatório de bug serão feitas em <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
       <item quantity="other">Capturas de tela para o relatório de bug serão feitas em <xliff:g id="NUMBER_1">%d</xliff:g> segundos.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modo silencioso"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Som DESATIVADO"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"O som está ATIVADO"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Tente novamente."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nenhuma impressão digital registrada."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Este dispositivo não tem um sensor de impressão digital."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensor desativado temporariamente."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Dedo <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Não é possível verificar o rosto. Tente novamente."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"O desbloqueio facial não foi configurado."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"O desbloqueio facial não é compatível com este dispositivo."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensor desativado temporariamente."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Rosto <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -914,7 +920,7 @@
     <string name="js_dialog_before_unload_title" msgid="7012587995876771246">"Confirmar navegação"</string>
     <string name="js_dialog_before_unload_positive_button" msgid="4274257182303565509">"Sair desta página"</string>
     <string name="js_dialog_before_unload_negative_button" msgid="3873765747622415310">"Permanecer nesta página"</string>
-    <string name="js_dialog_before_unload" msgid="7213364985774778744">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nTem certeza que quer sair desta página?"</string>
+    <string name="js_dialog_before_unload" msgid="7213364985774778744">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nVocê quer mesmo sair desta página?"</string>
     <string name="save_password_label" msgid="9161712335355510035">"Confirmar"</string>
     <string name="double_tap_toast" msgid="7065519579174882778">"Dica: toque duas vezes para aumentar e diminuir o zoom."</string>
     <string name="autofill_this_form" msgid="3187132440451621492">"Preench. aut."</string>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Depuração USB conectada"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Toque para desativar a depuração USB."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Selecione para desativar a depuração USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Depuração sem fio conectada"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Toque para desativar a depuração sem fio"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecione para desativar a depuração sem fio."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Modo Arcabouço de testes ativado"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Realize uma redefinição para configuração original para desativar o modo Arcabouço de testes."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Console serial ativado"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"O serviço em primeiro plano iniciado em segundo plano por <xliff:g id="PACKAGENAME">%1$s</xliff:g> não receberá uma permissão durante o uso em futuras versões R. Consulte go/r-bg-fgs-restriction e crie um relatório de bug."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir em volume alto por longos períodos pode danificar sua audição."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usar atalho de Acessibilidade?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando o atalho estiver ativado, pressione os dois botões de volume por três segundos para iniciar um recurso de acessibilidade."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atalhos"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desativar atalho"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Sem classificação"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Você definiu a importância dessas notificações."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Isso é importante por causa das pessoas envolvidas."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Permitir que o app <xliff:g id="APP">%1$s</xliff:g> crie um novo usuário com <xliff:g id="ACCOUNT">%2$s</xliff:g> (já existe um usuário com essa conta)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Permitir que o app <xliff:g id="APP">%1$s</xliff:g> crie um novo usuário com <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Adicionar um idioma"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no intervalo \"RESTRITO\""</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Não é possível compartilhar com apps de trabalho"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Não é possível compartilhar com apps pessoais"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Seu administrador de TI bloqueou o compartilhamento entre apps pessoais e de trabalho"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ativar apps de trabalho"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ative os apps de trabalho para acessar apps e contatos profissionais"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nenhum app disponível"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Não foi possível encontrar nenhum app"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ativar perfil de trabalho"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou tocar áudio em chamadas telefônicas"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permitir que esse app grave ou toque áudio em chamadas telefônicas quando for usado como aplicativo discador padrão."</string>
 </resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 99cdc0b..e4eaf80 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -195,6 +195,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organizația dvs. gestionează acest dispozitiv și poate monitoriza traficul în rețea. Atingeți pentru mai multe detalii."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Setările privind locația au fost modificate de administrator"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Atingeți pentru a vedea setările privind locația."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector de țară"</string>
+    <string name="location_service" msgid="2439187616018455546">"Servicii de localizare"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Serviciu pentru notificări de la senzori"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Serviciul Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Datele de pe dispozitiv vor fi șterse"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplicația de administrare nu poate fi utilizată. Dispozitivul va fi șters.\n\nDacă aveți întrebări, contactați administratorul organizației dvs."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printare dezactivată de <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -248,6 +252,10 @@
       <item quantity="other">Peste <xliff:g id="NUMBER_1">%d</xliff:g> de secunde se va realiza o captură de ecran pentru raportul de eroare.</item>
       <item quantity="one">Peste <xliff:g id="NUMBER_0">%d</xliff:g> secundă se va realiza o captură de ecran pentru raportul de eroare.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Mod Silențios"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Sunetul este DEZACTIVAT"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Sunetul este ACTIVAT"</string>
@@ -549,8 +557,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Încercați din nou."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nu au fost înregistrate amprente."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Dispozitivul nu are senzor de amprentă."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Senzorul este dezactivat temporar."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Degetul <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +601,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nu se poate confirma fața. Încercați din nou."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Nu ați configurat deblocarea facială."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Deblocarea facială nu este acceptată pe dispozitiv."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Senzorul este dezactivat temporar."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Chip <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1338,6 +1344,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Remedierea erorilor prin USB este conectată"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Atingeți pentru a dezactiva remedierea erorilor prin USB."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Selectați pentru a dezactiva remedierea erorilor prin USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Remedierea erorilor prin wireless este activă"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Atingeți pentru a dezactiva remedierea erorilor prin wireless"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selectați pentru a dezactiva remedierea erorilor prin wireless."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Modul Set de testare este activat"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Reveniți la setările din fabrică pentru a dezactiva modul Set de testare."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Consola din serie este activată"</string>
@@ -1643,8 +1652,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Serviciul în prim-plan inițializat în fundal din <xliff:g id="PACKAGENAME">%1$s</xliff:g> nu va avea permisiunea în timpul utilizării în versiunile R viitoare. Consultați go/r-bg-fgs-restriction și trimiteți un raport de eroare."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ridicați volumul mai sus de nivelul recomandat?\n\nAscultarea la volum ridicat pe perioade lungi de timp vă poate afecta auzul."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utilizați comanda rapidă pentru accesibilitate?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Atunci când comanda rapidă este activată, dacă apăsați ambele butoane de volum timp de trei secunde, veți lansa o funcție de accesibilitate."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editați comenzile rapide"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Anulați"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Dezactivați comanda rapidă"</string>
@@ -1877,6 +1885,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Neclasificate"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Dvs. setați importanța acestor notificări."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Notificarea este importantă având în vedere persoanele implicate."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Permiteți ca <xliff:g id="APP">%1$s</xliff:g> să creeze un nou utilizator folosind <xliff:g id="ACCOUNT">%2$s</xliff:g>? (există deja un utilizator cu acest cont)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Permiteți ca <xliff:g id="APP">%1$s</xliff:g> să creeze un nou utilizator folosind <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Adăugați o limbă"</string>
@@ -2052,20 +2062,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> a fost adăugat la grupul RESTRICȚIONATE"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Serviciu"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nu se poate trimite către aplicații pentru lucru"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nu se poate trimite către aplicații personale"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Administratorul IT a blocat trimiterea între aplicațiile personale și pentru lucru"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Activați aplicațiile pentru lucru"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Activați aplicațiile pentru lucru ca să le accesați pe acestea și persoanele de contact"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nicio aplicație disponibilă"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nu s-a găsit nicio aplicație"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Comutați la profilul de lucru"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Înregistrează sau redă conținut audio în apelurile telefonice"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite acestei aplicații, atunci când este setată ca aplicație telefon prestabilită, să înregistreze sau să redea conținut audio în apelurile telefonice."</string>
 </resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 244d0e6..7cd1633 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Ваша организация управляет этим устройством и может отслеживать сетевой трафик. Подробнее…"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Настройки геолокации изменены администратором"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Нажмите, чтобы открыть настройки геолокации."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Определение страны"</string>
+    <string name="location_service" msgid="2439187616018455546">"Геолокация"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Сервис для обработки уведомлений от датчиков"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Сервис для определения наступления сумерек"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Все данные с устройства будут удалены"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Невозможно использовать приложение для администрирования. С устройства будут удалены все данные.\n\nЕсли у вас возникли вопросы, обратитесь к администратору."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Функция печати отключена приложением \"<xliff:g id="OWNER_APP">%s</xliff:g>\""</string>
@@ -251,6 +255,10 @@
       <item quantity="many">Скриншот будет сделан через <xliff:g id="NUMBER_1">%d</xliff:g> секунд</item>
       <item quantity="other">Скриншот будет сделан через <xliff:g id="NUMBER_1">%d</xliff:g> секунды</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Режим без звука"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Выключить"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Включить"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Повторите попытку."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Нет отсканированных отпечатков пальцев"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"На этом устройстве нет сканера отпечатков пальцев."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Сканер отпечатков пальцев временно отключен."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Отпечаток <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Не удалось распознать лицо. Повторите попытку."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Вы не настроили фейсконтроль."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Это устройство не поддерживает функцию \"Фейсконтроль\"."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Датчик временно отключен."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Лицо <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -758,7 +764,7 @@
     <string name="phoneTypeMms" msgid="1799747455131365989">"MMS"</string>
     <string name="eventTypeCustom" msgid="3257367158986466481">"Особый"</string>
     <string name="eventTypeBirthday" msgid="7770026752793912283">"День рождения"</string>
-    <string name="eventTypeAnniversary" msgid="4684702412407916888">"Юбилей"</string>
+    <string name="eventTypeAnniversary" msgid="4684702412407916888">"Годовщина"</string>
     <string name="eventTypeOther" msgid="530671238533887997">"Другой"</string>
     <string name="emailTypeCustom" msgid="1809435350482181786">"Новый тип"</string>
     <string name="emailTypeHome" msgid="1597116303154775999">"Личный"</string>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Отладка по USB разрешена"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Нажмите, чтобы отключить отладку по USB."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Нажмите, чтобы отключить отладку по USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Отладка по Wi-Fi активна"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Нажмите, чтобы отключить отладку по Wi-Fi."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Нажмите, чтобы отключить отладку по Wi-Fi."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Тестовый режим включен"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Чтобы отключить тестовый режим, сбросьте настройки до заводских."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Консоль последовательного порта включена"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Службы из пакета <xliff:g id="PACKAGENAME">%1$s</xliff:g>, переведенные из фонового режима в активный, не будут получать разрешение while-in-use в будущих сборках на языке R. Перейдите на страницу go/r-bg-fgs-restriction и отправьте отчет об ошибке."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Установить громкость выше рекомендуемого уровня?\n\nВоздействие громкого звука в течение долгого времени может привести к повреждению слуха."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Использовать быстрое включение?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Чтобы использовать функцию специальных возможностей, когда она включена, нажмите и удерживайте обе кнопки регулировки громкости в течение трех секунд."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Изменить быстрые клавиши"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Отмена"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Деактивировать быстрое включение"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Без категории"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Вы определяете важность этих уведомлений."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Важное (люди)"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Разрешить приложению \"<xliff:g id="APP">%1$s</xliff:g>\" создать нового пользователя с аккаунтом <xliff:g id="ACCOUNT">%2$s</xliff:g> (пользователь с этим аккаунтом уже существует)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Разрешить приложению \"<xliff:g id="APP">%1$s</xliff:g>\" создать нового пользователя с аккаунтом <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Добавьте язык"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Приложение \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" помещено в категорию с ограниченным доступом."</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Личный"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Рабочий"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Нельзя обмениваться данными с рабочими приложениями"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Нельзя обмениваться данными с личными приложениями"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Обмен данными между личными и рабочими приложениями заблокирован системным администратором."</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Включите рабочие приложения"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Включите рабочие приложения, чтобы получить доступ к ним и контактам."</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Нет доступных приложений"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Приложения не найдены."</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Включить рабочий профиль"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Запись и воспроизведение телефонных разговоров"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Если это приложение используется для звонков по умолчанию, оно сможет записывать и воспроизводить телефонные разговоры."</string>
 </resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 6583f94..37db789 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"ඔබගේ ආයතනය මෙම උපාංගය කළමනාකරණය කරන අතර එය ජාල තදබදය නිරීක්ෂණය කළ හැක. විස්තර සඳහා තට්ටු කරන්න."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"ස්ථාන සැකසීම් ඔබේ පරිපාලක විසින් වෙනස් කරන ලදී"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"ඔබේ ස්ථාන සැකසීම් බැලීමට තට්ටු කරන්න."</string>
+    <string name="country_detector" msgid="7023275114706088854">"රටවල් අනාවරකය"</string>
+    <string name="location_service" msgid="2439187616018455546">"ස්ථාන සේවාව"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"සංවේදක දැනුම් දීමේ සේවාව"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ඇඳිරි සේවාව"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"ඔබගේ උපාංගය මකා දැමෙනු ඇත"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"පරිපාලක යෙදුම භාවිතා කළ නොහැකිය. ඔබේ උපාංගය දැන් මකා දමනු ඇත.\n\nඔබට ප්‍රශ්න තිබේ නම්, ඔබේ සංවිධානයේ පරිපාලකට අමතන්න."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> විසින් මුද්‍රණය කිරීම අබල කර ඇත."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">තත්පර <xliff:g id="NUMBER_1">%d</xliff:g>කින් දෝෂ වාර්තාව සඳහා තිර රුවක් ලබා ගනිමින්</item>
       <item quantity="other">තත්පර <xliff:g id="NUMBER_1">%d</xliff:g>කින් දෝෂ වාර්තාව සඳහා තිර රුවක් ලබා ගනිමින්</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"නිහඬ ආකාරය"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ශබ්දය අක්‍රියයි"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"හඬ ක්‍රියාත්මකයි"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"නැවත උත්සාහ කරන්න."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"ඇඟිලි සලකුණු ඇතුළත් කර නොමැත."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"මෙම උපාංගයේ ඇඟිලි සලකුණු සංවේදකයක් නොමැත."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"සංවේදකය තාවකාලිකව අබල කර ඇත."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"ඇඟිලි <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"මුහුණ සත්‍යාපන කළ නොහැක. නැවත උත්සාහ කරන්න."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"ඔබ මුහුණු අඟුලු ඇරීම සකසා නැත"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"මෙම උපාංගයෙහි මුහුණු අඟුලු ඇරීමට සහය නොදැක්වේ"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"සංවේදකය තාවකාලිකව අබල කර ඇත."</string>
     <string name="face_name_template" msgid="3877037340223318119">"මුහුණු <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1320,6 +1326,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB නිදොස්කරණය සම්බන්ධිතයි"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB නිදොස් කිරීම ක්‍රියාවිරහිත කිරීමට තට්ටු කරන්න"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB නිදොස්කරණය අබල කිරීමට තෝරන්න."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"නොරැහැන් නිදොස්කරණය සම්බන්ධ විය"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"නොරැහැන් නිදොස්කරණය ක්‍රියාවිරහිත කිරීමට තට්ටු කරන්න"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"නොරැහැන් නිදොස්කරණය අබල කිරීමට තෝරන්න."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"පුරක පරීක්‍ෂා ප්‍රකාරය සබලයි"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"පුරක පරීක්‍ෂා ප්‍රකාරය අබල කිරීමට කර්මාන්තශාලා යළි සැකසීමක් ඉටු කරන්න."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"අනුක්‍රමික කොන්සෝලය සබලයි"</string>
@@ -1623,8 +1632,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> වෙතින් පසුබිම ආරම්භ කරන ලද පෙරබිම් සේවාව අනාගත R තැනුම්වලදී භාවිතයේ අවසරය නැත. කරුණාකර go/r-bg-fgs-අවහිරතාව බලා දෝෂ වාර්තාවක් ගොනු කරන්න."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"නිර්දේශිතයි මට්ටමට වඩා ශබ්දය වැඩිද?\n\nදිගු කාලයක් සඳහා ඉහළ ශබ්දයක් ඇසීමෙන් ඇතැම් විට ඔබගේ ඇසීමට හානි විය හැක."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ප්‍රවේශ්‍යතා කෙටිමඟ භාවිතා කරන්නද?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"කෙටිමග ක්‍රියාත්මක විට, හඬ පරිමා බොත්තම් දෙකම තත්පර 3ක් තිස්සේ එබීමෙන් ප්‍රවේශ්‍යතා විශේෂාංගය ආරම්භ වනු ඇත."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"කෙටිමං සංස්කරණ කරන්න"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"අවලංගු කරන්න"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"කෙටිමඟ ක්‍රියාවිරහිත කරන්න"</string>
@@ -1847,6 +1855,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"වර්ගීකරණය නොකළ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ඔබ මෙම දැනුම්දීම්වල වැදගත්කම සකසා ඇත."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"සම්බන්ධ වූ පුද්ගලයන් නිසා මෙය වැදගත් වේ."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> හට <xliff:g id="ACCOUNT">%2$s</xliff:g> සමගින් නව පරිශීලකයෙකු සෑදීමට ඉඩ දෙන්නද (මෙම ගිණුම සහිත පරිශීලකයෙකු දැනටමත් සිටී) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> හට <xliff:g id="ACCOUNT">%2$s</xliff:g> සමගින් නව පරිශීලකයෙකු සෑදීමට ඉඩ දෙන්නද ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"භාෂාවක් එක් කරන්න"</string>
@@ -2020,20 +2030,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> අවහිර කළ බාල්දියට දමා ඇත"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"පුද්ගලික"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"කාර්යාල"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"කාර්යාල යෙදුම් සමග බෙදා ගැනීමට නොහැකිය"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"පෞද්ගලික යෙදුම් සමග බෙදා ගැනීමට නොහැකිය"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"ඔබේ IT පරිපාලක පෞද්ගලික සහ කාර්යාල යෙදුම් අතර බෙදා ගැනීම අවහිර කළා"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"කාර්යාල යෙදුම් ක්‍රියාත්මක කරන්න"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"කාර්යාල යෙදුම් &amp; සම්බන්ධතා වෙත ප්‍රවේශ වීමට කාර්යාල යෙදුම් ක්‍රියාත්මක කරන්න"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ලබා ගත හැකි යෙදුම් නැත"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"අපට කිසිදු යෙදුමක් සොයා ගැනීමට නොහැකි විය"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"කාර්යාලයට මාරු කරන්න"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ටෙලිෆොනි ඇමතුම්වලින් ඕඩියෝ පටිගත කරන්න නැතහොත් වාදනය කරන්න"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"පෙරනිමි ඩයලන යෙදුමක් ලෙස පැවරූ විට, මෙම යෙදුමට ටෙලිෆොනි ඇමතුම්වලින් ඕඩියෝ පටිගත කිරීමට හෝ වාදනය කිරීමට ඉඩ දෙයි."</string>
 </resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index d8006e7..3be2f09 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Vaša organizácia spravuje toto zariadenie a môže sledovať sieťovú premávku. Klepnutím zobrazíte podrobnosti."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Nastavenia polohy zmenil váš správca"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Klepnutím zobrazíte nastavenia polohy."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detektor krajiny"</string>
+    <string name="location_service" msgid="2439187616018455546">"Služba určovania polohy"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Služba upozornení senzora"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Služba stmievania"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Vaše zariadenie bude vymazané"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Daná aplikácia na správu sa nedá použiť. Vaše zariadenie bude vymazané.\n\nV prípade otázok kontaktujte správcu organizácie."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Tlač zakázala aplikácia <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -251,6 +255,10 @@
       <item quantity="other">Snímka obrazovky pre hlásenie chyby sa vytvorí o <xliff:g id="NUMBER_1">%d</xliff:g> sekúnd.</item>
       <item quantity="one">Snímka obrazovky pre hlásenie chyby sa vytvorí o <xliff:g id="NUMBER_0">%d</xliff:g> sekundu.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Tichý režim"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Zvuk je VYPNUTÝ."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Zvuk je zapnutý"</string>
@@ -437,7 +445,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"Táto oprávnená alebo systémová aplikácia môže kedykoľvek fotiť a nahrávať videá fotoaparátom systému. Aplikácia musí mať tiež povolenie android.permission.CAMERA."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"ovládať vibrovanie"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Umožňuje aplikácii ovládať vibrácie."</string>
-    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Povoľuje aplikácii získať prístup k stavu vibrácií."</string>
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Povoľuje aplikácii prístup k stavu vibrátora."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"priamo volať na telefónne čísla"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"Umožňuje aplikácii volať telefónne čísla bez vášho zásahu. V dôsledku toho sa môžu účtovať neočakávané poplatky alebo sa môžu uskutočniť neočakávané hovory. Toto povolenie neumožňuje aplikácii volať na tiesňovú linku."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"prístup k službe volania IMS"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Skúste to znova"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Neregistrovali ste žiadne odtlačky prstov."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Toto zariadenie nemá senzor odtlačkov prstov."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Senzor je dočasne vypnutý."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Prst: <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Nedá sa overiť tvár. Skúste to znova."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Nenastavili ste odomknutie tvárou."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Toto zariadenie nepodporuje odomknutie tvárou."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Senzor je dočasne vypnutý."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Tvár <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Ladenie cez USB pripojené"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Klepnutím vypnite ladenie cez USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Vyberte, ak chcete zakázať ladenie cez USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Bezdrôtové ladenie je pripojené"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Klepnutím vypnete bezdrôtové ladenie"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Výberom zakážete bezdrôtové ladenie."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Režim správcu testov je aktivovaný"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Ak chcete zakázať režim správcu testov, obnovte výrobné nastavenia."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Sériová konzola je povolená"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Služba na popredí spustená na pozadí z balíka <xliff:g id="PACKAGENAME">%1$s</xliff:g> nebude mať v budúcich zostavách R povolenie Počas používania. Prejdite na go/r-bg-fgs-restriction a odošlite hlásenie chyby."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zvýšiť hlasitosť nad odporúčanú úroveň?\n\nDlhodobé počúvanie pri vysokej hlasitosti môže poškodiť váš sluch."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Použiť skratku dostupnosti?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Keď je skratka zapnutá, stlačením obidvoch tlačidiel hlasitosti na tri sekundy spustíte funkciu dostupnosti."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Upraviť skratky"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Zrušiť"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Vypnúť skratku"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Nekategorizované"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Nastavili ste dôležitosť týchto upozornení."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Táto správa je dôležitá vzhľadom na osoby, ktorých sa to týka."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Chcete povoliť aplikácii <xliff:g id="APP">%1$s</xliff:g> vytvoriť nového používateľa pomocou účtu <xliff:g id="ACCOUNT">%2$s</xliff:g> (používateľ s týmto účtom už existuje)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Chcete povoliť aplikácii <xliff:g id="APP">%1$s</xliff:g> vytvoriť nového používateľa pomocou účtu <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Pridať jazyk"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Balík <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> bol vložený do kontajnera OBMEDZENÉ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobné"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Práca"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nedá sa zdieľa s pracovnými aplikáciami"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nedá sa zdieľať s osobnými aplikáciami"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Váš správca IT zablokoval zdieľanie medzi osobnými a pracovnými aplikáciami"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Zapnite pracovné aplikácie"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ak chcete získať prístup k pracovným aplikáciám a kontaktom, zapnite pracovné aplikácie"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"K dispozícii nie sú žiadne aplikácie"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Neboli nájdené žiadne aplikácie"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Zapnúť pracovný profil"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Nahrávanie alebo prehrávanie zvuku počas telefonických hovorov"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Povoľuje tejto aplikácii, keď je priradená ako predvolená aplikácia na vytáčanie, nahrávať alebo prehrávať zvuk počas telefonických hovorov."</string>
 </resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 93a1d34..7178601 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Vaša organizacija upravlja to napravo in lahko nadzira omrežni promet. Dotaknite se za podrobnosti."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Skrbnik je spremenil nastavitve lokacije"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Dotaknite se za ogled nastavitev lokacije."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Zaznavalnik države"</string>
+    <string name="location_service" msgid="2439187616018455546">"Lokacijska storitev"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Storitev obvestil tipal"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Storitev Somrak"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Podatki v napravi bodo izbrisani"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Skrbniške aplikacije ni mogoče uporabljati. Podatki v napravi bodo izbrisani.\n\nČe imate vprašanja, se obrnite na skrbnika organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Tiskanje je onemogočil pravilnik <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -251,6 +255,10 @@
       <item quantity="few">Posnetek zaslona za poročilo o napakah bo narejen čez <xliff:g id="NUMBER_1">%d</xliff:g> s.</item>
       <item quantity="other">Posnetek zaslona za poročilo o napakah bo narejen čez <xliff:g id="NUMBER_1">%d</xliff:g> s.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Tihi način"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Zvok je IZKLOPLJEN"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Zvok je VKLOPLJEN"</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Poskusite znova."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Ni včlanjenih prstnih odtisov."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Ta naprava nima tipala prstnih odtisov."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Tipalo je začasno onemogočeno."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Prst <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Obraza ni mogoče preveriti. Poskusite znova."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Odklepanja z obrazom niste nastavili."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Ta naprava ne podpira odklepanja z obrazom."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Tipalo je začasno onemogočeno."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Obraz <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Iskanje napak prek USB je povezano"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Dotaknite se, če želite izklop. odpravlj. napak prek USB-ja"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Izberite, če želite onemogočiti iskanje in odpravljanje napak prek vrat USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Povezava za brezžično odpravljanje napak je vzpostavljena"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Dotaknite se, če želite izklopiti brezžično odpravljanje napak."</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Izberite, če želite onemogočiti brezžično odpravljanje napak."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Način preizkusnega ogrodja je omogočen"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Če želite onemogočiti način preizkusnega ogrodja, ponastavite napravo na tovarniške nastavitve."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Serijska konzola je omogočena"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"V prihodnjih različicah R storitev v ospredju z zagonom iz ozadja iz paketa <xliff:g id="PACKAGENAME">%1$s</xliff:g> ne bo imela dovoljenja med uporabo aplikacije. Oglejte si go/r-bg-fgs-restriction in pošljite poročilo o napakah."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ali želite povečati glasnost nad priporočeno raven?\n\nDolgotrajno poslušanje pri veliki glasnosti lahko poškoduje sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite uporabljati bližnjico funkcij za ljudi s posebnimi potrebami?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Ko je bližnjica vklopljena, pritisnite gumba za glasnost in ju pridržite tri sekunde, če želite zagnati funkcijo za ljudi s posebnimi potrebami."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Uredi bližnjice"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Prekliči"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Izklopi bližnjico"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Nekategorizirano"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Vi določite raven pomembnosti teh obvestil."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Pomembno zaradi udeleženih ljudi."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Ali aplikaciji <xliff:g id="APP">%1$s</xliff:g> dovolite, da ustvari novega uporabnika za račun <xliff:g id="ACCOUNT">%2$s</xliff:g> (uporabnik s tem računom že obstaja)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Ali aplikaciji <xliff:g id="APP">%1$s</xliff:g> dovolite, da ustvari novega uporabnika za račun <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Dodajanje jezika"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> je bil dodan v segment OMEJENO"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osebno"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Služba"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Deljenje z delovnimi aplikacijami ni mogoče"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Deljenje z osebnimi aplikacijami ni mogoče"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Skrbnik za IT je blokiral deljenje med osebnimi in delovnimi aplikacijami"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Vklopi delovne aplikacije"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Če želite dostopati do delovnih aplikacij in stikov, vklopite delovne aplikacije"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Na voljo ni nobena aplikacija"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Aplikacij ni bilo mogoče najti"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Vklopi delovni profil"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snemanje ali predvajanje zvoka med telefonskimi klici"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tej aplikaciji dovoljuje snemanje ali predvajanje zvoka med telefonskimi klici, ko je nastavljena kot privzeta aplikacija za klicanje."</string>
 </resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index f708fe4..2448521 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organizata jote e menaxhon këtë pajisje dhe mund të monitorojë trafikun e rrjetit. Trokit për detaje."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Cilësimet e vendndodhjes u ndryshuan nga administratori yt"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Trokit për të parë cilësimet e tua të vendndodhjes."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Zbuluesi i shtetit"</string>
+    <string name="location_service" msgid="2439187616018455546">"Vendndodhja e shërbimit"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Shërbimi i njoftimeve të sensorit"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Shërbimi i muzgut"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Pajisja do të spastrohet"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplikacioni i administratorit nuk mund të përdoret. Pajisja jote tani do të fshihet.\n\nNëse ke pyetje, kontakto me administratorin e organizatës."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printimi është çaktivizuar nga <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Marrja e pamjes së ekranit për raportin e defektit në kod në <xliff:g id="NUMBER_1">%d</xliff:g> sekonda.</item>
       <item quantity="one">Marrja e pamjes së ekranit për raportin e defektit në kod në <xliff:g id="NUMBER_0">%d</xliff:g> sekondë.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modaliteti \"në heshtje\""</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Zëri është çaktivizuar"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Zëri është i aktivizuar"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Provo përsëri."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Nuk ka asnjë gjurmë gishti të regjistruar."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Kjo pajisje nuk ka sensor të gjurmës së gishtit."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensori është çaktivizuar përkohësisht."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Gishti <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Fytyra nuk mund të verifikohet. Provo përsëri."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Nuk e ke konfiguruar shkyçjen me fytyrë."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Shkyçja me fytyrë nuk mbështetet në këtë pajisje"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensori është çaktivizuar përkohësisht."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Fytyra <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1285,7 +1291,7 @@
     <string name="sms_short_code_confirm_never_allow" msgid="2688828813521652079">"Mos lejo asnjëherë"</string>
     <string name="sim_removed_title" msgid="5387212933992546283">"Karta SIM u hoq"</string>
     <string name="sim_removed_message" msgid="9051174064474904617">"Rrjeti celular nuk do të mundësohet derisa ta rinisësh pajisjen me një kartë të vlefshme SIM në të."</string>
-    <string name="sim_done_button" msgid="6464250841528410598">"U krye!"</string>
+    <string name="sim_done_button" msgid="6464250841528410598">"U krye"</string>
     <string name="sim_added_title" msgid="7930779986759414595">"Karta SIM u shtua"</string>
     <string name="sim_added_message" msgid="6602906609509958680">"Rinise pajisjen për të pasur qasje në rrjetin celular."</string>
     <string name="sim_restart_button" msgid="8481803851341190038">"Rifillo"</string>
@@ -1298,7 +1304,7 @@
     <string name="time_picker_dialog_title" msgid="9053376764985220821">"Cakto kohën"</string>
     <string name="date_picker_dialog_title" msgid="5030520449243071926">"Vendos datën"</string>
     <string name="date_time_set" msgid="4603445265164486816">"Cakto"</string>
-    <string name="date_time_done" msgid="8363155889402873463">"U krye!"</string>
+    <string name="date_time_done" msgid="8363155889402873463">"U krye"</string>
     <string name="perms_new_perm_prefix" msgid="6984556020395757087"><font size="12" fgcolor="#ff33b5e5">"E RE: "</font></string>
     <string name="perms_description_app" msgid="2747752389870161996">"Ofruar nga <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="no_permissions" msgid="5729199278862516390">"Nuk kërkohen leje"</string>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Korrigjuesi i USB-së është i lidhur"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Trokit për të çaktivizuar korrigjimin e USB-së"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Përzgjidhe për të çaktivizuar korrigjimin e gabimeve të USB-së"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Korrigjimi me lidhjen pa tel është lidhur"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Trokit për të çaktivizuar korrigjimin me lidhjen pa tel"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Zgjidhe për të çaktivizuar korrigjimin me lidhjen pa tel"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Modaliteti i lidhjes së testimit është aktivizuar"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Kryej një rivendosje në cilësimet e fabrikës për të çaktivizuar \"Modalitetin e lidhjes së testimit\"."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Paneli komandues i serisë është aktivizuar"</string>
@@ -1401,7 +1410,7 @@
     <string name="ime_action_search" msgid="4501435960587287668">"Kërko"</string>
     <string name="ime_action_send" msgid="8456843745664334138">"Dërgo"</string>
     <string name="ime_action_next" msgid="4169702997635728543">"Përpara"</string>
-    <string name="ime_action_done" msgid="6299921014822891569">"U krye!"</string>
+    <string name="ime_action_done" msgid="6299921014822891569">"U krye"</string>
     <string name="ime_action_previous" msgid="6548799326860401611">"I mëparshëm"</string>
     <string name="ime_action_default" msgid="8265027027659800121">"Ekzekuto"</string>
     <string name="dial_number_using" msgid="6060769078933953531">"Telefono numrin\nduke përdorur <xliff:g id="NUMBER">%s</xliff:g>"</string>
@@ -1448,7 +1457,7 @@
       <item quantity="other"><xliff:g id="INDEX">%d</xliff:g> nga gjithsej <xliff:g id="TOTAL">%d</xliff:g></item>
       <item quantity="one">1 përputhje</item>
     </plurals>
-    <string name="action_mode_done" msgid="2536182504764803222">"U krye!"</string>
+    <string name="action_mode_done" msgid="2536182504764803222">"U krye"</string>
     <string name="progress_erasing" msgid="6891435992721028004">"Po fshin hapësirën ruajtëse të brendshme…"</string>
     <string name="share" msgid="4157615043345227321">"Shpërndaj"</string>
     <string name="find" msgid="5015737188624767706">"Gjej"</string>
@@ -1489,7 +1498,7 @@
     <string name="keyboardview_keycode_alt" msgid="8997420058584292385">"Alt"</string>
     <string name="keyboardview_keycode_cancel" msgid="2134624484115716975">"Anulo"</string>
     <string name="keyboardview_keycode_delete" msgid="2661117313730098650">"Fshi"</string>
-    <string name="keyboardview_keycode_done" msgid="2524518019001653851">"U krye!"</string>
+    <string name="keyboardview_keycode_done" msgid="2524518019001653851">"U krye"</string>
     <string name="keyboardview_keycode_mode_change" msgid="2743735349997999020">"Ndryshim modaliteti"</string>
     <string name="keyboardview_keycode_shift" msgid="3026509237043975573">"Shift"</string>
     <string name="keyboardview_keycode_enter" msgid="168054869339091055">"Enter"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Shërbimi në plan të parë i nisur në sfond nga <xliff:g id="PACKAGENAME">%1$s</xliff:g> nuk do të ketë lejen e nevojshme gjatë përdorimit në ndërtimet e ardhshme R. Shiko go/r-bg-fgs-restriction dhe dërgo një raport të defekteve në kod."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Të ngrihet volumi mbi nivelin e rekomanduar?\n\nDëgjimi me volum të lartë për periudha të gjata mund të dëmtojë dëgjimin."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Të përdoret shkurtorja e qasshmërisë?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kur shkurtorja është e aktivizuar, shtypja e të dy butonave për 3 sekonda do të nisë një funksion qasshmërie."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Redakto shkurtoret"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Anulo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Çaktivizo shkurtoren"</string>
@@ -1747,7 +1755,7 @@
     <string name="immersive_cling_title" msgid="2307034298721541791">"Po shikon ekranin e plotë"</string>
     <string name="immersive_cling_description" msgid="7092737175345204832">"Për të dalë, rrëshqit nga lart poshtë."</string>
     <string name="immersive_cling_positive" msgid="7047498036346489883">"E kuptova"</string>
-    <string name="done_label" msgid="7283767013231718521">"U krye!"</string>
+    <string name="done_label" msgid="7283767013231718521">"U krye"</string>
     <string name="hour_picker_description" msgid="5153757582093524635">"Rrëshqitësi rrethor i orëve"</string>
     <string name="minute_picker_description" msgid="9029797023621927294">"Rrëshqitësi rrethor i minutave"</string>
     <string name="select_hours" msgid="5982889657313147347">"Përzgjidh orët"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"E pakategorizuara"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ke caktuar rëndësinë e këtyre njoftimeve."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Është i rëndësishëm për shkak të personave të përfshirë."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Të lejohet <xliff:g id="APP">%1$s</xliff:g> që të krijojë një përdorues të ri me <xliff:g id="ACCOUNT">%2$s</xliff:g> (një përdorues me këtë llogari ekziston tashmë) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Të lejohet <xliff:g id="APP">%1$s</xliff:g> që të krijojë një përdorues të ri me <xliff:g id="ACCOUNT">%2$s</xliff:g> ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Shto një gjuhë"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> është vendosur në grupin E KUFIZUAR"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Puna"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nuk mund të ndash me aplikacionet e punës"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nuk mund të ndash me aplikacionet personale"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Administratori yt i teknologjisë së informacionit ka bllokuar ndarjen mes aplikacioneve personale dhe atyre të punës"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Aktivizo aplikacionet e punës"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Aktivizo aplikacionet e punës për të pasur qasje tek aplikacionet dhe kontaktet e punës"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nuk ofrohet asnjë aplikacion"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Nuk mund të gjenim asnjë aplikacion"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Kalo në profilin e punës"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Të regjistrojë ose luajë audio në telefonata"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Lejon këtë aplikacion, kur caktohet si aplikacioni i parazgjedhur i formuesit të numrave, të regjistrojë ose luajë audio në telefonata."</string>
 </resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 51e2674..3edfdb1 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -195,6 +195,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Организација управља овим уређајем и може да надгледа мрежни саобраћај. Додирните за детаље."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Администратор је променио подешавања локације"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Додирните да бисте видели подешавања локације."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Детектор земље"</string>
+    <string name="location_service" msgid="2439187616018455546">"Услуга локације"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Услуга обавештења сензора"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Услуга Сумрак"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Уређај ће бити обрисан"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Не можете да користите ову апликацију за администраторе. Уређај ће сада бити обрисан.\n\nАко имате питања, контактирајте администратора организације."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Штампање је онемогућила апликација <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -248,6 +252,10 @@
       <item quantity="few">Направићемо снимак екрана ради извештаја о грешци за <xliff:g id="NUMBER_1">%d</xliff:g> секунде.</item>
       <item quantity="other">Направићемо снимак екрана ради извештаја о грешци за <xliff:g id="NUMBER_1">%d</xliff:g> секунди.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Нечујни режим"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Звук је ИСКЉУЧЕН"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Звук је УКЉУЧЕН"</string>
@@ -549,8 +557,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Пробајте поново."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Није регистрован ниједан отисак прста."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Овај уређај нема сензор за отисак прста."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Сензор је привремено онемогућен."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Прст <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -594,8 +601,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Провера лица није успела. Пробајте поново."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Нисте подесили откључавање лицем"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Откључавање лицем није подржано на овом уређају"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Сензор је привремено онемогућен."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Лице <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1338,6 +1344,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Отклањање грешака са USB-а је омогућено"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Додирните да бисте искључили отклањање грешака са USB-а"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Изаберите да бисте онемогућили отклањања грешака са USB-а."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Бежично отклањање грешака је повезано"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Додирните да бисте искључили бежично отклањање грешака"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Изаберите да бисте онемогућили бежично отклањање грешака."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Омогућен је режим пробног коришћења"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Обавите ресетовање на фабричка подешавања да бисте онемогућили режим пробног коришћења."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Серијска конзола је омогућена"</string>
@@ -1643,8 +1652,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Услуга у првом плану са <xliff:g id="PACKAGENAME">%1$s</xliff:g> која је покренута у позадини неће имати дозволу током коришћења у будућим R верзијама. Посетите go/r-bg-fgs-restriction и пошаљите извештај о грешци."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Желите да појачате звук изнад препорученог нивоа?\n\nСлушање гласне музике дуже време може да вам оштети слух."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Желите ли да користите пречицу за приступачност?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Када је пречица укључена, притисните оба дугмета за јачину звука да бисте покренули функцију приступачности."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Измените пречице"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Откажи"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Искључи пречицу"</string>
@@ -1877,6 +1885,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Некатегоризовано"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ви подешавате важност ових обавештења."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ово је важно због људи који учествују."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Желите ли да дозволите да <xliff:g id="APP">%1$s</xliff:g> направи новог корисника са налогом <xliff:g id="ACCOUNT">%2$s</xliff:g> (корисник са тим налогом већ постоји)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Желите ли да дозволите да <xliff:g id="APP">%1$s</xliff:g> направи новог корисника са налогом <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Додајте језик"</string>
@@ -2052,20 +2062,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> је додат у сегмент ОГРАНИЧЕНО"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Пословни"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не можете да делите садржај са апликацијама за посао"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не можете да делите садржај са личним апликацијама"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"ИТ администратор је блокирао дељење између личних апликација и апликација за посао"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Укључите апликације за посао"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Укључите апликације за посао да бисте приступили апликацијама и контактима за посао"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Нема доступних апликација"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Нисмо пронашли ниједну апликацију"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Укључи профил за Work"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Снимање или пуштање звука у телефонским позивима"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Омогућава овој апликацији, када је додељена као подразумевана апликација за позивање, да снима или пушта звук у телефонским позивима."</string>
 </resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 88b62f4..73e7efc 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Organisationen hanterar den här enheten och kan övervaka nätverkstrafiken. Tryck om du vill veta mer."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Platsinställningarna har ändrats av administratören"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Tryck för att se dina platsinställningar."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Country Detector"</string>
+    <string name="location_service" msgid="2439187616018455546">"Location Service"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensor Notification Service"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Enheten kommer att rensas"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Det går inte att använda administratörsappen. Enheten rensas.\n\nKontakta organisationens administratör om du har några frågor."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Utskrift har inaktiverats av <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Tar en skärmdump till felrapporten om <xliff:g id="NUMBER_1">%d</xliff:g> sekunder.</item>
       <item quantity="one">Tar en skärmdump till felrapporten om <xliff:g id="NUMBER_0">%d</xliff:g> sekund.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Tyst läge"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Ljudet är AV"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Ljudet är PÅ"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Försök igen."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Inga fingeravtryck har registrerats."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Enheten har ingen fingeravtryckssensor."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensorn har tillfälligt inaktiverats."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Finger <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Det gick inte att verifiera ansiktet. Försök igen."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Du har inte konfigurerat ansiktslås."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Ansiktslås stöds inte på den här enheten."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensorn har tillfälligt inaktiverats."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Ansikte <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB-felsökning ansluten"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Tryck för att inaktivera USB-felsökning"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Välj för att inaktivera USB-felsökning."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Trådlös felsökning ansluten"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Tryck för att inaktivera trådlös felsökning"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Välj för att inaktivera trådlös felsökning."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Läget för testverktyg har aktiverats"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Inaktivera testverktygsläget genom att göra en återställning till standardinställningarna."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Seriekonsolen är aktiverad"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Förgrundstjänsten från <xliff:g id="PACKAGENAME">%1$s</xliff:g> som startades i bakgrunden får inte behörighet som gäller vid användning i framtida R-versioner. Besök go/r-bg-fgs-restriction och skicka en felrapport."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vill du höja volymen över den rekommenderade nivån?\n\nAtt lyssna med stark volym långa stunder åt gången kan skada hörseln."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vill du använda Aktivera tillgänglighet snabbt?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"När kortkommandot har aktiverats startar du en tillgänglighetsfunktion genom att trycka ned båda volymknapparna i tre sekunder."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Redigera genvägar"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Avbryt"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Inaktivera kortkommandot"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Okategoriserad"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Du anger hur viktiga aviseringarna är."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Detta är viktigt på grund av personerna som deltar."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Tillåter du att <xliff:g id="APP">%1$s</xliff:g> skapar en ny användare för <xliff:g id="ACCOUNT">%2$s</xliff:g> (det finns redan en användare med det här kontot)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Tillåter du att <xliff:g id="APP">%1$s</xliff:g> skapar en ny användare för <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Lägg till ett språk"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> har placerats i hinken RESTRICTED"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Privat"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Jobb"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Det går inte att dela med jobbappar"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Det går inte att dela med personliga appar"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"IT-administratören har blockerat delning mellan personliga och jobbappar"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Aktivera jobbappar"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Aktivera jobbappar om du vill få åtkomst till jobbrelaterade appar och kontakter"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Det finns inga tillgängliga appar"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Vi hittade inga appar"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Aktivera jobbprofil"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Spela in och spela upp ljud i telefonsamtal"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tillåter appen att spela in och spela upp ljud i telefonsamtal när den har angetts som standardapp för uppringningsfunktionen."</string>
 </resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index e94856b..5ef601f 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Shirika lako linadhibiti kifaa hiki na huenda likafuatilia shughuli kwenye mtandao. Gusa ili upate maelezo zaidi."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Mipangilio ya mahali imebadilishwa na msimamizi wako"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Gusa ili uone mipangilio ya mahali ulipo."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Kitambuzi cha Nchi"</string>
+    <string name="location_service" msgid="2439187616018455546">"Huduma ya Mahali"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Huduma ya Arifa ya Kitambuzi"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Data iliyomo kwenye kifaa chako itafutwa"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Huwezi kutumia programu ya msimamizi. Sasa data iliyo kwenye kifaa chako itafutwa.\n\nIkiwa una maswali yoyote, wasiliana na msimamizi wa shirika lako."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Kipengele cha kuchapisha kimezimwa na <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Inapiga picha ya skrini ili iripoti hitilafu baada ya sekunde <xliff:g id="NUMBER_1">%d</xliff:g>.</item>
       <item quantity="one">Inapiga picha ya skrini ili iripoti hitilafu baada ya sekunde <xliff:g id="NUMBER_0">%d</xliff:g>.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Mtindo wa kimya"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Sauti Imezimwa"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Sauti imewashwa"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Jaribu tena."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Hakuna alama za vidole zilizojumuishwa."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Kifaa hiki hakina kitambua alama ya kidole."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Kitambuzi kimezimwa kwa muda."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Kidole cha <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Imeshindwa kuthibitisha uso. Jaribu tena."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Hujaweka mipangilio ya kufungua kwa uso."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Kufungua kwa uso hakutumiki kwenye kifaa hiki."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Kitambuzi kimezimwa kwa muda."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Uso wa <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Utatuzi wa USB umeunganishwa"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Gusa ili uzime utatuzi wa USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Chagua ili kulemaza utatuaji USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Umeunganisha utatuzi usiotumia waya"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Gusa ili uzime utatuzi usiotumia waya"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Chagua ili uzime utatuzi usiotumia waya."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Hali ya Muunganisho wa Majaribio imewashwa"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Rejesha mipangilio iliyotoka nayo kiwandani ili uzime hali ya Muunganisho wa Majaribio."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Muunganisho kupitia mlango umewashwa"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Huduma ya programu inayotumika iliyoanzishwa chinichini kwenye <xliff:g id="PACKAGENAME">%1$s</xliff:g> haitakuwa na ruhusa inapotumika katika miundo ijayo ya R. Tafadhali angalia go/r-bg-fgs-restriction na uwasilishe ripoti ya hitilafu."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ungependa kupandisha sauti zaidi ya kiwango kinachopendekezwa?\n\nKusikiliza kwa sauti ya juu kwa muda mrefu kunaweza kuharibu uwezo wako wa kusikia."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Ungependa kutumia njia ya mkato ya ufikivu?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Unapowasha kipengele cha njia ya mkato, hatua ya kubonyeza vitufe vyote viwili vya sauti kwa sekunde tatu itafungua kipengele cha ufikivu."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Kubadilisha njia za mkato"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Ghairi"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Zima kipengele cha Njia ya Mkato"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Ambazo aina haijabainishwa"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Uliweka mipangilio ya umuhimu wa arifa hizi."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Hii ni muhimu kwa sababu ya watu waliohusika."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Ruhusu <xliff:g id="APP">%1$s</xliff:g> iweke Mtumiaji mpya ikitumia <xliff:g id="ACCOUNT">%2$s</xliff:g> (Je, tayari kuna mtumiaji anayetumia akaunti hii)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Ungependa kuruhusu <xliff:g id="APP">%1$s</xliff:g> iweke Mtumiaji mpya ikitumia <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Ongeza lugha"</string>
@@ -1917,7 +1927,7 @@
     <string name="autofill_update_title_with_2types" msgid="1797514386321086273">"Ungependa kusasisha <xliff:g id="TYPE_0">%1$s</xliff:g> na <xliff:g id="TYPE_1">%2$s</xliff:g> katika "<b>"<xliff:g id="LABEL">%3$s</xliff:g>"</b>"?"</string>
     <string name="autofill_update_title_with_3types" msgid="1312232153076212291">"Ungependa kusasisha vipengee hivi katika "<b>"<xliff:g id="LABEL">%4$s</xliff:g>"</b>": <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> na <xliff:g id="TYPE_2">%3$s</xliff:g>?"</string>
     <string name="autofill_save_yes" msgid="8035743017382012850">"Hifadhi"</string>
-    <string name="autofill_save_no" msgid="9212826374207023544">"Hapana, asante"</string>
+    <string name="autofill_save_no" msgid="9212826374207023544">"Hapana"</string>
     <string name="autofill_save_notnow" msgid="2853932672029024195">"Si sasa"</string>
     <string name="autofill_save_never" msgid="6821841919831402526">"Kamwe"</string>
     <string name="autofill_update_yes" msgid="4608662968996874445">"Sasisha"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> kimewekwa katika kikundi KILICHODHIBITIWA"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Binafsi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Kazini"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Imeshindwa kushiriki na programu za kazini"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Imeshindwa kushiriki na programu za binafsi"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Msimamizi wako wa TEHAMA amezuia kushiriki kati ya programu za binafsi na za kazini"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Washa programu za kazini"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Washa programu za kazini ili ufikie programu na anwani za kazini"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Hakuna programu zinazopatikana"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Hatujapata programu zozote"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Washa wasifu wa kazini"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Kurekodi au kucheza sauti katika simu"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Huruhusu programu hii, wakati imekabidhiwa kuwa programu chaguomsingi ya kipiga simu, kurekodi au kucheza sauti katika simu."</string>
 </resources>
diff --git a/core/res/res/values-sw600dp/config.xml b/core/res/res/values-sw600dp/config.xml
index e2c8d8a..c891268 100644
--- a/core/res/res/values-sw600dp/config.xml
+++ b/core/res/res/values-sw600dp/config.xml
@@ -42,16 +42,6 @@
 
     <integer name="config_dockedStackDividerSnapMode">1</integer>
 
-    <!-- The snap mode to use for picture-in-picture. These values correspond to constants defined
-         in PipSnapAlgorithm and should not be changed independently.
-             0 - Snap to the four corners
-             1 - Snap to the four corners and the mid-points on the long edge in each orientation
-             2 - Snap anywhere along the edge of the screen
-             3 - Snap anywhere along the edge of the screen and magnet to corners
-             4 - Snap to the long edges in each orientation and magnet to corners
-    -->
-    <integer name="config_pictureInPictureSnapMode">3</integer>
-
     <!-- Controls whether the nav bar can move from the bottom to the side in landscape.
          Only applies if the device display is not square. -->
     <bool name="config_navBarCanMove">false</bool>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 8245786..da6cf4b 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -191,9 +191,15 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"நிர்வாகியால் தனிப்பட்ட உபயோகத்திற்காக ஒதுக்கப்பட்ட சாதனம்"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"சாதனம் நிர்வகிக்கப்படுகிறது"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"உங்கள் நிறுவனம் இந்தச் சாதனத்தை நிர்வகிக்கும், அத்துடன் அது நெட்வொர்க் ட்ராஃபிக்கைக் கண்காணிக்கலாம். விவரங்களுக்கு, தட்டவும்."</string>
-    <!-- no translation found for location_changed_notification_title (4119726617105166830) -->
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"உங்கள் நிர்வாகியால் இருப்பிட அமைப்புகள் மாற்றப்பட்டன"</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"உங்கள் இருப்பிட அமைப்புகளைப் பார்க்க தட்டவும்."</string>
+    <!-- no translation found for country_detector (7023275114706088854) -->
     <skip />
-    <!-- no translation found for location_changed_notification_text (198907268219396399) -->
+    <!-- no translation found for location_service (2439187616018455546) -->
+    <skip />
+    <!-- no translation found for sensor_notification_service (7474531979178682676) -->
+    <skip />
+    <!-- no translation found for twilight_service (8964898045693187224) -->
     <skip />
     <string name="factory_reset_warning" msgid="6858705527798047809">"சாதனத் தரவு அழிக்கப்படும்"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"நிர்வாகி ஆப்ஸை உபயோகிக்க முடியாது. இப்போது, உங்கள் சாதனம் ஆரம்ப நிலைக்கு மீட்டமைக்கப்படும்.\n\nஏதேனும் கேள்விகள் இருப்பின், உங்கள் நிறுவனத்தின் நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
@@ -247,6 +253,10 @@
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> வினாடிகளில் பிழை அறிக்கைக்கான ஸ்கிரீன்ஷாட் எடுக்கப்படும்.</item>
       <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> வினாடியில் பிழை அறிக்கைக்கான ஸ்கிரீன்ஷாட் எடுக்கப்படும்.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"நிசப்த பயன்முறை"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ஒலி முடக்கத்தில் உள்ளது"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ஒலி இயக்கத்தில் உள்ளது"</string>
@@ -375,7 +385,7 @@
     <string name="permdesc_persistentActivity" product="default" msgid="1914841924366562051">"நினைவகத்தில் நிலையாக இருக்கும் தன்னுடைய பகுதிகளை உருவாக்கப் ஆப்ஸை அனுமதிக்கிறது. இதனால பிற பயன்பாடுகளுக்குக் கிடைக்கும் நினைவகம் வரையறுக்கப்பட்டு, மொபைலின் வேகத்தைக் குறைக்கலாம்"</string>
     <string name="permlab_foregroundService" msgid="1768855976818467491">"முன்புலத்தில் இயங்கும் சேவையை இயக்குதல்"</string>
     <string name="permdesc_foregroundService" msgid="8720071450020922795">"முன்புலத்தில் இயங்கும் சேவைகளை உபயோகிக்க, ஆப்ஸை அனுமதிக்கிறது."</string>
-    <string name="permlab_getPackageSize" msgid="375391550792886641">"பயன்பாட்டுச் சேமிப்பு இடத்தை அளவிடல்"</string>
+    <string name="permlab_getPackageSize" msgid="375391550792886641">"ஆப்ஸ் சேமிப்பு இடத்தை அளவிடல்"</string>
     <string name="permdesc_getPackageSize" msgid="742743530909966782">"ஆப்ஸ், அதன் குறியீடு, தரவு, மற்றும் தற்காலிகச் சேமிப்பு அளவுகளை மீட்டெடுக்க அனுமதிக்கிறது"</string>
     <string name="permlab_writeSettings" msgid="8057285063719277394">"சாதன அமைப்புகளை மாற்றுதல்"</string>
     <string name="permdesc_writeSettings" msgid="8293047411196067188">"முறைமையின் அமைப்பு தரவைத் திருத்த, ஆப்ஸை அனுமதிக்கிறது. தீங்குவிளைவிக்கும் ஆப்ஸ், முறைமையின் உள்ளமைவைச் சிதைக்கலாம்."</string>
@@ -433,8 +443,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"இந்த முன்னுரிமை பெற்ற சிஸ்டம் ஆப்ஸால் சிஸ்டம் கேமராவைப் பயன்படுத்தி எப்போது வேண்டுமானாலும் படங்களை எடுக்கவோ வீடியோக்களை ரெக்கார்டு செய்யவோ முடியும். android.permission.CAMERA அனுமதியும் ஆப்ஸிற்குத் தேவை"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"அதிர்வைக் கட்டுப்படுத்துதல்"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"அதிர்வைக் கட்டுப்படுத்தப் ஆப்ஸை அனுமதிக்கிறது."</string>
-    <!-- no translation found for permdesc_vibrator_state (7050024956594170724) -->
-    <skip />
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"அதிர்வு நிலையை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"தொலைபேசி எண்களை நேரடியாக அழைத்தல்"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"உங்கள் தலையீட்டின்றி மொபைல் எண்களை அழைக்கப் ஆப்ஸை அனுமதிக்கிறது. இதன் விளைவாக எதிர்பாராத கட்டணங்களோ அழைப்புகளோ ஏற்படலாம். அவசரகால எண்களை அழைக்க இது ஆப்ஸை அனுமதிக்காது என்பதை நினைவில்கொள்ளவும். தீங்கிழைக்கும் ஆப்ஸ், உங்கள் உறுதிப்படுத்தல் இன்றி அழைப்புகளைச் செய்வதால் உங்களுக்குச் செலவு ஏற்படக்கூடும்."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS அழைப்புச் சேவையை அணுகுதல்"</string>
@@ -474,7 +483,7 @@
     <string name="permlab_accessNetworkState" msgid="2349126720783633918">"நெட்வொர்க் இணைப்புகளைக் காட்டு"</string>
     <string name="permdesc_accessNetworkState" msgid="4394564702881662849">"தற்போது இருக்கும் நெட்வொர்க்குகள் எவை மற்றும் இணைக்கப்பட்டுள்ளவை எவை போன்ற நெட்வொர்க் இணைப்புகள் குறித்த தகவலைப் பார்க்கப் ஆப்ஸை அனுமதிக்கிறது."</string>
     <string name="permlab_createNetworkSockets" msgid="3224420491603590541">"முழுமையான நெட்வொர்க் அணுகலைக் கொண்டிருக்கும்"</string>
-    <string name="permdesc_createNetworkSockets" msgid="7722020828749535988">"நெட்வொர்க் சாக்கெட்டுகளை உருவாக்கவும் மற்றும் தனிப்பயன் நெட்வொர்க் நெறிமுறைகளைப் பயன்படுத்தவும் ஆப்ஸை அனுமதிக்கிறது. இணையத்தில் தரவை அனுப்ப உலாவியும், பிற பயன்பாடுகளும் இருப்பதால், இணையத்திற்குத் தரவை அனுப்ப இந்த அனுமதி தேவையில்லை."</string>
+    <string name="permdesc_createNetworkSockets" msgid="7722020828749535988">"நெட்வொர்க் சாக்கெட்டுகளை உருவாக்கவும் மற்றும் பிரத்தியேக நெட்வொர்க் நெறிமுறைகளைப் பயன்படுத்தவும் ஆப்ஸை அனுமதிக்கிறது. இணையத்தில் தரவை அனுப்ப உலாவியும், பிற பயன்பாடுகளும் இருப்பதால், இணையத்திற்குத் தரவை அனுப்ப இந்த அனுமதி தேவையில்லை."</string>
     <string name="permlab_changeNetworkState" msgid="8945711637530425586">"பிணைய இணைப்புத்தன்மையை மாற்றுதல்"</string>
     <string name="permdesc_changeNetworkState" msgid="649341947816898736">"நெட்வொர்க் இணைப்பின் நிலையை மாற்ற, ஆப்ஸை அனுமதிக்கிறது."</string>
     <string name="permlab_changeTetherState" msgid="9079611809931863861">"இணைக்கப்பட்ட இணைப்புநிலையை மாற்றுதல்"</string>
@@ -697,30 +706,30 @@
     <item msgid="4537253139152229577">"வீட்டு தொலைநகல்"</item>
     <item msgid="6751245029698664340">"பேஜர்"</item>
     <item msgid="1692790665884224905">"மற்றவை"</item>
-    <item msgid="6216981255272016212">"தனிப்பயன்"</item>
+    <item msgid="6216981255272016212">"பிரத்தியேகம்"</item>
   </string-array>
   <string-array name="emailAddressTypes">
     <item msgid="7786349763648997741">"வீடு"</item>
     <item msgid="435564470865989199">"அலுவலகம்"</item>
     <item msgid="4199433197875490373">"மற்றவை"</item>
-    <item msgid="3233938986670468328">"தனிப்பயன்"</item>
+    <item msgid="3233938986670468328">"பிரத்தியேகம்"</item>
   </string-array>
   <string-array name="postalAddressTypes">
     <item msgid="3861463339764243038">"வீடு"</item>
     <item msgid="5472578890164979109">"அலுவலகம்"</item>
     <item msgid="5718921296646594739">"மற்றவை"</item>
-    <item msgid="5523122236731783179">"தனிப்பயன்"</item>
+    <item msgid="5523122236731783179">"பிரத்தியேகம்"</item>
   </string-array>
   <string-array name="imAddressTypes">
     <item msgid="588088543406993772">"வீடு"</item>
     <item msgid="5503060422020476757">"அலுவலகம்"</item>
     <item msgid="2530391194653760297">"மற்றவை"</item>
-    <item msgid="7640927178025203330">"தனிப்பயன்"</item>
+    <item msgid="7640927178025203330">"பிரத்தியேகம்"</item>
   </string-array>
   <string-array name="organizationTypes">
     <item msgid="6144047813304847762">"அலுவலகம்"</item>
     <item msgid="7402720230065674193">"மற்றவை"</item>
-    <item msgid="808230403067569648">"தனிப்பயன்"</item>
+    <item msgid="808230403067569648">"பிரத்தியேகம்"</item>
   </string-array>
   <string-array name="imProtocols">
     <item msgid="7535761744432206400">"AIM"</item>
@@ -732,7 +741,7 @@
     <item msgid="4717545739447438044">"ICQ"</item>
     <item msgid="8293711853624033835">"Jabber"</item>
   </string-array>
-    <string name="phoneTypeCustom" msgid="5120365721260686814">"தனிப்பயன்"</string>
+    <string name="phoneTypeCustom" msgid="5120365721260686814">"பிரத்தியேகம்"</string>
     <string name="phoneTypeHome" msgid="3880132427643623588">"வீடு"</string>
     <string name="phoneTypeMobile" msgid="1178852541462086735">"மொபைல்"</string>
     <string name="phoneTypeWork" msgid="6604967163358864607">"அலுவலகம்"</string>
@@ -753,24 +762,24 @@
     <string name="phoneTypeWorkPager" msgid="3748332310638505234">"பணியிட பேஜர்"</string>
     <string name="phoneTypeAssistant" msgid="757550783842231039">"உதவியாளர்"</string>
     <string name="phoneTypeMms" msgid="1799747455131365989">"MMS"</string>
-    <string name="eventTypeCustom" msgid="3257367158986466481">"தனிப்பயன்"</string>
+    <string name="eventTypeCustom" msgid="3257367158986466481">"பிரத்தியேகம்"</string>
     <string name="eventTypeBirthday" msgid="7770026752793912283">"பிறந்தநாள்"</string>
     <string name="eventTypeAnniversary" msgid="4684702412407916888">"ஆண்டுவிழா"</string>
     <string name="eventTypeOther" msgid="530671238533887997">"மற்றவை"</string>
-    <string name="emailTypeCustom" msgid="1809435350482181786">"தனிப்பயன்"</string>
+    <string name="emailTypeCustom" msgid="1809435350482181786">"பிரத்தியேகம்"</string>
     <string name="emailTypeHome" msgid="1597116303154775999">"வீடு"</string>
     <string name="emailTypeWork" msgid="2020095414401882111">"அலுவலகம்"</string>
     <string name="emailTypeOther" msgid="5131130857030897465">"மற்றவை"</string>
     <string name="emailTypeMobile" msgid="787155077375364230">"மொபைல்"</string>
-    <string name="postalTypeCustom" msgid="5645590470242939129">"தனிப்பயன்"</string>
+    <string name="postalTypeCustom" msgid="5645590470242939129">"பிரத்தியேகம்"</string>
     <string name="postalTypeHome" msgid="7562272480949727912">"வீடு"</string>
     <string name="postalTypeWork" msgid="8553425424652012826">"அலுவலகம்"</string>
     <string name="postalTypeOther" msgid="7094245413678857420">"மற்றவை"</string>
-    <string name="imTypeCustom" msgid="5653384545085765570">"தனிப்பயன்"</string>
+    <string name="imTypeCustom" msgid="5653384545085765570">"பிரத்தியேகம்"</string>
     <string name="imTypeHome" msgid="6996507981044278216">"வீடு"</string>
     <string name="imTypeWork" msgid="2099668940169903123">"அலுவலகம்"</string>
     <string name="imTypeOther" msgid="8068447383276219810">"மற்றவை"</string>
-    <string name="imProtocolCustom" msgid="4437878287653764692">"தனிப்பயன்"</string>
+    <string name="imProtocolCustom" msgid="4437878287653764692">"பிரத்தியேகம்"</string>
     <string name="imProtocolAim" msgid="4050198236506604378">"AIM"</string>
     <string name="imProtocolMsn" msgid="2257148557766499232">"Windows Live"</string>
     <string name="imProtocolYahoo" msgid="5373338758093392231">"Yahoo"</string>
@@ -782,8 +791,8 @@
     <string name="imProtocolNetMeeting" msgid="4985002408136148256">"NetMeeting"</string>
     <string name="orgTypeWork" msgid="8684458700669564172">"அலுவலகம்"</string>
     <string name="orgTypeOther" msgid="5450675258408005553">"மற்றவை"</string>
-    <string name="orgTypeCustom" msgid="1126322047677329218">"தனிப்பயன்"</string>
-    <string name="relationTypeCustom" msgid="282938315217441351">"தனிப்பயன்"</string>
+    <string name="orgTypeCustom" msgid="1126322047677329218">"பிரத்தியேகம்"</string>
+    <string name="relationTypeCustom" msgid="282938315217441351">"பிரத்தியேகம்"</string>
     <string name="relationTypeAssistant" msgid="4057605157116589315">"உதவியாளர்"</string>
     <string name="relationTypeBrother" msgid="7141662427379247820">"சகோதரர்"</string>
     <string name="relationTypeChild" msgid="9076258911292693601">"குழந்தை"</string>
@@ -798,7 +807,7 @@
     <string name="relationTypeRelative" msgid="3396498519818009134">"உறவினர்"</string>
     <string name="relationTypeSister" msgid="3721676005094140671">"சகோதரி"</string>
     <string name="relationTypeSpouse" msgid="6916682664436031703">"துணைவர்"</string>
-    <string name="sipAddressTypeCustom" msgid="6283889809842649336">"தனிப்பயன்"</string>
+    <string name="sipAddressTypeCustom" msgid="6283889809842649336">"பிரத்தியேகம்"</string>
     <string name="sipAddressTypeHome" msgid="5918441930656878367">"வீடு"</string>
     <string name="sipAddressTypeWork" msgid="7873967986701216770">"அலுவலகம்"</string>
     <string name="sipAddressTypeOther" msgid="6317012577345187275">"மற்றவை"</string>
@@ -833,8 +842,8 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3664999892038416334">"சிம் கார்டு இல்லை அல்லது படிக்கக்கூடியதாக இல்லை. சிம் கார்டைச் செருகவும்."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="3812893366715730539">"பயன்படுத்த முடியாத சிம் கார்டு."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="4358929052509450807">"உங்கள் சிம் கார்டு நிரந்தரமாக முடக்கப்பட்டது.\n மற்றொரு சிம் கார்டிற்காக உங்கள் வயர்லெஸ் சேவை வழங்குநரைத் தொடர்புகொள்ளவும்."</string>
-    <string name="lockscreen_transport_prev_description" msgid="2879469521751181478">"முந்தைய ட்ராக்"</string>
-    <string name="lockscreen_transport_next_description" msgid="2931509904881099919">"அடுத்த ட்ராக்"</string>
+    <string name="lockscreen_transport_prev_description" msgid="2879469521751181478">"முந்தைய டிராக்"</string>
+    <string name="lockscreen_transport_next_description" msgid="2931509904881099919">"அடுத்த டிராக்"</string>
     <string name="lockscreen_transport_pause_description" msgid="6705284702135372494">"இடைநிறுத்து"</string>
     <string name="lockscreen_transport_play_description" msgid="106868788691652733">"இயக்கு"</string>
     <string name="lockscreen_transport_stop_description" msgid="1449552232598355348">"நிறுத்து"</string>
@@ -1321,6 +1330,12 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB பிழைதிருத்தம் இணைக்கப்பட்டது"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB பிழைதிருத்தத்தை ஆஃப் செய்ய தட்டவும்"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB பிழைதிருத்தத்தை முடக்க, தேர்ந்தெடுக்கவும்."</string>
+    <!-- no translation found for adbwifi_active_notification_title (6147343659168302473) -->
+    <skip />
+    <!-- no translation found for adbwifi_active_notification_message (930987922852867972) -->
+    <skip />
+    <!-- no translation found for adbwifi_active_notification_message (8633421848366915478) -->
+    <skip />
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"\'தன்னியக்க சோதனைப்\' பயன்முறை இயக்கப்பட்டது"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"’தன்னியக்க சோதனைப்\' பயன்முறையை முடக்க ஆரம்பநிலைக்கு மீட்டமைக்கவும்."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"சீரியல் கன்சோல் இயக்கப்பட்டது"</string>
@@ -1848,6 +1863,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"வகைப்படுத்தப்படாதவை"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"இந்த அறிவிப்புகளின் முக்கியத்துவத்தை அமைத்துள்ளீர்கள்."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ஈடுபட்டுள்ளவர்களின் காரணமாக, இது முக்கியமானது."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> மூலம் புதிய பயனரை உருவாக்க <xliff:g id="APP">%1$s</xliff:g> ஆப்ஸை அனுமதிக்கவா (இந்தக் கணக்கில் ஏற்கெனவே ஒரு பயனர் உள்ளார்) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> மூலம் புதிய பயனரை உருவாக்க <xliff:g id="APP">%1$s</xliff:g> ஆப்ஸை அனுமதிக்கவா?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"மொழியைச் சேர்"</string>
@@ -1951,7 +1968,7 @@
     <string name="slice_more_content" msgid="3377367737876888459">"+ <xliff:g id="NUMBER">%1$d</xliff:g>"</string>
     <string name="shortcut_restored_on_lower_version" msgid="9206301954024286063">"ஆப்ஸ் முந்தையப் பதிப்பிற்கு மாற்றப்பட்டது, அல்லது இந்த ஷார்ட்கட் வேலை செய்யவில்லை"</string>
     <string name="shortcut_restore_not_supported" msgid="4763198938588468400">"காப்புப் பிரதி மற்றும் மீட்டமைவைப் ஆப்ஸ் ஆதரிக்காத காரணத்தால், ஷார்ட்கட்டை மீட்டமைக்க முடியவில்லை"</string>
-    <string name="shortcut_restore_signature_mismatch" msgid="579345304221605479">"பயன்பாட்டுச் சான்றுகள் பொருந்தாத காரணத்தினால், ஷார்ட்கட்டை மீட்டமைக்க முடியவில்லை"</string>
+    <string name="shortcut_restore_signature_mismatch" msgid="579345304221605479">"ஆப்ஸ் சான்றுகள் பொருந்தாத காரணத்தினால், ஷார்ட்கட்டை மீட்டமைக்க முடியவில்லை"</string>
     <string name="shortcut_restore_unknown_issue" msgid="2478146134395982154">"ஷார்ட்கட்டை மீட்டமைக்க முடியவில்லை"</string>
     <string name="shortcut_disabled_reason_unknown" msgid="753074793553599166">"ஷார்ட்கட் முடக்கப்பட்டுள்ளது"</string>
     <string name="harmful_app_warning_uninstall" msgid="6472912975664191772">"நிறுவல் நீக்கு"</string>
@@ -2037,4 +2054,8 @@
     <skip />
     <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
     <skip />
+    <!-- no translation found for permlab_accessCallAudio (1682957511874097664) -->
+    <skip />
+    <!-- no translation found for permdesc_accessCallAudio (8448360894684277823) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 7d01f58..f6cc17e 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -192,7 +192,11 @@
     <string name="network_logging_notification_title" msgid="554983187553845004">"పరికరం నిర్వహించబడింది"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"మీ సంస్థ ఈ పరికరాన్ని నిర్వహిస్తుంది మరియు నెట్‌వర్క్ ట్రాఫిక్‌ని పర్యవేక్షించవచ్చు. వివరాల కోసం నొక్కండి."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"మీ అడ్మిన్ లొకేషన్ సెట్టింగ్‌లను మార్చారు"</string>
-    <string name="location_changed_notification_text" msgid="198907268219396399">"మీ లొకేషన్ సెట్టింగ్‌లను చుడటానికి ట్యాప్ చేయండి."</string>
+    <string name="location_changed_notification_text" msgid="198907268219396399">"మీ లొకేషన్ సెట్టింగ్‌లను చూడటానికి ట్యాప్ చేయండి."</string>
+    <string name="country_detector" msgid="7023275114706088854">"దేశం డిటెక్టర్"</string>
+    <string name="location_service" msgid="2439187616018455546">"లొకేషన్ సర్వీస్"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"సెన్సార్ నోటిఫికేషన్ సర్వీస్"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ట్విలైట్ సర్వీస్"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"మీ పరికరంలోని డేటా తొలగించబడుతుంది"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"నిర్వాహక యాప్‌ ఉపయోగించడం సాధ్యపడదు. మీ పరికరంలోని డేటా ఇప్పుడు తొలగించబడుతుంది.\n\nమీకు ప్రశ్నలు ఉంటే, మీ సంస్థ యొక్క నిర్వాహకులను సంప్రదించండి."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ముద్రణ <xliff:g id="OWNER_APP">%s</xliff:g> ద్వారా నిలిపివేయబడింది."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">బగ్ నివేదిక కోసం <xliff:g id="NUMBER_1">%d</xliff:g> సెకన్లలో స్క్రీన్‌షాట్ తీయబోతోంది.</item>
       <item quantity="one">బగ్ నివేదిక కోసం <xliff:g id="NUMBER_0">%d</xliff:g> సెకనులో స్క్రీన్‌షాట్ తీయబోతోంది.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"నిశ్శబ్ద మోడ్"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ధ్వని ఆఫ్‌లో ఉంది"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ధ్వని ఆన్‌లో ఉంది"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"మళ్లీ ప్రయత్నించండి."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"వేలిముద్రలు నమోదు చేయబడలేదు."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"ఈ పరికరంలో వేలిముద్ర సెన్సార్ ఎంపిక లేదు."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"సెన్సార్ తాత్కాలికంగా డిజేబుల్ చేయబడింది."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"వేలు <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"ముఖం ధృవీకరించలేకపోయింది. మళ్లీ ప్రయత్నించండి."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"మీరు ముఖంతో అన్‌లాక్‌ను సెటప్ చేయలేదు."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"ఈ పరికరంలో ముఖంతో అన్‌లాక్‌ను ఉపయోగించడానికి మద్దతు లేదు."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"సెన్సార్ తాత్కాలికంగా డిజేబుల్ చేయబడింది."</string>
     <string name="face_name_template" msgid="3877037340223318119">"ముఖ <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB డీబగ్గింగ్ కనెక్ట్ చేయబడింది"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB డీబగ్గింగ్‌ను ఆఫ్ చేయడానికి నొక్కండి"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"డీబగ్గింగ్‌ని నిలిపివేయడానికి ఎంచుకోండి."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"వైర్‌లెస్ డీబగ్గింగ్ కనెక్ట్ చేయబడింది"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"వైర్‌లెస్ డీబగ్గింగ్‌ని ఆఫ్ చేయడానికి ట్యాప్ చేయండి"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"వైర్‌లెస్ డీబగ్గింగ్‌ని డిజేబుల్ చేయడానికి ఎంచుకోండి."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"పరీక్ష నియంత్రణ మోడ్ ప్రారంభించబడింది"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"పరీక్ష నియంత్రణ మోడ్‌ను నిలిపివేయడానికి ఫ్యాక్టరీ రీసెట్‍‌ను అమలు చేయండి."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"సీరియల్ కన్సోల్ ప్రారంభించబడింది"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> నుండి, బ్యాక్‌గ్రౌండ్‌లో ప్రారంభమైన ఫోర్ గ్రౌండ్ సేవకు భవిష్యత్తు R బిల్డ్స్‌లో \'ఉపయోగంలో వున్నప్పుడు\' అనుమతి ఉండదు. దయచేసి go/r-bg-fgs-restrictionను చూసి బగ్ నివేదికను ఫైల్ చేయండి."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"వాల్యూమ్‌ను సిఫార్సు చేయబడిన స్థాయి కంటే ఎక్కువగా పెంచాలా?\n\nసుదీర్ఘ వ్యవధుల పాటు అధిక వాల్యూమ్‌లో వినడం వలన మీ వినికిడి శక్తి దెబ్బ తినవచ్చు."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"యాక్సెస్ సామర్థ్యం షార్ట్‌కట్‌ను ఉపయోగించాలా?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"షార్ట్‌కట్ ఆన్ చేసి ఉన్నప్పుడు, రెండు వాల్యూమ్ బటన్‌లను 3 సెకన్ల పాటు నొక్కి ఉంచితే యాక్సెస్ సౌలభ్య ఫీచర్ ప్రారంభం అవుతుంది."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"షార్ట్‌కట్‌లను ఎడిట్ చేయి"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"రద్దు చేయి"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"సత్వరమార్గాన్ని ఆఫ్ చేయి"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"వర్గీకరించబడలేదు"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"మీరు ఈ నోటిఫికేషన్‌ల ప్రాముఖ్యతను సెట్ చేసారు."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ఇందులో పేర్కొనబడిన వ్యక్తులను బట్టి ఇది చాలా ముఖ్యమైనది."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g>తో కొత్త వినియోగదారుని సృష్టించడానికి <xliff:g id="APP">%1$s</xliff:g>ను అనుమతించాలా (ఈ ఖాతాతో ఇప్పటికే ఒక వినియోగదారు ఉన్నారు) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g>తో కొత్త వినియోగదారుని సృష్టించడానికి <xliff:g id="APP">%1$s</xliff:g>ను అనుమతించాలా?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"భాషను జోడించండి"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> పరిమితం చేయబడిన బకెట్‌లో ఉంచబడింది"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"వ్యక్తిగతం"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"కార్యాలయం"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"వర్క్ యాప్‌లతో షేర్ చేయడం సాధ్యపడదు"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"వ్యక్తిగత యాప్‌లతో షేర్ చేయడం సాధ్యపడదు"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"వ్యక్తిగత, వర్క్ యాప్‌ల మధ్య షేర్ చేయడాన్ని మీ IT అడ్మిన్ బ్లాక్ చేశారు"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"వర్క్ యాప్‌లను ఆన్ చేయండి"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"వర్క్ యాప్‌లు &amp; కాంటాక్ట్‌లను యాక్సెస్ చేయడానికి వర్క్ యాప్‌లను ఆన్ చేయండి"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"యాప్‌లు ఏవీ అందుబాటులో లేవు"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"మేము యాప్‌లు వేటినీ కనుగొనలేకపోయాము"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"కార్యాలయ ప్రొఫైల్‌ను ఆన్ చేయి"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"టెలిఫోనీ కాల్స్‌లో రికార్డ్ చేయండి లేదా ఆడియో ప్లే చేయండి"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"డిఫాల్ట్ డయలర్ యాప్‌గా కేటాయించినప్పుడు, టెలిఫోనీ కాల్స్‌లో రికార్డ్ చేయడానికి లేదా ఆడియో ప్లే చేయడానికి ఈ యాప్‌ను అనుమతిస్తుంది."</string>
 </resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 7f966db..90831d7 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -191,8 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"ผู้ดูแลระบบปล่อยอุปกรณ์ให้คุณใช้งานส่วนตัว"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"อุปกรณ์มีการจัดการ"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"องค์กรของคุณจัดการอุปกรณ์นี้และอาจตรวจสอบการจราจรของข้อมูลในเครือข่าย แตะเพื่อดูรายละเอียด"</string>
-    <string name="location_changed_notification_title" msgid="4119726617105166830">"ผู้ดูแลระบบได้เปลี่ยนการตั้งค่าตำแหน่ง"</string>
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"ผู้ดูแลระบบเปลี่ยนการตั้งค่าตำแหน่ง"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"แตะเพื่อดูการตั้งค่าตำแหน่ง"</string>
+    <string name="country_detector" msgid="7023275114706088854">"เครื่องมือหาตำแหน่งประเทศ"</string>
+    <string name="location_service" msgid="2439187616018455546">"บริการตำแหน่ง"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"บริการแจ้งเตือนเกี่ยวกับเซ็นเซอร์"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight Service"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"ระบบจะลบข้อมูลในอุปกรณ์ของคุณ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ใช้แอปผู้ดูแลระบบนี้ไม่ได้ ขณะนี้ระบบจะลบข้อมูลในอุปกรณ์ของคุณ\n\nโปรดติดต่อผู้ดูแลระบบขององค์กรหากมีคำถาม"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ปิดใช้การพิมพ์แล้ว"</string>
@@ -245,6 +249,10 @@
       <item quantity="other">จะจับภาพหน้าจอสำหรับรายงานข้อบกพร่องใน <xliff:g id="NUMBER_1">%d</xliff:g> วินาที</item>
       <item quantity="one">จะจับภาพหน้าจอสำหรับรายงานข้อบกพร่องใน <xliff:g id="NUMBER_0">%d</xliff:g> วินาที</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"โหมดปิดเสียง"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ปิดเสียงไว้"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"เปิดเสียงแล้ว"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"ลองอีกครั้ง"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"ไม่มีลายนิ้วมือที่ลงทะเบียน"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"อุปกรณ์นี้ไม่มีเซ็นเซอร์ลายนิ้วมือ"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"ปิดใช้เซ็นเซอร์ชั่วคราวแล้ว"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"นิ้ว <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"ยืนยันใบหน้าไม่ได้ ลองอีกครั้ง"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"คุณยังไม่ได้ตั้งค่า Face Unlock"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"อุปกรณ์นี้ไม่รองรับ Face Unlock"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"ปิดใช้เซ็นเซอร์ชั่วคราวแล้ว"</string>
     <string name="face_name_template" msgid="3877037340223318119">"ใบหน้า <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"เชื่อมต่อการแก้ไขข้อบกพร่อง USB แล้ว"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"แตะเพื่อปิดการแก้ไขข้อบกพร่อง USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"เลือกเพื่อปิดใช้งานการแก้ไขข้อบกพร่อง USB"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"เชื่อมต่อการแก้ไขข้อบกพร่องผ่าน Wi-Fi"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"แตะเพื่อปิดการแก้ไขข้อบกพร่องผ่าน Wi-Fi"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"เลือกเพื่อปิดใช้การแก้ไขข้อบกพร่องผ่าน Wi-Fi"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"โหมดโปรแกรมทดสอบอัตโนมัติเปิดใช้อยู่"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"รีเซ็ตเป็นค่าเริ่มต้นเพื่อปิดใช้โหมดโปรแกรมทดสอบอัตโนมัติ"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"เปิดใช้คอนโซลการเรียงอันดับแล้ว"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"บริการที่ทำงานอยู่เบื้องหน้าซึ่งเริ่มขึ้นในเบื้องหลังจาก <xliff:g id="PACKAGENAME">%1$s</xliff:g> จะไม่มีสิทธิ์ขณะใช้งานใน R บิลด์ต่อๆ ไป โปรดดู go/r-bg-fgs-restriction และส่งรายงานข้อบกพร่อง"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"นี่เป็นการเพิ่มระดับเสียงเกินระดับที่แนะนำ\n\nการฟังเสียงดังเป็นเวลานานอาจทำให้การได้ยินของคุณบกพร่องได้"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ใช้ทางลัดการช่วยเหลือพิเศษไหม"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"เมื่อทางลัดเปิดอยู่ การกดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มนาน 3 วินาทีจะเริ่มฟีเจอร์การช่วยเหลือพิเศษ"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"แก้ไขทางลัด"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ยกเลิก"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ปิดทางลัด"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ไม่จัดอยู่ในหมวดหมู่ใดๆ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"คุณตั้งค่าความสำคัญของการแจ้งเตือนเหล่านี้"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ข้อความนี้สำคัญเนื่องจากบุคคลที่เกี่ยวข้อง"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"อนุญาตให้ <xliff:g id="APP">%1$s</xliff:g> สร้างผู้ใช้ใหม่ด้วย <xliff:g id="ACCOUNT">%2$s</xliff:g> ไหม (มีผู้ใช้ที่มีบัญชีนี้อยู่แล้ว)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"อนุญาตให้ <xliff:g id="APP">%1$s</xliff:g> สร้างผู้ใช้ใหม่ด้วย <xliff:g id="ACCOUNT">%2$s</xliff:g> ไหม"</string>
     <string name="language_selection_title" msgid="52674936078683285">"เพิ่มภาษา"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"ใส่ <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ในที่เก็บข้อมูลที่ถูกจำกัดแล้ว"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ส่วนตัว"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"งาน"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"แชร์ด้วยแอปงานไม่ได้"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"แชร์ด้วยแอปส่วนตัวไม่ได้"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"ผู้ดูแลระบบไอทีบล็อกการแชร์ระหว่างแอปส่วนตัวและแอปงาน"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"เปิดแอปงาน"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"เปิดแอปงานเพื่อเข้าถึงแอปงานและรายชื่อติดต่อ"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ไม่มีแอป"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"เราไม่พบแอปใดเลย"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"เปิดโปรไฟล์งาน"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"บันทึกหรือเปิดเสียงในสายโทรศัพท์"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"อนุญาตให้แอปนี้ (เมื่อกำหนดให้เป็นแอปโทรออกเริ่มต้น) บันทึกหรือเปิดเสียงในสายโทรศัพท์ได้"</string>
 </resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 53818ed..d65c214 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Pinamamahalaan ng iyong organisasyon ang device na ito, at maaari nitong subaybayan ang trapiko sa network. I-tap para sa mga detalye."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Binago ang mga setting ng lokasyon ng iyong admin"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"I-tap para makita ang iyong mga setting ng lokasyon."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Detector ng Bansa"</string>
+    <string name="location_service" msgid="2439187616018455546">"Serbisyo ng Lokasyon"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Serbisyo ng Notification ng Sensor"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Serbisyo ng Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Buburahin ang iyong device"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Hindi magamit ang admin app. Mabubura na ang iyong device.\n\nKung mayroon kang mga tanong, makipag-ugnayan sa admin ng iyong organisasyon."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Na-disable ng <xliff:g id="OWNER_APP">%s</xliff:g> ang pag-print."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Kukuha ng screenshot para sa ulat ng bug sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> segundo.</item>
       <item quantity="other">Kukuha ng screenshot para sa ulat ng bug sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> na segundo.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Silent mode"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Naka-OFF ang tunog"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Naka-ON ang sound"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Subukang muli."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Walang naka-enroll na fingerprint."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Walang sensor ng fingerprint ang device na ito."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Pansamantalang na-disable ang sensor."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Daliri <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Hindi ma-verify ang mukha. Subukang muli."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Hindi mo pa nase-set up ang face unlock."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Hindi sinusuportahan ang face unlock sa device na ito."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Pansamantalang na-disable ang sensor."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Mukha <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Nakakonekta ang pag-debug ng USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"I-tap para i-off ang pag-debug ng USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Piliin upang i-disable ang debugging ng USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Nakakonekta ang wireless na pag-debug"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"I-tap para i-off ang wireless na pag-debug"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Piliin para i-disable ang wireless na pag-debug."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Naka-enable ang Test Harness Mode"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Mag-factory reset para i-disable ang Test Harness Mode."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Naka-enable ang serial console"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Ang sinimulan sa background na serbisyo sa foreground mula sa <xliff:g id="PACKAGENAME">%1$s</xliff:g> ay hindi magkakaroon ng pahintulot habang ginagamit sa mga R build sa hinaharap. Pakipuntahan ang go/r-bg-fgs-restriction at maghain ng bugreport."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Lakasan ang volume nang lagpas sa inirerekomendang antas?\n\nMaaaring mapinsala ng pakikinig sa malakas na volume sa loob ng mahahabang panahon ang iyong pandinig."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gagamitin ang Shortcut sa Pagiging Accessible?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kapag naka-on ang shortcut, magsisimula ang isang feature ng pagiging naa-access kapag pinindot ang parehong button ng volume."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"I-edit ang mga shortcut"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Kanselahin"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"I-off ang Shortcut"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Di-nakategorya"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ikaw ang magtatakda sa kahalagahan ng mga notification na ito."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Mahalaga ito dahil sa mga taong kasangkot."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Payagan ang <xliff:g id="APP">%1$s</xliff:g> na gumawa ng bagong User sa <xliff:g id="ACCOUNT">%2$s</xliff:g> (mayroon nang User sa account na ito) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Payagan ang <xliff:g id="APP">%1$s</xliff:g> na gumawa ng bagong User sa <xliff:g id="ACCOUNT">%2$s</xliff:g> ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Magdagdag ng wika"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Inilagay ang <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> sa PINAGHIHIGPITANG bucket"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabaho"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Hindi puwedeng magbahagi sa mga app para sa trabaho"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Hindi puwedeng magbahagi sa mga personal na app"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Na-block ng iyong IT admin ang pagbabahagi sa pagitan ng mga personal na app at app para sa trabaho"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"I-on ang mga app para sa trabaho"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"I-on ang mga app para sa trabaho para ma-access ang mga app at contact para sa trabaho"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Walang available na app"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Wala kaming makitang anumang app"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"I-on ang pantrabahong profile"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Mag-record o mag-play ng audio sa mga tawag sa telephony"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Papayagan ang app na ito na mag-record o mag-play ng audio sa mga tawag sa telephony kapag naitalaga bilang default na dialer application."</string>
 </resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 2e3bf3a..718df3d 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Kuruluşunuz bu cihazı yönetmekte olup ağ trafiğini izleyebilir. Ayrıntılar için dokunun."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Konum ayarları, yöneticiniz tarafından değiştirildi"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Konum ayarlarınızı görmek için dokunun."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Ülke Algılayıcı"</string>
+    <string name="location_service" msgid="2439187616018455546">"Konum Hizmeti"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensör Bildirim Hizmeti"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Alacakaranlık Hizmeti"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Cihazınız silinecek"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Yönetim uygulaması kullanılamıyor. Cihazınız şimdi silinecek.\n\nSorularınız varsa kuruluşunuzun yöneticisine başvurun."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Yazdırma işlemi <xliff:g id="OWNER_APP">%s</xliff:g> tarafından devre dışı bırakıldı."</string>
@@ -245,6 +249,10 @@
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> saniye içinde hata raporu ekran görüntüsü alınıyor.</item>
       <item quantity="one">Hata raporu ekran görüntüsü <xliff:g id="NUMBER_0">%d</xliff:g> saniye içinde alınacak.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Sessiz mod"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Ses KAPALI"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Ses AÇIK"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Tekrar deneyin."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Parmak izi kaydedilmedi."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Bu cihazda parmak izi sensörü yok."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Sensör geçici olarak devre dışı bırakıldı."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"<xliff:g id="FINGERID">%d</xliff:g>. parmak"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Yüz doğrulanamıyor. Tekrar deneyin."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Yüz tanıma kilidi ayarlamadınız."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Bu cihazda yüz tanıma kilidi desteklenmiyor"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Sensör geçici olarak devre dışı bırakıldı."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Yüz <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB hata ayıklaması bağlandı"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB hata ayıklama işlevini kapatmak için dokunun"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB hata ayıklamasını devre dışı bırakmak için seçin."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Kablosuz hata ayıklama bağlı"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Kablosuz hata ayıklamayı kapatmak için dokunun"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Kablosuz hata ayıklamayı devre dışı bırakmak için seçin."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Test Bandı Modu etkin"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Test Bandı Modu\'nu devre dışı bırakmak için cihazı fabrika ayarlarına sıfırlayın."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Seri konsol etkinleştirildi"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> paketinden ön plan hizmetini başlatan arka plan, sonraki R derlemelerinde kullanım sırasında iznine sahip olmayacak. Lütfen go/r-bg-fgs-restriction sayfasına bakıp hata raporu girin."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ses seviyesi önerilen düzeyin üzerine yükseltilsin mi?\n\nUzun süre yüksek ses seviyesinde dinlemek işitme duyunuza zarar verebilir."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Erişilebilirlik Kısayolu Kullanılsın mı?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kısayol açıkken ses düğmelerinin ikisini birden 3 saniyeliğine basılı tutmanız bir erişilebilirlik özelliğini başlatır."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Kısayolları düzenle"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"İptal"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Kısayolu Kapat"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Kategorize edilmemiş"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Bu bildirimlerin önem derecesini ayarladınız."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Bu, dahil olan kişiler nedeniyle önemlidir."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> uygulamasının <xliff:g id="ACCOUNT">%2$s</xliff:g> hesabına sahip yeni bir Kullanıcı eklemesine izin verilsin mi (bu hesaba sahip bir kullanıcı zaten var)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> uygulamasının <xliff:g id="ACCOUNT">%2$s</xliff:g> hesabına sahip yeni bir Kullanıcı eklemesine izin verilsin mi?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Dil ekleyin"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> KISITLANMIŞ gruba yerleştirildi"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Kişisel"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"İş"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"İş uygulamalarıyla paylaşılamıyor"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kişisel uygulamalarla paylaşılamıyor"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"BT yöneticiniz kişisel uygulamalar ile iş uygulamaları arasında paylaşımı engelledi"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"İş uygulamalarını açın"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"İş uygulamalarına ve kişilere erişmek için iş uygulamalarını açın"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Kullanılabilir uygulama yok"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Herhangi bir uygulama bulamadık"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"İş profilini aç"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefon aramalarında sesi kaydet veya çal"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Varsayılan çevirici uygulaması olarak atandığında bu uygulamanın telefon aramalarında sesi kaydetmesine veya çalmasına izin verir."</string>
 </resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 37bb5cd..e36c900 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -197,6 +197,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Адміністратор вашої організації контролює цей пристрій і відстежує мережевий трафік. Торкніться, щоб дізнатися більше."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Доступ до геоданих змінено адміністратором"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Натисніть, щоб переглянути доступ до геоданих."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Визначення країни"</string>
+    <string name="location_service" msgid="2439187616018455546">"Служби локації"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Сервіс \"Сповіщення датчика\""</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Сервіс \"Сутінки\""</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"З вашого пристрою буде стерто всі дані"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Не можна запускати додаток для адміністраторів. Буде відновлено заводські налаштування пристрою.\n\nЯкщо у вас є запитання, зв’яжіться з адміністратором своєї організації."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Додаток <xliff:g id="OWNER_APP">%s</xliff:g> вимкнув друк."</string>
@@ -251,6 +255,10 @@
       <item quantity="many">Знімок екрана для звіту про помилки буде зроблено через <xliff:g id="NUMBER_1">%d</xliff:g> секунд.</item>
       <item quantity="other">Знімок екрана для звіту про помилки буде зроблено через <xliff:g id="NUMBER_1">%d</xliff:g> секунди.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Беззвуч. режим"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Звук ВИМК."</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Звук УВІМК."</string>
@@ -552,8 +560,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Повторіть спробу."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Відбитки пальців не зареєстровано."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"На цьому пристрої немає сканера відбитків пальців."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Датчик тимчасово вимкнено."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Відбиток пальця <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -597,8 +604,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Не вдається перевірити обличчя. Повторіть спробу."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Ви не налаштували Фейсконтроль"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"На цьому пристрої не підтримується Фейсконтроль."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Датчик тимчасово вимкнено."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Обличчя <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1358,6 +1364,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Налагодження USB підключено"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Торкніться, щоб вимкнути налагоджувач USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Виберіть, щоб вимкнути налагодження за USB"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Бездротове налагодження підключено"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Натисніть, щоб вимкнути бездротове налагодження"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Виберіть, щоб вимкнути бездротове налагодження."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Увімкнено режим автоматизованого тестування"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Щоб вимкнути режим автоматизованого тестування, відновіть заводські налаштування."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Послідовну консоль увімкнено"</string>
@@ -1665,8 +1674,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Активний сервіс пакета <xliff:g id="PACKAGENAME">%1$s</xliff:g>, запущений у фоновому режимі, не матиме дозволу \"Коли додаток використовується\" в майбутніх складаннях R. Перегляньте go/r-bg-fgs-restriction і надішліть звіт про помилки."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Збільшити гучність понад рекомендований рівень?\n\nЯкщо слухати надто гучну музику тривалий час, можна пошкодити слух."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Використовувати швидке ввімкнення?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Якщо цей засіб увімкнено, ви можете активувати спеціальні можливості, утримуючи обидві кнопки гучності протягом трьох секунд."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Редагувати засоби"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Скасувати"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Вимкнути ярлик"</string>
@@ -1909,6 +1917,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Без категорії"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ви вказуєте пріоритет цих сповіщень."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Важливе з огляду на учасників."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Дозволити додатку <xliff:g id="APP">%1$s</xliff:g> створити нового користувача з обліковим записом <xliff:g id="ACCOUNT">%2$s</xliff:g> (користувач із таким обліковим записом уже існує)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Дозволити додатку <xliff:g id="APP">%1$s</xliff:g> створити нового користувача з обліковим записом <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Додати мову"</string>
@@ -2086,20 +2096,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" додано в сегмент з обмеженнями"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Особисте"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Робоче"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не можна надсилати дані робочим додаткам"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не можна надсилати дані особистим додаткам"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Ваш ІТ-адміністратор заблокував обмін даними між особистими й робочими додатками"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Увімкніть робочі додатки"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Щоб отримати доступ до робочих додатків і контактів, увімкніть ці додатки"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Немає доступних додатків"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Немає додатків"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Увімкнути робочий профіль"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Записувати й відтворювати звук під час викликів"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дозволяє цьому додатку записувати й відтворювати звук під час викликів, коли його вибрано додатком для дзвінків за умовчанням."</string>
 </resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index f2157bd..10eb4ce 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -191,8 +191,12 @@
     <string name="device_ownership_relinquished" msgid="4080886992183195724">"منتظم نے ذاتی استعمال کے لیے آلہ کو دستبردار کیا ہے"</string>
     <string name="network_logging_notification_title" msgid="554983187553845004">"آلہ زیر انتظام ہے"</string>
     <string name="network_logging_notification_text" msgid="1327373071132562512">"آپ کی تنظیم اس آلے کا نظم کرتی ہے اور وہ نیٹ ورک ٹریفک کی نگرانی کر سکتی ہے۔ تفاصیل کیلئے تھپتھپائیں۔"</string>
-    <string name="location_changed_notification_title" msgid="4119726617105166830">"آپ کے منتظم نے مقام کی ترتیبات تبدیل کر دی"</string>
+    <string name="location_changed_notification_title" msgid="4119726617105166830">"آپ کے منتظم نے مقام کی ترتیبات تبدیل کر دیں"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"اپنے مقام کی ترتیبات دیکھنے کے لیے تھپتھپائیں۔"</string>
+    <string name="country_detector" msgid="7023275114706088854">"ملک کا ڈیٹیکٹر"</string>
+    <string name="location_service" msgid="2439187616018455546">"مقام کی سروس"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"سینسر نوٹیفکیشن سروس"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"شفقی سروس"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"آپ کا آلہ صاف کر دیا جائے گا"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"منتظم کی ایپ استعمال نہیں کی جا سکتی۔ آپ کا آلہ اب مٹا دیا جائے گا۔\n\nاگر آپ کے سوالات ہیں تو اپنی تنظیم کے منتظم سے رابطہ کریں۔"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> نے پرنٹنگ کو غیر فعال کر دیا ہے۔"</string>
@@ -245,6 +249,10 @@
       <item quantity="other">بگ رپورٹ کیلئے <xliff:g id="NUMBER_1">%d</xliff:g> سیکنڈز میں اسکرین شاٹ لیا جائے گا۔</item>
       <item quantity="one">بگ رپورٹ کیلئے <xliff:g id="NUMBER_0">%d</xliff:g> سیکنڈ میں اسکرین شاٹ لیا جائے گا۔</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"خاموش وضع"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"آواز آف ہے"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"آواز آن ہے"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"دوبارہ کوشش کریں۔"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"کوئی فنگر پرنٹ مندرج شدہ نہیں ہے۔"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"اس آلہ میں فنگر پرنٹ سینسر نہیں ہے۔"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"سینسر عارضی طور غیر فعال ہے۔"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"انگلی <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"چہرے کی توثیق نہیں کی جا سکی۔ پھر آزمائيں۔"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"آپ نے بذریعہ چہرہ غیر مقفل کرنے کو سیٹ نہیں کیا ہے۔"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"اس آلہ پر چہرے کے ذریعے غیر مقفل کرنا تعاون یافتہ نہیں ہے۔"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"سینسر عارضی طور غیر فعال ہے۔"</string>
     <string name="face_name_template" msgid="3877037340223318119">"چہرہ <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"‏USB ڈیبگ کرنا مربوط ہو گیا"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"‏USB ڈیبگنگ آف کرنے کے لیے تھپتھپائیں"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"‏USB ڈیبگ کرنے کو غیر فعال کرنے کیلئے منتخب کریں۔"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"وائرلیس ڈیبگنگ منسلک ہے"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"وائرلیس ڈیبگنگ آف کرنے کے لیے تھپتھپائیں"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"وائرلیس ڈیبگنگ کرنے کو غیر فعال کرنے کے ليے منتخب کریں۔"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"ٹیسٹ ہارنیس موڈ فعال ہے"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"ٹیسٹ ہارنیس موڈ غیر فعال کرنے کے لیے فیکٹری ری سیٹ کریں۔"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"شمار کونسول فعال ہے"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏پس منظر <xliff:g id="PACKAGENAME">%1$s</xliff:g> سے شروع کی گئی پیش منظر کی سروس کو مستقبل کے R بلڈز میں استعمال کے دوران اجازت نہیں ہوگی۔ براہ کرم go/r-bg-fgs-restriction دیکھیں اور بگ رپورٹ دائر کریں۔"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"والیوم کو تجویز کردہ سطح سے زیادہ کریں؟\n\nزیادہ وقت تک اونچی آواز میں سننے سے آپ کی سماعت کو نقصان پہنچ سکتا ہے۔"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ایکسیسبیلٹی شارٹ کٹ استعمال کریں؟"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"شارٹ کٹ آن ہونے پر، 3 سیکنڈ تک دونوں والیوم بٹنز کو دبانے سے ایک ایکسیسبیلٹی خصوصیت شروع ہو جائے گی۔"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"شارٹ کٹس میں ترمیم کریں"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"منسوخ کریں"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"شارٹ کٹ آف کریں"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"غیر زمرہ بند"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ان اطلاعات کی اہمیت آپ مقرر کرتے ہیں۔"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"اس میں موجود لوگوں کی وجہ سے یہ اہم ہے۔"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> کو <xliff:g id="ACCOUNT">%2$s</xliff:g> کے ساتھ ایک نیا صارف بنانے کی اجازت دیں (اس اکاؤنٹ کے ساتھ ایک صارف پہلے سے موجود ہے) ؟"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> کے ساتھ نئے صارف کو تخلیق کرنے کے لیے <xliff:g id="APP">%1$s</xliff:g> کو اجازت دیں ؟"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ایک زبان شامل کریں"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> کو پابند کردہ بکٹ میں رکھ دیا گیا ہے"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ذاتی"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"دفتر"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ورک ایپس کے ساتھ اشتراک نہیں کر سکتے"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ذاتی ایپس کے ساتھ اشتراک نہیں کر سکتے"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"‏آپ کے IT منتظم نے ذاتی اور ورک ایپس کے درمیان اشتراک کرنے کو مسدود کر دیا"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"ورک ایپس آن کریں"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"ورک ایپس اور رابطوں تک رسائی حاصل کرنے کے لیے ورک ایپس آن کریں"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"کوئی ایپ دستیاب نہیں"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"ہمیں کوئی ایپ نہیں مل سکی"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"ورک کا سوئچ آن کریں"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ٹیلیفون کالز میں آڈیو ریکارڈ کریں یا چلائیں"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"اس ایپ کو، جب ڈیفالٹ ڈائلر ایپلیکیشن کے بطور تفویض کیا جاتا ہے، تو ٹیلیفون کالز میں آڈیو ریکارڈ کرنے یا چلانے کی اجازت دیتا ہے۔"</string>
 </resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index ee5a7d2..526d88b 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Tashkilotingiz bu qurilmani boshqaradi va tarmoq trafigini nazorat qilishi mumkin. Tafsilotlar uchun bosing."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Joylashuv sozlamalari administratoringiz tomonidan oʻzgartirildi"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Joylashuv sozlamalarini koʻrish uchun bosing."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Mamlakatni aniqlash"</string>
+    <string name="location_service" msgid="2439187616018455546">"Joylashuvni aniqlash xizmati"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Sensorli bildirishnoma xizmati"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight xizmati"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Qurilmangizdagi ma’lumotlar o‘chirib tashlanadi"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administrator ilovasini ishlatib bo‘lmaydi. Qurilmada barcha ma’lumotlar o‘chirib tashlanadi.\n\nSavollaringiz bo‘lsa, administrator bilan bog‘laning."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Chop etish funksiyasi <xliff:g id="OWNER_APP">%s</xliff:g> tomonidan faolsizlantirilgan."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Xatoliklar hisoboti uchun skrinshot <xliff:g id="NUMBER_1">%d</xliff:g> soniyadan so‘ng olinadi.</item>
       <item quantity="one">Xatoliklar hisoboti uchun skrinshot <xliff:g id="NUMBER_0">%d</xliff:g> soniyadan so‘ng olinadi.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Ovozsiz rejim"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Tovush o‘chirilgan"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"YONIQ"</string>
@@ -431,7 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"Bu imtiyozli | tizim ilovasi istalgan vaqtda tizim kamerasi orqali surat va videolar olishi mumkin. Ilovada android.permission.CAMERA ruxsati ham yoqilgan boʻlishi talab qilinadi"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"tebranishni boshqarish"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Ilova tebranishli signallarni boshqarishi mumkin."</string>
-    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ilovaga tebranish holatiga kirish ruxsatini beradi."</string>
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ilovaga tebranish holatini aniqlash ruxsatini beradi."</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"telefon raqamlariga tog‘ridan to‘g‘ri qo‘ng‘iroq qilish"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"Ilovaga sizning yordamingizsiz telefonga qo‘ng‘iroq qilish imkonini beradi. Bu kutilmagan qo‘ng‘iroqlarni amalga oshirishi yoki ortiqcha to‘lovlarni yuzaga keltirishi mumkin. Shunga e’tibor qilinki, u favqulodda telefon raqamlariga qo‘ng‘iroqlar qilishga ruxsat bermaydi. Zararli ilovalar sizdan so‘ramasdan qo‘ng‘iroqlarni amalga oshirib, pulingizni sarflashi mumkin."</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS qo‘ng‘iroq xizmatiga kirish"</string>
@@ -1316,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"USB orqali nosozliklarni aniqlash"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"USB orqali nosozliklarni aniqlashni faolsizlantirish uchun bosing"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB orqali nosozliklarni tuzatishni o‘chirib qo‘yish uchun bosing."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Simsiz tarmoq nosozliklari faqat ulangan tarmoqda aniqlanadi"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Simsiz tarmoqdagi nosozliklar aniqlanishini faolsizlantirish uchun bosing"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Simsiz tarmoqdagi nosozliklar aniqlanishini faolsizlantirish uchun bosing."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Xavfsizlik sinovi rejimi yoqildi"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Xavfsizlik sinovi rejimini faolsizlantirish uchun zavod sozlamalariga qaytaring."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Davomiy port terminali yoqildi"</string>
@@ -1619,7 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Fonda faol <xliff:g id="PACKAGENAME">%1$s</xliff:g> xizmatini ishga tushirish uchun kelgusi R nashrlarida ishlatilayotganda ruxsat berish imkoniyati boʻlmaydi. go/r-bg-fgs-restriction sahifasiga kiring va xatolik hisobotini yuboring."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Tovush balandligi tavsiya etilgan darajadan ham yuqori qilinsinmi?\n\nUzoq vaqt davomida baland ovozda tinglash eshitish qobiliyatingizga salbiy ta’sir ko‘rsatishi mumkin."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Tezkor ishga tushirishdan foydalanilsinmi?"</string>
-    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Maxsus imkoniyatlar funksiyasidan foydalanish uchun u yoniqligida ikkala ovoz balandligini boshqarish tugmasini 3 soniya bosib turing."</string>
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Maxsus imkoniyatlar funksiyasidan foydalanish uchun u yoniqligida ikkala tovush tugmasini 3 soniya bosib turing."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Tezkor tugmalarni tahrirlash"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Bekor qilish"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Tezkor ishga tushirishni o‘chirib qo‘yish"</string>
@@ -1842,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Turkumlanmagan"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Siz ushbu bildirishnomalarning muhimligini belgilagansiz."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Bu odamlar siz uchun muhim."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> ilovasiga <xliff:g id="ACCOUNT">%2$s</xliff:g> hisobi bilan yangi foydalanuvchi yaratishiga ruxsat berilsinmi (bunday hisobdagi foydalanuvchi allaqachon mavjud) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g> ilovasiga <xliff:g id="ACCOUNT">%2$s</xliff:g> hisobi bilan yangi foydalanuvchi yaratishiga ruxsat berilsinmi ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Til qoʻshish"</string>
@@ -2015,12 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> cheklangan turkumga joylandi"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Shaxsiy"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Ish"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ishchi ilovalarga ulashilmaydi"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ishga oid ilovalarga ulashilmaydi"</string>
     <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Shaxsiy ilovalarga ulashilmaydi"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Shaxsiy va ishchi ilovalararo axborot ulashish AT administratori tomonidan taqiqlangan"</string>
-    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ishchi ilovalarni yoqish"</string>
-    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ishchi ilova va kontaktlarni ochish uchun ishchi ilovalarni yoqing"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Shaxsiy va ishga oid ilovalararo axborot ulashish AT administratori tomonidan taqiqlangan"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Ishga oid ilovalarni yoqish"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Ishga oid ilova va kontaktlarni ochish uchun ishga oid ilovalarni yoqing"</string>
     <string name="resolver_no_apps_available" msgid="7710339903040989654">"Mos ilova topilmadi"</string>
     <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Hech qanday ilova topilmadi"</string>
-    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ishchi rejimni yoqish"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Ish rejimini yoqish"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefondagi suhbatlarni yozib olish va ularni ijro qilish"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Bu ilova chaqiruvlar uchun asosiy ilova sifatida tayinlanganda u telefon chaqiruvlarida suhbatlarni yozib olish va shu audiolarni ijro etish imkonini beradi."</string>
 </resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 1a8a275..4f67627 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Tổ chức của bạn sẽ quản lý thiết bị này và có thể theo dõi lưu lượng truy cập mạng. Nhấn để biết chi tiết."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Quản trị viên của bạn đã thay đổi các tùy chọn cài đặt vị trí"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Nhấn để xem các tùy chọn cài đặt vị trí của bạn."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Trình phát hiện quốc gia"</string>
+    <string name="location_service" msgid="2439187616018455546">"Dịch vụ vị trí"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Dịch vụ Thông báo của cảm biến"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Dịch vụ Twilight"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Thiết bị của bạn sẽ bị xóa"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Không thể sử dụng ứng dụng quản trị. Thiết bị của bạn sẽ bị xóa ngay bây giờ.\n\nHãy liên hệ với quản trị viên của tổ chức nếu bạn có thắc mắc."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> đã tắt tính năng in."</string>
@@ -245,6 +249,10 @@
       <item quantity="other">Sẽ chụp ảnh màn hình để báo cáo lỗi sau <xliff:g id="NUMBER_1">%d</xliff:g> giây.</item>
       <item quantity="one">Sẽ chụp ảnh màn hình để báo cáo lỗi sau <xliff:g id="NUMBER_0">%d</xliff:g> giây.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Chế độ im lặng"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Âm thanh TẮT"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Âm thanh BẬT"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Thử lại."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Chưa đăng ký vân tay."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Thiết bị này không có cảm biến vân tay."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Đã tạm thời tắt cảm biến."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Ngón tay <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Không thể xác minh khuôn mặt. Hãy thử lại."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Bạn chưa thiết lập tính năng mở khóa bằng khuôn mặt."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"Thiết bị này không hỗ trợ tính năng mở khóa bằng khuôn mặt."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Đã tạm thời tắt cảm biến."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Khuôn mặt <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Đã kết nối chế độ gỡ lỗi qua USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Nhấn để tắt chế độ gỡ lỗi qua USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Chọn để tắt chế độ gỡ lỗi qua USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Đã kết nối tính năng gỡ lỗi không dây"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Nhấn để tắt tính năng gỡ lỗi không dây"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Chọn để tắt tính năng gỡ lỗi không dây."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Đã bật Chế độ khai thác kiểm thử"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Khôi phục cài đặt gốc để tắt Chế độ khai thác kiểm thử."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"Đã bật bảng điều khiển cổng nối tiếp"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Dịch vụ trên nền trước đã bắt đầu ở nền từ <xliff:g id="PACKAGENAME">%1$s</xliff:g> sẽ không có quyền khi đang sử dụng trong các bản dựng R trong tương lai. Vui lòng xem go/r-bg-fgs-restriction và gửi báo cáo lỗi."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Bạn tăng âm lượng lên quá mức khuyên dùng?\n\nViệc nghe ở mức âm lượng cao trong thời gian dài có thể gây tổn thương thính giác của bạn."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Sử dụng phím tắt Hỗ trợ tiếp cận?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Khi phím tắt này đang bật, thao tác nhấn cả hai nút âm lượng trong 3 giây sẽ mở tính năng hỗ trợ tiếp cận."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Chỉnh sửa phím tắt"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Hủy"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Tắt phím tắt"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Chưa được phân loại"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Bạn đặt tầm quan trọng của các thông báo này."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Thông báo này quan trọng vì những người có liên quan."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Cho phép <xliff:g id="APP">%1$s</xliff:g> tạo người dùng mới bằng <xliff:g id="ACCOUNT">%2$s</xliff:g> (đã tồn tại người dùng có tài khoản này)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Cho phép <xliff:g id="APP">%1$s</xliff:g> tạo người dùng mới bằng <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Thêm ngôn ngữ"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Đã đưa <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> vào bộ chứa BỊ HẠN CHẾ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Cá nhân"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Cơ quan"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Không thể chia sẻ với các ứng dụng công việc"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Không thể chia sẻ với các ứng dụng cá nhân"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Quản trị viên CNTT của bạn đã chặn hoạt động chia sẻ giữa các ứng dụng cá nhân và công việc"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Bật các ứng dụng công việc"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Bật ứng dụng công việc để truy cập vào phần những người liên hệ và ứng dụng công việc"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Không có ứng dụng nào"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Chúng tôi không tìm thấy bất kỳ ứng dụng nào"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Bật hồ sơ công việc"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Ghi âm hoặc phát âm thanh trong cuộc gọi điện thoại"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Cho phép ứng dụng này ghi âm hoặc phát âm thanh trong cuộc gọi điện thoại khi được chỉ định làm ứng dụng trình quay số mặc định."</string>
 </resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 2339a44..5ac1f0a 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"贵单位会管理该设备,且可能会监控网络流量。点按即可了解详情。"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"您的管理员已更改位置信息设置"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"点按即可查看您的位置信息设置。"</string>
+    <string name="country_detector" msgid="7023275114706088854">"国家/地区检测器"</string>
+    <string name="location_service" msgid="2439187616018455546">"位置信息服务"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"传感器通知服务"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight 服务"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"系统将清空您的设备"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"无法使用管理应用,系统现在将清空您的设备。\n\n如有疑问,请与您所在单位的管理员联系。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"“<xliff:g id="OWNER_APP">%s</xliff:g>”已停用打印功能。"</string>
@@ -245,6 +249,10 @@
       <item quantity="other">系统将在 <xliff:g id="NUMBER_1">%d</xliff:g> 秒后对错误报告进行截屏。</item>
       <item quantity="one">系统将在 <xliff:g id="NUMBER_0">%d</xliff:g> 秒后对错误报告进行截屏。</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"静音模式"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"声音已关闭"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"声音已开启"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"请重试。"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"未注册任何指纹。"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"此设备没有指纹传感器。"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"传感器已暂时停用。"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"手指 <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"无法验证人脸,请重试。"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"您尚未设置人脸解锁。"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"此设备不支持人脸解锁。"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"传感器已暂时停用。"</string>
     <string name="face_name_template" msgid="3877037340223318119">"面孔 <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"已连接到 USB 调试"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"点按即可关闭 USB 调试"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"选择即可停用 USB 调试功能。"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"已连接到无线调试"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"点按即可关闭无线调试功能"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"选择即可停用无线调试功能。"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"自动化测试框架模式已启用"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"恢复出厂设置以停用自动化测试框架模式。"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"已启用序列控制台"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"在未来的 R 版本中,在后台启动的 <xliff:g id="PACKAGENAME">%1$s</xliff:g> 中的前台服务将不具有仅在使用时授予的权限。请访问 go/r-bg-fgs-restriction 并提交错误报告。"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要将音量调高到建议的音量以上吗?\n\n长时间保持高音量可能会损伤听力。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用无障碍快捷方式吗?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"启用这项快捷方式后,同时按下两个音量按钮 3 秒钟即可启动无障碍功能。"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"修改快捷方式"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"取消"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"关闭快捷方式"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"未分类"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"这些通知的重要程度由您来设置。"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"这条通知涉及特定的人,因此被归为重要通知。"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"允许<xliff:g id="APP">%1$s</xliff:g>使用 <xliff:g id="ACCOUNT">%2$s</xliff:g>(目前已有用户使用此帐号)创建新用户吗?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"允许<xliff:g id="APP">%1$s</xliff:g>使用 <xliff:g id="ACCOUNT">%2$s</xliff:g> 创建新用户吗?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"添加语言"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已被放入受限存储分区"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"个人"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"工作"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"无法与工作应用共享数据"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"无法与个人应用共享数据"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"您的 IT 管理员已禁止在个人应用和工作应用之间共享数据"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"打开工作应用"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"打开工作应用以访问工作应用和联系人"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"没有可用的应用"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"系统找不到任何应用"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"打开工作资料"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"录制或播放电话通话音频"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"允许此应用在被指定为默认拨号器应用时录制或播放电话通话音频。"</string>
 </resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 94783a0..44de6bf 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"您的機構會管理此裝置,並可能會監控網絡流量。輕按即可瞭解詳情。"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"您的管理員變更了位置設定"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"輕按即可查看位置設定。"</string>
+    <string name="country_detector" msgid="7023275114706088854">"國家/地區偵測器"</string>
+    <string name="location_service" msgid="2439187616018455546">"定位服務"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"感應器通知服務"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"暮光服務"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"您的裝置將被清除"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"無法使用管理員應用程式。系統會現在清除您的裝置。\n\n如有任何疑問,請聯絡您的機構管理員。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」暫停了列印。"</string>
@@ -245,6 +249,10 @@
       <item quantity="other">系統將在 <xliff:g id="NUMBER_1">%d</xliff:g> 秒後擷取錯誤報告的螢幕畫面。</item>
       <item quantity="one">系統將在 <xliff:g id="NUMBER_0">%d</xliff:g> 秒後擷取錯誤報告的螢幕畫面。</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"靜音模式"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"關閉音效"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"音效已開啟"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"再試一次。"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"未註冊任何指紋"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"此裝置沒有指紋感應器。"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"感應器已暫時停用。"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"手指 <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"無法驗證臉孔。請再試一次。"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"您尚未設定「臉孔解鎖」。"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"此裝置不支援「臉孔解鎖」。"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"感應器已暫時停用。"</string>
     <string name="face_name_template" msgid="3877037340223318119">"臉孔 <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"已連接 USB 偵錯工具"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"輕按即可關閉 USB 偵錯功能"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"選取即可停用 USB 偵錯。"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"已連接無線偵錯"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"輕按即可關閉無線偵錯功能"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"選取即可停用無線偵錯功能。"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"已啟用測試工具模式"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"請將裝置回復原廠設定,以停用測試工具模式。"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"已啟用序列控制器"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"從「<xliff:g id="PACKAGENAME">%1$s</xliff:g>」啟動前景服務的背景將不會在未來的 R 版本中提供「僅在使用此應用程式時允許」權限。請參閱 go/r-bg-fgs-restriction,提交錯誤報告。"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要調高音量 (比建議的音量更大聲) 嗎?\n\n長時間聆聽高分貝音量可能會導致您的聽力受損。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用無障礙功能快速鍵嗎?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"啟用快速鍵後,同時按住音量按鈕 3 秒便可啟用無障礙功能。"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"編輯捷徑"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"取消"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"關閉快速鍵"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"未分類"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"您可以設定這些通知的重要性。"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"列為重要的原因:涉及的人。"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"要允許 <xliff:g id="APP">%1$s</xliff:g> 使用 <xliff:g id="ACCOUNT">%2$s</xliff:g> 建立新使用者 (此帳戶目前已有此使用者) 嗎?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"要允許 <xliff:g id="APP">%1$s</xliff:g> 使用 <xliff:g id="ACCOUNT">%2$s</xliff:g> 建立新使用者嗎?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"新增語言"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已納入受限制的儲存區"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"個人"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"公司"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"無法與工作應用程式分享"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"無法與個人應用程式分享"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"您的 IT 管理員已封鎖個人和工作應用程式之間的分享功能"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"開啟工作應用程式"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"開啟工作應用程式以存取工作應用程式和聯絡人"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"沒有可用的應用程式"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"系統找不到任何應用程式"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"開啟工作設定檔"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"在電話通話中錄音或播放音訊"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"如將此應用程式指定為預設撥號器應用程式,則允許應用程式在電話通話中錄音或播放音訊。"</string>
 </resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index f3da0d8..9e1b0d4 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"貴機構會管理這個裝置,且可能監控網路流量。輕觸即可瞭解詳情。"</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"你的管理員變更了位置資訊設定"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"輕觸即可查看位置資訊設定。"</string>
+    <string name="country_detector" msgid="7023275114706088854">"國家/地區偵測器"</string>
+    <string name="location_service" msgid="2439187616018455546">"定位服務"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"感應器通知服務"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Twilight 服務"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"你的裝置資料將遭到清除"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"無法使用管理應用程式,系統現在將清除你裝置中的資料。\n\n如有任何問題,請與貴機構的管理員聯絡。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」已停用列印功能。"</string>
@@ -245,6 +249,10 @@
       <item quantity="other">系統將在 <xliff:g id="NUMBER_1">%d</xliff:g> 秒後擷取錯誤報告的螢幕畫面。</item>
       <item quantity="one">系統將在 <xliff:g id="NUMBER_0">%d</xliff:g> 秒後擷取錯誤報告的螢幕畫面。</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"靜音模式"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"音效已關閉"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"音效已開啟"</string>
@@ -431,7 +439,7 @@
     <string name="permdesc_systemCamera" msgid="544730545441964482">"取得存取權後,這個系統應用程式就隨時可以使用系統攝影機拍照及錄影。此外,你也必須將 android.permission.CAMERA 權限授予這個應用程式"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"控制震動"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"允許應用程式控制震動。"</string>
-    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允許應用程式存取震動狀態。"</string>
+    <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允許應用程式存取震動功能狀態。"</string>
     <string name="permlab_callPhone" msgid="1798582257194643320">"直接撥打電話號碼"</string>
     <string name="permdesc_callPhone" msgid="5439809516131609109">"允許應用程式自行撥打電話,但可能產生非預期的費用或撥打非預期的電話。注意:這項權限不允許應用程式撥打緊急電話。惡意應用程式可能利用此功能擅自撥打電話,增加你不必要的額外支出。"</string>
     <string name="permlab_accessImsCallService" msgid="442192920714863782">"存取 IMS 撥號服務"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"請再試一次。"</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"未登錄任何指紋。"</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"這個裝置沒有指紋感應器。"</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"感應器已暫時停用。"</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"手指 <xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"無法驗證臉孔,請再試一次。"</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"你尚未設定人臉解鎖功能。"</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"這個裝置不支援人臉解鎖功能。"</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"感應器已暫時停用。"</string>
     <string name="face_name_template" msgid="3877037340223318119">"臉孔 <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"已連接 USB 偵錯工具"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"輕觸即可關閉 USB 偵錯功能"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"選取這個選項以停用 USB 偵錯功能。"</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"無線偵錯已連線"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"輕觸即可關閉無線偵錯功能"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"選取即可停用無線偵錯功能。"</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"測試控管工具模式已啟用"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"恢復原廠設定以停用測試控管工具模式。"</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"已啟用序列主控台"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"來自「<xliff:g id="PACKAGENAME">%1$s</xliff:g>」的背景啟動前景服務不會具備未來 R 版本的使用狀態權限。請前往 go/r-bg-fgs-restriction 並提交錯誤報告。"</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要調高音量,比建議的音量更大聲嗎?\n\n長時間聆聽高分貝音量可能會使你的聽力受損。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用無障礙捷徑嗎?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"啟用捷徑功能,只要同時按下兩個音量按鈕 3 秒,就能啟動無障礙功能。"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"編輯捷徑"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"取消"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"停用捷徑"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"未分類"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"這些通知的重要性由你決定。"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"這則通知涉及特定人士,因此被歸為重要通知。"</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"要允許「<xliff:g id="APP">%1$s</xliff:g>」替 <xliff:g id="ACCOUNT">%2$s</xliff:g> (這個帳戶目前已有使用者) 建立新使用者嗎?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"要允許「<xliff:g id="APP">%1$s</xliff:g>」替 <xliff:g id="ACCOUNT">%2$s</xliff:g> 建立新使用者嗎?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"新增語言"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"已將「<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>」移入受限制的值區"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"個人"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"工作"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"無法與工作應用程式分享"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"無法與個人應用程式分享"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"你的 IT 管理員已封鎖個人和工作應用程式之間的分享功能"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"開啟工作應用程式"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"開啟工作應用程式即可存取工作應用程式和聯絡人"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"沒有可用的應用程式"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"系統找不到任何應用程式"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"啟用工作資料夾"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"在通話期間錄製或播放音訊"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"將這個應用程式指派為預設撥號應用程式時,允許應用程式在通話期間錄製或播放音訊。"</string>
 </resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index d4a6c26..f29ac2f 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -193,6 +193,10 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"Inhlangano yakho iphethe le divayisi futhi kungenzeka ingaqaphi ithrafikhi yenethiwekhi. Thephela imininingwane."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"Izilungiselelo zendawo zishintshwe umphathi wakho"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"Thepha ukuze ubone izilungiselelo zakho zendawo."</string>
+    <string name="country_detector" msgid="7023275114706088854">"Isitholi Sezwe"</string>
+    <string name="location_service" msgid="2439187616018455546">"Isevisi Yendawo"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"Isevisi Yesaziso Senzwa"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"Isevisi Yangovivi"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"Idivayisi yakho izosulwa"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Uhlelo lokusebenza lomlawuli alikwazi ukusetshenziswa. Idivayisi yakho manje izosuswa.\n\nUma unemibuzo, xhumana nomlawuli wezinhlangano zakho."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Ukuphrinta kukhutshazwe nge-<xliff:g id="OWNER_APP">%s</xliff:g>."</string>
@@ -245,6 +249,10 @@
       <item quantity="one">Ithathela umbiko wesiphazamisi isithombe-skrini kumasekhondi angu-<xliff:g id="NUMBER_1">%d</xliff:g>.</item>
       <item quantity="other">Ithathela umbiko wesiphazamisi isithombe-skrini kumasekhondi angu-<xliff:g id="NUMBER_1">%d</xliff:g>.</item>
     </plurals>
+    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
+    <skip />
+    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
+    <skip />
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Imodi ethulile"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Umsindo UVALIWE"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Umsindo UVULIWE"</string>
@@ -546,8 +554,7 @@
     <string name="fingerprint_error_unable_to_process" msgid="1148553603490048742">"Zama futhi."</string>
     <string name="fingerprint_error_no_fingerprints" msgid="8671811719699072411">"Azikho izigxivizo zeminwe ezibhalisiwe."</string>
     <string name="fingerprint_error_hw_not_present" msgid="578914350967423382">"Le divayisi ayinayo inzwa yezigxivizo zeminwe."</string>
-    <!-- no translation found for fingerprint_error_security_update_required (7750187320640856433) -->
-    <skip />
+    <string name="fingerprint_error_security_update_required" msgid="7750187320640856433">"Inzwa ikhutshazwe okwesikhashana."</string>
     <string name="fingerprint_name_template" msgid="8941662088160289778">"Umunwe ongu-<xliff:g id="FINGERID">%d</xliff:g>"</string>
   <string-array name="fingerprint_error_vendor">
   </string-array>
@@ -591,8 +598,7 @@
     <string name="face_error_unable_to_process" msgid="5723292697366130070">"Ayikwazi ukuqinisekisa ubuso. Zama futhi."</string>
     <string name="face_error_not_enrolled" msgid="7369928733504691611">"Awukakasethi i-face unlock."</string>
     <string name="face_error_hw_not_present" msgid="1070600921591729944">"I-face unlock ayisekelwe kule divayisi."</string>
-    <!-- no translation found for face_error_security_update_required (5076017208528750161) -->
-    <skip />
+    <string name="face_error_security_update_required" msgid="5076017208528750161">"Inzwa ikhutshazwe okwesikhashana."</string>
     <string name="face_name_template" msgid="3877037340223318119">"Ubuso be-<xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -1318,6 +1324,9 @@
     <string name="adb_active_notification_title" msgid="408390247354560331">"Ukulungisa iphutha le-USB kuxhunyiwe"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"Thepha ukuze uvale ukulungisa amaphutha kwe-USB"</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Khetha ukuvimbela ukulungisa iphutha le-USB."</string>
+    <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Ukulungisa amaphutha okungenantambo kuxhunyiwe"</string>
+    <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Thepha ukuze ucishe ukulungisa amaphutha okungenantambo"</string>
+    <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Khetha ukukhubaza ukulungisa amaphutha okungenantambo."</string>
     <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Imodi yokuhlola i-harness inikwe amandla"</string>
     <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Yenza ukusetha kabusha kwasekuqaleni ukuze ukhubaze imodi yokuqina yokuhlola."</string>
     <string name="console_running_notification_title" msgid="6087888939261635904">"I-serial console inikwe amandla"</string>
@@ -1621,8 +1630,7 @@
     <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Ingemuva eqalise isevisi yasemuva kusuka ku-<xliff:g id="PACKAGENAME">%1$s</xliff:g> ngeke ithole imvume yokusebenzisa yesikhathi ekwakheni kwe-R ezayo. Sicela ubone i-go/r-bg-fgs-restriction bese ufayele umbiko wesiphazamiso."</string>
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Khuphukisa ivolumu ngaphezu kweleveli enconyiwe?\n\nUkulalela ngevolumu ephezulu izikhathi ezide kungahle kulimaze ukuzwa kwakho."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Sebenzisa isinqamuleli sokufinyelela?"</string>
-    <!-- no translation found for accessibility_shortcut_toogle_warning (4161716521310929544) -->
-    <skip />
+    <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Uma isinqamuleli sivuliwe, ukucindezela zombili izinkinobho zevolumu amasekhondi angu-3 kuzoqalisa isici sokufinyelela."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Hlela izinqamuleli"</string>
     <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Khansela"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Vala isinqamuleli"</string>
@@ -1845,6 +1853,8 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Akufakwanga esigabeni"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Usethe ukubaluleka kwalezi zaziso."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Lokhu kubalulekile ngenxa yabantu ababandakanyekayo."</string>
+    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
+    <skip />
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Vumela i-<xliff:g id="APP">%1$s</xliff:g> ukuthi idale umsebenzisi omusha nge-<xliff:g id="ACCOUNT">%2$s</xliff:g> (Umsebenzisi onale akhawunti usevele ukhona) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Vumela i-<xliff:g id="APP">%1$s</xliff:g> ukuthi idale umsebenzisi omusha nge-<xliff:g id="ACCOUNT">%2$s</xliff:g> ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Engeza ulwimi"</string>
@@ -2018,20 +2028,14 @@
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"I-<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ifakwe kubhakede LOKUKHAWULELWE"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Okomuntu siqu"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Umsebenzi"</string>
-    <!-- no translation found for resolver_cant_share_with_work_apps (7539495559434146897) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_with_personal_apps (8020581735267157241) -->
-    <skip />
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (3536237105241882679) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps (8987359079870455469) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_explanation (6322467455509618928) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available (7710339903040989654) -->
-    <skip />
-    <!-- no translation found for resolver_no_apps_available_explanation (4662694431121196560) -->
-    <skip />
-    <!-- no translation found for resolver_switch_on_work (8294542702883688533) -->
-    <skip />
+    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ayikwazi ukwabelana ngezinhlelo zokusebenza zomsebenzi"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ayikwazi ukwabelana ngezinhlelo zokusebenza zomuntu siqu"</string>
+    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Umphathi wakho we-IT uvimbe ukwabelana phakathi kwezinhlelo zokusebenza zomuntu siqu nezomsebenzi"</string>
+    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Vula izinhlelo zokusebenza zomsebenzi"</string>
+    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Vula izinhlelo zokusebenza zomsebenzi ukuze ufinyelele kuzinhlelo zokusebenza zomsebenzi noxhumana nabo"</string>
+    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Azikho izinhlelo zokusebenza ezitholakalayo"</string>
+    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Asikwazanga ukuthola izinhlelo zokusebenza"</string>
+    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Shintshela emsebenzini"</string>
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Rekhoda noma dlala umsindo kumakholi ocingo"</string>
+    <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Ivumela lolu hlelo lokusebenza, uma lunikezwe njengohlelo lokusebenza oluzenzakalelayo lokudayela, ukuze kurekhodwe noma kudlalwe umsindo kumakholi ocingo."</string>
 </resources>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 9cdd3ed..ecf4696 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -360,7 +360,7 @@
         <attr name="windowFullscreen" format="boolean" />
         <!-- Flag indicating whether this window should extend into overscan region.  Corresponds
              to {@link android.view.WindowManager.LayoutParams#FLAG_LAYOUT_IN_OVERSCAN}.
-             @deprecated Overscan areas aren't set by any Android product anymore.
+             @deprecated Overscan areas aren't set by any Android product anymore as of Android 11.
              -->
         <attr name="windowOverscan" format="boolean" />
         <!-- Flag indicating whether this is a floating window. -->
@@ -3796,6 +3796,9 @@
         <!-- Html description of the target of accessibility shortcut purpose or behavior, to help
              users understand how the target of accessibility shortcut can help them. -->
         <attr name="htmlDescription" format="reference"/>
+        <!-- Component name of an activity that allows the user to modify the settings for this
+             target of accessibility shortcut. -->
+        <attr name="settingsActivity" />
     </declare-styleable>
 
     <!-- Use <code>print-service</code> as the root tag of the XML resource that
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 950f163..08dca62 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -2656,7 +2656,7 @@
              this field is ignored and the display will remain in its current
              mode.
 
-             <p> See {@link android.content.pm.ActivityInfo #preferMinimalPostProcessing} -->
+             <p> See {@link android.content.pm.ActivityInfo#FLAG_PREFER_MINIMAL_POST_PROCESSING} -->
         <attr name="preferMinimalPostProcessing" format="boolean"/>
     </declare-styleable>
 
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 8023990..0b6e65fe 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -3363,16 +3363,6 @@
          ratio larger than this is considered to wide and short to be usable. Currently 2.39:1. -->
     <item name="config_pictureInPictureMaxAspectRatio" format="float" type="dimen">2.39</item>
 
-    <!-- The snap mode to use for picture-in-picture. These values correspond to constants defined
-         in PipSnapAlgorithm and should not be changed independently.
-             0 - Snap to the four corners
-             1 - Snap to the four corners and the mid-points on the long edge in each orientation
-             2 - Snap anywhere along the edge of the screen
-             3 - Snap anywhere along the edge of the screen and magnet to corners
-             4 - Snap to the long edges in each orientation and magnet to corners
-    -->
-    <integer name="config_pictureInPictureSnapMode">4</integer>
-
     <!-- Controls the snap mode for the docked stack divider
              0 - 3 snap targets: left/top has 16:9 ratio, 1:1, and right/bottom has 16:9 ratio
              1 - 3 snap targets: fixed ratio, 1:1, (1 - fixed ratio)
@@ -3651,7 +3641,7 @@
          Example: "com.android.phone,com.android.stk,com.android.providers.telephony"
          (Note: shell is included for testing purposes)
      -->
-    <string name="config_telephonyPackages" translatable="false">"com.android.phone,com.android.stk,com.android.providers.telephony,com.android.ons,com.android.cellbroadcastservice,com.android.cellbroadcastreceiver,com.android.shell"</string>
+    <string name="config_telephonyPackages" translatable="false">"com.android.phone,com.android.stk,com.android.providers.telephony,com.android.ons"</string>
 
     <!-- The component name for the default system attention service.
          This service must be trusted, as it can be activated without explicit consent of the user.
@@ -4410,4 +4400,19 @@
 
     <!-- Whether to default to an expanded list of users on the lock screen user switcher. -->
     <bool name="config_expandLockScreenUserSwitcher">false</bool>
+
+    <!-- Toasts posted from these packages will be shown to the current user, regardless of the user
+         the process belongs to. This is useful for packages that run under a single user but serve
+         multiple users, e.g. the system.
+         These packages MUST be able to add flag SYSTEM_FLAG_SHOW_FOR_ALL_USERS to a window. -->
+    <string-array name="config_toastCrossUserPackages" translatable="false">
+        <item>android</item>
+        <item>com.android.systemui</item>
+    </string-array>
+
+    <!-- Package name of custom media key dispatcher class used by MediaSessionService. -->
+    <string name="config_customMediaKeyDispatcher"></string>
+
+    <!-- Package name of custom session policy provider class used by MediaSessionService. -->
+    <string name="config_customSessionPolicyProvider"></string>
 </resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index e1d94f50f..9118617 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -126,9 +126,6 @@
     <!-- The amount to leave on-screen when the PIP is minimized. -->
     <dimen name="pip_minimized_visible_size">48dp</dimen>
 
-    <!-- The the PIP decelerates at while moving from a fling. -->
-    <dimen name="pip_fling_deceleration">-3000dp</dimen>
-
     <!-- Min width for a tablet device -->
     <dimen name="min_xlarge_screen_width">800dp</dimen>
 
@@ -764,7 +761,6 @@
     <dimen name="chooser_preview_image_border">1dp</dimen>
     <dimen name="chooser_preview_image_max_dimen">200dp</dimen>
     <dimen name="chooser_preview_width">-1px</dimen>
-    <dimen name="chooser_target_width">90dp</dimen>
     <dimen name="chooser_header_scroll_elevation">4dp</dimen>
     <dimen name="chooser_max_collapsed_height">288dp</dimen>
     <dimen name="chooser_direct_share_label_placeholder_max_width">72dp</dimen>
@@ -778,6 +774,9 @@
     <dimen name="resolver_elevation">1dp</dimen>
     <dimen name="resolver_empty_state_height">212dp</dimen>
     <dimen name="resolver_empty_state_height_with_tabs">268dp</dimen>
+    <dimen name="resolver_max_collapsed_height">192dp</dimen>
+    <dimen name="resolver_max_collapsed_height_with_tabs">248dp</dimen>
+    <dimen name="resolver_tab_divider_bottom_padding">8dp</dimen>
 
     <dimen name="chooser_action_button_icon_size">18dp</dimen>
 
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 7f7bbe9..39e8197 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -3077,6 +3077,12 @@
       <public name="config_sms_enabled_locking_shift_tables" />
     </public-group>
 
+    <public-group type="string" first-id="0x0104002c">
+      <!-- @hide -->
+      <public name="config_customMediaKeyDispatcher" />
+      <!-- @hide -->
+      <public name="config_customSessionPolicyProvider" />
+    </public-group>
   <!-- ===============================================================
        DO NOT ADD UN-GROUPED ITEMS HERE
 
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index df1f46f..2356b17 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -584,6 +584,12 @@
     <!-- Format for build summary info [CHAR LIMIT=NONE] -->
     <string name="bugreport_status" translatable="false">%s (%s)</string>
 
+    <!-- Toast for taking screenshot with bugreport successfully. [CHAR_LIMIT=100] -->
+    <string name="bugreport_screenshot_success_toast">Screenshot taken with bug report</string>
+
+    <!-- Toast for failed to take screenshot with bugreport. [CHAR_LIMIT=100] -->
+    <string name="bugreport_screenshot_failure_toast">Failed to take screenshot with bug report</string>
+
     <!-- label for item that enables silent mode in phone options dialog -->
     <string name="global_action_toggle_silent_mode">Silent mode</string>
 
@@ -1223,12 +1229,16 @@
     <string name="permdesc_readPhoneNumbers">Allows the app to access the phone numbers of the device.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_wakeLock" product="automotive">keep car screen turned on</string>
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_wakeLock" product="tablet">prevent tablet from sleeping</string>
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_wakeLock" product="tv">prevent your Android TV device from sleeping</string>
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_wakeLock" product="default">prevent phone from sleeping</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_wakeLock" product="automotive">Allows the app to keep the car screen turned on.</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_wakeLock" product="tablet">Allows the app to prevent the tablet from going to sleep.</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_wakeLock" product="tv">Allows the app to prevent your Android TV device from going to sleep.</string>
@@ -4393,6 +4403,21 @@
         accessibility feature.
     </string>
 
+    <!-- Title for accessibility select shortcut menu dialog. [CHAR LIMIT=100] -->
+    <string name="accessibility_select_shortcut_menu_title">Tap the accessibility app you want to use</string>
+
+    <!-- Title for accessibility edit shortcut selection menu dialog, and dialog is triggered
+    from accessibility button. [CHAR LIMIT=100] -->
+    <string name="accessibility_edit_shortcut_menu_button_title">Choose apps you want to use with
+        accessibility button
+    </string>
+
+    <!-- Title for accessibility edit shortcut selection menu dialog, and dialog is triggered
+    from volume key shortcut. [CHAR LIMIT=100] -->
+    <string name="accessibility_edit_shortcut_menu_volume_title">Choose apps you want to use with
+        volume key shortcut
+    </string>
+
     <!-- Text in button that edit the accessibility shortcut menu, user can delete
     any service item in the menu list. [CHAR LIMIT=100] -->
     <string name="edit_accessibility_shortcut_menu_button">Edit shortcuts</string>
@@ -4918,6 +4943,8 @@
     <string name="importance_from_user">You set the importance of these notifications.</string>
     <string name="importance_from_person">This is important because of the people involved.</string>
 
+    <string name="notification_history_title_placeholder">Custom app notification</string>
+
     <!-- Message to user that app trying to create user for an account that already exists. [CHAR LIMIT=none] -->
     <string name="user_creation_account_exists">Allow <xliff:g id="app" example="Gmail">%1$s</xliff:g> to create a new User with <xliff:g id="account" example="foobar@gmail.com">%2$s</xliff:g> (a User with this account already exists) ?</string>
     <!-- Message to user that app is trying to create user for a specified account. [CHAR LIMIT=none] -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 3ed3a64e..c1d8168 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1692,9 +1692,7 @@
   <java-symbol type="dimen" name="docked_stack_divider_insets" />
   <java-symbol type="dimen" name="docked_stack_minimize_thickness" />
   <java-symbol type="dimen" name="pip_minimized_visible_size" />
-  <java-symbol type="dimen" name="pip_fling_deceleration" />
   <java-symbol type="integer" name="config_dockedStackDividerSnapMode" />
-  <java-symbol type="integer" name="config_pictureInPictureSnapMode" />
   <java-symbol type="fraction" name="docked_stack_divider_fixed_ratio" />
   <java-symbol type="fraction" name="thumbnail_fullscreen_scale" />
   <java-symbol type="integer" name="thumbnail_width_tv" />
@@ -1789,6 +1787,8 @@
   <java-symbol type="string" name="bugreport_option_full_title" />
   <java-symbol type="string" name="bugreport_option_interactive_summary" />
   <java-symbol type="string" name="bugreport_option_interactive_title" />
+  <java-symbol type="string" name="bugreport_screenshot_failure_toast" />
+  <java-symbol type="string" name="bugreport_screenshot_success_toast" />
   <java-symbol type="string" name="bugreport_status" />
   <java-symbol type="string" name="bugreport_title" />
   <java-symbol type="string" name="faceunlock_multiple_failures" />
@@ -2734,7 +2734,6 @@
   <java-symbol type="string" name="chooser_no_direct_share_targets" />
   <java-symbol type="drawable" name="chooser_row_layer_list" />
   <java-symbol type="dimen" name="chooser_view_spacing" />
-  <java-symbol type="dimen" name="chooser_target_width" />
   <java-symbol type="dimen" name="chooser_edge_margin_thin" />
   <java-symbol type="dimen" name="chooser_edge_margin_normal" />
   <java-symbol type="dimen" name="chooser_preview_image_font_size"/>
@@ -3238,6 +3237,10 @@
   <java-symbol type="string" name="config_defaultAccessibilityService" />
   <java-symbol type="string" name="accessibility_shortcut_spoken_feedback" />
 
+  <java-symbol type="string" name="accessibility_select_shortcut_menu_title" />
+  <java-symbol type="string" name="accessibility_edit_shortcut_menu_button_title" />
+  <java-symbol type="string" name="accessibility_edit_shortcut_menu_volume_title" />
+
   <!-- Accessibility Button -->
   <java-symbol type="layout" name="accessibility_button_chooser_item" />
   <java-symbol type="id" name="accessibility_button_target_icon" />
@@ -3878,6 +3881,7 @@
   <java-symbol type="id" name="resolver_empty_state_title" />
   <java-symbol type="id" name="resolver_empty_state_subtitle" />
   <java-symbol type="id" name="resolver_empty_state_button" />
+  <java-symbol type="id" name="resolver_empty_state_progress" />
   <java-symbol type="id" name="resolver_tab_divider" />
   <java-symbol type="string" name="resolver_cant_share_with_work_apps" />
   <java-symbol type="string" name="resolver_cant_share_with_personal_apps" />
@@ -3893,7 +3897,9 @@
   <java-symbol type="drawable" name="ic_no_apps" />
   <java-symbol type="dimen" name="resolver_empty_state_height" />
   <java-symbol type="dimen" name="resolver_empty_state_height_with_tabs" />
+  <java-symbol type="dimen" name="resolver_max_collapsed_height_with_tabs" />
   <java-symbol type="bool" name="sharesheet_show_content_preview" />
+  <java-symbol type="dimen" name="resolver_tab_divider_bottom_padding" />
 
   <!-- Toast message for background started foreground service while-in-use permission restriction feature -->
   <java-symbol type="string" name="allow_while_in_use_permission_in_fgs" />
@@ -3904,4 +3910,11 @@
   <java-symbol type="bool" name="config_expandLockScreenUserSwitcher" />
 
   <java-symbol type="string" name="loading" />
+
+  <java-symbol type="array" name="config_toastCrossUserPackages" />
+
+  <java-symbol type="string" name="notification_history_title_placeholder" />
+
+  <java-symbol type="string" name="config_customMediaKeyDispatcher" />
+  <java-symbol type="string" name="config_customSessionPolicyProvider" />
 </resources>
diff --git a/core/res/res/values/themes_material.xml b/core/res/res/values/themes_material.xml
index f3905e9..e516a6c 100644
--- a/core/res/res/values/themes_material.xml
+++ b/core/res/res/values/themes_material.xml
@@ -962,7 +962,7 @@
          the entire screen and extends into the display overscan region.  This theme
          sets {@link android.R.attr#windowFullscreen} and {@link android.R.attr#windowOverscan}
          to true.
-         @deprecated Overscan areas aren't set by any Android product anymore.
+         @deprecated Overscan areas aren't set by any Android product anymore as of Android 11.
          -->
     <style name="Theme.Material.NoActionBar.Overscan">
         <item name="windowFullscreen">true</item>
@@ -996,7 +996,7 @@
          the entire screen and extends into the display overscan region.  This theme
          sets {@link android.R.attr#windowFullscreen} and {@link android.R.attr#windowOverscan}
          to true.
-         @deprecated Overscan areas aren't set by any Android product anymore.
+         @deprecated Overscan areas aren't set by any Android product anymore as of Android 11.
          -->
     <style name="Theme.Material.Light.NoActionBar.Overscan">
         <item name="windowFullscreen">true</item>
diff --git a/core/tests/coretests/Android.bp b/core/tests/coretests/Android.bp
index eb760b9..1485df0 100644
--- a/core/tests/coretests/Android.bp
+++ b/core/tests/coretests/Android.bp
@@ -56,7 +56,6 @@
         // TODO(b/149928788): Remove this when statsd tests move into the statsd dir.
         "framework-statsd",
         "framework",
-        "icing-java-proto-lite",
         "ext",
         "framework-res",
     ],
diff --git a/core/tests/coretests/assets/SourceStampVerifierTest/original.apk b/core/tests/coretests/assets/SourceStampVerifierTest/original.apk
new file mode 100644
index 0000000..05f89aa
--- /dev/null
+++ b/core/tests/coretests/assets/SourceStampVerifierTest/original.apk
Binary files differ
diff --git a/core/tests/coretests/assets/SourceStampVerifierTest/stamp-apk-hash-mismatch.apk b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-apk-hash-mismatch.apk
new file mode 100644
index 0000000..1dc1e99
--- /dev/null
+++ b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-apk-hash-mismatch.apk
Binary files differ
diff --git a/core/tests/coretests/assets/SourceStampVerifierTest/stamp-certificate-mismatch.apk b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-certificate-mismatch.apk
new file mode 100644
index 0000000..562805c
--- /dev/null
+++ b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-certificate-mismatch.apk
Binary files differ
diff --git a/core/tests/coretests/assets/SourceStampVerifierTest/stamp-malformed-signature.apk b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-malformed-signature.apk
new file mode 100644
index 0000000..2723cc8
--- /dev/null
+++ b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-malformed-signature.apk
Binary files differ
diff --git a/core/tests/coretests/assets/SourceStampVerifierTest/stamp-without-block.apk b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-without-block.apk
new file mode 100644
index 0000000..9dec2f5
--- /dev/null
+++ b/core/tests/coretests/assets/SourceStampVerifierTest/stamp-without-block.apk
Binary files differ
diff --git a/core/tests/coretests/assets/SourceStampVerifierTest/valid-stamp.apk b/core/tests/coretests/assets/SourceStampVerifierTest/valid-stamp.apk
new file mode 100644
index 0000000..8056e0b
--- /dev/null
+++ b/core/tests/coretests/assets/SourceStampVerifierTest/valid-stamp.apk
Binary files differ
diff --git a/core/tests/coretests/res/xml/accessibility_shortcut_test_activity.xml b/core/tests/coretests/res/xml/accessibility_shortcut_test_activity.xml
index a597b71..db91493 100644
--- a/core/tests/coretests/res/xml/accessibility_shortcut_test_activity.xml
+++ b/core/tests/coretests/res/xml/accessibility_shortcut_test_activity.xml
@@ -21,4 +21,5 @@
                         android:summary="@string/accessibility_shortcut_summary"
                         android:animatedImageDrawable="@drawable/bitmap_drawable"
                         android:htmlDescription="@string/accessibility_shortcut_html_description"
+                        android:settingsActivity="com.example.shortcut.target.SettingsActivity"
 />
\ No newline at end of file
diff --git a/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java b/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java
index f0e70a5..8755131 100644
--- a/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java
+++ b/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java
@@ -48,6 +48,9 @@
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class AccessibilityShortcutInfoTest {
+    private static final String SETTINGS_ACTIVITY_NAME =
+            "com.example.shortcut.target.SettingsActivity";
+
     private Context mTargetContext;
     private PackageManager mPackageManager;
     private ComponentName mComponentName;
@@ -106,6 +109,12 @@
     }
 
     @Test
+    public void testSettingsActivity() {
+        assertThat("Settings Activity is not correct",
+                mShortcutInfo.getSettingsActivityName(), is(SETTINGS_ACTIVITY_NAME));
+    }
+
+    @Test
     public void testEquals() {
         assertTrue(mShortcutInfo.equals(mShortcutInfo));
         assertFalse(mShortcutInfo.equals(null));
diff --git a/core/tests/coretests/src/android/app/appsearch/AppSearchDocumentTest.java b/core/tests/coretests/src/android/app/appsearch/AppSearchDocumentTest.java
deleted file mode 100644
index 4a4f1367..0000000
--- a/core/tests/coretests/src/android/app/appsearch/AppSearchDocumentTest.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.testng.Assert.assertThrows;
-
-import androidx.test.filters.SmallTest;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.PropertyProto;
-import com.google.android.icing.protobuf.ByteString;
-
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-
-@SmallTest
-public class AppSearchDocumentTest {
-    private static final byte[] sByteArray1 = new byte[]{(byte) 1, (byte) 2, (byte) 3};
-    private static final byte[] sByteArray2 = new byte[]{(byte) 4, (byte) 5, (byte) 6};
-    private static final AppSearchDocument sDocumentProperties1 = new AppSearchDocument
-            .Builder("sDocumentProperties1", "sDocumentPropertiesSchemaType1")
-            .build();
-    private static final AppSearchDocument sDocumentProperties2 = new AppSearchDocument
-            .Builder("sDocumentProperties2", "sDocumentPropertiesSchemaType2")
-            .build();
-
-    @Test
-    public void testDocumentEquals_Identical() {
-        AppSearchDocument document1 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setTtlMillis(1L)
-                .setProperty("longKey1", 1L, 2L, 3L)
-                .setProperty("doubleKey1", 1.0, 2.0, 3.0)
-                .setProperty("booleanKey1", true, false, true)
-                .setProperty("stringKey1", "test-value1", "test-value2", "test-value3")
-                .setProperty("byteKey1", sByteArray1, sByteArray2)
-                .setProperty("documentKey1", sDocumentProperties1, sDocumentProperties2)
-                .build();
-        AppSearchDocument document2 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setTtlMillis(1L)
-                .setProperty("longKey1", 1L, 2L, 3L)
-                .setProperty("doubleKey1", 1.0, 2.0, 3.0)
-                .setProperty("booleanKey1", true, false, true)
-                .setProperty("stringKey1", "test-value1", "test-value2", "test-value3")
-                .setProperty("byteKey1", sByteArray1, sByteArray2)
-                .setProperty("documentKey1", sDocumentProperties1, sDocumentProperties2)
-                .build();
-        assertThat(document1).isEqualTo(document2);
-        assertThat(document1.hashCode()).isEqualTo(document2.hashCode());
-    }
-
-    @Test
-    public void testDocumentEquals_DifferentOrder() {
-        AppSearchDocument document1 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setProperty("longKey1", 1L, 2L, 3L)
-                .setProperty("byteKey1", sByteArray1, sByteArray2)
-                .setProperty("doubleKey1", 1.0, 2.0, 3.0)
-                .setProperty("booleanKey1", true, false, true)
-                .setProperty("documentKey1", sDocumentProperties1, sDocumentProperties2)
-                .setProperty("stringKey1", "test-value1", "test-value2", "test-value3")
-                .build();
-
-        // Create second document with same parameter but different order.
-        AppSearchDocument document2 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setProperty("booleanKey1", true, false, true)
-                .setProperty("documentKey1", sDocumentProperties1, sDocumentProperties2)
-                .setProperty("stringKey1", "test-value1", "test-value2", "test-value3")
-                .setProperty("doubleKey1", 1.0, 2.0, 3.0)
-                .setProperty("byteKey1", sByteArray1, sByteArray2)
-                .setProperty("longKey1", 1L, 2L, 3L)
-                .build();
-        assertThat(document1).isEqualTo(document2);
-        assertThat(document1.hashCode()).isEqualTo(document2.hashCode());
-    }
-
-    @Test
-    public void testDocumentEquals_Failure() {
-        AppSearchDocument document1 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setProperty("longKey1", 1L, 2L, 3L)
-                .build();
-
-        // Create second document with same order but different value.
-        AppSearchDocument document2 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setProperty("longKey1", 1L, 2L, 4L) // Different
-                .build();
-        assertThat(document1).isNotEqualTo(document2);
-        assertThat(document1.hashCode()).isNotEqualTo(document2.hashCode());
-    }
-
-    @Test
-    public void testDocumentEquals_Failure_RepeatedFieldOrder() {
-        AppSearchDocument document1 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setProperty("booleanKey1", true, false, true)
-                .build();
-
-        // Create second document with same order but different value.
-        AppSearchDocument document2 = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setProperty("booleanKey1", true, true, false) // Different
-                .build();
-        assertThat(document1).isNotEqualTo(document2);
-        assertThat(document1.hashCode()).isNotEqualTo(document2.hashCode());
-    }
-
-    @Test
-    public void testDocumentGetSingleValue() {
-        AppSearchDocument document = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setScore(1)
-                .setTtlMillis(1L)
-                .setProperty("longKey1", 1L)
-                .setProperty("doubleKey1", 1.0)
-                .setProperty("booleanKey1", true)
-                .setProperty("stringKey1", "test-value1")
-                .setProperty("byteKey1", sByteArray1)
-                .setProperty("documentKey1", sDocumentProperties1)
-                .build();
-        assertThat(document.getUri()).isEqualTo("uri1");
-        assertThat(document.getTtlMillis()).isEqualTo(1L);
-        assertThat(document.getSchemaType()).isEqualTo("schemaType1");
-        assertThat(document.getCreationTimestampMillis()).isEqualTo(5);
-        assertThat(document.getScore()).isEqualTo(1);
-        assertThat(document.getPropertyLong("longKey1")).isEqualTo(1L);
-        assertThat(document.getPropertyDouble("doubleKey1")).isEqualTo(1.0);
-        assertThat(document.getPropertyBoolean("booleanKey1")).isTrue();
-        assertThat(document.getPropertyString("stringKey1")).isEqualTo("test-value1");
-        assertThat(document.getPropertyBytes("byteKey1"))
-                .asList().containsExactly((byte) 1, (byte) 2, (byte) 3);
-        assertThat(document.getPropertyDocument("documentKey1")).isEqualTo(sDocumentProperties1);
-    }
-
-    @Test
-    public void testDocumentGetArrayValues() {
-        AppSearchDocument document = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setProperty("longKey1", 1L, 2L, 3L)
-                .setProperty("doubleKey1", 1.0, 2.0, 3.0)
-                .setProperty("booleanKey1", true, false, true)
-                .setProperty("stringKey1", "test-value1", "test-value2", "test-value3")
-                .setProperty("byteKey1", sByteArray1, sByteArray2)
-                .setProperty("documentKey1", sDocumentProperties1, sDocumentProperties2)
-                .build();
-
-        assertThat(document.getUri()).isEqualTo("uri1");
-        assertThat(document.getSchemaType()).isEqualTo("schemaType1");
-        assertThat(document.getPropertyLongArray("longKey1")).asList().containsExactly(1L, 2L, 3L);
-        assertThat(document.getPropertyDoubleArray("doubleKey1")).usingExactEquality()
-                .containsExactly(1.0, 2.0, 3.0);
-        assertThat(document.getPropertyBooleanArray("booleanKey1")).asList()
-                .containsExactly(true, false, true);
-        assertThat(document.getPropertyStringArray("stringKey1")).asList()
-                .containsExactly("test-value1", "test-value2", "test-value3");
-        assertThat(document.getPropertyBytesArray("byteKey1")).asList()
-                .containsExactly(sByteArray1, sByteArray2);
-        assertThat(document.getPropertyDocumentArray("documentKey1")).asList()
-                .containsExactly(sDocumentProperties1, sDocumentProperties2);
-    }
-
-    @Test
-    public void testDocumentGetValues_DifferentTypes() {
-        AppSearchDocument document = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setScore(1)
-                .setProperty("longKey1", 1L)
-                .setProperty("booleanKey1", true, false, true)
-                .setProperty("stringKey1", "test-value1", "test-value2", "test-value3")
-                .build();
-
-        // Get a value for a key that doesn't exist
-        assertThat(document.getPropertyDouble("doubleKey1")).isNull();
-        assertThat(document.getPropertyDoubleArray("doubleKey1")).isNull();
-
-        // Get a value with a single element as an array and as a single value
-        assertThat(document.getPropertyLong("longKey1")).isEqualTo(1L);
-        assertThat(document.getPropertyLongArray("longKey1")).asList().containsExactly(1L);
-
-        // Get a value with multiple elements as an array and as a single value
-        assertThat(document.getPropertyString("stringKey1")).isEqualTo("test-value1");
-        assertThat(document.getPropertyStringArray("stringKey1")).asList()
-                .containsExactly("test-value1", "test-value2", "test-value3");
-
-        // Get a value of the wrong type
-        assertThat(document.getPropertyDouble("longKey1")).isNull();
-        assertThat(document.getPropertyDoubleArray("longKey1")).isNull();
-    }
-
-    @Test
-    public void testDocumentInvalid() {
-        AppSearchDocument.Builder builder = new AppSearchDocument.Builder("uri1", "schemaType1");
-        assertThrows(
-                IllegalArgumentException.class, () -> builder.setProperty("test", new boolean[]{}));
-    }
-
-    @Test
-    public void testDocumentProtoPopulation() {
-        AppSearchDocument document = new AppSearchDocument.Builder("uri1", "schemaType1")
-                .setCreationTimestampMillis(5L)
-                .setScore(1)
-                .setTtlMillis(1L)
-                .setProperty("longKey1", 1L)
-                .setProperty("doubleKey1", 1.0)
-                .setProperty("booleanKey1", true)
-                .setProperty("stringKey1", "test-value1")
-                .setProperty("byteKey1", sByteArray1)
-                .setProperty("documentKey1", sDocumentProperties1)
-                .build();
-
-        // Create the Document proto. Need to sort the property order by key.
-        DocumentProto.Builder documentProtoBuilder = DocumentProto.newBuilder()
-                .setUri("uri1")
-                .setSchema("schemaType1")
-                .setCreationTimestampMs(5L)
-                .setScore(1)
-                .setTtlMs(1L);
-        HashMap<String, PropertyProto.Builder> propertyProtoMap = new HashMap<>();
-        propertyProtoMap.put("longKey1",
-                PropertyProto.newBuilder().setName("longKey1").addInt64Values(1L));
-        propertyProtoMap.put("doubleKey1",
-                PropertyProto.newBuilder().setName("doubleKey1").addDoubleValues(1.0));
-        propertyProtoMap.put("booleanKey1",
-                PropertyProto.newBuilder().setName("booleanKey1").addBooleanValues(true));
-        propertyProtoMap.put("stringKey1",
-                PropertyProto.newBuilder().setName("stringKey1").addStringValues("test-value1"));
-        propertyProtoMap.put("byteKey1",
-                PropertyProto.newBuilder().setName("byteKey1").addBytesValues(
-                        ByteString.copyFrom(sByteArray1)));
-        propertyProtoMap.put("documentKey1",
-                PropertyProto.newBuilder().setName("documentKey1")
-                        .addDocumentValues(sDocumentProperties1.getProto()));
-        List<String> sortedKey = new ArrayList<>(propertyProtoMap.keySet());
-        Collections.sort(sortedKey);
-        for (String key : sortedKey) {
-            documentProtoBuilder.addProperties(propertyProtoMap.get(key));
-        }
-        assertThat(document.getProto()).isEqualTo(documentProtoBuilder.build());
-    }
-}
diff --git a/core/tests/coretests/src/android/app/appsearch/AppSearchEmailTest.java b/core/tests/coretests/src/android/app/appsearch/AppSearchEmailTest.java
deleted file mode 100644
index 6aa16cc..0000000
--- a/core/tests/coretests/src/android/app/appsearch/AppSearchEmailTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Test;
-
-@SmallTest
-public class AppSearchEmailTest {
-
-    @Test
-    public void testBuildEmailAndGetValue() {
-        AppSearchEmail email = new AppSearchEmail.Builder("uri")
-                .setFrom("FakeFromAddress")
-                .setCc("CC1", "CC2")
-                // Score and Property are mixed into the middle to make sure DocumentBuilder's
-                // methods can be interleaved with EmailBuilder's methods.
-                .setScore(1)
-                .setProperty("propertyKey", "propertyValue1", "propertyValue2")
-                .setSubject("subject")
-                .setBody("EmailBody")
-                .build();
-
-        assertThat(email.getUri()).isEqualTo("uri");
-        assertThat(email.getFrom()).isEqualTo("FakeFromAddress");
-        assertThat(email.getTo()).isNull();
-        assertThat(email.getCc()).asList().containsExactly("CC1", "CC2");
-        assertThat(email.getBcc()).isNull();
-        assertThat(email.getScore()).isEqualTo(1);
-        assertThat(email.getPropertyString("propertyKey")).isEqualTo("propertyValue1");
-        assertThat(email.getPropertyStringArray("propertyKey")).asList().containsExactly(
-                "propertyValue1", "propertyValue2");
-        assertThat(email.getSubject()).isEqualTo("subject");
-        assertThat(email.getBody()).isEqualTo("EmailBody");
-    }
-}
diff --git a/core/tests/coretests/src/android/app/appsearch/AppSearchSchemaTest.java b/core/tests/coretests/src/android/app/appsearch/AppSearchSchemaTest.java
deleted file mode 100644
index 08ec2d0..0000000
--- a/core/tests/coretests/src/android/app/appsearch/AppSearchSchemaTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.testng.Assert.assertThrows;
-import static org.testng.Assert.expectThrows;
-
-import android.app.appsearch.AppSearchSchema.PropertyConfig;
-
-import androidx.test.filters.SmallTest;
-
-import com.google.android.icing.proto.IndexingConfig.TokenizerType;
-import com.google.android.icing.proto.PropertyConfigProto;
-import com.google.android.icing.proto.SchemaTypeConfigProto;
-import com.google.android.icing.proto.TermMatchType;
-
-import org.junit.Test;
-
-@SmallTest
-public class AppSearchSchemaTest {
-    @Test
-    public void testGetProto_Email() {
-        AppSearchSchema emailSchema = AppSearchSchema.newBuilder("Email")
-                .addProperty(AppSearchSchema.newPropertyBuilder("subject")
-                        .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                        .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                        .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                        .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                        .build()
-                ).addProperty(AppSearchSchema.newPropertyBuilder("body")
-                        .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                        .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                        .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                        .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                        .build()
-                ).build();
-
-        SchemaTypeConfigProto expectedEmailProto = SchemaTypeConfigProto.newBuilder()
-                .setSchemaType("Email")
-                .addProperties(PropertyConfigProto.newBuilder()
-                        .setPropertyName("subject")
-                        .setDataType(PropertyConfigProto.DataType.Code.STRING)
-                        .setCardinality(PropertyConfigProto.Cardinality.Code.OPTIONAL)
-                        .setIndexingConfig(
-                                com.google.android.icing.proto.IndexingConfig.newBuilder()
-                                        .setTokenizerType(TokenizerType.Code.PLAIN)
-                                        .setTermMatchType(TermMatchType.Code.PREFIX)
-                        )
-                ).addProperties(PropertyConfigProto.newBuilder()
-                        .setPropertyName("body")
-                        .setDataType(PropertyConfigProto.DataType.Code.STRING)
-                        .setCardinality(PropertyConfigProto.Cardinality.Code.OPTIONAL)
-                        .setIndexingConfig(
-                                com.google.android.icing.proto.IndexingConfig.newBuilder()
-                                        .setTokenizerType(TokenizerType.Code.PLAIN)
-                                        .setTermMatchType(TermMatchType.Code.PREFIX)
-                        )
-                ).build();
-
-        assertThat(emailSchema.getProto()).isEqualTo(expectedEmailProto);
-    }
-
-    @Test
-    public void testGetProto_MusicRecording() {
-        AppSearchSchema musicRecordingSchema = AppSearchSchema.newBuilder("MusicRecording")
-                .addProperty(AppSearchSchema.newPropertyBuilder("artist")
-                        .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                        .setCardinality(PropertyConfig.CARDINALITY_REPEATED)
-                        .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                        .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                        .build()
-                ).addProperty(AppSearchSchema.newPropertyBuilder("pubDate")
-                        .setDataType(PropertyConfig.DATA_TYPE_INT64)
-                        .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                        .setIndexingType(PropertyConfig.INDEXING_TYPE_NONE)
-                        .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_NONE)
-                        .build()
-                ).build();
-
-        SchemaTypeConfigProto expectedMusicRecordingProto = SchemaTypeConfigProto.newBuilder()
-                .setSchemaType("MusicRecording")
-                .addProperties(PropertyConfigProto.newBuilder()
-                        .setPropertyName("artist")
-                        .setDataType(PropertyConfigProto.DataType.Code.STRING)
-                        .setCardinality(PropertyConfigProto.Cardinality.Code.REPEATED)
-                        .setIndexingConfig(
-                                com.google.android.icing.proto.IndexingConfig.newBuilder()
-                                        .setTokenizerType(TokenizerType.Code.PLAIN)
-                                        .setTermMatchType(TermMatchType.Code.PREFIX)
-                        )
-                ).addProperties(PropertyConfigProto.newBuilder()
-                        .setPropertyName("pubDate")
-                        .setDataType(PropertyConfigProto.DataType.Code.INT64)
-                        .setCardinality(PropertyConfigProto.Cardinality.Code.OPTIONAL)
-                        .setIndexingConfig(
-                                com.google.android.icing.proto.IndexingConfig.newBuilder()
-                                        .setTokenizerType(TokenizerType.Code.NONE)
-                                        .setTermMatchType(TermMatchType.Code.UNKNOWN)
-                        )
-                ).build();
-
-        assertThat(musicRecordingSchema.getProto()).isEqualTo(expectedMusicRecordingProto);
-    }
-
-    @Test
-    public void testInvalidEnums() {
-        PropertyConfig.Builder builder = AppSearchSchema.newPropertyBuilder("test");
-        assertThrows(IllegalArgumentException.class, () -> builder.setDataType(99));
-        assertThrows(IllegalArgumentException.class, () -> builder.setCardinality(99));
-    }
-
-    @Test
-    public void testMissingFields() {
-        PropertyConfig.Builder builder = AppSearchSchema.newPropertyBuilder("test");
-        Exception e = expectThrows(IllegalSchemaException.class, builder::build);
-        assertThat(e).hasMessageThat().contains("Missing field: dataType");
-
-        builder.setDataType(PropertyConfig.DATA_TYPE_DOCUMENT);
-        e = expectThrows(IllegalSchemaException.class, builder::build);
-        assertThat(e).hasMessageThat().contains("Missing field: schemaType");
-
-        builder.setSchemaType("TestType");
-        e = expectThrows(IllegalSchemaException.class, builder::build);
-        assertThat(e).hasMessageThat().contains("Missing field: cardinality");
-
-        builder.setCardinality(PropertyConfig.CARDINALITY_REPEATED);
-        builder.build();
-    }
-
-    @Test
-    public void testDuplicateProperties() {
-        AppSearchSchema.Builder builder = AppSearchSchema.newBuilder("Email")
-                .addProperty(AppSearchSchema.newPropertyBuilder("subject")
-                        .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                        .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                        .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                        .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                        .build()
-                ).addProperty(AppSearchSchema.newPropertyBuilder("subject")
-                        .setDataType(PropertyConfig.DATA_TYPE_STRING)
-                        .setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
-                        .setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
-                        .setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
-                        .build()
-                );
-
-        Exception e = expectThrows(IllegalSchemaException.class, builder::build);
-        assertThat(e).hasMessageThat().contains("Property defined more than once: subject");
-    }
-}
diff --git a/core/tests/coretests/src/android/app/appsearch/SearchResultsTest.java b/core/tests/coretests/src/android/app/appsearch/SearchResultsTest.java
deleted file mode 100644
index 21259cc..0000000
--- a/core/tests/coretests/src/android/app/appsearch/SearchResultsTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import static  com.google.common.truth.Truth.assertThat;
-
-import static org.testng.Assert.assertThrows;
-
-import androidx.test.filters.SmallTest;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.SearchResultProto;
-
-import org.junit.Test;
-
-@SmallTest
-public class SearchResultsTest {
-
-    @Test
-    public void testSearchResultsEqual() {
-        final String uri = "testUri";
-        final String schemaType = "testSchema";
-        SearchResultProto.ResultProto result1 = SearchResultProto.ResultProto.newBuilder()
-                .setDocument(DocumentProto.newBuilder()
-                        .setUri(uri)
-                        .setSchema(schemaType)
-                        .build())
-                .build();
-        SearchResultProto searchResults1 = SearchResultProto.newBuilder()
-                .addResults(result1)
-                .build();
-        SearchResults res1 = new SearchResults(searchResults1);
-        SearchResultProto.ResultProto result2 = SearchResultProto.ResultProto.newBuilder()
-                .setDocument(DocumentProto.newBuilder()
-                        .setUri(uri)
-                        .setSchema(schemaType)
-                        .build())
-                .build();
-        SearchResultProto searchResults2 = SearchResultProto.newBuilder()
-                .addResults(result2)
-                .build();
-        SearchResults res2 = new SearchResults(searchResults2);
-        assertThat(res1.toString()).isEqualTo(res2.toString());
-    }
-
-    @Test
-    public void buildSearchSpecWithoutTermMatchType() {
-        assertThrows(RuntimeException.class, () -> SearchSpec.newBuilder()
-                .setSchemaTypes("testSchemaType")
-                .build());
-    }
-}
diff --git a/core/tests/coretests/src/android/app/appsearch/SnippetTest.java b/core/tests/coretests/src/android/app/appsearch/SnippetTest.java
deleted file mode 100644
index 3103708..0000000
--- a/core/tests/coretests/src/android/app/appsearch/SnippetTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import androidx.test.filters.SmallTest;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.PropertyProto;
-import com.google.android.icing.proto.SearchResultProto;
-import com.google.android.icing.proto.SnippetMatchProto;
-import com.google.android.icing.proto.SnippetProto;
-
-import org.junit.Test;
-
-@SmallTest
-public class SnippetTest {
-
-    // TODO(sidchhabra): Add tests for Double and Long Snippets.
-    @Test
-    public void testSingleStringSnippet() {
-
-        final String propertyKeyString = "content";
-        final String propertyValueString = "A commonly used fake word is foo.\n"
-                + "   Another nonsense word that’s used a lot\n"
-                + "   is bar.\n";
-        final String uri = "uri1";
-        final String schemaType = "schema1";
-        final String searchWord = "foo";
-        final String exactMatch = "foo";
-        final String window = "is foo";
-
-        // Building the SearchResult received from query.
-        PropertyProto property = PropertyProto.newBuilder()
-                .setName(propertyKeyString)
-                .addStringValues(propertyValueString)
-                .build();
-        DocumentProto documentProto = DocumentProto.newBuilder()
-                .setUri(uri)
-                .setSchema(schemaType)
-                .addProperties(property)
-                .build();
-        SnippetProto snippetProto = SnippetProto.newBuilder()
-                .addEntries(SnippetProto.EntryProto.newBuilder()
-                        .setPropertyName(propertyKeyString)
-                        .addSnippetMatches(SnippetMatchProto.newBuilder()
-                                .setValuesIndex(0)
-                                .setExactMatchPosition(29)
-                                .setExactMatchBytes(3)
-                                .setWindowPosition(26)
-                                .setWindowBytes(6)
-                                .build())
-                        .build())
-                .build();
-        SearchResultProto.ResultProto resultProto = SearchResultProto.ResultProto.newBuilder()
-                .setDocument(documentProto)
-                .setSnippet(snippetProto)
-                .build();
-        SearchResultProto searchResultProto = SearchResultProto.newBuilder()
-                .addResults(resultProto)
-                .build();
-        SearchResults searchResults = new SearchResults(searchResultProto);
-
-        // Making ResultReader and getting Snippet values.
-        while (searchResults.hasNext()) {
-            SearchResults.Result result = searchResults.next();
-            MatchInfo match = result.getMatchInfo().get(0);
-            assertThat(match.getPropertyPath()).isEqualTo(propertyKeyString);
-            assertThat(match.getFullText()).isEqualTo(propertyValueString);
-            assertThat(match.getExactMatch()).isEqualTo(exactMatch);
-            assertThat(match.getSnippet()).isEqualTo(window);
-        }
-    }
-
-    // TODO(sidchhabra): Add tests for Double and Long Snippets.
-    @Test
-    public void testNoSnippets() {
-
-        final String propertyKeyString = "content";
-        final String propertyValueString = "A commonly used fake word is foo.\n"
-                + "   Another nonsense word that’s used a lot\n"
-                + "   is bar.\n";
-        final String uri = "uri1";
-        final String schemaType = "schema1";
-        final String searchWord = "foo";
-        final String exactMatch = "foo";
-        final String window = "is foo";
-
-        // Building the SearchResult received from query.
-        PropertyProto property = PropertyProto.newBuilder()
-                .setName(propertyKeyString)
-                .addStringValues(propertyValueString)
-                .build();
-        DocumentProto documentProto = DocumentProto.newBuilder()
-                .setUri(uri)
-                .setSchema(schemaType)
-                .addProperties(property)
-                .build();
-        SearchResultProto.ResultProto resultProto = SearchResultProto.ResultProto.newBuilder()
-                .setDocument(documentProto)
-                .build();
-        SearchResultProto searchResultProto = SearchResultProto.newBuilder()
-                .addResults(resultProto)
-                .build();
-        SearchResults searchResults = new SearchResults(searchResultProto);
-
-        while (searchResults.hasNext()) {
-            SearchResults.Result result = searchResults.next();
-            assertThat(result.getMatchInfo()).isEqualTo(null);
-        }
-    }
-
-    @Test
-    public void testMultipleStringSnippet() {
-        final String searchWord = "Test";
-
-        // Building the SearchResult received from query.
-        PropertyProto property1 = PropertyProto.newBuilder()
-                .setName("sender.name")
-                .addStringValues("Test Name Jr.")
-                .build();
-        PropertyProto property2 = PropertyProto.newBuilder()
-                .setName("sender.email")
-                .addStringValues("TestNameJr@gmail.com")
-                .build();
-        DocumentProto documentProto = DocumentProto.newBuilder()
-                .setUri("uri1")
-                .setSchema("schema1")
-                .addProperties(property1)
-                .addProperties(property2)
-                .build();
-        SnippetProto snippetProto = SnippetProto.newBuilder()
-                .addEntries(
-                        SnippetProto.EntryProto.newBuilder()
-                                .setPropertyName("sender.name")
-                                .addSnippetMatches(
-                                        SnippetMatchProto.newBuilder()
-                                                .setValuesIndex(0)
-                                                .setExactMatchPosition(0)
-                                                .setExactMatchBytes(4)
-                                                .setWindowPosition(0)
-                                                .setWindowBytes(9)
-                                                .build())
-                                .build())
-                .addEntries(
-                        SnippetProto.EntryProto.newBuilder()
-                                .setPropertyName("sender.email")
-                                .addSnippetMatches(
-                                        SnippetMatchProto.newBuilder()
-                                                .setValuesIndex(0)
-                                                .setExactMatchPosition(0)
-                                                .setExactMatchBytes(20)
-                                                .setWindowPosition(0)
-                                                .setWindowBytes(20)
-                                                .build())
-                                .build()
-                )
-                .build();
-        SearchResultProto.ResultProto resultProto = SearchResultProto.ResultProto.newBuilder()
-                .setDocument(documentProto)
-                .setSnippet(snippetProto)
-                .build();
-        SearchResultProto searchResultProto = SearchResultProto.newBuilder()
-                .addResults(resultProto)
-                .build();
-        SearchResults searchResults = new SearchResults(searchResultProto);
-
-        // Making ResultReader and getting Snippet values.
-        while (searchResults.hasNext()) {
-            SearchResults.Result result = searchResults.next();
-
-            MatchInfo match1 = result.getMatchInfo().get(0);
-            assertThat(match1.getPropertyPath()).isEqualTo("sender.name");
-            assertThat(match1.getFullText()).isEqualTo("Test Name Jr.");
-            assertThat(match1.getExactMatch()).isEqualTo("Test");
-            assertThat(match1.getSnippet()).isEqualTo("Test Name");
-
-            MatchInfo match2 = result.getMatchInfo().get(1);
-            assertThat(match2.getPropertyPath()).isEqualTo("sender.email");
-            assertThat(match2.getFullText()).isEqualTo("TestNameJr@gmail.com");
-            assertThat(match2.getExactMatch()).isEqualTo("TestNameJr@gmail.com");
-            assertThat(match2.getSnippet()).isEqualTo("TestNameJr@gmail.com");
-        }
-    }
-}
diff --git a/core/tests/coretests/src/android/app/appsearch/impl/CustomerDocumentTest.java b/core/tests/coretests/src/android/app/appsearch/impl/CustomerDocumentTest.java
deleted file mode 100644
index b29483c..0000000
--- a/core/tests/coretests/src/android/app/appsearch/impl/CustomerDocumentTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.appsearch.impl;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.annotation.NonNull;
-import android.app.appsearch.AppSearchDocument;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Test;
-
-/**
- * Tests that {@link AppSearchDocument} and {@link AppSearchDocument.Builder} are extendable by
- * developers.
- *
- * <p>This class is intentionally in a different package than {@link AppSearchDocument} to make sure
- * there are no package-private methods required for external developers to add custom types.
- */
-@SmallTest
-public class CustomerDocumentTest {
-
-    private static byte[] sByteArray1 = new byte[]{(byte) 1, (byte) 2, (byte) 3};
-    private static byte[] sByteArray2 = new byte[]{(byte) 4, (byte) 5, (byte) 6};
-    private static AppSearchDocument sDocumentProperties1 = new AppSearchDocument
-            .Builder("sDocumentProperties1", "sDocumentPropertiesSchemaType1")
-            .build();
-    private static AppSearchDocument sDocumentProperties2 = new AppSearchDocument
-            .Builder("sDocumentProperties2", "sDocumentPropertiesSchemaType2")
-            .build();
-
-    @Test
-    public void testBuildCustomerDocument() {
-        CustomerDocument customerDocument = new CustomerDocument.Builder("uri1")
-                .setScore(1)
-                .setCreationTimestampMillis(0)
-                .setProperty("longKey1", 1L, 2L, 3L)
-                .setProperty("doubleKey1", 1.0, 2.0, 3.0)
-                .setProperty("booleanKey1", true, false, true)
-                .setProperty("stringKey1", "test-value1", "test-value2", "test-value3")
-                .setProperty("byteKey1", sByteArray1, sByteArray2)
-                .setProperty("documentKey1", sDocumentProperties1, sDocumentProperties2)
-                .build();
-
-        assertThat(customerDocument.getUri()).isEqualTo("uri1");
-        assertThat(customerDocument.getSchemaType()).isEqualTo("customerDocument");
-        assertThat(customerDocument.getScore()).isEqualTo(1);
-        assertThat(customerDocument.getCreationTimestampMillis()).isEqualTo(0L);
-        assertThat(customerDocument.getPropertyLongArray("longKey1")).asList()
-                .containsExactly(1L, 2L, 3L);
-        assertThat(customerDocument.getPropertyDoubleArray("doubleKey1")).usingExactEquality()
-                .containsExactly(1.0, 2.0, 3.0);
-        assertThat(customerDocument.getPropertyBooleanArray("booleanKey1")).asList()
-                .containsExactly(true, false, true);
-        assertThat(customerDocument.getPropertyStringArray("stringKey1")).asList()
-                .containsExactly("test-value1", "test-value2", "test-value3");
-        assertThat(customerDocument.getPropertyBytesArray("byteKey1")).asList()
-                .containsExactly(sByteArray1, sByteArray2);
-        assertThat(customerDocument.getPropertyDocumentArray("documentKey1")).asList()
-                .containsExactly(sDocumentProperties1, sDocumentProperties2);
-    }
-
-    /**
-     * An example document type for test purposes, defined outside of
-     * {@link android.app.appsearch.AppSearch} (the way an external developer would define it).
-     */
-    private static class CustomerDocument extends AppSearchDocument {
-        private CustomerDocument(AppSearchDocument document) {
-            super(document);
-        }
-
-        public static class Builder extends AppSearchDocument.Builder<CustomerDocument.Builder> {
-            private Builder(@NonNull String uri) {
-                super(uri, "customerDocument");
-            }
-
-            @Override
-            public CustomerDocument build() {
-                return new CustomerDocument(super.build());
-            }
-        }
-    }
-}
diff --git a/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java b/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java
index 4c2ca7e..13000e9 100644
--- a/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java
+++ b/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java
@@ -284,12 +284,7 @@
         }
 
         @Override
-        public void loadAvailableControls(Consumer<List<Control>> cb) {
-            cb.accept(mControls);
-        }
-
-        @Override
-        public Publisher<Control> publisherFor(List<String> ids) {
+        public Publisher<Control> createPublisherForAllAvailable() {
             return new Publisher<Control>() {
                 public void subscribe(final Subscriber s) {
                     s.onSubscribe(createSubscription(s, mControls));
@@ -298,7 +293,16 @@
         }
 
         @Override
-        public Publisher<Control> publisherForSuggested() {
+        public Publisher<Control> createPublisherFor(List<String> ids) {
+            return new Publisher<Control>() {
+                public void subscribe(final Subscriber s) {
+                    s.onSubscribe(createSubscription(s, mControls));
+                }
+            };
+        }
+
+        @Override
+        public Publisher<Control> createPublisherForSuggested() {
             return new Publisher<Control>() {
                 public void subscribe(final Subscriber s) {
                     s.onSubscribe(createSubscription(s, mControls));
diff --git a/core/tests/coretests/src/android/util/apk/SourceStampVerifierTest.java b/core/tests/coretests/src/android/util/apk/SourceStampVerifierTest.java
new file mode 100644
index 0000000..44f6407
--- /dev/null
+++ b/core/tests/coretests/src/android/util/apk/SourceStampVerifierTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2020 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.util.apk;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.security.MessageDigest;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+/** Unit test for {@link android.util.apk.SourceStampVerifier} */
+@RunWith(JUnit4.class)
+public class SourceStampVerifierTest {
+
+    private final Context mContext =
+            InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+    @Test
+    public void testSourceStamp_noStamp() throws Exception {
+        File testApk = getApk("SourceStampVerifierTest/original.apk");
+
+        SourceStampVerificationResult result =
+                SourceStampVerifier.verify(testApk.getAbsolutePath());
+
+        assertFalse(result.isPresent());
+        assertFalse(result.isVerified());
+        assertNull(result.getCertificate());
+    }
+
+    @Test
+    public void testSourceStamp_correctSignature() throws Exception {
+        File testApk = getApk("SourceStampVerifierTest/valid-stamp.apk");
+        ZipFile apkZipFile = new ZipFile(testApk);
+        ZipEntry stampCertZipEntry = apkZipFile.getEntry("stamp-cert-sha256");
+        int size = (int) stampCertZipEntry.getSize();
+        byte[] expectedStampCertHash = new byte[size];
+        try (InputStream inputStream = apkZipFile.getInputStream(stampCertZipEntry)) {
+            inputStream.read(expectedStampCertHash);
+        }
+
+        SourceStampVerificationResult result =
+                SourceStampVerifier.verify(testApk.getAbsolutePath());
+
+        assertTrue(result.isPresent());
+        assertTrue(result.isVerified());
+        assertNotNull(result.getCertificate());
+        byte[] actualStampCertHash =
+                MessageDigest.getInstance("SHA-256").digest(result.getCertificate().getEncoded());
+        assertArrayEquals(expectedStampCertHash, actualStampCertHash);
+    }
+
+    @Test
+    public void testSourceStamp_signatureMissing() throws Exception {
+        File testApk = getApk("SourceStampVerifierTest/stamp-without-block.apk");
+
+        SourceStampVerificationResult result =
+                SourceStampVerifier.verify(testApk.getAbsolutePath());
+
+        assertTrue(result.isPresent());
+        assertFalse(result.isVerified());
+        assertNull(result.getCertificate());
+    }
+
+    @Test
+    public void testSourceStamp_certificateMismatch() throws Exception {
+        File testApk = getApk("SourceStampVerifierTest/stamp-certificate-mismatch.apk");
+
+        SourceStampVerificationResult result =
+                SourceStampVerifier.verify(testApk.getAbsolutePath());
+
+        assertTrue(result.isPresent());
+        assertFalse(result.isVerified());
+        assertNull(result.getCertificate());
+    }
+
+    @Test
+    public void testSourceStamp_apkHashMismatch() throws Exception {
+        File testApk = getApk("SourceStampVerifierTest/stamp-apk-hash-mismatch.apk");
+
+        SourceStampVerificationResult result =
+                SourceStampVerifier.verify(testApk.getAbsolutePath());
+
+        assertTrue(result.isPresent());
+        assertFalse(result.isVerified());
+        assertNull(result.getCertificate());
+    }
+
+    @Test
+    public void testSourceStamp_malformedSignature() throws Exception {
+        File testApk = getApk("SourceStampVerifierTest/stamp-malformed-signature.apk");
+
+        SourceStampVerificationResult result =
+                SourceStampVerifier.verify(testApk.getAbsolutePath());
+
+        assertTrue(result.isPresent());
+        assertFalse(result.isVerified());
+        assertNull(result.getCertificate());
+    }
+
+    private File getApk(String apkPath) throws IOException {
+        File testApk = File.createTempFile("SourceStampApk", ".apk");
+        try (InputStream inputStream = mContext.getAssets().open(apkPath)) {
+            Files.copy(inputStream, testApk.toPath(), REPLACE_EXISTING);
+        }
+        return testApk;
+    }
+}
diff --git a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
index aa5101e..50cd5a3 100644
--- a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
+++ b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
@@ -123,7 +123,7 @@
         mController = new InsetsAnimationControlImpl(controls,
                 new Rect(0, 0, 500, 500), mInsetsState, mMockListener, systemBars(),
                 mMockController, 10 /* durationMs */, new LinearInterpolator(),
-                false /* fade */, LAYOUT_INSETS_DURING_ANIMATION_SHOWN);
+                false /* fade */, LAYOUT_INSETS_DURING_ANIMATION_SHOWN, 0 /* animationType */);
     }
 
     @Test
diff --git a/core/tests/coretests/src/android/view/InsetsStateTest.java b/core/tests/coretests/src/android/view/InsetsStateTest.java
index 79ac2b7..1d8e0a3 100644
--- a/core/tests/coretests/src/android/view/InsetsStateTest.java
+++ b/core/tests/coretests/src/android/view/InsetsStateTest.java
@@ -72,8 +72,8 @@
             mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
             mState.getSource(ITYPE_IME).setVisible(true);
             SparseIntArray typeSideMap = new SparseIntArray();
-            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
-                    DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, typeSideMap);
+            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
+                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, typeSideMap);
             assertEquals(Insets.of(0, 100, 0, 100), insets.getSystemWindowInsets());
             assertEquals(Insets.of(0, 100, 0, 100), insets.getInsets(Type.all()));
             assertEquals(ISIDE_TOP, typeSideMap.get(ITYPE_STATUS_BAR));
@@ -91,8 +91,8 @@
             mState.getSource(ITYPE_NAVIGATION_BAR).setVisible(true);
             mState.getSource(ITYPE_IME).setFrame(new Rect(0, 100, 100, 300));
             mState.getSource(ITYPE_IME).setVisible(true);
-            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
-                    DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, null);
+            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
+                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, null);
             assertEquals(100, insets.getStableInsetBottom());
             assertEquals(Insets.of(0, 0, 0, 100), insets.getInsetsIgnoringVisibility(Type.systemBars()));
             assertEquals(Insets.of(0, 0, 0, 200), insets.getSystemWindowInsets());
@@ -110,8 +110,8 @@
             mState.getSource(ITYPE_STATUS_BAR).setVisible(true);
             mState.getSource(ITYPE_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
             mState.getSource(ITYPE_NAVIGATION_BAR).setVisible(true);
-            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
-                    DisplayCutout.NO_CUTOUT, null, null, 0, 0, null);
+            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
+                    false, DisplayCutout.NO_CUTOUT, null, null, 0, 0, null);
             assertEquals(Insets.of(0, 100, 20, 0), insets.getSystemWindowInsets());
             assertEquals(Insets.of(0, 100, 0, 0), insets.getInsets(Type.statusBars()));
             assertEquals(Insets.of(0, 0, 20, 0), insets.getInsets(Type.navigationBars()));
@@ -126,8 +126,8 @@
             mState.getSource(ITYPE_STATUS_BAR).setVisible(true);
             mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
             mState.getSource(ITYPE_IME).setVisible(true);
-            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
-                    DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING, 0, null);
+            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
+                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING, 0, null);
             assertEquals(0, insets.getSystemWindowInsetBottom());
             assertEquals(100, insets.getInsets(ime()).bottom);
             assertTrue(insets.isVisible(ime()));
@@ -142,11 +142,11 @@
             mState.getSource(ITYPE_STATUS_BAR).setVisible(false);
             mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
             mState.getSource(ITYPE_IME).setVisible(true);
-            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
-                    DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING,
+            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
+                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING,
                     SYSTEM_UI_FLAG_LAYOUT_STABLE, null);
             assertEquals(100, insets.getSystemWindowInsetTop());
-            insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
+            insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false, false,
                     DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING,
                     0 /* legacySystemUiFlags */, null);
             assertEquals(0, insets.getSystemWindowInsetTop());
@@ -160,7 +160,7 @@
         mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
         mState.getSource(ITYPE_IME).setVisible(true);
         mState.removeSource(ITYPE_IME);
-        WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
+        WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false, false,
                 DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, null);
         assertEquals(0, insets.getSystemWindowInsetBottom());
     }
diff --git a/core/tests/coretests/src/android/view/PendingInsetsControllerTest.java b/core/tests/coretests/src/android/view/PendingInsetsControllerTest.java
new file mode 100644
index 0000000..9787b77
--- /dev/null
+++ b/core/tests/coretests/src/android/view/PendingInsetsControllerTest.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2020 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 android.view.WindowInsets.Type.navigationBars;
+import static android.view.WindowInsets.Type.systemBars;
+import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS;
+import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
+
+import android.os.CancellationSignal;
+import android.platform.test.annotations.Presubmit;
+import android.view.animation.LinearInterpolator;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import androidx.test.runner.AndroidJUnit4;
+
+/**
+ * Tests for {@link PendingInsetsControllerTest}.
+ *
+ * <p>Build/Install/Run:
+ *  atest FrameworksCoreTests:PendingInsetsControllerTest
+ *
+ * <p>This test class is a part of Window Manager Service tests and specified in
+ * {@link com.android.server.wm.test.filters.FrameworksTestsFilter}.
+ */
+@Presubmit
+@RunWith(AndroidJUnit4.class)
+public class PendingInsetsControllerTest {
+
+    private PendingInsetsController mPendingInsetsController = new PendingInsetsController();
+    private InsetsController mReplayedController;
+
+    @Before
+    public void setUp() {
+        mPendingInsetsController = new PendingInsetsController();
+        mReplayedController = mock(InsetsController.class);
+    }
+
+    @Test
+    public void testShow() {
+        mPendingInsetsController.show(systemBars());
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        verify(mReplayedController).show(eq(systemBars()));
+    }
+
+    @Test
+    public void testShow_direct() {
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        mPendingInsetsController.show(systemBars());
+        verify(mReplayedController).show(eq(systemBars()));
+    }
+
+    @Test
+    public void testHide() {
+        mPendingInsetsController.hide(systemBars());
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        verify(mReplayedController).hide(eq(systemBars()));
+    }
+
+    @Test
+    public void testHide_direct() {
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        mPendingInsetsController.hide(systemBars());
+        verify(mReplayedController).hide(eq(systemBars()));
+    }
+
+    @Test
+    public void testControl() {
+        WindowInsetsAnimationControlListener listener =
+                mock(WindowInsetsAnimationControlListener.class);
+        CancellationSignal signal = mPendingInsetsController.controlWindowInsetsAnimation(
+                systemBars(), 0, new LinearInterpolator(), listener);
+        verify(listener).onCancelled();
+        assertTrue(signal.isCanceled());
+    }
+
+    @Test
+    public void testControl_direct() {
+        WindowInsetsAnimationControlListener listener =
+                mock(WindowInsetsAnimationControlListener.class);
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        mPendingInsetsController.controlWindowInsetsAnimation(
+                systemBars(), 0L, new LinearInterpolator(), listener);
+        verify(mReplayedController).controlWindowInsetsAnimation(eq(systemBars()), eq(0L), any(),
+                eq(listener));
+    }
+
+    @Test
+    public void testBehavior() {
+        mPendingInsetsController.setSystemBarsBehavior(BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        verify(mReplayedController).setSystemBarsBehavior(
+                eq(BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE));
+    }
+
+    @Test
+    public void testBehavior_direct() {
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        mPendingInsetsController.setSystemBarsBehavior(BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
+        verify(mReplayedController).setSystemBarsBehavior(
+                eq(BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE));
+    }
+
+    @Test
+    public void testBehavior_direct_get() {
+        when(mReplayedController.getSystemBarsBehavior())
+                .thenReturn(BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        assertEquals(mPendingInsetsController.getSystemBarsBehavior(),
+                BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
+    }
+
+    @Test
+    public void testAppearance() {
+        mPendingInsetsController.setSystemBarsAppearance(
+                APPEARANCE_LIGHT_STATUS_BARS, APPEARANCE_LIGHT_STATUS_BARS);
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        verify(mReplayedController).setSystemBarsAppearance(eq(APPEARANCE_LIGHT_STATUS_BARS),
+                eq(APPEARANCE_LIGHT_STATUS_BARS));
+    }
+
+    @Test
+    public void testAppearance_direct() {
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        mPendingInsetsController.setSystemBarsAppearance(
+                APPEARANCE_LIGHT_STATUS_BARS, APPEARANCE_LIGHT_STATUS_BARS);
+        verify(mReplayedController).setSystemBarsAppearance(eq(APPEARANCE_LIGHT_STATUS_BARS),
+                eq(APPEARANCE_LIGHT_STATUS_BARS));
+    }
+
+    @Test
+    public void testAppearance_direct_get() {
+        when(mReplayedController.getSystemBarsAppearance())
+                .thenReturn(APPEARANCE_LIGHT_STATUS_BARS);
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        assertEquals(mPendingInsetsController.getSystemBarsAppearance(),
+                APPEARANCE_LIGHT_STATUS_BARS);
+    }
+
+    @Test
+    public void testReplayTwice() {
+        mPendingInsetsController.show(systemBars());
+        mPendingInsetsController.setSystemBarsBehavior(BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
+        mPendingInsetsController.setSystemBarsAppearance(APPEARANCE_LIGHT_STATUS_BARS,
+                APPEARANCE_LIGHT_STATUS_BARS);
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        InsetsController secondController = mock(InsetsController.class);
+        mPendingInsetsController.replayAndAttach(secondController);
+        verify(mReplayedController).show(eq(systemBars()));
+        verifyZeroInteractions(secondController);
+    }
+
+    @Test
+    public void testDetachReattach() {
+        mPendingInsetsController.show(systemBars());
+        mPendingInsetsController.setSystemBarsBehavior(BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
+        mPendingInsetsController.setSystemBarsAppearance(APPEARANCE_LIGHT_STATUS_BARS,
+                APPEARANCE_LIGHT_STATUS_BARS);
+        mPendingInsetsController.replayAndAttach(mReplayedController);
+        mPendingInsetsController.detach();
+        mPendingInsetsController.show(navigationBars());
+        InsetsController secondController = mock(InsetsController.class);
+        mPendingInsetsController.replayAndAttach(secondController);
+
+        verify(mReplayedController).show(eq(systemBars()));
+        verify(secondController).show(eq(navigationBars()));
+    }
+}
diff --git a/core/tests/coretests/src/android/view/ViewRootImplTest.java b/core/tests/coretests/src/android/view/ViewRootImplTest.java
index e2adbcc..0d497e1 100644
--- a/core/tests/coretests/src/android/view/ViewRootImplTest.java
+++ b/core/tests/coretests/src/android/view/ViewRootImplTest.java
@@ -16,9 +16,13 @@
 
 package android.view;
 
+import static android.view.View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
 import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
 import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
-import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+import static android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+import static android.view.View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
+import static android.view.View.SYSTEM_UI_FLAG_LOW_PROFILE;
+import static android.view.WindowInsetsController.BEHAVIOR_SHOW_BARS_BY_TOUCH;
 import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
@@ -102,79 +106,129 @@
     }
 
     @Test
-    public void adjustLayoutParamsForInsets_layoutFullscreen() {
+    public void adjustLayoutParamsForCompatibility_layoutFullscreen() {
         assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
 
         final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
         attrs.systemUiVisibility = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
         ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
 
+        // Type.statusBars() must be removed.
         assertEquals(0, attrs.getFitInsetsTypes() & Type.statusBars());
     }
 
     @Test
-    public void adjustLayoutParamsForInsets_layoutInScreen() {
+    public void adjustLayoutParamsForCompatibility_layoutInScreen() {
         assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
 
         final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
         attrs.flags = FLAG_LAYOUT_IN_SCREEN;
         ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
 
+        // Type.statusBars() must be removed.
         assertEquals(0, attrs.getFitInsetsTypes() & Type.statusBars());
     }
 
     @Test
-    public void adjustLayoutParamsForInsets_layoutHideNavigation() {
+    public void adjustLayoutParamsForCompatibility_layoutHideNavigation() {
         assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
 
         final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
         attrs.systemUiVisibility = SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
         ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
 
+        // Type.systemBars() must be removed.
         assertEquals(0, attrs.getFitInsetsTypes() & Type.systemBars());
     }
 
     @Test
-    public void adjustLayoutParamsForInsets_toast() {
+    public void adjustLayoutParamsForCompatibility_toast() {
         assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
 
         final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_TOAST);
         ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
 
-        assertEquals(Type.systemBars(), attrs.getFitInsetsTypes() & Type.systemBars());
         assertEquals(true, attrs.isFitInsetsIgnoringVisibility());
     }
 
     @Test
-    public void adjustLayoutParamsForInsets_systemAlert() {
+    public void adjustLayoutParamsForCompatibility_systemAlert() {
         assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
 
         final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_SYSTEM_ALERT);
         ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
 
-        assertEquals(Type.systemBars(), attrs.getFitInsetsTypes() & Type.systemBars());
         assertEquals(true, attrs.isFitInsetsIgnoringVisibility());
     }
 
     @Test
-    public void adjustLayoutParamsForInsets_noAdjust() {
+    public void adjustLayoutParamsForCompatibility_fitSystemBars() {
+        assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
+
+        final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
+        ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
+
+        // A window which fits system bars must fit IME, unless its type is toast or system alert.
+        assertEquals(Type.systemBars() | Type.ime(), attrs.getFitInsetsTypes());
+    }
+
+    @Test
+    public void adjustLayoutParamsForCompatibility_noAdjustLayout() {
         assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
 
         final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
         final int types = Type.all();
         final int sides = Side.TOP | Side.LEFT;
         final boolean fitMaxInsets = true;
-        attrs.flags = FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+        attrs.systemUiVisibility = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
         attrs.setFitInsetsTypes(types);
         attrs.setFitInsetsSides(sides);
         attrs.setFitInsetsIgnoringVisibility(fitMaxInsets);
         ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
 
+        // Fit-insets related fields must not be adjusted due to legacy system UI visibility
+        // after calling fit-insets related methods.
         assertEquals(types, attrs.getFitInsetsTypes());
         assertEquals(sides, attrs.getFitInsetsSides());
         assertEquals(fitMaxInsets, attrs.isFitInsetsIgnoringVisibility());
     }
 
+    @Test
+    public void adjustLayoutParamsForCompatibility_noAdjustAppearance() {
+        assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
+
+        final ViewRootImpl viewRoot = mViewRootImpl.get();
+        final WindowInsetsController controller = viewRoot.getInsetsController();
+        final WindowManager.LayoutParams attrs = viewRoot.mWindowAttributes;
+        final int appearance = 0;
+        controller.setSystemBarsAppearance(appearance, 0xffffffff);
+        attrs.systemUiVisibility = SYSTEM_UI_FLAG_LOW_PROFILE
+                | SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
+                | SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+        ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
+
+        // Appearance must not be adjusted due to legacy system UI visibility after calling
+        // setSystemBarsAppearance.
+        assertEquals(appearance, controller.getSystemBarsAppearance());
+    }
+
+    @Test
+    public void adjustLayoutParamsForCompatibility_noAdjustBehavior() {
+        assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
+
+        final ViewRootImpl viewRoot = mViewRootImpl.get();
+        final WindowInsetsController controller = viewRoot.getInsetsController();
+        final WindowManager.LayoutParams attrs = viewRoot.mWindowAttributes;
+        final int behavior = BEHAVIOR_SHOW_BARS_BY_TOUCH;
+        controller.setSystemBarsBehavior(behavior);
+        attrs.systemUiVisibility = SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
+        ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
+
+        // Behavior must not be adjusted due to legacy system UI visibility after calling
+        // setSystemBarsBehavior.
+        assertEquals(behavior, controller.getSystemBarsBehavior());
+    }
+
     private static class ViewRootImplAccessor {
 
         private final ViewRootImpl mViewRootImpl;
diff --git a/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java b/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
index 75a7504..12f67a6 100644
--- a/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
+++ b/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
@@ -156,7 +156,9 @@
         return -1;
     }
 
-    public void takeScreenshot(int displayId, RemoteCallback callback) {}
+    public boolean takeScreenshot(int displayId, RemoteCallback callback) {
+        return false;
+    }
 
     public void setTouchExplorationPassthroughRegion(int displayId, Region region) {}
 
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index 78c7b76d..afa58d5 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -228,6 +228,9 @@
         <permission name="android.permission.INTERACT_ACROSS_USERS"/>
         <permission name="android.permission.MODIFY_PHONE_STATE"/>
         <permission name="android.permission.USE_RESERVED_DISK"/>
+        <!-- Permissions required for reading and logging compat changes -->
+        <permission name="android.permission.LOG_COMPAT_CHANGE" />
+        <permission name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
     </privapp-permissions>
 
     <privapp-permissions package="com.android.networkstack">
@@ -330,6 +333,7 @@
         <!-- Needed for test only -->
         <permission name="android.permission.READ_PRECISE_PHONE_STATE" />
         <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
+        <permission name="android.permission.READ_WIFI_CREDENTIAL"/>
         <permission name="android.permission.REAL_GET_TASKS"/>
         <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
         <permission name="android.permission.REGISTER_CALL_PROVIDER"/>
@@ -386,6 +390,10 @@
         <permission name="android.permission.ACCESS_VIBRATOR_STATE"/>
         <!-- Permission required for UsageStatsTest CTS test. -->
         <permission name="android.permission.MANAGE_NOTIFICATIONS"/>
+        <!-- Permission required for CompanionDeviceManager CTS test. -->
+        <permission name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS" />
+        <!-- Permission required for testing registering pull atom callbacks. -->
+        <permission name="android.permission.REGISTER_STATS_PULL_ATOM"/>
     </privapp-permissions>
 
     <privapp-permissions package="com.android.statementservice">
@@ -416,4 +424,8 @@
         <permission name="android.permission.INSTALL_DYNAMIC_SYSTEM"/>
         <permission name="android.permission.BIND_CELL_BROADCAST_SERVICE"/>
     </privapp-permissions>
+
+    <privapp-permissions package="com.android.bips">
+        <permission name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"/>
+    </privapp-permissions>
 </permissions>
diff --git a/data/fonts/fonts.xml b/data/fonts/fonts.xml
index c692097..4c214b5 100644
--- a/data/fonts/fonts.xml
+++ b/data/fonts/fonts.xml
@@ -149,11 +149,30 @@
         <font weight="700" style="normal" fallbackFor="serif">NotoSerifArmenian-Bold.otf</font>
     </family>
     <family lang="und-Geor,und-Geok">
-        <font weight="400" style="normal">NotoSansGeorgian-Regular.otf</font>
-        <font weight="500" style="normal">NotoSansGeorgian-Medium.otf</font>
-        <font weight="700" style="normal">NotoSansGeorgian-Bold.otf</font>
-        <font weight="400" style="normal" fallbackFor="serif">NotoSerifGeorgian-Regular.otf</font>
-        <font weight="700" style="normal" fallbackFor="serif">NotoSerifGeorgian-Bold.otf</font>
+        <font weight="400" style="normal">NotoSansGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="400" />
+        </font>
+        <font weight="500" style="normal">NotoSansGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="500" />
+        </font>
+        <font weight="600" style="normal">NotoSansGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="600" />
+        </font>
+        <font weight="700" style="normal">NotoSansGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="700" />
+        </font>
+        <font weight="400" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="400" />
+        </font>
+        <font weight="500" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="500" />
+        </font>
+        <font weight="600" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="600" />
+        </font>
+        <font weight="700" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+            <axis tag="wght" stylevalue="700" />
+        </font>
     </family>
     <family lang="und-Deva" variant="elegant">
         <font weight="400" style="normal">NotoSansDevanagari-Regular.otf</font>
@@ -346,7 +365,18 @@
         <font weight="400" style="normal">NotoSansAhom-Regular.otf</font>
     </family>
     <family lang="und-Adlm">
-        <font weight="400" style="normal">NotoSansAdlam-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansAdlam-VF.ttf
+            <axis tag="wght" stylevalue="400" />
+        </font>
+        <font weight="500" style="normal">NotoSansAdlam-VF.ttf
+            <axis tag="wght" stylevalue="500" />
+        </font>
+        <font weight="600" style="normal">NotoSansAdlam-VF.ttf
+            <axis tag="wght" stylevalue="600" />
+        </font>
+        <font weight="700" style="normal">NotoSansAdlam-VF.ttf
+            <axis tag="wght" stylevalue="700" />
+        </font>
     </family>
     <family lang="und-Avst">
         <font weight="400" style="normal">NotoSansAvestan-Regular.ttf</font>
@@ -534,7 +564,7 @@
         <font weight="700" style="normal">NotoSansTibetan-Bold.ttf</font>
     </family>
     <family lang="und-Tfng">
-        <font weight="400" style="normal">NotoSansTifinagh-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansTifinagh-Regular.otf</font>
     </family>
     <family lang="und-Ugar">
         <font weight="400" style="normal">NotoSansUgaritic-Regular.ttf</font>
@@ -643,4 +673,22 @@
     <family lang="und-Sora">
         <font weight="400" style="normal">NotoSansSoraSompeng-Regular.otf</font>
     </family>
+    <family lang="und-Gong">
+        <font weight="400" style="normal">NotoSansGunjalaGondi-Regular.otf</font>
+    </family>
+    <family lang="und-Rohg">
+        <font weight="400" style="normal">NotoSansHanifiRohingya-Regular.otf</font>
+    </family>
+    <family lang="und-Khoj">
+        <font weight="400" style="normal">NotoSansKhojki-Regular.otf</font>
+    </family>
+    <family lang="und-Gonm">
+        <font weight="400" style="normal">NotoSansMasaramGondi-Regular.otf</font>
+    </family>
+    <family lang="und-Wcho">
+        <font weight="400" style="normal">NotoSansWancho-Regular.otf</font>
+    </family>
+    <family lang="und-Wara">
+        <font weight="400" style="normal">NotoSansWarangCiti-Regular.otf</font>
+    </family>
 </familyset>
diff --git a/data/keyboards/Vendor_057e_Product_2009.kl b/data/keyboards/Vendor_057e_Product_2009.kl
index b36e946..3c6b11e 100644
--- a/data/keyboards/Vendor_057e_Product_2009.kl
+++ b/data/keyboards/Vendor_057e_Product_2009.kl
@@ -19,25 +19,25 @@
 
 # Mapping according to https://developer.android.com/training/game-controllers/controller-input.html
 
-# Button labeled as "Y" but should really produce keycode "X"
-key 0x132    BUTTON_X
 # Button labeled as "B" but should really produce keycode "A"
 key 0x130    BUTTON_A
 # Button labeled as "A" but should really produce keycode "B"
 key 0x131    BUTTON_B
 # Button labeled as "X" but should really product keycode "Y"
 key 0x133    BUTTON_Y
+# Button labeled as "Y" but should really produce keycode "X"
+key 0x134    BUTTON_X
 
 # Button labeled as "L"
-key 0x134    BUTTON_L1
+key 0x136    BUTTON_L1
 # Button labeled as "R"
-key 0x135    BUTTON_R1
+key 0x137    BUTTON_R1
 
 # No LT / RT axes on this controller. Instead, there are keys.
 # Trigger labeled as "ZL"
-key 0x136    BUTTON_L2
+key 0x138    BUTTON_L2
 # Trigger labeled as "ZR"
-key 0x137    BUTTON_R2
+key 0x139    BUTTON_R2
 
 # Left Analog Stick
 axis 0x00    X
@@ -47,22 +47,30 @@
 axis 0x04    RZ
 
 # Left stick click (generates linux BTN_SELECT)
-key 0x13a    BUTTON_THUMBL
+key 0x13d    BUTTON_THUMBL
 # Right stick click (generates linux BTN_START)
-key 0x13b    BUTTON_THUMBR
+key 0x13e    BUTTON_THUMBR
 
-# Hat
+# Currently, the dpad produces key events
+key 0x220 DPAD_UP
+key 0x221 DPAD_DOWN
+key 0x222 DPAD_LEFT
+key 0x223 DPAD_RIGHT
+
+# Hat - currently not being produced by hid-nintendo, but an upcoming patch set will change the behaviour.
+# Keep these mappings in anticipation of that change
 axis 0x10    HAT_X
 axis 0x11    HAT_Y
 
 # Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt
 # Minus
-key 0x138    BUTTON_SELECT
+key 0x13a    BUTTON_SELECT
+
 # Plus
-key 0x139    BUTTON_START
+key 0x13b    BUTTON_START
 
 # Circle
-key 0x13d    BUTTON_MODE
+key 0x135    BUTTON_MODE
 
 # Home key
 key 0x13c    HOME
diff --git a/graphics/java/android/graphics/fonts/Font.java b/graphics/java/android/graphics/fonts/Font.java
index 853165d..b09082e 100644
--- a/graphics/java/android/graphics/fonts/Font.java
+++ b/graphics/java/android/graphics/fonts/Font.java
@@ -19,6 +19,7 @@
 import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.content.res.AssetFileDescriptor;
 import android.content.res.AssetManager;
 import android.content.res.Resources;
 import android.os.LocaleList;
@@ -219,6 +220,27 @@
             Preconditions.checkNotNull(am, "assetManager can not be null");
             Preconditions.checkNotNull(path, "path can not be null");
 
+            // Attempt to open as FD, which should work unless the asset is compressed
+            AssetFileDescriptor assetFD;
+            try {
+                if (isAsset) {
+                    assetFD = am.openFd(path);
+                } else if (cookie > 0) {
+                    assetFD = am.openNonAssetFd(cookie, path);
+                } else {
+                    assetFD = am.openNonAssetFd(path);
+                }
+
+                try (FileInputStream fis = assetFD.createInputStream()) {
+                    final FileChannel fc = fis.getChannel();
+                    long startOffset = assetFD.getStartOffset();
+                    long declaredLength = assetFD.getDeclaredLength();
+                    return fc.map(FileChannel.MapMode.READ_ONLY, startOffset, declaredLength);
+                }
+            } catch (IOException e) {
+                // failed to open as FD so now we will attempt to open as an input stream
+            }
+
             try (InputStream assetStream = isAsset ? am.open(path, AssetManager.ACCESS_BUFFER)
                     : am.openNonAsset(cookie, path, AssetManager.ACCESS_BUFFER)) {
 
diff --git a/keystore/java/android/security/keystore/AttestationUtils.java b/keystore/java/android/security/keystore/AttestationUtils.java
index 8a7b623..f82d8b6 100644
--- a/keystore/java/android/security/keystore/AttestationUtils.java
+++ b/keystore/java/android/security/keystore/AttestationUtils.java
@@ -74,7 +74,8 @@
     public static final int ID_TYPE_MEID = 3;
 
     /**
-     * Specifies that the device should attest its MEIDs. For use with {@link #attestDeviceIds}.
+     * Specifies that the device should sign the attestation record using its device-unique
+     * attestation certificate. For use with {@link #attestDeviceIds}.
      *
      * @see #attestDeviceIds
      */
diff --git a/location/java/android/location/GnssNavigationMessage.java b/location/java/android/location/GnssNavigationMessage.java
index ca0bfb1..27d3637 100644
--- a/location/java/android/location/GnssNavigationMessage.java
+++ b/location/java/android/location/GnssNavigationMessage.java
@@ -272,6 +272,14 @@
      * range of 1-12</li>
      * <li> For Galileo I/NAV nominal frame structure, this refers to the subframe number in the
      * range of 1-24</li>
+     * <li> For SBAS and Beidou CNAV2, this is unused and can be set to -1.</li>
+     * <li> For QZSS L1 C/A subframe 4 and 5, this value corresponds to the 'frame id' of the
+     * navigation message, in the range of 1-25 (Subframe 1, 2, 3 does not contain a 'frame id' and
+     * this value can be set to -1.)</li>
+     * <li> For Beidou CNAV1 this refers to the page type number in the range of 1-63.</li>
+     * <li> For IRNSS L5 C/A subframe 3 and 4, this value corresponds to the Message Id of the
+     * navigation message, in the range of 1-63. (Subframe 1 and 2 does not contain a message type
+     * id and this value can be set to -1.)</li>
      * </ul>
      */
     public int getMessageId() {
@@ -299,6 +307,13 @@
      * <li>For Galileo in particular, the type information embedded within the data bits may be even
      * more useful in interpretation, than the nominal page and word types provided in this
      * field.</li>
+     * <li> For SBAS, the submessage id corresponds to the message type, in the range 1-63.</li>
+     * <li> For Beidou CNAV1, the submessage id corresponds to the subframe number of the
+     * navigation message, in the range of 1-3.</li>
+     * <li> For Beidou CNAV2, the submessage id corresponds to the message type, in the range
+     * 1-63.</li>
+     * <li> For IRNSS L5 C/A, the submessage id corresponds to the subframe number of the
+     * navigation message, in the range of 1-4.</li>
      * </ul>
      */
     public int getSubmessageId() {
@@ -333,6 +348,13 @@
      * <li>For Galileo I/NAV, each page contains 2 page parts, even and odd, with a total of 2x114 =
      * 228 bits, (sync &amp; tail excluded) that should be fit into 29 bytes, with MSB first (skip
      * B229-B232).</li>
+     * <li>For SBAS, each block consists of 250 data bits, that should be fit into 32 bytes.  MSB
+     * first (skip B251-B256).</li>
+     * <li>For Beidou CNAV1, subframe #1 consists of 14 data bits, that should be fit into 2
+     * bytes. MSB first (skip B15-B16).  subframe #2 consists of 600 bits that should be fit into
+     * 75 bytes. subframe #3 consists of 264 data bits that should be fit into 33 bytes.</li>
+     * <li>For Beidou CNAV2, each subframe consists of 288 data bits, that should be fit into 36
+     * bytes.</li>
      * </ul>
      */
     @NonNull
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java
index 6028a8a..e230917 100644
--- a/location/java/android/location/LocationManager.java
+++ b/location/java/android/location/LocationManager.java
@@ -2562,22 +2562,28 @@
             mRemoteCancellationSignal = remoteCancellationSignal;
         }
 
-        public synchronized void cancel() {
-            mExecutor = null;
-            mConsumer = null;
+        public void cancel() {
+            ICancellationSignal cancellationSignal;
+            synchronized (this) {
+                mExecutor = null;
+                mConsumer = null;
 
-            if (mAlarmManager != null) {
-                mAlarmManager.cancel(this);
-                mAlarmManager = null;
+                if (mAlarmManager != null) {
+                    mAlarmManager.cancel(this);
+                    mAlarmManager = null;
+                }
+
+                // ensure only one cancel event will go through
+                cancellationSignal = mRemoteCancellationSignal;
+                mRemoteCancellationSignal = null;
             }
 
-            if (mRemoteCancellationSignal != null) {
+            if (cancellationSignal != null) {
                 try {
-                    mRemoteCancellationSignal.cancel();
+                    cancellationSignal.cancel();
                 } catch (RemoteException e) {
                     // ignore
                 }
-                mRemoteCancellationSignal = null;
             }
         }
 
diff --git a/media/java/android/media/MediaMuxer.java b/media/java/android/media/MediaMuxer.java
index 58c73b5..bbd7399 100644
--- a/media/java/android/media/MediaMuxer.java
+++ b/media/java/android/media/MediaMuxer.java
@@ -654,6 +654,13 @@
      * the right tracks. Also, it needs to make sure the samples for each track
      * are written in chronological order (e.g. in the order they are provided
      * by the encoder.)</p>
+     * <p> For MPEG4 media format, the duration of the last sample in a track can be set by passing
+     * an additional empty buffer(bufferInfo.size = 0) with MediaCodec.BUFFER_FLAG_END_OF_STREAM
+     * flag and a suitable presentation timestamp set in bufferInfo parameter as the last sample of
+     * that track.  This last sample's presentation timestamp shall be a sum of the presentation
+     * timestamp and the duration preferred for the original last sample.  If no explicit
+     * END_OF_STREAM sample was passed, then the duration of the last sample would be the same as
+     * that of the sample before that.</p>
      * @param byteBuf The encoded sample.
      * @param trackIndex The track index for this sample.
      * @param bufferInfo The buffer information related to this sample.
diff --git a/media/java/android/media/MediaPlayer.java b/media/java/android/media/MediaPlayer.java
index 2d820e7..49e4160 100644
--- a/media/java/android/media/MediaPlayer.java
+++ b/media/java/android/media/MediaPlayer.java
@@ -1105,7 +1105,6 @@
             setDataSource(afd);
             return true;
         } catch (NullPointerException | SecurityException | IOException ex) {
-            Log.w(TAG, "Couldn't open " + (uri == null ? "null uri" : uri.toSafeString()), ex);
             return false;
         }
     }
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java
index 3410919..fd24089 100644
--- a/media/java/android/media/MediaRouter2.java
+++ b/media/java/android/media/MediaRouter2.java
@@ -749,7 +749,7 @@
     /**
      * Callback for receiving events about media route discovery.
      */
-    public static class RouteCallback {
+    public abstract static class RouteCallback {
         /**
          * Called when routes are added. Whenever you registers a callback, this will
          * be invoked with known routes.
@@ -777,7 +777,7 @@
     /**
      * Callback for receiving events on media transfer.
      */
-    public static class TransferCallback {
+    public abstract static class TransferCallback {
         /**
          * Called when a media is transferred between two different routing controllers.
          * This can happen by calling {@link #transferTo(MediaRoute2Info)} or
@@ -826,7 +826,7 @@
     /**
      * Callback for receiving {@link RoutingController} updates.
      */
-    public static class ControllerCallback {
+    public abstract static class ControllerCallback {
         /**
          * Called when a controller is updated. (e.g., the selected routes of the
          * controller is changed or the volume of the controller is changed.)
@@ -1071,7 +1071,7 @@
                 try {
                     mMediaRouterService.deselectRouteWithRouter2(stub, getId(), route);
                 } catch (RemoteException ex) {
-                    Log.e(TAG, "Unable to remove route from session.", ex);
+                    Log.e(TAG, "Unable to deselect route from session.", ex);
                 }
             }
         }
diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java
index ff2c863..734d78e 100644
--- a/media/java/android/media/MediaRouter2Manager.java
+++ b/media/java/android/media/MediaRouter2Manager.java
@@ -44,8 +44,10 @@
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.Executor;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 /**
+ * A class that monitors and controls media routing of other apps.
  * @hide
  */
 public class MediaRouter2Manager {
@@ -201,10 +203,24 @@
     }
 
     /**
+     * Gets the system routing session associated with no specific application.
+     */
+    @NonNull
+    public RoutingSessionInfo getSystemRoutingSession() {
+        for (RoutingSessionInfo sessionInfo : getActiveSessions()) {
+            if (sessionInfo.isSystemSession()) {
+                return sessionInfo;
+            }
+        }
+        throw new IllegalStateException("No system routing session");
+    }
+
+    /**
      * Gets routing sessions of an application with the given package name.
-     * The first element of the returned list is the system routing controller.
+     * The first element of the returned list is the system routing session.
      *
-     * @see MediaRouter2#getSystemController()
+     * @param packageName the package name of the application that is routing.
+     * @see #getSystemRoutingSession()
      */
     @NonNull
     public List<RoutingSessionInfo> getRoutingSessions(@NonNull String packageName) {
@@ -213,8 +229,11 @@
         List<RoutingSessionInfo> sessions = new ArrayList<>();
 
         for (RoutingSessionInfo sessionInfo : getActiveSessions()) {
-            if (sessionInfo.isSystemSession()
-                    || TextUtils.equals(sessionInfo.getClientPackageName(), packageName)) {
+            if (sessionInfo.isSystemSession()) {
+                sessions.add(new RoutingSessionInfo.Builder(sessionInfo)
+                        .setClientPackageName(packageName)
+                        .build());
+            } else if (TextUtils.equals(sessionInfo.getClientPackageName(), packageName)) {
                 sessions.add(sessionInfo);
             }
         }
@@ -223,10 +242,15 @@
 
     /**
      * Gets the list of all active routing sessions.
+     * <p>
      * The first element of the list is the system routing session containing
      * phone speakers, wired headset, Bluetooth devices.
      * The system routing session is shared by apps such that controlling it will affect
      * all apps.
+     * If you want to transfer media of an application, use {@link #getRoutingSessions(String)}.
+     *
+     * @see #getRoutingSessions(String)
+     * @see #getSystemRoutingSession()
      */
     @NonNull
     public List<RoutingSessionInfo> getActiveSessions() {
@@ -258,31 +282,46 @@
 
     /**
      * Selects media route for the specified package name.
-     *
-     * If the given route is {@link RoutingController#getTransferableRoutes() a transferable
-     * route} of a routing session of the application, the session will be transferred to
-     * the route. If not, a new routing session will be created.
-     *
-     * @param packageName the package name of the application that should change it's media route
-     * @param route the route to be selected.
      */
     public void selectRoute(@NonNull String packageName, @NonNull MediaRoute2Info route) {
         Objects.requireNonNull(packageName, "packageName must not be null");
         Objects.requireNonNull(route, "route must not be null");
 
-        boolean transferred = false;
-        //TODO: instead of release all controllers, add an API to specify controllers that
-        // should be released (or is the system controller).
-        for (RoutingSessionInfo sessionInfo : getRoutingSessions(packageName)) {
-            if (!transferred && sessionInfo.getTransferableRoutes().contains(route.getId())) {
-                new RoutingController(sessionInfo).transferToRoute(route);
-                transferred = true;
-            } else if (!sessionInfo.isSystemSession()) {
-                new RoutingController(sessionInfo).release();
-            }
+        List<RoutingSessionInfo> sessionInfos = getRoutingSessions(packageName);
+        RoutingSessionInfo targetSession = sessionInfos.get(sessionInfos.size() - 1);
+        transfer(targetSession, route);
+    }
+
+    /**
+     * Transfers a routing session to a media route.
+     * <p>{@link Callback#onTransferred} or {@link Callback#onTransferFailed} will be called
+     * depending on the result.
+     *
+     * @param sessionInfo the routing session info to transfer
+     * @param route the route transfer to
+     *
+     * @see Callback#onTransferred(RoutingSessionInfo, RoutingSessionInfo)
+     * @see Callback#onTransferFailed(RoutingSessionInfo, MediaRoute2Info)
+     */
+    public void transfer(@NonNull RoutingSessionInfo sessionInfo,
+            @Nullable MediaRoute2Info route) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+
+        if (route == null) {
+            releaseSession(sessionInfo);
+            return;
         }
 
-        if (transferred) {
+        //TODO: Ignore unknown route.
+        if (sessionInfo.getTransferableRoutes().contains(route.getId())) {
+            //TODO: callbacks must be called after this.
+            transferToRoute(sessionInfo, route);
+            return;
+        }
+
+        if (TextUtils.isEmpty(sessionInfo.getClientPackageName())) {
+            Log.w(TAG, "transfer: Ignoring transfer without package name.");
+            notifyTransferFailed(sessionInfo, route);
             return;
         }
 
@@ -294,8 +333,8 @@
             try {
                 int requestId = mNextRequestId.getAndIncrement();
                 mMediaRouterService.requestCreateSessionWithManager(
-                        client, packageName, route, requestId);
-                //TODO: release the previous session?
+                        client, sessionInfo.getClientPackageName(), route, requestId);
+                releaseSession(sessionInfo);
             } catch (RemoteException ex) {
                 Log.e(TAG, "Unable to select media route", ex);
             }
@@ -451,6 +490,18 @@
         }
     }
 
+    void notifyTransferred(RoutingSessionInfo oldSession, RoutingSessionInfo newSession) {
+        for (CallbackRecord record : mCallbackRecords) {
+            record.mExecutor.execute(() -> record.mCallback.onTransferred(oldSession, newSession));
+        }
+    }
+
+    void notifyTransferFailed(RoutingSessionInfo sessionInfo, MediaRoute2Info route) {
+        for (CallbackRecord record : mCallbackRecords) {
+            record.mExecutor.execute(() -> record.mCallback.onTransferFailed(sessionInfo, route));
+        }
+    }
+
     void updatePreferredFeatures(String packageName, List<String> preferredFeatures) {
         List<String> prevFeatures = mPreferredFeaturesMap.put(packageName, preferredFeatures);
         if ((prevFeatures == null && preferredFeatures.size() == 0)
@@ -475,6 +526,204 @@
     }
 
     /**
+     * Gets the unmodifiable list of selected routes for the session.
+     */
+    @NonNull
+    public List<MediaRoute2Info> getSelectedRoutes(@NonNull RoutingSessionInfo sessionInfo) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+
+        List<String> routeIds = sessionInfo.getSelectedRoutes();
+        return getRoutesWithIds(routeIds);
+    }
+
+    /**
+     * Gets the unmodifiable list of selectable routes for the session.
+     */
+    @NonNull
+    public List<MediaRoute2Info> getSelectableRoutes(@NonNull RoutingSessionInfo sessionInfo) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+
+        List<String> routeIds = sessionInfo.getSelectableRoutes();
+        return getRoutesWithIds(routeIds);
+    }
+
+    /**
+     * Gets the unmodifiable list of deselectable routes for the session.
+     */
+    @NonNull
+    public List<MediaRoute2Info> getDeselectableRoutes(@NonNull RoutingSessionInfo sessionInfo) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+
+        List<String> routeIds = sessionInfo.getDeselectableRoutes();
+        return getRoutesWithIds(routeIds);
+    }
+
+    /**
+     * Selects a route for the remote session. After a route is selected, the media is expected
+     * to be played to the all the selected routes. This is different from {@link
+     * #transfer(RoutingSessionInfo, MediaRoute2Info)} transferring to a route},
+     * where the media is expected to 'move' from one route to another.
+     * <p>
+     * The given route must satisfy all of the following conditions:
+     * <ul>
+     * <li>it should not be included in {@link #getSelectedRoutes(RoutingSessionInfo)}</li>
+     * <li>it should be included in {@link #getSelectableRoutes(RoutingSessionInfo)}</li>
+     * </ul>
+     * If the route doesn't meet any of above conditions, it will be ignored.
+     *
+     * @see #getSelectedRoutes(RoutingSessionInfo)
+     * @see #getSelectableRoutes(RoutingSessionInfo)
+     * @see Callback#onSessionsUpdated()
+     */
+    public void selectRoute(@NonNull RoutingSessionInfo sessionInfo,
+            @NonNull MediaRoute2Info route) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+        Objects.requireNonNull(route, "route must not be null");
+
+        if (sessionInfo.getSelectedRoutes().contains(route.getId())) {
+            Log.w(TAG, "Ignoring selecting a route that is already selected. route=" + route);
+            return;
+        }
+
+        if (!sessionInfo.getSelectableRoutes().contains(route.getId())) {
+            Log.w(TAG, "Ignoring selecting a non-selectable route=" + route);
+            return;
+        }
+
+        Client client;
+        synchronized (sLock) {
+            client = mClient;
+        }
+        if (client != null) {
+            try {
+                int requestId = mNextRequestId.getAndIncrement();
+                mMediaRouterService.selectRouteWithManager(
+                        mClient, sessionInfo.getId(), route, requestId);
+            } catch (RemoteException ex) {
+                Log.e(TAG, "selectRoute: Failed to send a request.", ex);
+            }
+        }
+    }
+
+    /**
+     * Deselects a route from the remote session. After a route is deselected, the media is
+     * expected to be stopped on the deselected routes.
+     * <p>
+     * The given route must satisfy all of the following conditions:
+     * <ul>
+     * <li>it should be included in {@link #getSelectedRoutes(RoutingSessionInfo)}</li>
+     * <li>it should be included in {@link #getDeselectableRoutes(RoutingSessionInfo)}</li>
+     * </ul>
+     * If the route doesn't meet any of above conditions, it will be ignored.
+     *
+     * @see #getSelectedRoutes(RoutingSessionInfo)
+     * @see #getDeselectableRoutes(RoutingSessionInfo)
+     * @see Callback#onSessionsUpdated()
+     */
+    public void deselectRoute(@NonNull RoutingSessionInfo sessionInfo,
+            @NonNull MediaRoute2Info route) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+        Objects.requireNonNull(route, "route must not be null");
+
+        if (!sessionInfo.getSelectedRoutes().contains(route.getId())) {
+            Log.w(TAG, "Ignoring deselecting a route that is not selected. route=" + route);
+            return;
+        }
+
+        if (!sessionInfo.getDeselectableRoutes().contains(route.getId())) {
+            Log.w(TAG, "Ignoring deselecting a non-deselectable route=" + route);
+            return;
+        }
+
+        Client client;
+        synchronized (sLock) {
+            client = mClient;
+        }
+        if (client != null) {
+            try {
+                int requestId = mNextRequestId.getAndIncrement();
+                mMediaRouterService.deselectRouteWithManager(
+                        mClient, sessionInfo.getId(), route, requestId);
+            } catch (RemoteException ex) {
+                Log.e(TAG, "deselectRoute: Failed to send a request.", ex);
+            }
+        }
+    }
+
+    /**
+     * Transfers to a given route for the remote session.
+     *
+     * @hide
+     */
+    void transferToRoute(@NonNull RoutingSessionInfo sessionInfo,
+            @NonNull MediaRoute2Info route) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+        Objects.requireNonNull(route, "route must not be null");
+
+        if (sessionInfo.getSelectedRoutes().contains(route.getId())) {
+            Log.w(TAG, "Ignoring transferring to a route that is already added. route="
+                    + route);
+            return;
+        }
+
+        if (!sessionInfo.getTransferableRoutes().contains(route.getId())) {
+            Log.w(TAG, "Ignoring transferring to a non-transferable route=" + route);
+            return;
+        }
+
+        Client client;
+        synchronized (sLock) {
+            client = mClient;
+        }
+        if (client != null) {
+            try {
+                int requestId = mNextRequestId.getAndIncrement();
+                mMediaRouterService.transferToRouteWithManager(
+                        mClient, sessionInfo.getId(), route, requestId);
+            } catch (RemoteException ex) {
+                Log.e(TAG, "transferToRoute: Failed to send a request.", ex);
+            }
+        }
+    }
+
+    /**
+     * Requests releasing a session.
+     * <p>
+     * If a session is released, any operation on the session will be ignored.
+     * {@link Callback#onTransferred(RoutingSessionInfo, RoutingSessionInfo)} with {@code null}
+     * session will be called when the session is released.
+     * </p>
+     *
+     * @see Callback#onTransferred(RoutingSessionInfo, RoutingSessionInfo)
+     */
+    public void releaseSession(@NonNull RoutingSessionInfo sessionInfo) {
+        Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
+
+        Client client;
+        synchronized (sLock) {
+            client = mClient;
+        }
+        if (client != null) {
+            try {
+                int requestId = mNextRequestId.getAndIncrement();
+                mMediaRouterService.releaseSessionWithManager(
+                        mClient, sessionInfo.getId(), requestId);
+            } catch (RemoteException ex) {
+                Log.e(TAG, "releaseSession: Failed to send a request", ex);
+            }
+        }
+    }
+
+    private List<MediaRoute2Info> getRoutesWithIds(List<String> routeIds) {
+        synchronized (sLock) {
+            return routeIds.stream().map(mRoutes::get)
+                    .filter(Objects::nonNull)
+                    .collect(Collectors.toList());
+        }
+    }
+
+    //TODO: Remove this.
+    /**
      * A class to control media routing session in media route provider.
      * With routing controller, an application can select a route into the session or deselect
      * a route in the session.
@@ -489,6 +738,15 @@
         }
 
         /**
+         * Releases the session
+         */
+        public void release() {
+            synchronized (mControllerLock) {
+                releaseSession(mSessionInfo);
+            }
+        }
+
+        /**
          * Gets the ID of the session
          */
         @NonNull
@@ -523,11 +781,7 @@
          */
         @NonNull
         public List<MediaRoute2Info> getSelectedRoutes() {
-            List<String> routeIds;
-            synchronized (mControllerLock) {
-                routeIds = mSessionInfo.getSelectedRoutes();
-            }
-            return getRoutesWithIds(routeIds);
+            return MediaRouter2Manager.this.getSelectedRoutes(mSessionInfo);
         }
 
         /**
@@ -535,11 +789,7 @@
          */
         @NonNull
         public List<MediaRoute2Info> getSelectableRoutes() {
-            List<String> routeIds;
-            synchronized (mControllerLock) {
-                routeIds = mSessionInfo.getSelectableRoutes();
-            }
-            return getRoutesWithIds(routeIds);
+            return MediaRouter2Manager.this.getSelectableRoutes(mSessionInfo);
         }
 
         /**
@@ -547,11 +797,7 @@
          */
         @NonNull
         public List<MediaRoute2Info> getDeselectableRoutes() {
-            List<String> routeIds;
-            synchronized (mControllerLock) {
-                routeIds = mSessionInfo.getDeselectableRoutes();
-            }
-            return getRoutesWithIds(routeIds);
+            return MediaRouter2Manager.this.getDeselectableRoutes(mSessionInfo);
         }
 
         /**
@@ -579,35 +825,7 @@
          * @see #getSelectableRoutes()
          */
         public void selectRoute(@NonNull MediaRoute2Info route) {
-            Objects.requireNonNull(route, "route must not be null");
-
-            RoutingSessionInfo sessionInfo;
-            synchronized (mControllerLock) {
-                sessionInfo = mSessionInfo;
-            }
-            if (sessionInfo.getSelectedRoutes().contains(route.getId())) {
-                Log.w(TAG, "Ignoring selecting a route that is already selected. route=" + route);
-                return;
-            }
-
-            if (!sessionInfo.getSelectableRoutes().contains(route.getId())) {
-                Log.w(TAG, "Ignoring selecting a non-selectable route=" + route);
-                return;
-            }
-
-            Client client;
-            synchronized (sLock) {
-                client = mClient;
-            }
-            if (client != null) {
-                try {
-                    int requestId = mNextRequestId.getAndIncrement();
-                    mMediaRouterService.selectRouteWithManager(
-                            mClient, getSessionId(), route, requestId);
-                } catch (RemoteException ex) {
-                    Log.e(TAG, "Unable to select route for session.", ex);
-                }
-            }
+            MediaRouter2Manager.this.selectRoute(mSessionInfo, route);
         }
 
         /**
@@ -623,104 +841,19 @@
          * @see #getDeselectableRoutes()
          */
         public void deselectRoute(@NonNull MediaRoute2Info route) {
-            Objects.requireNonNull(route, "route must not be null");
-            RoutingSessionInfo sessionInfo;
-            synchronized (mControllerLock) {
-                sessionInfo = mSessionInfo;
-            }
-
-            if (!sessionInfo.getSelectedRoutes().contains(route.getId())) {
-                Log.w(TAG, "Ignoring deselecting a route that is not selected. route=" + route);
-                return;
-            }
-
-            if (!sessionInfo.getDeselectableRoutes().contains(route.getId())) {
-                Log.w(TAG, "Ignoring deselecting a non-deselectable route=" + route);
-                return;
-            }
-
-            Client client;
-            synchronized (sLock) {
-                client = mClient;
-            }
-            if (client != null) {
-                try {
-                    int requestId = mNextRequestId.getAndIncrement();
-                    mMediaRouterService.deselectRouteWithManager(
-                            mClient, getSessionId(), route, requestId);
-                } catch (RemoteException ex) {
-                    Log.e(TAG, "Unable to remove route from session.", ex);
-                }
-            }
+            MediaRouter2Manager.this.deselectRoute(mSessionInfo, route);
         }
 
         /**
-         * Transfers to a given route for the remote session. The given route must satisfy
-         * all of the following conditions:
-         * <ul>
-         * <li>ID should not be included in {@link #getSelectedRoutes()}</li>
-         * <li>ID should be included in {@link #getTransferableRoutes()}</li>
-         * </ul>
-         * If the route doesn't meet any of above conditions, it will be ignored.
-         *
-         * @see #getSelectedRoutes()
-         * @see #getTransferableRoutes()
+         * Transfers session to the given rotue.
          */
         public void transferToRoute(@NonNull MediaRoute2Info route) {
-            Objects.requireNonNull(route, "route must not be null");
-            RoutingSessionInfo sessionInfo;
-            synchronized (mControllerLock) {
-                sessionInfo = mSessionInfo;
-            }
-
-            if (sessionInfo.getSelectedRoutes().contains(route.getId())) {
-                Log.w(TAG, "Ignoring transferring to a route that is already added. route="
-                        + route);
-                return;
-            }
-
-            if (!sessionInfo.getTransferableRoutes().contains(route.getId())) {
-                Log.w(TAG, "Ignoring transferring to a non-transferable route=" + route);
-                return;
-            }
-
-            Client client;
-            synchronized (sLock) {
-                client = mClient;
-            }
-            if (client != null) {
-                try {
-                    int requestId = mNextRequestId.getAndIncrement();
-                    mMediaRouterService.transferToRouteWithManager(
-                            mClient, getSessionId(), route, requestId);
-                } catch (RemoteException ex) {
-                    Log.e(TAG, "Unable to transfer to route for session.", ex);
-                }
-            }
-        }
-
-        /**
-         * Release this session.
-         * Any operation on this session after calling this method will be ignored.
-         */
-        public void release() {
-            Client client;
-            synchronized (sLock) {
-                client = mClient;
-            }
-            if (client != null) {
-                try {
-                    int requestId = mNextRequestId.getAndIncrement();
-                    mMediaRouterService.releaseSessionWithManager(
-                            mClient, getSessionId(), requestId);
-                } catch (RemoteException ex) {
-                    Log.e(TAG, "Unable to notify of controller release", ex);
-                }
-            }
+            MediaRouter2Manager.this.transferToRoute(mSessionInfo, route);
         }
 
         /**
          * Gets the session info of the session
+         *
          * @hide
          */
         @NonNull
@@ -729,19 +862,6 @@
                 return mSessionInfo;
             }
         }
-
-        private List<MediaRoute2Info> getRoutesWithIds(List<String> routeIds) {
-            List<MediaRoute2Info> routes = new ArrayList<>();
-            synchronized (mRoutesLock) {
-                for (String routeId : routeIds) {
-                    MediaRoute2Info route = mRoutes.get(routeId);
-                    if (route != null) {
-                        routes.add(route);
-                    }
-                }
-            }
-            return Collections.unmodifiableList(routes);
-        }
     }
 
     /**
@@ -780,7 +900,24 @@
          */
         public void onSessionsUpdated() {}
 
-        //TODO: remove this
+        //TODO: Call this.
+        /**
+         * Called when media is transferred.
+         *
+         * @param oldSession the previous session
+         * @param newSession the new session or {@code null} if the session is released.
+         */
+        public void onTransferred(@NonNull RoutingSessionInfo oldSession,
+                @Nullable RoutingSessionInfo newSession) { }
+
+        //TODO: Call this.
+        /**
+         * Called when {@link #transfer(RoutingSessionInfo, MediaRoute2Info)} fails.
+         */
+        public void onTransferFailed(@NonNull RoutingSessionInfo session,
+                @NonNull MediaRoute2Info route) { }
+
+        //TODO: Remove this.
         /**
          * Called when the preferred route features of an app is changed.
          *
diff --git a/media/java/android/media/RoutingSessionInfo.java b/media/java/android/media/RoutingSessionInfo.java
index 19a46ce..ffb26fe 100644
--- a/media/java/android/media/RoutingSessionInfo.java
+++ b/media/java/android/media/RoutingSessionInfo.java
@@ -22,7 +22,6 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
-import android.util.Log;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -49,6 +48,7 @@
     private static final String TAG = "RoutingSessionInfo";
 
     final String mId;
+    final CharSequence mName;
     final String mClientPackageName;
     @Nullable
     final String mProviderId;
@@ -69,18 +69,14 @@
         Objects.requireNonNull(builder, "builder must not be null.");
 
         mId = builder.mId;
+        mName = builder.mName;
         mClientPackageName = builder.mClientPackageName;
         mProviderId = builder.mProviderId;
 
-        // TODO: Needs to check that the routes already have unique IDs.
-        mSelectedRoutes = Collections.unmodifiableList(
-                convertToUniqueRouteIds(builder.mSelectedRoutes));
-        mSelectableRoutes = Collections.unmodifiableList(
-                convertToUniqueRouteIds(builder.mSelectableRoutes));
-        mDeselectableRoutes = Collections.unmodifiableList(
-                convertToUniqueRouteIds(builder.mDeselectableRoutes));
-        mTransferableRoutes = Collections.unmodifiableList(
-                convertToUniqueRouteIds(builder.mTransferableRoutes));
+        mSelectedRoutes = Collections.unmodifiableList(builder.mSelectedRoutes);
+        mSelectableRoutes = Collections.unmodifiableList(builder.mSelectableRoutes);
+        mDeselectableRoutes = Collections.unmodifiableList(builder.mDeselectableRoutes);
+        mTransferableRoutes = Collections.unmodifiableList(builder.mTransferableRoutes);
 
         mVolumeHandling = builder.mVolumeHandling;
         mVolumeMax = builder.mVolumeMax;
@@ -94,6 +90,7 @@
         Objects.requireNonNull(src, "src must not be null.");
 
         mId = ensureString(src.readString());
+        mName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(src);
         mClientPackageName = ensureString(src.readString());
         mProviderId = src.readString();
 
@@ -111,10 +108,7 @@
     }
 
     private static String ensureString(String str) {
-        if (str != null) {
-            return str;
-        }
-        return "";
+        return str != null ? str : "";
     }
 
     private static <T> List<T> ensureList(List<? extends T> list) {
@@ -143,6 +137,14 @@
     }
 
     /**
+     * Gets the user-visible name of the session. It may be {@code null}.
+     */
+    @Nullable
+    public CharSequence getName() {
+        return mName;
+    }
+
+    /**
      * Gets the original id set by {@link Builder#Builder(String, String)}.
      * @hide
      */
@@ -169,7 +171,7 @@
     }
 
     /**
-     * Gets the list of ids of selected routes for the session. It shouldn't be empty.
+     * Gets the list of IDs of selected routes for the session. It shouldn't be empty.
      */
     @NonNull
     public List<String> getSelectedRoutes() {
@@ -177,7 +179,7 @@
     }
 
     /**
-     * Gets the list of ids of selectable routes for the session.
+     * Gets the list of IDs of selectable routes for the session.
      */
     @NonNull
     public List<String> getSelectableRoutes() {
@@ -185,7 +187,7 @@
     }
 
     /**
-     * Gets the list of ids of deselectable routes for the session.
+     * Gets the list of IDs of deselectable routes for the session.
      */
     @NonNull
     public List<String> getDeselectableRoutes() {
@@ -193,7 +195,7 @@
     }
 
     /**
-     * Gets the list of ids of transferable routes for the session.
+     * Gets the list of IDs of transferable routes for the session.
      */
     @NonNull
     public List<String> getTransferableRoutes() {
@@ -255,6 +257,7 @@
     @Override
     public void writeToParcel(@NonNull Parcel dest, int flags) {
         dest.writeString(mId);
+        dest.writeCharSequence(mName);
         dest.writeString(mClientPackageName);
         dest.writeString(mProviderId);
         dest.writeStringList(mSelectedRoutes);
@@ -279,6 +282,7 @@
 
         RoutingSessionInfo other = (RoutingSessionInfo) obj;
         return Objects.equals(mId, other.mId)
+                && Objects.equals(mName, other.mName)
                 && Objects.equals(mClientPackageName, other.mClientPackageName)
                 && Objects.equals(mProviderId, other.mProviderId)
                 && Objects.equals(mSelectedRoutes, other.mSelectedRoutes)
@@ -292,7 +296,7 @@
 
     @Override
     public int hashCode() {
-        return Objects.hash(mId, mClientPackageName, mProviderId,
+        return Objects.hash(mId, mName, mClientPackageName, mProviderId,
                 mSelectedRoutes, mSelectableRoutes, mDeselectableRoutes, mTransferableRoutes,
                 mVolumeMax, mVolumeHandling, mVolume);
     }
@@ -302,6 +306,7 @@
         StringBuilder result = new StringBuilder()
                 .append("RoutingSessionInfo{ ")
                 .append("sessionId=").append(mId)
+                .append(", name=").append(mName)
                 .append(", selectedRoutes={")
                 .append(String.join(",", mSelectedRoutes))
                 .append("}")
@@ -321,31 +326,14 @@
         return result.toString();
     }
 
-    private List<String> convertToUniqueRouteIds(@NonNull List<String> routeIds) {
-        if (routeIds == null) {
-            Log.w(TAG, "routeIds is null. Returning an empty list");
-            return Collections.emptyList();
-        }
-
-        // mProviderId can be null if not set. Return the original list for this case.
-        if (mProviderId == null) {
-            return routeIds;
-        }
-
-        List<String> result = new ArrayList<>();
-        for (String routeId : routeIds) {
-            result.add(MediaRouter2Utils.toUniqueId(mProviderId, routeId));
-        }
-        return result;
-    }
-
     /**
      * Builder class for {@link RoutingSessionInfo}.
      */
     public static final class Builder {
         // TODO: Reorder these (important ones first)
         final String mId;
-        final String mClientPackageName;
+        CharSequence mName;
+        String mClientPackageName;
         String mProviderId;
         final List<String> mSelectedRoutes;
         final List<String> mSelectableRoutes;
@@ -357,6 +345,7 @@
         Bundle mControlHints;
         boolean mIsSystemSession;
 
+        //TODO: Remove this.
         /**
          * Constructor for builder to create {@link RoutingSessionInfo}.
          * <p>
@@ -374,10 +363,10 @@
             if (TextUtils.isEmpty(id)) {
                 throw new IllegalArgumentException("id must not be empty");
             }
-            Objects.requireNonNull(clientPackageName, "clientPackageName must not be null");
 
             mId = id;
-            mClientPackageName = clientPackageName;
+            mClientPackageName =
+                    Objects.requireNonNull(clientPackageName, "clientPackageName must not be null");
             mSelectedRoutes = new ArrayList<>();
             mSelectableRoutes = new ArrayList<>();
             mDeselectableRoutes = new ArrayList<>();
@@ -394,6 +383,7 @@
             Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
 
             mId = sessionInfo.mId;
+            mName = sessionInfo.mName;
             mClientPackageName = sessionInfo.mClientPackageName;
             mProviderId = sessionInfo.mProviderId;
 
@@ -411,6 +401,26 @@
         }
 
         /**
+         * Sets the user-visible name of the session.
+         */
+        @NonNull
+        public Builder setName(@Nullable CharSequence name) {
+            mName = name;
+            return this;
+        }
+
+        /**
+         * Sets the client package name of the session.
+         *
+         * @hide
+         */
+        @NonNull
+        public Builder setClientPackageName(@Nullable String packageName) {
+            mClientPackageName = packageName;
+            return this;
+        }
+
+        /**
          * Sets the provider ID of the session.
          *
          * @hide
@@ -421,6 +431,12 @@
                 throw new IllegalArgumentException("providerId must not be empty");
             }
             mProviderId = providerId;
+
+            mSelectedRoutes.replaceAll(routeId -> getUniqueId(mProviderId, routeId));
+            mSelectableRoutes.replaceAll(routeId -> getUniqueId(mProviderId, routeId));
+            mDeselectableRoutes.replaceAll(routeId -> getUniqueId(mProviderId, routeId));
+            mTransferableRoutes.replaceAll(routeId -> getUniqueId(mProviderId, routeId));
+
             return this;
         }
 
@@ -441,7 +457,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mSelectedRoutes.add(routeId);
+            mSelectedRoutes.add(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -453,7 +469,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mSelectedRoutes.remove(routeId);
+            mSelectedRoutes.remove(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -474,7 +490,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mSelectableRoutes.add(routeId);
+            mSelectableRoutes.add(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -486,7 +502,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mSelectableRoutes.remove(routeId);
+            mSelectableRoutes.remove(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -507,7 +523,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mDeselectableRoutes.add(routeId);
+            mDeselectableRoutes.add(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -519,7 +535,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mDeselectableRoutes.remove(routeId);
+            mDeselectableRoutes.remove(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -540,7 +556,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mTransferableRoutes.add(routeId);
+            mTransferableRoutes.add(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -552,7 +568,7 @@
             if (TextUtils.isEmpty(routeId)) {
                 throw new IllegalArgumentException("routeId must not be empty");
             }
-            mTransferableRoutes.remove(routeId);
+            mTransferableRoutes.remove(getUniqueId(mProviderId, routeId));
             return this;
         }
 
@@ -618,4 +634,15 @@
             return new RoutingSessionInfo(this);
         }
     }
+
+    private static String getUniqueId(String providerId, String routeId) {
+        if (TextUtils.isEmpty(providerId)) {
+            return routeId;
+        }
+        String originalId = MediaRouter2Utils.getOriginalId(routeId);
+        if (originalId == null) {
+            originalId = routeId;
+        }
+        return MediaRouter2Utils.toUniqueId(providerId, originalId);
+    }
 }
diff --git a/media/java/android/media/session/ISessionManager.aidl b/media/java/android/media/session/ISessionManager.aidl
index c8502a5..6c1b2a6 100644
--- a/media/java/android/media/session/ISessionManager.aidl
+++ b/media/java/android/media/session/ISessionManager.aidl
@@ -73,4 +73,6 @@
     void setOnMediaKeyListener(in IOnMediaKeyListener listener);
 
     boolean isTrusted(String controllerPackageName, int controllerPid, int controllerUid);
+    void setCustomMediaKeyDispatcherForTesting(String name);
+    void setCustomSessionPolicyProviderForTesting(String name);
 }
diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java
index 486c0c2..8bf462c 100644
--- a/media/java/android/media/session/MediaSession.java
+++ b/media/java/android/media/session/MediaSession.java
@@ -196,7 +196,7 @@
                 .getSystemService(Context.MEDIA_SESSION_SERVICE);
         try {
             mBinder = manager.createSession(mCbStub, tag, sessionInfo);
-            mSessionToken = new Token(mBinder.getController());
+            mSessionToken = new Token(Process.myUid(), mBinder.getController());
             mController = new MediaController(context, mSessionToken);
         } catch (RemoteException e) {
             throw new RuntimeException("Remote error creating session.", e);
@@ -771,8 +771,8 @@
         /**
          * @hide
          */
-        public Token(ISessionController binder) {
-            mUid = Process.myUid();
+        public Token(int uid, ISessionController binder) {
+            mUid = uid;
             mBinder = binder;
         }
 
diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java
index 69be8b3..4d01301 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -45,6 +45,7 @@
 import android.view.KeyEvent;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -61,7 +62,8 @@
  * @see MediaSession
  * @see MediaController
  */
-// TODO: (jinpark) Add API for getting and setting session policies from MediaSessionService.
+// TODO: (jinpark) Add API for getting and setting session policies from MediaSessionService once
+//  b/149006225 is fixed.
 @SystemService(Context.MEDIA_SESSION_SERVICE)
 public final class MediaSessionManager {
     private static final String TAG = "SessionManager";
@@ -877,6 +879,40 @@
     }
 
     /**
+     * Set the component name for the custom
+     * {@link com.android.server.media.MediaKeyDispatcher} class. Set to null to restore to the
+     * custom {@link com.android.server.media.MediaKeyDispatcher} class name retrieved from the
+     * config value.
+     *
+     * @hide
+     */
+    @VisibleForTesting
+    public void setCustomMediaKeyDispatcherForTesting(@Nullable String name) {
+        try {
+            mService.setCustomMediaKeyDispatcherForTesting(name);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to set custom media key dispatcher name", e);
+        }
+    }
+
+    /**
+     * Set the component name for the custom
+     * {@link com.android.server.media.SessionPolicyProvider} class. Set to null to restore to the
+     * custom {@link com.android.server.media.SessionPolicyProvider} class name retrieved from the
+     * config value.
+     *
+     * @hide
+     */
+    @VisibleForTesting
+    public void setCustomSessionPolicyProviderForTesting(@Nullable String name) {
+        try {
+            mService.setCustomSessionPolicyProviderForTesting(name);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to set custom session policy provider name", e);
+        }
+    }
+
+    /**
      * Listens for changes to the list of active sessions. This can be added
      * using {@link #addOnActiveSessionsChangedListener}.
      */
diff --git a/media/java/android/media/soundtrigger_middleware/SoundModel.aidl b/media/java/android/media/soundtrigger_middleware/SoundModel.aidl
index fba1ee50..81d8291 100644
--- a/media/java/android/media/soundtrigger_middleware/SoundModel.aidl
+++ b/media/java/android/media/soundtrigger_middleware/SoundModel.aidl
@@ -32,5 +32,7 @@
      * was build for */
     String vendorUuid;
     /** Opaque data transparent to Android framework */
-    byte[] data;
+    FileDescriptor data;
+    /** Size of the above data, in bytes. */
+    int dataSize;
 }
diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java
index 6bf9e19..f058a02 100644
--- a/media/java/android/media/tv/TvInputManager.java
+++ b/media/java/android/media/tv/TvInputManager.java
@@ -16,6 +16,7 @@
 
 package android.media.tv;
 
+import android.annotation.CallbackExecutor;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -27,6 +28,7 @@
 import android.graphics.Rect;
 import android.media.PlaybackParams;
 import android.net.Uri;
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -56,6 +58,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.Executor;
 
 /**
  * Central system API to the overall TV input framework (TIF) architecture, which arbitrates
@@ -1743,8 +1746,8 @@
      * <p>Otherwise default priority will be applied.
      *
      * @param deviceId The device ID to acquire Hardware for.
-     * @param callback A callback to receive updates on Hardware.
      * @param info The TV input which will use the acquired Hardware.
+     * @param callback A callback to receive updates on Hardware.
      * @return Hardware on success, {@code null} otherwise.
      *
      * @hide
@@ -1755,8 +1758,12 @@
             @NonNull final HardwareCallback callback) {
         Preconditions.checkNotNull(info);
         Preconditions.checkNotNull(callback);
-        return acquireTvInputHardwareInternal(deviceId, info, callback, null,
-                TvInputService.PRIORITY_HINT_USE_CASE_TYPE_LIVE);
+        return acquireTvInputHardwareInternal(deviceId, info, null,
+                TvInputService.PRIORITY_HINT_USE_CASE_TYPE_LIVE, new Executor() {
+                    public void execute(Runnable r) {
+                        r.run();
+                    }
+                }, callback);
     }
 
     /**
@@ -1767,12 +1774,13 @@
      * request.
      *
      * @param deviceId The device ID to acquire Hardware for.
-     * @param callback A callback to receive updates on Hardware.
      * @param info The TV input which will use the acquired Hardware.
      * @param tvInputSessionId a String returned to TIS when the session was created.
      *        {@see TvInputService#onCreateSession(String, String)}. If null, the client will be
      *        treated as a background app.
      * @param priorityHint The use case of the client. {@see TvInputService#PriorityHintUseCaseType}
+     * @param executor the executor on which the listener would be invoked.
+     * @param callback A callback to receive updates on Hardware.
      * @return Hardware on success, {@code null} otherwise. When the TRM decides to not grant
      *         resource, null is returned and the {@link IllegalStateException} is thrown with
      *         "No enough resources".
@@ -1783,28 +1791,40 @@
     @Nullable
     @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE)
     public Hardware acquireTvInputHardware(int deviceId, @NonNull TvInputInfo info,
-            @NonNull final HardwareCallback callback,
             @Nullable String tvInputSessionId,
-            @TvInputService.PriorityHintUseCaseType int priorityHint) {
+            @TvInputService.PriorityHintUseCaseType int priorityHint,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull final HardwareCallback callback) {
         Preconditions.checkNotNull(info);
         Preconditions.checkNotNull(callback);
-        return acquireTvInputHardwareInternal(deviceId, info, callback,
-                tvInputSessionId, priorityHint);
+        return acquireTvInputHardwareInternal(deviceId, info, tvInputSessionId, priorityHint,
+                executor, callback);
     }
 
     private Hardware acquireTvInputHardwareInternal(int deviceId, TvInputInfo info,
-             final HardwareCallback callback, String tvInputSessionId, int priorityHint) {
+            String tvInputSessionId, int priorityHint,
+            Executor executor, final HardwareCallback callback) {
         try {
             return new Hardware(
                     mService.acquireTvInputHardware(deviceId, new ITvInputHardwareCallback.Stub() {
                 @Override
                 public void onReleased() {
-                    callback.onReleased();
+                            final long identity = Binder.clearCallingIdentity();
+                            try {
+                                executor.execute(() -> callback.onReleased());
+                            } finally {
+                                Binder.restoreCallingIdentity(identity);
+                            }
                 }
 
                 @Override
                 public void onStreamConfigChanged(TvStreamConfig[] configs) {
-                    callback.onStreamConfigChanged(configs);
+                            final long identity = Binder.clearCallingIdentity();
+                            try {
+                                executor.execute(() -> callback.onStreamConfigChanged(configs));
+                            } finally {
+                                Binder.restoreCallingIdentity(identity);
+                            }
                 }
                     }, info, mUserId, tvInputSessionId, priorityHint));
         } catch (RemoteException e) {
diff --git a/media/java/android/media/tv/tuner/Lnb.java b/media/java/android/media/tv/tuner/Lnb.java
index a8d2cba..7932dcb 100644
--- a/media/java/android/media/tv/tuner/Lnb.java
+++ b/media/java/android/media/tv/tuner/Lnb.java
@@ -154,6 +154,8 @@
     private native int nativeSendDiseqcMessage(byte[] message);
     private native int nativeClose();
 
+    private long mNativeContext;
+
     Lnb(int id) {
         mId = id;
     }
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java
index 7a684b3..bcbc12b 100644
--- a/media/java/android/media/tv/tuner/Tuner.java
+++ b/media/java/android/media/tv/tuner/Tuner.java
@@ -216,8 +216,8 @@
     private native int nativeSetLnb(int lnbId);
     private native int nativeSetLna(boolean enable);
     private native FrontendStatus nativeGetFrontendStatus(int[] statusTypes);
-    private native int nativeGetAvSyncHwId(Filter filter);
-    private native long nativeGetAvSyncTime(int avSyncId);
+    private native Integer nativeGetAvSyncHwId(Filter filter);
+    private native Long nativeGetAvSyncTime(int avSyncId);
     private native int nativeConnectCiCam(int ciCamId);
     private native int nativeDisconnectCiCam();
     private native FrontendInfo nativeGetFrontendInfo(int id);
@@ -463,7 +463,8 @@
     @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public int getAvSyncHwId(@NonNull Filter filter) {
         TunerUtils.checkTunerPermission(mContext);
-        return nativeGetAvSyncHwId(filter);
+        Integer id = nativeGetAvSyncHwId(filter);
+        return id == null ? TunerConstants.INVALID_AV_SYNC_ID : id;
     }
 
     /**
@@ -478,7 +479,8 @@
     @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public long getAvSyncTime(int avSyncHwId) {
         TunerUtils.checkTunerPermission(mContext);
-        return nativeGetAvSyncTime(avSyncHwId);
+        Long time = nativeGetAvSyncTime(avSyncHwId);
+        return time == null ? TunerConstants.TIMESTAMP_UNAVAILABLE : time;
     }
 
     /**
@@ -683,6 +685,8 @@
     /**
      * Opens an LNB (low-noise block downconverter) object.
      *
+     * <p>If there is an existing Lnb object, it will be replace by the newly opened one.
+     *
      * @param executor the executor on which callback will be invoked. The default event handler
      * executor is used if it's {@code null}.
      * @param cb the callback to receive notifications from LNB.
diff --git a/media/java/android/media/tv/tuner/TunerConstants.java b/media/java/android/media/tv/tuner/TunerConstants.java
index 82af658..6d89962 100644
--- a/media/java/android/media/tv/tuner/TunerConstants.java
+++ b/media/java/android/media/tv/tuner/TunerConstants.java
@@ -46,6 +46,19 @@
      * Invalid AV Sync ID.
      */
     public static final int INVALID_AV_SYNC_ID = Constants.Constant.INVALID_AV_SYNC_ID;
+    /**
+     * Timestamp is unavailable.
+     *
+     * <p>Returned by {@link android.media.tv.tuner.filter.TimeFilter#getSourceTime()},
+     * {@link android.media.tv.tuner.filter.TimeFilter#getTimeStamp()}, or
+     * {@link Tuner#getAvSyncTime(int)} when the requested timestamp is not available.
+     *
+     * @see android.media.tv.tuner.filter.TimeFilter#getSourceTime()
+     * @see android.media.tv.tuner.filter.TimeFilter#getTimeStamp()
+     * @see Tuner#getAvSyncTime(int)
+     * @hide
+     */
+    public static final long TIMESTAMP_UNAVAILABLE = -1L;
 
     /** @hide */
     @IntDef(prefix = "SCAN_TYPE_", value = {SCAN_TYPE_UNDEFINED, SCAN_TYPE_AUTO, SCAN_TYPE_BLIND})
diff --git a/media/java/android/media/tv/tuner/dvr/DvrPlayback.java b/media/java/android/media/tv/tuner/dvr/DvrPlayback.java
index 7c15bb7..dbd9db4 100644
--- a/media/java/android/media/tv/tuner/dvr/DvrPlayback.java
+++ b/media/java/android/media/tv/tuner/dvr/DvrPlayback.java
@@ -89,6 +89,9 @@
     /**
      * Attaches a filter to DVR interface for recording.
      *
+     * <p>There can be multiple filters attached. Attached filters are independent, so the order
+     * doesn't matter.
+     *
      * @param filter the filter to be attached.
      * @return result status of the operation.
      */
@@ -135,6 +138,7 @@
      * Stops DVR.
      *
      * <p>Stops consuming playback data or producing data for recording.
+     * <p>Does nothing if the filter is stopped or not started.</p>
      *
      * @return result status of the operation.
      */
@@ -164,9 +168,14 @@
     }
 
     /**
-     * Sets file descriptor to read/write data.
+     * Sets file descriptor to read data.
      *
-     * @param fd the file descriptor to read/write data.
+     * <p>When a read operation of the filter object is happening, this method should not be
+     * called.
+     *
+     * @param fd the file descriptor to read data.
+     * @see #read(long)
+     * @see #read(byte[], long, long)
      */
     public void setFileDescriptor(@NonNull ParcelFileDescriptor fd) {
         nativeSetFileDescriptor(fd.getFd());
diff --git a/media/java/android/media/tv/tuner/dvr/DvrRecorder.java b/media/java/android/media/tv/tuner/dvr/DvrRecorder.java
index 52ef5e6..c1c6c62 100644
--- a/media/java/android/media/tv/tuner/dvr/DvrRecorder.java
+++ b/media/java/android/media/tv/tuner/dvr/DvrRecorder.java
@@ -50,6 +50,9 @@
     /**
      * Attaches a filter to DVR interface for recording.
      *
+     * <p>There can be multiple filters attached. Attached filters are independent, so the order
+     * doesn't matter.
+     *
      * @param filter the filter to be attached.
      * @return result status of the operation.
      */
@@ -84,6 +87,7 @@
      * Starts DVR.
      *
      * <p>Starts consuming playback data or producing data for recording.
+     * <p>Does nothing if the filter is stopped or not started.</p>
      *
      * @return result status of the operation.
      */
@@ -125,9 +129,14 @@
     }
 
     /**
-     * Sets file descriptor to read/write data.
+     * Sets file descriptor to write data.
      *
-     * @param fd the file descriptor to read/write data.
+     * <p>When a write operation of the filter object is happening, this method should not be
+     * called.
+     *
+     * @param fd the file descriptor to write data.
+     * @see #write(long)
+     * @see #write(byte[], long, long)
      */
     public void setFileDescriptor(@NonNull ParcelFileDescriptor fd) {
         nativeSetFileDescriptor(fd.getFd());
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index 893e516..737c95d 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -242,6 +242,13 @@
     });
 }
 
+void JMediaCodec::releaseAsync() {
+    if (mCodec != NULL) {
+        mCodec->releaseAsync();
+    }
+    mInitStatus = NO_INIT;
+}
+
 JMediaCodec::~JMediaCodec() {
     if (mLooper != NULL) {
         /* MediaCodec and looper should have been released explicitly already
@@ -1124,7 +1131,10 @@
 }
 
 static void android_media_MediaCodec_release(JNIEnv *env, jobject thiz) {
-    setMediaCodec(env, thiz, NULL);
+    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
+    if (codec != NULL) {
+        codec->releaseAsync();
+    }
 }
 
 static void throwCodecException(JNIEnv *env, status_t err, int32_t actionCode, const char *msg) {
@@ -2797,7 +2807,7 @@
 
 static void android_media_MediaCodec_native_finalize(
         JNIEnv *env, jobject thiz) {
-    android_media_MediaCodec_release(env, thiz);
+    setMediaCodec(env, thiz, NULL);
 }
 
 // MediaCodec.LinearBlock
diff --git a/media/jni/android_media_MediaCodec.h b/media/jni/android_media_MediaCodec.h
index 8899fee..400ce1b 100644
--- a/media/jni/android_media_MediaCodec.h
+++ b/media/jni/android_media_MediaCodec.h
@@ -61,6 +61,7 @@
 
     void registerSelf();
     void release();
+    void releaseAsync();
 
     status_t enableOnFrameRenderedListener(jboolean enable);
 
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 5c39f29..273c776 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -117,12 +117,15 @@
 using ::android::hardware::tv::tuner::V1_0::FrontendScanAtsc3PlpInfo;
 using ::android::hardware::tv::tuner::V1_0::FrontendType;
 using ::android::hardware::tv::tuner::V1_0::ITuner;
+using ::android::hardware::tv::tuner::V1_0::LnbPosition;
+using ::android::hardware::tv::tuner::V1_0::LnbTone;
+using ::android::hardware::tv::tuner::V1_0::LnbVoltage;
 using ::android::hardware::tv::tuner::V1_0::PlaybackSettings;
 using ::android::hardware::tv::tuner::V1_0::RecordSettings;
-using ::android::hardware::tv::tuner::V1_0::Result;
 
 struct fields_t {
     jfieldID tunerContext;
+    jfieldID lnbContext;
     jfieldID filterContext;
     jfieldID timeFilterContext;
     jfieldID descramblerContext;
@@ -164,6 +167,23 @@
     return Void();
 }
 
+/////////////// Lnb ///////////////////////
+
+Lnb::Lnb(sp<ILnb> sp, jobject obj) : mLnbSp(sp) {
+    JNIEnv *env = AndroidRuntime::getJNIEnv();
+    mLnbObj = env->NewWeakGlobalRef(obj);
+}
+
+Lnb::~Lnb() {
+    JNIEnv *env = AndroidRuntime::getJNIEnv();
+    env->DeleteWeakGlobalRef(mLnbObj);
+    mLnbObj = NULL;
+}
+
+sp<ILnb> Lnb::getILnb() {
+    return mLnbSp;
+}
+
 /////////////// DvrCallback ///////////////////////
 Return<void> DvrCallback::onRecordStatus(RecordStatus /*status*/) {
     ALOGD("DvrCallback::onRecordStatus");
@@ -771,24 +791,29 @@
 }
 
 jobject JTuner::openLnbById(int id) {
-    sp<ILnb> lnbSp;
+    sp<ILnb> iLnbSp;
     mTuner->openLnbById(id, [&](Result, const sp<ILnb>& lnb) {
-        lnbSp = lnb;
+        iLnbSp = lnb;
     });
-    if (lnbSp == nullptr) {
+    if (iLnbSp == nullptr) {
         ALOGE("Failed to open lnb");
         return NULL;
     }
-    mLnb = lnbSp;
+    mLnb = iLnbSp;
     sp<LnbCallback> lnbCb = new LnbCallback(mObject, id);
     mLnb->setCallback(lnbCb);
 
     JNIEnv *env = AndroidRuntime::getJNIEnv();
-    return env->NewObject(
+    jobject lnbObj = env->NewObject(
             env->FindClass("android/media/tv/tuner/Lnb"),
             gFields.lnbInitID,
-            mObject,
-            id);
+            (jint) id);
+
+    sp<Lnb> lnbSp = new Lnb(iLnbSp, lnbObj);
+    lnbSp->incStrong(lnbObj);
+    env->SetLongField(lnbObj, gFields.lnbContext, (jlong) lnbSp.get());
+
+    return lnbObj;
 }
 
 int JTuner::tune(const FrontendSettings& settings) {
@@ -845,22 +870,85 @@
     return (int)result;
 }
 
-bool JTuner::openDemux() {
+Result JTuner::openDemux() {
     if (mTuner == nullptr) {
-        return false;
+        return Result::NOT_INITIALIZED;
     }
     if (mDemux != nullptr) {
-        return true;
+        return Result::SUCCESS;
     }
-    mTuner->openDemux([&](Result, uint32_t demuxId, const sp<IDemux>& demux) {
+    Result res;
+    mTuner->openDemux([&](Result r, uint32_t demuxId, const sp<IDemux>& demux) {
         mDemux = demux;
         mDemuxId = demuxId;
+        res = r;
         ALOGD("open demux, id = %d", demuxId);
     });
-    if (mDemux == nullptr) {
-        return false;
+    return res;
+}
+
+jobject JTuner::getAvSyncHwId(sp<Filter> filter) {
+    if (mDemux == NULL) {
+        return NULL;
     }
-    return true;
+
+    uint32_t avSyncHwId;
+    Result res;
+    sp<IFilter> iFilterSp = filter->getIFilter();
+    mDemux->getAvSyncHwId(iFilterSp,
+            [&](Result r, uint32_t id) {
+                res = r;
+                avSyncHwId = id;
+            });
+    if (res == Result::SUCCESS) {
+        JNIEnv *env = AndroidRuntime::getJNIEnv();
+        jclass integerClazz = env->FindClass("java/lang/Integer");
+        jmethodID intInit = env->GetMethodID(integerClazz, "<init>", "(I)V");
+        return env->NewObject(integerClazz, intInit, avSyncHwId);
+    }
+    return NULL;
+}
+
+jobject JTuner::getAvSyncTime(jint id) {
+    if (mDemux == NULL) {
+        return NULL;
+    }
+    uint64_t time;
+    Result res;
+    mDemux->getAvSyncTime(static_cast<uint32_t>(id),
+            [&](Result r, uint64_t ts) {
+                res = r;
+                time = ts;
+            });
+    if (res == Result::SUCCESS) {
+        JNIEnv *env = AndroidRuntime::getJNIEnv();
+        jclass longClazz = env->FindClass("java/lang/Long");
+        jmethodID longInit = env->GetMethodID(longClazz, "<init>", "(J)V");
+        return env->NewObject(longClazz, longInit, static_cast<jlong>(time));
+    }
+    return NULL;
+}
+
+int JTuner::connectCiCam(jint id) {
+    if (mDemux == NULL) {
+        Result r = openDemux();
+        if (r != Result::SUCCESS) {
+            return (int) r;
+        }
+    }
+    Result r = mDemux->connectCiCam(static_cast<uint32_t>(id));
+    return (int) r;
+}
+
+int JTuner::disconnectCiCam() {
+    if (mDemux == NULL) {
+        Result r = openDemux();
+        if (r != Result::SUCCESS) {
+            return (int) r;
+        }
+    }
+    Result r = mDemux->disconnectCiCam();
+    return (int) r;
 }
 
 jobject JTuner::openDescrambler() {
@@ -892,7 +980,7 @@
 
 jobject JTuner::openFilter(DemuxFilterType type, int bufferSize) {
     if (mDemux == NULL) {
-        if (!openDemux()) {
+        if (openDemux() != Result::SUCCESS) {
             return NULL;
         }
     }
@@ -917,7 +1005,6 @@
             env->NewObject(
                     env->FindClass("android/media/tv/tuner/filter/Filter"),
                     gFields.filterInitID,
-                    mObject,
                     (jint) fId);
 
     sp<Filter> filterSp = new Filter(iFilterSp, filterObj);
@@ -931,7 +1018,7 @@
 
 jobject JTuner::openTimeFilter() {
     if (mDemux == NULL) {
-        if (!openDemux()) {
+        if (openDemux() != Result::SUCCESS) {
             return NULL;
         }
     }
@@ -962,7 +1049,7 @@
 jobject JTuner::openDvr(DvrType type, int bufferSize) {
     ALOGD("JTuner::openDvr");
     if (mDemux == NULL) {
-        if (!openDemux()) {
+        if (openDemux() != Result::SUCCESS) {
             return NULL;
         }
     }
@@ -1528,6 +1615,7 @@
             env->GetMethodID(frontendClazz, "<init>", "(Landroid/media/tv/tuner/Tuner;I)V");
 
     jclass lnbClazz = env->FindClass("android/media/tv/tuner/Lnb");
+    gFields.lnbContext = env->GetFieldID(lnbClazz, "mNativeContext", "J");
     gFields.lnbInitID =
             env->GetMethodID(lnbClazz, "<init>", "(I)V");
 
@@ -1608,20 +1696,30 @@
     return NULL;
 }
 
-static int android_media_tv_Tuner_gat_av_sync_hw_id(JNIEnv*, jobject, jobject) {
-    return 0;
+static jobject android_media_tv_Tuner_get_av_sync_hw_id(
+        JNIEnv *env, jobject thiz, jobject filter) {
+    sp<Filter> filterSp = getFilter(env, filter);
+    if (filterSp == NULL) {
+        ALOGD("Failed to get sync ID. Filter not found");
+        return NULL;
+    }
+    sp<JTuner> tuner = getTuner(env, thiz);
+    return tuner->getAvSyncHwId(filterSp);
 }
 
-static jlong android_media_tv_Tuner_gat_av_sync_time(JNIEnv*, jobject, jint) {
-    return 0;
+static jobject android_media_tv_Tuner_get_av_sync_time(JNIEnv *env, jobject thiz, jint id) {
+    sp<JTuner> tuner = getTuner(env, thiz);
+    return tuner->getAvSyncTime(id);
 }
 
-static int android_media_tv_Tuner_connect_cicam(JNIEnv*, jobject, jint) {
-    return 0;
+static int android_media_tv_Tuner_connect_cicam(JNIEnv *env, jobject thiz, jint id) {
+    sp<JTuner> tuner = getTuner(env, thiz);
+    return tuner->connectCiCam(id);
 }
 
-static int android_media_tv_Tuner_disconnect_cicam(JNIEnv*, jobject) {
-    return 0;
+static int android_media_tv_Tuner_disconnect_cicam(JNIEnv *env, jobject thiz) {
+    sp<JTuner> tuner = getTuner(env, thiz);
+    return tuner->disconnectCiCam();
 }
 
 static jobject android_media_tv_Tuner_get_frontend_info(JNIEnv *env, jobject thiz, jint id) {
@@ -2354,20 +2452,35 @@
     return 0;
 }
 
-static int android_media_tv_Tuner_lnb_set_voltage(JNIEnv*, jobject, jint) {
-    return 0;
+static sp<Lnb> getLnb(JNIEnv *env, jobject lnb) {
+    return (Lnb *)env->GetLongField(lnb, gFields.lnbContext);
 }
 
-static int android_media_tv_Tuner_lnb_set_tone(JNIEnv*, jobject, jint) {
-    return 0;
+static jint android_media_tv_Tuner_lnb_set_voltage(JNIEnv* env, jobject lnb, jint voltage) {
+    sp<ILnb> iLnbSp = getLnb(env, lnb)->getILnb();
+    Result r = iLnbSp->setVoltage(static_cast<LnbVoltage>(voltage));
+    return (jint) r;
 }
 
-static int android_media_tv_Tuner_lnb_set_position(JNIEnv*, jobject, jint) {
-    return 0;
+static int android_media_tv_Tuner_lnb_set_tone(JNIEnv* env, jobject lnb, jint tone) {
+    sp<ILnb> iLnbSp = getLnb(env, lnb)->getILnb();
+    Result r = iLnbSp->setTone(static_cast<LnbTone>(tone));
+    return (jint) r;
 }
 
-static int android_media_tv_Tuner_lnb_send_diseqc_msg(JNIEnv*, jobject, jbyteArray) {
-    return 0;
+static int android_media_tv_Tuner_lnb_set_position(JNIEnv* env, jobject lnb, jint position) {
+    sp<ILnb> iLnbSp = getLnb(env, lnb)->getILnb();
+    Result r = iLnbSp->setSatellitePosition(static_cast<LnbPosition>(position));
+    return (jint) r;
+}
+
+static int android_media_tv_Tuner_lnb_send_diseqc_msg(JNIEnv* env, jobject lnb, jbyteArray msg) {
+    sp<ILnb> iLnbSp = getLnb(env, lnb)->getILnb();
+    int size = env->GetArrayLength(msg);
+    std::vector<uint8_t> v(size);
+    env->GetByteArrayRegion(msg, 0, size, reinterpret_cast<jbyte*>(&v[0]));
+    Result r = iLnbSp->sendDiseqcMessage(v);
+    return (jint) r;
 }
 
 static int android_media_tv_Tuner_close_lnb(JNIEnv*, jobject) {
@@ -2500,9 +2613,10 @@
     { "nativeSetLna", "(Z)I", (void *)android_media_tv_Tuner_set_lna },
     { "nativeGetFrontendStatus", "([I)Landroid/media/tv/tuner/frontend/FrontendStatus;",
             (void *)android_media_tv_Tuner_get_frontend_status },
-    { "nativeGetAvSyncHwId", "(Landroid/media/tv/tuner/filter/Filter;)I",
-            (void *)android_media_tv_Tuner_gat_av_sync_hw_id },
-    { "nativeGetAvSyncTime", "(I)J", (void *)android_media_tv_Tuner_gat_av_sync_time },
+    { "nativeGetAvSyncHwId", "(Landroid/media/tv/tuner/filter/Filter;)Ljava/lang/Integer;",
+            (void *)android_media_tv_Tuner_get_av_sync_hw_id },
+    { "nativeGetAvSyncTime", "(I)Ljava/lang/Long;",
+            (void *)android_media_tv_Tuner_get_av_sync_time },
     { "nativeConnectCiCam", "(I)I", (void *)android_media_tv_Tuner_connect_cicam },
     { "nativeDisconnectCiCam", "()I", (void *)android_media_tv_Tuner_disconnect_cicam },
     { "nativeGetFrontendInfo", "(I)Landroid/media/tv/tuner/frontend/FrontendInfo;",
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 32d4899..fec4cd8 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -60,6 +60,7 @@
 using ::android::hardware::tv::tuner::V1_0::LnbId;
 using ::android::hardware::tv::tuner::V1_0::PlaybackStatus;
 using ::android::hardware::tv::tuner::V1_0::RecordStatus;
+using ::android::hardware::tv::tuner::V1_0::Result;
 
 using FilterMQ = MessageQueue<uint8_t, kSynchronizedReadWrite>;
 using DvrMQ = MessageQueue<uint8_t, kSynchronizedReadWrite>;
@@ -74,6 +75,14 @@
     LnbId mId;
 };
 
+struct Lnb : public RefBase {
+    Lnb(sp<ILnb> sp, jobject obj);
+    ~Lnb();
+    sp<ILnb> getILnb();
+    sp<ILnb> mLnbSp;
+    jweak mLnbObj;
+};
+
 struct DvrCallback : public IDvrCallback {
     virtual Return<void> onRecordStatus(RecordStatus status);
     virtual Return<void> onPlaybackStatus(PlaybackStatus status);
@@ -141,6 +150,10 @@
 struct JTuner : public RefBase {
     JTuner(JNIEnv *env, jobject thiz);
     sp<ITuner> getTunerService();
+    jobject getAvSyncHwId(sp<Filter> filter);
+    jobject getAvSyncTime(jint id);
+    int connectCiCam(jint id);
+    int disconnectCiCam();
     jobject getFrontendIds();
     jobject openFrontendById(int id);
     jobject getFrontendInfo(int id);
@@ -158,7 +171,7 @@
     jobject openDvr(DvrType type, int bufferSize);
 
 protected:
-    bool openDemux();
+    Result openDemux();
     virtual ~JTuner();
 
 private:
diff --git a/media/jni/soundpool/StreamManager.h b/media/jni/soundpool/StreamManager.h
index 8c98ac9..15b39f2 100644
--- a/media/jni/soundpool/StreamManager.h
+++ b/media/jni/soundpool/StreamManager.h
@@ -52,6 +52,12 @@
 
     JavaThread(JavaThread &&) = delete; // uses "this" ptr, not moveable.
 
+    ~JavaThread() {
+        join(); // manually block until the future is ready as std::future
+                // destructor doesn't block unless it comes from std::async
+                // and it is the last reference to shared state.
+    }
+
     void join() const {
         mFuture.wait();
     }
@@ -64,8 +70,9 @@
     static int staticFunction(void *data) {
         JavaThread *jt = static_cast<JavaThread *>(data);
         jt->mF();
-        jt->mIsClosed = true;
         jt->mPromise.set_value();
+        jt->mIsClosed = true;  // publicly inform that we are closed
+                               // after we have accessed all variables.
         return 0;
     }
 
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
index bcff6a1..230b9e4 100644
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
+++ b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
@@ -123,7 +123,7 @@
 
     @Test
     public void testOnRoutesRemovedAndAdded() throws Exception {
-        RouteCallback routeCallback = new RouteCallback();
+        RouteCallback routeCallback = new RouteCallback() {};
         mRouteCallbacks.add(routeCallback);
         mRouter2.registerRouteCallback(mExecutor, routeCallback,
                 new RouteDiscoveryPreference.Builder(FEATURES_ALL, true).build());
@@ -201,7 +201,7 @@
 
         addManagerCallback(new MediaRouter2Manager.Callback());
         //TODO: remove this when it's not necessary.
-        addRouterCallback(new MediaRouter2.RouteCallback());
+        addRouterCallback(new MediaRouter2.RouteCallback() {});
         addTransferCallback(new MediaRouter2.TransferCallback() {
             @Override
             public void onTransferred(MediaRouter2.RoutingController oldController,
@@ -228,7 +228,7 @@
         CountDownLatch latch = new CountDownLatch(1);
 
         Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL);
-        addRouterCallback(new RouteCallback());
+        addRouterCallback(new RouteCallback() {});
         addManagerCallback(new MediaRouter2Manager.Callback() {
             @Override
             public void onSessionCreated(MediaRouter2Manager.RoutingController controller) {
@@ -248,10 +248,9 @@
 
         assertEquals(2, sessions.size());
 
-        MediaRouter2Manager.RoutingController routingController =
-                mManager.getControllerForSession(sessions.get(1));
+        RoutingSessionInfo sessionInfo = sessions.get(1);
         awaitOnRouteChangedManager(
-                () -> routingController.release(),
+                () -> mManager.releaseSession(sessionInfo),
                 ROUTE_ID1,
                 route -> TextUtils.equals(route.getClientPackageName(), null));
         assertEquals(1, mManager.getRoutingSessions(mPackageName).size());
@@ -263,7 +262,7 @@
     @Test
     public void testSelectAndTransferAndRelease() throws Exception {
         Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL);
-        addRouterCallback(new RouteCallback());
+        addRouterCallback(new RouteCallback() {});
 
         CountDownLatch onSessionCreatedLatch = new CountDownLatch(1);
 
@@ -283,8 +282,7 @@
         List<RoutingSessionInfo> sessions = mManager.getRoutingSessions(mPackageName);
 
         assertEquals(2, sessions.size());
-        MediaRouter2Manager.RoutingController routingController =
-                mManager.getControllerForSession(sessions.get(1));
+        RoutingSessionInfo sessionInfo = sessions.get(1);
 
         awaitOnRouteChangedManager(
                 () -> mManager.selectRoute(mPackageName, routes.get(ROUTE_ID5_TO_TRANSFER_TO)),
@@ -292,7 +290,7 @@
                 route -> TextUtils.equals(route.getClientPackageName(), mPackageName));
 
         awaitOnRouteChangedManager(
-                () -> routingController.release(),
+                () -> mManager.releaseSession(sessionInfo),
                 ROUTE_ID5_TO_TRANSFER_TO,
                 route -> TextUtils.equals(route.getClientPackageName(), null));
     }
@@ -346,7 +344,7 @@
     @Test
     public void testSetSessionVolume() throws Exception {
         Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL);
-        addRouterCallback(new RouteCallback());
+        addRouterCallback(new RouteCallback() {});
 
         CountDownLatch onSessionCreatedLatch = new CountDownLatch(1);
         CountDownLatch volumeChangedLatch = new CountDownLatch(2);
@@ -471,7 +469,7 @@
         CountDownLatch featuresLatch = new CountDownLatch(1);
 
         // A dummy callback is required to send route feature info.
-        RouteCallback routeCallback = new RouteCallback();
+        RouteCallback routeCallback = new RouteCallback() {};
         MediaRouter2Manager.Callback managerCallback = new MediaRouter2Manager.Callback() {
             @Override
             public void onRoutesAdded(List<MediaRoute2Info> routes) {
@@ -573,7 +571,7 @@
         addManagerCallback(new MediaRouter2Manager.Callback());
 
         for (RoutingSessionInfo session : mManager.getActiveSessions()) {
-            mManager.getControllerForSession(session).release();
+            mManager.releaseSession(session);
         }
     }
 }
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/RoutingSessionInfoTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/RoutingSessionInfoTest.java
new file mode 100644
index 0000000..2230e25
--- /dev/null
+++ b/media/tests/MediaRouter/src/com/android/mediaroutertest/RoutingSessionInfoTest.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2020 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.mediaroutertest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+import android.media.RoutingSessionInfo;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests {@link RoutingSessionInfo} and its {@link RoutingSessionInfo.Builder builder}.
+ */
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class RoutingSessionInfoTest {
+    public static final String TEST_ID = "test_id";
+    public static final String TEST_CLIENT_PACKAGE_NAME = "com.test.client.package.name";
+    public static final String TEST_NAME = "test_name";
+
+    public static final String TEST_ROUTE_ID_0 = "test_route_type_0";
+    public static final String TEST_ROUTE_ID_2 = "test_route_type_2";
+    public static final String TEST_ROUTE_ID_4 = "test_route_type_4";
+    public static final String TEST_ROUTE_ID_6 = "test_route_type_6";
+
+    public static final String TEST_PROVIDER_ID = "test_provider_id";
+    public static final String TEST_OTHER_PROVIDER_ID = "test_other_provider_id";
+
+    // Tests if route IDs are changed properly according to provider ID.
+    @Test
+    public void testProviderId() {
+        RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
+                TEST_ID, TEST_CLIENT_PACKAGE_NAME)
+                .setName(TEST_NAME)
+                .addSelectedRoute(TEST_ROUTE_ID_0)
+                .addSelectableRoute(TEST_ROUTE_ID_2)
+                .addDeselectableRoute(TEST_ROUTE_ID_4)
+                .addTransferableRoute(TEST_ROUTE_ID_6)
+                .build();
+
+        RoutingSessionInfo sessionInfoWithProviderId = new RoutingSessionInfo.Builder(sessionInfo)
+                .setProviderId(TEST_PROVIDER_ID).build();
+
+        assertNotEquals(sessionInfo.getSelectedRoutes(),
+                sessionInfoWithProviderId.getSelectedRoutes());
+        assertNotEquals(sessionInfo.getSelectableRoutes(),
+                sessionInfoWithProviderId.getSelectableRoutes());
+        assertNotEquals(sessionInfo.getDeselectableRoutes(),
+                sessionInfoWithProviderId.getDeselectableRoutes());
+        assertNotEquals(sessionInfo.getTransferableRoutes(),
+                sessionInfoWithProviderId.getTransferableRoutes());
+
+        RoutingSessionInfo sessionInfoWithOtherProviderId =
+                new RoutingSessionInfo.Builder(sessionInfoWithProviderId)
+                .setProviderId(TEST_OTHER_PROVIDER_ID).build();
+
+        assertNotEquals(sessionInfoWithOtherProviderId.getSelectedRoutes(),
+                sessionInfoWithProviderId.getSelectedRoutes());
+        assertNotEquals(sessionInfoWithOtherProviderId.getSelectableRoutes(),
+                sessionInfoWithProviderId.getSelectableRoutes());
+        assertNotEquals(sessionInfoWithOtherProviderId.getDeselectableRoutes(),
+                sessionInfoWithProviderId.getDeselectableRoutes());
+        assertNotEquals(sessionInfoWithOtherProviderId.getTransferableRoutes(),
+                sessionInfoWithProviderId.getTransferableRoutes());
+
+        RoutingSessionInfo sessionInfoWithProviderId2 =
+                new RoutingSessionInfo.Builder(sessionInfoWithProviderId).build();
+
+        assertEquals(sessionInfoWithProviderId2.getSelectedRoutes(),
+                sessionInfoWithProviderId.getSelectedRoutes());
+        assertEquals(sessionInfoWithProviderId2.getSelectableRoutes(),
+                sessionInfoWithProviderId.getSelectableRoutes());
+        assertEquals(sessionInfoWithProviderId2.getDeselectableRoutes(),
+                sessionInfoWithProviderId.getDeselectableRoutes());
+        assertEquals(sessionInfoWithProviderId2.getTransferableRoutes(),
+                sessionInfoWithProviderId.getTransferableRoutes());
+    }
+}
diff --git a/packages/CarSystemUI/res/values/attrs.xml b/packages/CarSystemUI/res/values/attrs.xml
index 54026af..a586763 100644
--- a/packages/CarSystemUI/res/values/attrs.xml
+++ b/packages/CarSystemUI/res/values/attrs.xml
@@ -96,6 +96,11 @@
             <!-- hidden, do not use -->
             <!-- enum name="virtual_source" value="15"/ -->
             <enum name="assistant" value="16"/>
+            <enum name="call_assistant" value="17"/>
+            <enum name="emergency" value="1000"/>
+            <enum name="safety" value="1001"/>
+            <enum name="vehicle_status" value="1002"/>
+            <enum name="announcement" value="1003"/>
         </attr>
 
         <!-- Icon resource ids to render on UI -->
diff --git a/packages/CarSystemUI/res/values/config.xml b/packages/CarSystemUI/res/values/config.xml
index d2f514c..825b281 100644
--- a/packages/CarSystemUI/res/values/config.xml
+++ b/packages/CarSystemUI/res/values/config.xml
@@ -84,5 +84,6 @@
         <item>com.android.systemui.theme.ThemeOverlayController</item>
         <item>com.android.systemui.navigationbar.car.CarNavigationBar</item>
         <item>com.android.systemui.toast.ToastUI</item>
+        <item>com.android.systemui.voicerecognition.car.ConnectedDeviceVoiceRecognitionNotifier</item>
     </string-array>
 </resources>
diff --git a/packages/CarSystemUI/res/values/strings.xml b/packages/CarSystemUI/res/values/strings.xml
index 0368e61..9ea7ed0 100644
--- a/packages/CarSystemUI/res/values/strings.xml
+++ b/packages/CarSystemUI/res/values/strings.xml
@@ -20,4 +20,6 @@
     <string name="hvac_min_text">Min</string>
     <!-- String to represent largest setting of an HVAC system [CHAR LIMIT=5]-->
     <string name="hvac_max_text">Max</string>
+    <!-- Text for voice recognition toast. [CHAR LIMIT=60] -->
+    <string name="voice_recognition_toast">Voice recognition now handled by connected Bluetooth device</string>
 </resources>
diff --git a/packages/CarSystemUI/res/xml/car_volume_items.xml b/packages/CarSystemUI/res/xml/car_volume_items.xml
index 922b1a7..d371a64 100644
--- a/packages/CarSystemUI/res/xml/car_volume_items.xml
+++ b/packages/CarSystemUI/res/xml/car_volume_items.xml
@@ -51,5 +51,15 @@
         car:icon="@drawable/car_ic_music"/>
   <item car:usage="assistant"
         car:icon="@drawable/car_ic_music"/>
+  <item car:usage="call_assistant"
+        car:icon="@*android:drawable/ic_audio_ring_notif"/>
+  <item car:usage="emergency"
+        car:icon="@drawable/ic_volume_alarm"/>
+  <item car:usage="safety"
+        car:icon="@drawable/ic_volume_alarm"/>
+  <item car:usage="vehicle_status"
+        car:icon="@drawable/car_ic_notification"/>
+  <item car:usage="announcement"
+        car:icon="@drawable/car_ic_notification"/>
 </carVolumeItems>
 
diff --git a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java
index 8eeaefd..8f9d7ed 100644
--- a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java
+++ b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java
@@ -37,6 +37,7 @@
 import com.android.systemui.theme.ThemeOverlayController;
 import com.android.systemui.toast.ToastUI;
 import com.android.systemui.util.leak.GarbageMonitor;
+import com.android.systemui.voicerecognition.car.ConnectedDeviceVoiceRecognitionNotifier;
 import com.android.systemui.volume.VolumeUI;
 
 import dagger.Binds;
@@ -174,4 +175,11 @@
     @IntoMap
     @ClassKey(ToastUI.class)
     public abstract SystemUI bindToastUI(ToastUI service);
+
+    /** Inject into ConnectedDeviceVoiceRecognitionNotifier. */
+    @Binds
+    @IntoMap
+    @ClassKey(ConnectedDeviceVoiceRecognitionNotifier.class)
+    public abstract SystemUI bindConnectedDeviceVoiceRecognitionNotifier(
+            ConnectedDeviceVoiceRecognitionNotifier sysui);
 }
diff --git a/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBar.java b/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBar.java
index 3a52015..2045527 100644
--- a/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBar.java
+++ b/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBar.java
@@ -16,6 +16,12 @@
 
 package com.android.systemui.navigationbar.car;
 
+import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
+import static android.view.InsetsState.containsType;
+
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
+
 import android.content.Context;
 import android.graphics.PixelFormat;
 import android.inputmethodservice.InputMethodService;
@@ -37,9 +43,12 @@
 import com.android.systemui.car.CarDeviceProvisionedListener;
 import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.shared.system.ActivityManagerWrapper;
+import com.android.systemui.statusbar.AutoHideUiElement;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.NavigationBarController;
 import com.android.systemui.statusbar.SuperStatusBarViewFactory;
+import com.android.systemui.statusbar.phone.AutoHideController;
+import com.android.systemui.statusbar.phone.BarTransitions;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 
@@ -57,6 +66,7 @@
     private final WindowManager mWindowManager;
     private final CarDeviceProvisionedController mCarDeviceProvisionedController;
     private final CommandQueue mCommandQueue;
+    private final AutoHideController mAutoHideController;
     private final ButtonSelectionStateListener mButtonSelectionStateListener;
     private final Handler mMainHandler;
     private final Lazy<KeyguardStateController> mKeyguardStateControllerLazy;
@@ -64,6 +74,8 @@
     private final SuperStatusBarViewFactory mSuperStatusBarViewFactory;
     private final ButtonSelectionStateController mButtonSelectionStateController;
 
+    private final int mDisplayId;
+
     private IStatusBarService mBarService;
     private ActivityManagerWrapper mActivityManagerWrapper;
 
@@ -86,12 +98,16 @@
     private boolean mDeviceIsSetUpForUser = true;
     private boolean mIsUserSetupInProgress = false;
 
+    private @BarTransitions.TransitionMode int mNavigationBarMode;
+    private boolean mTransientShown;
+
     @Inject
     public CarNavigationBar(Context context,
             CarNavigationBarController carNavigationBarController,
             WindowManager windowManager,
             DeviceProvisionedController deviceProvisionedController,
             CommandQueue commandQueue,
+            AutoHideController autoHideController,
             ButtonSelectionStateListener buttonSelectionStateListener,
             @Main Handler mainHandler,
             Lazy<KeyguardStateController> keyguardStateControllerLazy,
@@ -104,12 +120,15 @@
         mCarDeviceProvisionedController = (CarDeviceProvisionedController)
                 deviceProvisionedController;
         mCommandQueue = commandQueue;
+        mAutoHideController = autoHideController;
         mButtonSelectionStateListener = buttonSelectionStateListener;
         mMainHandler = mainHandler;
         mKeyguardStateControllerLazy = keyguardStateControllerLazy;
         mNavigationBarControllerLazy = navigationBarControllerLazy;
         mSuperStatusBarViewFactory = superStatusBarViewFactory;
         mButtonSelectionStateController = buttonSelectionStateController;
+
+        mDisplayId = mWindowManager.getDefaultDisplay().getDisplayId();
     }
 
     @Override
@@ -133,6 +152,23 @@
             ex.rethrowFromSystemServer();
         }
 
+        mAutoHideController.addAutoHideUiElement(new AutoHideUiElement() {
+            @Override
+            public void synchronizeState() {
+                // No op.
+            }
+
+            @Override
+            public boolean isVisible() {
+                return mTransientShown;
+            }
+
+            @Override
+            public void hide() {
+                clearTransient();
+            }
+        });
+
         mDeviceIsSetUpForUser = mCarDeviceProvisionedController.isCurrentUserSetup();
         mIsUserSetupInProgress = mCarDeviceProvisionedController.isCurrentUserSetupInProgress();
         mCarDeviceProvisionedController.addCallback(
@@ -209,6 +245,10 @@
         if (mKeyguardStateControllerLazy.get().isShowing()) {
             mCarNavigationBarController.showAllKeyguardButtons(isDeviceSetupForUser());
         }
+
+        // Upon restarting the Navigation Bar, CarFacetButtonController should immediately apply the
+        // selection state that reflects the current task stack.
+        mButtonSelectionStateListener.onTaskStackChanged();
     }
 
     private boolean isDeviceSetupForUser() {
@@ -341,10 +381,57 @@
     }
 
     @Override
+    public void showTransient(int displayId, int[] types) {
+        if (displayId != mDisplayId) {
+            return;
+        }
+        if (!containsType(types, ITYPE_NAVIGATION_BAR)) {
+            return;
+        }
+
+        if (!mTransientShown) {
+            mTransientShown = true;
+            handleTransientChanged();
+        }
+    }
+
+    @Override
+    public void abortTransient(int displayId, int[] types) {
+        if (displayId != mDisplayId) {
+            return;
+        }
+        if (!containsType(types, ITYPE_NAVIGATION_BAR)) {
+            return;
+        }
+        clearTransient();
+    }
+
+    private void clearTransient() {
+        if (mTransientShown) {
+            mTransientShown = false;
+            handleTransientChanged();
+        }
+    }
+
+    @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         pw.print("  mTaskStackListener=");
         pw.println(mButtonSelectionStateListener);
         pw.print("  mBottomNavigationBarView=");
         pw.println(mBottomNavigationBarView);
     }
+
+    private void handleTransientChanged() {
+        updateBarMode(mTransientShown ? MODE_SEMI_TRANSPARENT : MODE_TRANSPARENT);
+    }
+
+    // Returns true if the bar mode is changed.
+    private boolean updateBarMode(int barMode) {
+        if (mNavigationBarMode != barMode) {
+            mNavigationBarMode = barMode;
+            mAutoHideController.touchAutoHide();
+            return true;
+        }
+        return false;
+    }
 }
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
index f39f912..0374a5c 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
@@ -88,6 +88,7 @@
 import com.android.systemui.stackdivider.Divider;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.FlingAnimationUtils;
+import com.android.systemui.statusbar.KeyguardIndicationController;
 import com.android.systemui.statusbar.NavigationBarController;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
 import com.android.systemui.statusbar.NotificationMediaManager;
@@ -326,6 +327,7 @@
             ExtensionController extensionController,
             UserInfoControllerImpl userInfoControllerImpl,
             PhoneStatusBarPolicy phoneStatusBarPolicy,
+            KeyguardIndicationController keyguardIndicationController,
             DismissCallbackRegistry dismissCallbackRegistry,
             StatusBarTouchableRegionManager statusBarTouchableRegionManager,
             /* Car Settings injected components. */
@@ -410,6 +412,7 @@
                 extensionController,
                 userInfoControllerImpl,
                 phoneStatusBarPolicy,
+                keyguardIndicationController,
                 dismissCallbackRegistry,
                 statusBarTouchableRegionManager);
         mUserSwitcherController = userSwitcherController;
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
index 843e7c5..07c42e1 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
@@ -48,6 +48,7 @@
 import com.android.systemui.stackdivider.Divider;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.FlingAnimationUtils;
+import com.android.systemui.statusbar.KeyguardIndicationController;
 import com.android.systemui.statusbar.NavigationBarController;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
 import com.android.systemui.statusbar.NotificationMediaManager;
@@ -199,6 +200,7 @@
             ExtensionController extensionController,
             UserInfoControllerImpl userInfoControllerImpl,
             PhoneStatusBarPolicy phoneStatusBarPolicy,
+            KeyguardIndicationController keyguardIndicationController,
             DismissCallbackRegistry dismissCallbackRegistry,
             StatusBarTouchableRegionManager statusBarTouchableRegionManager,
             CarServiceProvider carServiceProvider,
@@ -281,6 +283,7 @@
                 extensionController,
                 userInfoControllerImpl,
                 phoneStatusBarPolicy,
+                keyguardIndicationController,
                 dismissCallbackRegistry,
                 statusBarTouchableRegionManager,
                 carServiceProvider,
diff --git a/packages/CarSystemUI/src/com/android/systemui/voicerecognition/car/ConnectedDeviceVoiceRecognitionNotifier.java b/packages/CarSystemUI/src/com/android/systemui/voicerecognition/car/ConnectedDeviceVoiceRecognitionNotifier.java
new file mode 100644
index 0000000..2f79f96
--- /dev/null
+++ b/packages/CarSystemUI/src/com/android/systemui/voicerecognition/car/ConnectedDeviceVoiceRecognitionNotifier.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2020 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.voicerecognition.car;
+
+import android.bluetooth.BluetoothHeadsetClient;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Handler;
+import android.os.UserHandle;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.systemui.R;
+import com.android.systemui.SysUIToast;
+import com.android.systemui.SystemUI;
+import com.android.systemui.dagger.qualifiers.Main;
+
+import javax.inject.Inject;
+
+/**
+ * Controller responsible for showing toast message when voice recognition over bluetooth device
+ * getting activated.
+ */
+public class ConnectedDeviceVoiceRecognitionNotifier extends SystemUI {
+
+    private static final String TAG = "CarVoiceRecognition";
+    @VisibleForTesting
+    static final int INVALID_VALUE = -1;
+    @VisibleForTesting
+    static final int VOICE_RECOGNITION_STARTED = 1;
+
+    private Handler mHandler;
+
+    private final BroadcastReceiver mVoiceRecognitionReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Voice recognition received an intent!");
+            }
+            if (intent == null
+                    || intent.getAction() == null
+                    || !BluetoothHeadsetClient.ACTION_AG_EVENT.equals(intent.getAction())
+                    || !intent.hasExtra(BluetoothHeadsetClient.EXTRA_VOICE_RECOGNITION)) {
+                return;
+            }
+
+            int voiceRecognitionState = intent.getIntExtra(
+                    BluetoothHeadsetClient.EXTRA_VOICE_RECOGNITION, INVALID_VALUE);
+
+            if (voiceRecognitionState == VOICE_RECOGNITION_STARTED) {
+                showToastMessage();
+            }
+        }
+    };
+
+    private void showToastMessage() {
+        mHandler.post(() -> SysUIToast.makeText(mContext, R.string.voice_recognition_toast,
+                Toast.LENGTH_LONG).show());
+    }
+
+    @Inject
+    public ConnectedDeviceVoiceRecognitionNotifier(Context context, @Main Handler handler) {
+        super(context);
+        mHandler = handler;
+    }
+
+    @Override
+    public void start() {
+    }
+
+    @Override
+    protected void onBootCompleted() {
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(BluetoothHeadsetClient.ACTION_AG_EVENT);
+        mContext.registerReceiverAsUser(mVoiceRecognitionReceiver, UserHandle.ALL, filter,
+                /* broadcastPermission= */ null, /* scheduler= */ null);
+    }
+}
diff --git a/packages/CarSystemUI/tests/src/com/android/systemui/navigationbar/car/CarNavigationBarTest.java b/packages/CarSystemUI/tests/src/com/android/systemui/navigationbar/car/CarNavigationBarTest.java
new file mode 100644
index 0000000..c04e47f
--- /dev/null
+++ b/packages/CarSystemUI/tests/src/com/android/systemui/navigationbar/car/CarNavigationBarTest.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2020 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.navigationbar.car;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.os.Handler;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+import android.testing.TestableResources;
+import android.view.LayoutInflater;
+import android.view.WindowManager;
+
+import com.android.systemui.R;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.car.CarDeviceProvisionedController;
+import com.android.systemui.plugins.DarkIconDispatcher;
+import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.NavigationBarController;
+import com.android.systemui.statusbar.SuperStatusBarViewFactory;
+import com.android.systemui.statusbar.phone.AutoHideController;
+import com.android.systemui.statusbar.phone.StatusBarIconController;
+import com.android.systemui.statusbar.phone.StatusBarWindowView;
+import com.android.systemui.statusbar.policy.KeyguardStateController;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import dagger.Lazy;
+
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper
+@SmallTest
+public class CarNavigationBarTest extends SysuiTestCase {
+
+    private CarNavigationBar mCarNavigationBar;
+    private TestableResources mTestableResources;
+    private Handler mHandler;
+
+    @Mock
+    private CarNavigationBarController mCarNavigationBarController;
+    @Mock
+    private WindowManager mWindowManager;
+    @Mock
+    private CarDeviceProvisionedController mDeviceProvisionedController;
+    @Mock
+    private AutoHideController mAutoHideController;
+    @Mock
+    private ButtonSelectionStateListener mButtonSelectionStateListener;
+    @Mock
+    private Lazy<KeyguardStateController> mKeyguardStateControllerLazy;
+    @Mock
+    private KeyguardStateController mKeyguardStateController;
+    @Mock
+    private Lazy<NavigationBarController> mNavigationBarControllerLazy;
+    @Mock
+    private NavigationBarController mNavigationBarController;
+    @Mock
+    private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
+    @Mock
+    private ButtonSelectionStateController mButtonSelectionStateController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mTestableResources = mContext.getOrCreateTestableResources();
+        mTestableResources.addOverride(R.bool.config_enableBottomNavigationBar, true);
+        mHandler = Handler.getMain();
+        mCarNavigationBar = new CarNavigationBar(mContext, mCarNavigationBarController,
+                mWindowManager, mDeviceProvisionedController, new CommandQueue(mContext),
+                mAutoHideController, mButtonSelectionStateListener, mHandler,
+                mKeyguardStateControllerLazy, mNavigationBarControllerLazy,
+                mSuperStatusBarViewFactory, mButtonSelectionStateController);
+        StatusBarWindowView statusBarWindowView = (StatusBarWindowView) LayoutInflater.from(
+                mContext).inflate(R.layout.super_status_bar, /* root= */ null);
+        when(mSuperStatusBarViewFactory.getStatusBarWindowView()).thenReturn(statusBarWindowView);
+        when(mNavigationBarControllerLazy.get()).thenReturn(mNavigationBarController);
+        when(mKeyguardStateControllerLazy.get()).thenReturn(mKeyguardStateController);
+        when(mKeyguardStateController.isShowing()).thenReturn(false);
+        mDependency.injectMockDependency(WindowManager.class);
+        // Needed to inflate top navigation bar.
+        mDependency.injectMockDependency(DarkIconDispatcher.class);
+        mDependency.injectMockDependency(StatusBarIconController.class);
+    }
+
+    @Test
+    public void restartNavbars_refreshesTaskChanged() {
+        ArgumentCaptor<CarDeviceProvisionedController.DeviceProvisionedListener>
+                deviceProvisionedCallbackCaptor = ArgumentCaptor.forClass(
+                CarDeviceProvisionedController.DeviceProvisionedListener.class);
+        when(mDeviceProvisionedController.isCurrentUserSetup()).thenReturn(true);
+        mCarNavigationBar.start();
+        // switching the currentUserSetup value to force restart the navbars.
+        when(mDeviceProvisionedController.isCurrentUserSetup()).thenReturn(false);
+        verify(mDeviceProvisionedController).addCallback(deviceProvisionedCallbackCaptor.capture());
+
+        deviceProvisionedCallbackCaptor.getValue().onUserSwitched();
+        waitForIdleSync(mHandler);
+
+        verify(mButtonSelectionStateListener).onTaskStackChanged();
+    }
+}
diff --git a/packages/CarSystemUI/tests/src/com/android/systemui/voicerecognition/car/ConnectedDeviceVoiceRecognitionNotifierTest.java b/packages/CarSystemUI/tests/src/com/android/systemui/voicerecognition/car/ConnectedDeviceVoiceRecognitionNotifierTest.java
new file mode 100644
index 0000000..38b47d0
--- /dev/null
+++ b/packages/CarSystemUI/tests/src/com/android/systemui/voicerecognition/car/ConnectedDeviceVoiceRecognitionNotifierTest.java
@@ -0,0 +1,97 @@
+/*
+ * 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.voicerecognition.car;
+
+import static com.android.systemui.voicerecognition.car.ConnectedDeviceVoiceRecognitionNotifier.INVALID_VALUE;
+import static com.android.systemui.voicerecognition.car.ConnectedDeviceVoiceRecognitionNotifier.VOICE_RECOGNITION_STARTED;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.bluetooth.BluetoothHeadsetClient;
+import android.content.Intent;
+import android.os.Handler;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.systemui.SysuiTestCase;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper
+@SmallTest
+public class ConnectedDeviceVoiceRecognitionNotifierTest extends SysuiTestCase {
+
+    private static final String BLUETOOTH_PERM = android.Manifest.permission.BLUETOOTH;
+
+    private ConnectedDeviceVoiceRecognitionNotifier mVoiceRecognitionNotifier;
+    private Handler mTestHandler;
+
+    @Before
+    public void setUp() throws Exception {
+        TestableLooper testableLooper = TestableLooper.get(this);
+        mTestHandler = spy(new Handler(testableLooper.getLooper()));
+        mVoiceRecognitionNotifier = new ConnectedDeviceVoiceRecognitionNotifier(
+                mContext, mTestHandler);
+        mVoiceRecognitionNotifier.onBootCompleted();
+    }
+
+    @Test
+    public void testReceiveIntent_started_showToast() {
+        Intent intent = new Intent(BluetoothHeadsetClient.ACTION_AG_EVENT);
+        intent.putExtra(BluetoothHeadsetClient.EXTRA_VOICE_RECOGNITION, VOICE_RECOGNITION_STARTED);
+        mContext.sendBroadcast(intent, BLUETOOTH_PERM);
+        waitForIdleSync();
+
+        verify(mTestHandler).post(any());
+    }
+
+    @Test
+    public void testReceiveIntent_invalidExtra_noToast() {
+        Intent intent = new Intent(BluetoothHeadsetClient.ACTION_AG_EVENT);
+        intent.putExtra(BluetoothHeadsetClient.EXTRA_VOICE_RECOGNITION, INVALID_VALUE);
+        mContext.sendBroadcast(intent, BLUETOOTH_PERM);
+        waitForIdleSync();
+
+        verify(mTestHandler, never()).post(any());
+    }
+
+    @Test
+    public void testReceiveIntent_noExtra_noToast() {
+        Intent intent = new Intent(BluetoothHeadsetClient.ACTION_AG_EVENT);
+        mContext.sendBroadcast(intent, BLUETOOTH_PERM);
+        waitForIdleSync();
+
+        verify(mTestHandler, never()).post(any());
+    }
+
+    @Test
+    public void testReceiveIntent_invalidIntent_noToast() {
+        Intent intent = new Intent(BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED);
+        mContext.sendBroadcast(intent, BLUETOOTH_PERM);
+        waitForIdleSync();
+
+        verify(mTestHandler, never()).post(any());
+    }
+}
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
index f36f97d..f80e934 100644
--- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
@@ -139,6 +139,7 @@
     private long mCurrentPartitionInstalledSize;
 
     private boolean mJustCancelledByUser;
+    private boolean mKeepNotification;
 
     // This is for testing only now
     private boolean mEnableWhenCompleted;
@@ -173,8 +174,11 @@
         if (cache != null) {
             cache.flush();
         }
-        // Cancel the persistent notification.
-        mNM.cancel(NOTIFICATION_ID);
+
+        if (!mKeepNotification) {
+            // Cancel the persistent notification.
+            mNM.cancel(NOTIFICATION_ID);
+        }
     }
 
     @Override
@@ -227,9 +231,6 @@
             return;
         }
 
-        // if it's not successful, reset the task and stop self.
-        resetTaskAndStop();
-
         switch (result) {
             case RESULT_CANCELLED:
                 postStatus(STATUS_NOT_STARTED, CAUSE_INSTALL_CANCELLED, null);
@@ -248,6 +249,9 @@
                 postStatus(STATUS_NOT_STARTED, CAUSE_ERROR_EXCEPTION, detail);
                 break;
         }
+
+        // if it's not successful, reset the task and stop self.
+        resetTaskAndStop();
     }
 
     private void executeInstallCommand(Intent intent) {
@@ -392,10 +396,10 @@
     private void resetTaskAndStop() {
         mInstallTask = null;
 
-        stopForeground(true);
-
-        // stop self, but this service is not destroyed yet if it's still bound
-        stopSelf();
+        new Handler().postDelayed(() -> {
+            stopForeground(STOP_FOREGROUND_DETACH);
+            stopSelf();
+        }, 50);
     }
 
     private void prepareNotification() {
@@ -503,6 +507,7 @@
     private void postStatus(int status, int cause, Throwable detail) {
         String statusString;
         String causeString;
+        mKeepNotification = false;
 
         switch (status) {
             case STATUS_NOT_STARTED:
@@ -531,12 +536,15 @@
                 break;
             case CAUSE_ERROR_IO:
                 causeString = "ERROR_IO";
+                mKeepNotification = true;
                 break;
             case CAUSE_ERROR_INVALID_URL:
                 causeString = "ERROR_INVALID_URL";
+                mKeepNotification = true;
                 break;
             case CAUSE_ERROR_EXCEPTION:
                 causeString = "ERROR_EXCEPTION";
+                mKeepNotification = true;
                 break;
             default:
                 causeString = "CAUSE_NOT_SPECIFIED";
diff --git a/packages/Incremental/NativeAdbDataLoader/Android.bp b/packages/Incremental/NativeAdbDataLoader/Android.bp
deleted file mode 100644
index 5d7b5b6..0000000
--- a/packages/Incremental/NativeAdbDataLoader/Android.bp
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019, The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-android_app {
-    name: "NativeAdbDataLoaderService",
-    srcs: ["src/**/*.java"],
-    jni_libs: [ "libnativeadbdataloaderservice_jni"],
-    privileged: true,
-    certificate: "platform",
-    platform_apis: true,
-}
diff --git a/packages/Incremental/NativeAdbDataLoader/AndroidManifest.xml b/packages/Incremental/NativeAdbDataLoader/AndroidManifest.xml
deleted file mode 100644
index c4d8f35..0000000
--- a/packages/Incremental/NativeAdbDataLoader/AndroidManifest.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2019, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          coreApp="true"
-          package="com.android.incremental.nativeadb"
-          android:sharedUserId="android.uid.system">
-    <uses-permission android:name="android.permission.INTERNET" />
-
-    <application android:label="@string/app_name"
-                 android:directBootAware="true">
-
-        <service android:enabled="true"
-                 android:name="com.android.incremental.nativeadb.NativeAdbDataLoaderService"
-                 android:label="@string/app_name"
-                 android:exported="false">
-            <intent-filter>
-                <action android:name="android.intent.action.LOAD_DATA" />
-           </intent-filter>
-        </service>
-    </application>
-
-</manifest>
diff --git a/packages/Incremental/NativeAdbDataLoader/jni/Android.bp b/packages/Incremental/NativeAdbDataLoader/jni/Android.bp
deleted file mode 100644
index 0fcfd28..0000000
--- a/packages/Incremental/NativeAdbDataLoader/jni/Android.bp
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2019, The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-cc_library_shared {
-    name: "libnativeadbdataloaderservice_jni",
-    cpp_std: "c++2a",
-    cflags: [
-        "-Wall",
-        "-Werror",
-        "-Wunused",
-        "-Wunreachable-code",
-        "-Wno-unused-parameter",
-    ],
-
-    srcs: ["com_android_incremental_nativeadb_DataLoaderService.cpp"],
-
-    shared_libs: [
-        "libbase",
-        "libcutils",
-        "libincfs",
-        "libdataloader",
-        "liblog",
-        "libnativehelper",
-        "libutils",
-    ],
-}
diff --git a/packages/Incremental/NativeAdbDataLoader/jni/com_android_incremental_nativeadb_DataLoaderService.cpp b/packages/Incremental/NativeAdbDataLoader/jni/com_android_incremental_nativeadb_DataLoaderService.cpp
deleted file mode 100644
index c0cd527..0000000
--- a/packages/Incremental/NativeAdbDataLoader/jni/com_android_incremental_nativeadb_DataLoaderService.cpp
+++ /dev/null
@@ -1,525 +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.
- */
-
-#define ATRACE_TAG ATRACE_TAG_ADB
-#define LOG_TAG "NativeAdbDataLoaderService"
-
-#include <android-base/file.h>
-#include <android-base/logging.h>
-#include <android-base/properties.h>
-#include <android-base/stringprintf.h>
-#include <android-base/thread_annotations.h>
-#include <android-base/unique_fd.h>
-#include <cutils/trace.h>
-#include <fcntl.h>
-#include <sys/eventfd.h>
-#include <sys/poll.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <utils/Log.h>
-
-#include <charconv>
-#include <span>
-#include <string>
-#include <thread>
-#include <type_traits>
-#include <unordered_map>
-#include <unordered_set>
-
-#include "dataloader.h"
-
-#ifndef _WIN32
-#include <endian.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#else
-#define be32toh(x) _byteswap_ulong(x)
-#define be16toh(x) _byteswap_ushort(x)
-#endif
-
-namespace {
-
-using android::base::unique_fd;
-
-using namespace std::literals;
-
-using BlockSize = int16_t;
-using FileId = int16_t;
-using BlockIdx = int32_t;
-using NumBlocks = int32_t;
-using CompressionType = int16_t;
-using RequestType = int16_t;
-
-static constexpr int COMMAND_SIZE = 2 + 2 + 4;    // bytes
-static constexpr int HEADER_SIZE = 2 + 2 + 4 + 2; // bytes
-static constexpr std::string_view OKAY = "OKAY"sv;
-
-static constexpr auto PollTimeoutMs = 5000;
-
-static constexpr auto ReadLogBufferSize = 128 * 1024 * 1024;
-static constexpr auto ReadLogMaxEntrySize = 128;
-
-struct BlockHeader {
-    FileId fileId = -1;
-    CompressionType compressionType = -1;
-    BlockIdx blockIdx = -1;
-    BlockSize blockSize = -1;
-} __attribute__((packed));
-
-static_assert(sizeof(BlockHeader) == HEADER_SIZE);
-
-static constexpr RequestType EXIT = 0;
-static constexpr RequestType BLOCK_MISSING = 1;
-static constexpr RequestType PREFETCH = 2;
-
-struct RequestCommand {
-    RequestType requestType;
-    FileId fileId;
-    BlockIdx blockIdx;
-} __attribute__((packed));
-
-static_assert(COMMAND_SIZE == sizeof(RequestCommand));
-
-static bool sendRequest(int fd, RequestType requestType, FileId fileId = -1,
-                        BlockIdx blockIdx = -1) {
-    const RequestCommand command{.requestType = static_cast<int16_t>(be16toh(requestType)),
-                                 .fileId = static_cast<int16_t>(be16toh(fileId)),
-                                 .blockIdx = static_cast<int32_t>(be32toh(blockIdx))};
-    return android::base::WriteFully(fd, &command, sizeof(command));
-}
-
-static int waitForDataOrSignal(int fd, int event_fd) {
-    struct pollfd pfds[2] = {{fd, POLLIN, 0}, {event_fd, POLLIN, 0}};
-    // Wait indefinitely until either data is ready or stop signal is received
-    int res = poll(pfds, 2, PollTimeoutMs);
-    if (res <= 0) {
-        return res;
-    }
-    // First check if there is a stop signal
-    if (pfds[1].revents == POLLIN) {
-        return event_fd;
-    }
-    // Otherwise check if incoming data is ready
-    if (pfds[0].revents == POLLIN) {
-        return fd;
-    }
-    return -1;
-}
-
-static bool readChunk(int fd, std::vector<uint8_t>& data) {
-    int32_t size;
-    if (!android::base::ReadFully(fd, &size, sizeof(size))) {
-        return false;
-    }
-    size = int32_t(be32toh(size));
-    if (size <= 0) {
-        return false;
-    }
-    data.resize(size);
-    return android::base::ReadFully(fd, data.data(), data.size());
-}
-
-static BlockHeader readHeader(std::span<uint8_t>& data) {
-    BlockHeader header;
-    if (data.size() < sizeof(header)) {
-        return header;
-    }
-
-    header.fileId = static_cast<FileId>(be16toh(*reinterpret_cast<uint16_t*>(&data[0])));
-    header.compressionType =
-            static_cast<CompressionType>(be16toh(*reinterpret_cast<uint16_t*>(&data[2])));
-    header.blockIdx = static_cast<BlockIdx>(be32toh(*reinterpret_cast<uint32_t*>(&data[4])));
-    header.blockSize = static_cast<BlockSize>(be16toh(*reinterpret_cast<uint16_t*>(&data[8])));
-    data = data.subspan(sizeof(header));
-
-    return header;
-}
-
-static std::string extractPackageName(const std::string& staticArgs) {
-    static constexpr auto kPrefix = "package="sv;
-    static constexpr auto kSuffix = "&"sv;
-
-    const auto startPos = staticArgs.find(kPrefix);
-    if (startPos == staticArgs.npos || startPos + kPrefix.size() >= staticArgs.size()) {
-        return {};
-    }
-    const auto endPos = staticArgs.find(kSuffix, startPos + kPrefix.size());
-    return staticArgs.substr(startPos + kPrefix.size(),
-                             endPos == staticArgs.npos ? staticArgs.npos
-                                                       : (endPos - (startPos + kPrefix.size())));
-}
-
-class AdbDataLoader : public android::dataloader::DataLoader {
-private:
-    // Lifecycle.
-    bool onCreate(const android::dataloader::DataLoaderParams& params,
-                  android::dataloader::FilesystemConnectorPtr ifs,
-                  android::dataloader::StatusListenerPtr statusListener,
-                  android::dataloader::ServiceConnectorPtr,
-                  android::dataloader::ServiceParamsPtr) final {
-        CHECK(ifs) << "ifs can't be null";
-        CHECK(statusListener) << "statusListener can't be null";
-        ALOGE("[AdbDataLoader] onCreate: %d/%s/%s/%s/%d", params.type(),
-              params.packageName().c_str(), params.className().c_str(), params.arguments().c_str(),
-              (int)params.dynamicArgs().size());
-
-        if (params.dynamicArgs().empty()) {
-            ALOGE("[AdbDataLoader] Invalid DataLoaderParams. Need in/out FDs.");
-            return false;
-        }
-        for (auto const& namedFd : params.dynamicArgs()) {
-            if (namedFd.name == "inFd") {
-                mInFd.reset(dup(namedFd.fd));
-            }
-            if (namedFd.name == "outFd") {
-                mOutFd.reset(dup(namedFd.fd));
-            }
-        }
-        if (mInFd < 0 || mOutFd < 0) {
-            ALOGE("[AdbDataLoader] Failed to dup FDs.");
-            return false;
-        }
-
-        mEventFd.reset(eventfd(0, EFD_CLOEXEC));
-        if (mEventFd < 0) {
-            ALOGE("[AdbDataLoader] Failed to create eventfd.");
-            return false;
-        }
-
-        std::string logFile;
-        if (const auto packageName = extractPackageName(params.arguments()); !packageName.empty()) {
-            logFile = android::base::GetProperty("adb.readlog." + packageName, "");
-        }
-        if (logFile.empty()) {
-            logFile = android::base::GetProperty("adb.readlog", "");
-        }
-        if (!logFile.empty()) {
-            int flags = O_WRONLY | O_CREAT | O_CLOEXEC;
-            mReadLogFd.reset(TEMP_FAILURE_RETRY(open(logFile.c_str(), flags, 0666)));
-        }
-
-        mIfs = ifs;
-        mStatusListener = statusListener;
-        ALOGE("[AdbDataLoader] Successfully created data loader.");
-        return true;
-    }
-
-    bool onStart() final {
-        char okay_buf[OKAY.size()];
-        if (!android::base::ReadFully(mInFd, okay_buf, OKAY.size())) {
-            ALOGE("[AdbDataLoader] Failed to receive OKAY. Abort.");
-            return false;
-        }
-        if (std::string_view(okay_buf, OKAY.size()) != OKAY) {
-            ALOGE("[AdbDataLoader] Received '%.*s', expecting '%.*s'", (int)OKAY.size(), okay_buf,
-                  (int)OKAY.size(), OKAY.data());
-            return false;
-        }
-
-        mReceiverThread = std::thread([this]() { receiver(); });
-        ALOGI("[AdbDataLoader] started loading...");
-        return true;
-    }
-
-    void onStop() final {
-        mStopReceiving = true;
-        eventfd_write(mEventFd, 1);
-        if (mReceiverThread.joinable()) {
-            mReceiverThread.join();
-        }
-    }
-
-    void onDestroy() final {
-        ALOGE("[AdbDataLoader] Sending EXIT to server.");
-        sendRequest(mOutFd, EXIT);
-        // Make sure the receiver thread was stopped
-        CHECK(!mReceiverThread.joinable());
-
-        mInFd.reset();
-        mOutFd.reset();
-
-        mNodeToMetaMap.clear();
-        mIdToNodeMap.clear();
-
-        flushReadLog();
-        mReadLogFd.reset();
-    }
-
-    // Installation callback
-    bool onPrepareImage(const android::dataloader::DataLoaderInstallationFiles& addedFiles) final {
-        return true;
-    }
-
-    // IFS callbacks.
-    void onPendingReads(const android::dataloader::PendingReads& pendingReads) final {
-        std::lock_guard lock{mMapsMutex};
-        CHECK(mIfs);
-        for (auto&& pendingRead : pendingReads) {
-            const android::dataloader::FileId id = pendingRead.id;
-            const auto blockIdx = static_cast<BlockIdx>(pendingRead.block);
-            /*
-            ALOGI("[AdbDataLoader] Missing: %d", (int) blockIdx);
-            */
-            auto fileIdOr = getFileId(id);
-            if (!fileIdOr) {
-                ALOGE("[AdbDataLoader] Failed to handle event for fileid=%s. "
-                      "Ignore.",
-                      android::incfs::toString(id).c_str());
-                continue;
-            }
-            const FileId fileId = *fileIdOr;
-            if (mRequestedFiles.insert(fileId).second) {
-                if (!sendRequest(mOutFd, PREFETCH, fileId, blockIdx)) {
-                    ALOGE("[AdbDataLoader] Failed to request prefetch for "
-                          "fileid=%s. Ignore.",
-                          android::incfs::toString(id).c_str());
-                    mRequestedFiles.erase(fileId);
-                    mStatusListener->reportStatus(DATA_LOADER_NO_CONNECTION);
-                }
-            }
-            sendRequest(mOutFd, BLOCK_MISSING, fileId, blockIdx);
-        }
-    }
-
-    struct TracedRead {
-        uint64_t timestampUs;
-        android::dataloader::FileId fileId;
-        uint32_t firstBlockIdx;
-        uint32_t count;
-    };
-    void onPageReads(const android::dataloader::PageReads& pageReads) final {
-        auto trace = atrace_is_tag_enabled(ATRACE_TAG);
-        auto log = mReadLogFd != -1;
-        if (CC_LIKELY(!(trace || log))) {
-            return;
-        }
-
-        TracedRead last = {};
-        std::lock_guard lock{mMapsMutex};
-        for (auto&& read : pageReads) {
-            if (read.id != last.fileId || read.block != last.firstBlockIdx + last.count) {
-                traceOrLogRead(last, trace, log);
-                last = {read.bootClockTsUs, read.id, (uint32_t)read.block, 1};
-            } else {
-                ++last.count;
-            }
-        }
-        traceOrLogRead(last, trace, log);
-    }
-    void onFileCreated(android::dataloader::FileId fileid,
-                       const android::dataloader::RawMetadata& metadata) {}
-
-private:
-    void receiver() {
-        std::vector<uint8_t> data;
-        std::vector<IncFsDataBlock> instructions;
-        std::unordered_map<android::dataloader::FileId, unique_fd> writeFds;
-        while (!mStopReceiving) {
-            const int res = waitForDataOrSignal(mInFd, mEventFd);
-            if (res == 0) {
-                flushReadLog();
-                continue;
-            }
-            if (res < 0) {
-                ALOGE("[AdbDataLoader] failed to poll. Abort.");
-                mStatusListener->reportStatus(DATA_LOADER_NO_CONNECTION);
-                break;
-            }
-            if (res == mEventFd) {
-                ALOGE("[AdbDataLoader] received stop signal. Exit.");
-                break;
-            }
-            if (!readChunk(mInFd, data)) {
-                ALOGE("[AdbDataLoader] failed to read a message. Abort.");
-                mStatusListener->reportStatus(DATA_LOADER_NO_CONNECTION);
-                break;
-            }
-            auto remainingData = std::span(data);
-            while (!remainingData.empty()) {
-                auto header = readHeader(remainingData);
-                if (header.fileId == -1 && header.compressionType == 0 && header.blockIdx == 0 &&
-                    header.blockSize == 0) {
-                    ALOGI("[AdbDataLoader] stop signal received. Sending "
-                          "exit command (remaining bytes: %d).",
-                          int(remainingData.size()));
-
-                    sendRequest(mOutFd, EXIT);
-                    mStopReceiving = true;
-                    break;
-                }
-                if (header.fileId < 0 || header.blockSize <= 0 || header.compressionType < 0 ||
-                    header.blockIdx < 0) {
-                    ALOGE("[AdbDataLoader] invalid header received. Abort.");
-                    mStopReceiving = true;
-                    break;
-                }
-                const android::dataloader::FileId id = mIdToNodeMap[header.fileId];
-                if (!android::incfs::isValidFileId(id)) {
-                    ALOGE("Unknown data destination for file ID %d. "
-                          "Ignore.",
-                          header.fileId);
-                    continue;
-                }
-
-                auto& writeFd = writeFds[id];
-                if (writeFd < 0) {
-                    writeFd = this->mIfs->openWrite(id);
-                    if (writeFd < 0) {
-                        ALOGE("Failed to open file %d for writing (%d). Aboring.", header.fileId,
-                              -writeFd);
-                        break;
-                    }
-                }
-
-                const auto inst = IncFsDataBlock{
-                        .fileFd = writeFd,
-                        .pageIndex = static_cast<IncFsBlockIndex>(header.blockIdx),
-                        .compression = static_cast<IncFsCompressionKind>(header.compressionType),
-                        .kind = INCFS_BLOCK_KIND_DATA,
-                        .dataSize = static_cast<uint16_t>(header.blockSize),
-                        .data = (const char*)remainingData.data(),
-                };
-                instructions.push_back(inst);
-                remainingData = remainingData.subspan(header.blockSize);
-            }
-            writeInstructions(instructions);
-        }
-        writeInstructions(instructions);
-        flushReadLog();
-    }
-
-    void writeInstructions(std::vector<IncFsDataBlock>& instructions) {
-        auto res = this->mIfs->writeBlocks(instructions);
-        if (res != instructions.size()) {
-            ALOGE("[AdbDataLoader] failed to write data to Incfs (res=%d when "
-                  "expecting %d)",
-                  res, int(instructions.size()));
-        }
-        instructions.clear();
-    }
-
-    struct MetaPair {
-        android::dataloader::RawMetadata meta;
-        FileId fileId;
-    };
-
-    MetaPair* updateMapsForFile(android::dataloader::FileId id) {
-        android::dataloader::RawMetadata meta = mIfs->getRawMetadata(id);
-        FileId fileId;
-        auto res = std::from_chars(meta.data(), meta.data() + meta.size(), fileId);
-        if (res.ec != std::errc{} || fileId < 0) {
-            ALOGE("[AdbDataLoader] Invalid metadata for fileid=%s (%s)",
-                  android::incfs::toString(id).c_str(), meta.data());
-            return nullptr;
-        }
-        mIdToNodeMap[fileId] = id;
-        auto& metaPair = mNodeToMetaMap[id];
-        metaPair.meta = std::move(meta);
-        metaPair.fileId = fileId;
-        return &metaPair;
-    }
-
-    android::dataloader::RawMetadata* getMeta(android::dataloader::FileId id) {
-        auto it = mNodeToMetaMap.find(id);
-        if (it != mNodeToMetaMap.end()) {
-            return &it->second.meta;
-        }
-
-        auto metaPair = updateMapsForFile(id);
-        if (!metaPair) {
-            return nullptr;
-        }
-
-        return &metaPair->meta;
-    }
-
-    FileId* getFileId(android::dataloader::FileId id) {
-        auto it = mNodeToMetaMap.find(id);
-        if (it != mNodeToMetaMap.end()) {
-            return &it->second.fileId;
-        }
-
-        auto* metaPair = updateMapsForFile(id);
-        if (!metaPair) {
-            return nullptr;
-        }
-
-        return &metaPair->fileId;
-    }
-
-    void traceOrLogRead(const TracedRead& read, bool trace, bool log) {
-        if (!read.count) {
-            return;
-        }
-        if (trace) {
-            auto* meta = getMeta(read.fileId);
-            auto str = android::base::StringPrintf("page_read: index=%lld count=%lld meta=%.*s",
-                                                   static_cast<long long>(read.firstBlockIdx),
-                                                   static_cast<long long>(read.count),
-                                                   meta ? int(meta->size()) : 0,
-                                                   meta ? meta->data() : "");
-            ATRACE_BEGIN(str.c_str());
-            ATRACE_END();
-        }
-        if (log) {
-            mReadLog.reserve(ReadLogBufferSize);
-
-            auto fileId = getFileId(read.fileId);
-            android::base::StringAppendF(&mReadLog, "%lld:%lld:%lld:%lld\n",
-                                         static_cast<long long>(read.timestampUs),
-                                         static_cast<long long>(fileId ? *fileId : -1),
-                                         static_cast<long long>(read.firstBlockIdx),
-                                         static_cast<long long>(read.count));
-
-            if (mReadLog.size() >= mReadLog.capacity() - ReadLogMaxEntrySize) {
-                flushReadLog();
-            }
-        }
-    }
-
-    void flushReadLog() {
-        if (mReadLog.empty() || mReadLogFd == -1) {
-            return;
-        }
-
-        android::base::WriteStringToFd(mReadLog, mReadLogFd);
-        mReadLog.clear();
-    }
-
-private:
-    android::dataloader::FilesystemConnectorPtr mIfs = nullptr;
-    android::dataloader::StatusListenerPtr mStatusListener = nullptr;
-    android::base::unique_fd mInFd;
-    android::base::unique_fd mOutFd;
-    android::base::unique_fd mEventFd;
-    android::base::unique_fd mReadLogFd;
-    std::string mReadLog;
-    std::thread mReceiverThread;
-    std::mutex mMapsMutex;
-    std::unordered_map<android::dataloader::FileId, MetaPair> mNodeToMetaMap GUARDED_BY(mMapsMutex);
-    std::unordered_map<FileId, android::dataloader::FileId> mIdToNodeMap GUARDED_BY(mMapsMutex);
-    /** Tracks which files have been requested */
-    std::unordered_set<FileId> mRequestedFiles;
-    std::atomic<bool> mStopReceiving = false;
-};
-
-} // namespace
-
-int JNI_OnLoad(JavaVM* jvm, void* /* reserved */) {
-    android::dataloader::DataLoader::initialize(
-            [](auto, auto) { return std::make_unique<AdbDataLoader>(); });
-    return JNI_VERSION_1_6;
-}
diff --git a/packages/Incremental/NativeAdbDataLoader/src/com/android/incremental/nativeadb/NativeAdbDataLoaderService.java b/packages/Incremental/NativeAdbDataLoader/src/com/android/incremental/nativeadb/NativeAdbDataLoaderService.java
deleted file mode 100644
index c4e41c8..0000000
--- a/packages/Incremental/NativeAdbDataLoader/src/com/android/incremental/nativeadb/NativeAdbDataLoaderService.java
+++ /dev/null
@@ -1,34 +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.incremental.nativeadb;
-
-import android.annotation.NonNull;
-import android.content.pm.DataLoaderParams;
-import android.service.dataloader.DataLoaderService;
-
-/** This code is used for testing only. */
-public class NativeAdbDataLoaderService extends DataLoaderService {
-    public static final String TAG = "NativeAdbDataLoaderService";
-    static {
-        System.loadLibrary("nativeadbdataloaderservice_jni");
-    }
-
-    @Override
-    public DataLoader onCreateDataLoader(@NonNull DataLoaderParams dataLoaderParams) {
-        return null;
-    }
-}
diff --git a/packages/PackageInstaller/AndroidManifest.xml b/packages/PackageInstaller/AndroidManifest.xml
index f3b922e..fe4fdd3 100644
--- a/packages/PackageInstaller/AndroidManifest.xml
+++ b/packages/PackageInstaller/AndroidManifest.xml
@@ -27,6 +27,7 @@
             android:theme="@style/Theme.AlertDialogActivity"
             android:supportsRtl="true"
             android:defaultToDeviceProtectedStorage="true"
+            android:forceQueryable="true"
             android:directBootAware="true">
 
         <receiver android:name=".TemporaryFileManager"
diff --git a/packages/PrintSpooler/AndroidManifest.xml b/packages/PrintSpooler/AndroidManifest.xml
index cd6abb2..e47aa05 100644
--- a/packages/PrintSpooler/AndroidManifest.xml
+++ b/packages/PrintSpooler/AndroidManifest.xml
@@ -40,6 +40,12 @@
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 
+    <queries>
+        <intent>
+            <action android:name="android.printservice.PrintService" />
+        </intent>
+    </queries>
+
     <application
         android:allowClearUserData="true"
         android:label="@string/app_label"
diff --git a/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java b/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java
index a77683d..541a246 100644
--- a/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java
+++ b/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java
@@ -24,7 +24,6 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.res.Resources;
-import android.content.res.TypedArray;
 import android.net.Uri;
 import android.provider.Settings.Global;
 import android.text.TextUtils;
@@ -63,7 +62,6 @@
     // Constants for help intents.
     private static final String EXTRA_CONTEXT = "EXTRA_CONTEXT";
     private static final String EXTRA_THEME = "EXTRA_THEME";
-    private static final String EXTRA_PRIMARY_COLOR = "EXTRA_PRIMARY_COLOR";
     private static final String EXTRA_BACKUP_URI = "EXTRA_BACKUP_URI";
 
     /**
@@ -216,10 +214,7 @@
             intent.putExtra(feedbackIntentExtraKey, packageNameKey);
             intent.putExtra(feedbackIntentNameKey, packageNameValue);
         }
-        intent.putExtra(EXTRA_THEME, 0 /* Light theme */);
-        TypedArray array = context.obtainStyledAttributes(new int[]{android.R.attr.colorPrimary});
-        intent.putExtra(EXTRA_PRIMARY_COLOR, array.getColor(0, 0));
-        array.recycle();
+        intent.putExtra(EXTRA_THEME, 3 /* System Default theme */);
     }
 
     /**
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 762053e..649fcb1 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Wys Bluetooth-toestelle sonder name"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Deaktiveer absolute volume"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Aktiveer Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Verbeterde konnektiwiteit"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP-weergawe"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Kies Bluetooth AVRCP-weergawe"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP-weergawe"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-toestelle sonder name (net MAC-adresse) sal gewys word"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Deaktiveer die Bluetooth-kenmerk vir absolute volume indien daar volumeprobleme met afgeleë toestelle is, soos onaanvaarbare harde klank of geen beheer nie."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Aktiveer die Bluetooth Gabeldorsche-kenmerkstapel."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Aktiveer die Verbeterde Konnektiwiteit-kenmerk."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Plaaslike terminaal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Aktiveer terminaalprogram wat plaaslike skermtoegang bied"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-kontrolering"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profiel-HWUI-lewering"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Aktiveer GPU-ontfoutlae"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Laat laai van GPU-ontfoutlae vir ontfoutprogramme toe"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Aktiveer woordryke verkoperloginskrywing"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Sluit bykomende toestelspesifieke verkoperloglêers by foutverslae in, wat privaat inligting kan bevat, meer batterykrag kan gebruik, en/of meer berging kan gebruik."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Vensteranimasieskaal"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Oorganganimasieskaal"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator-tydsduurskaal"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Vra elke keer"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Totdat jy dit afskakel"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Sopas"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Hierdie toestel"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Foonluidspreker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Kan nie koppel nie. Skakel toestel af en weer aan"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Bedrade oudiotoestel"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index 3e6886c..f55b30e 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"የብሉቱዝ መሣሪያዎችን ያለ ስሞች አሳይ"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ፍጹማዊ ድምፅን አሰናክል"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorscheን አንቃ"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"የተሻሻለ ተገናኝነት"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"የብሉቱዝ AVRCP ስሪት"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"የብሉቱዝ AVRCP ስሪት ይምረጡ"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"የብሉቱዝ MAP ስሪት"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"የብሉቱዝ መሣሪያዎች ያለ ስሞች (MAC አድራሻዎች ብቻ) ይታያሉ"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"እንደ ተቀባይነት በሌለው ደረጃ ድምፁ ከፍ ማለት ወይም መቆጣጠር አለመቻል ያሉ ከሩቅ መሣሪያዎች ጋር የድምፅ ችግር በሚኖርበት ጊዜ የብሉቱዝ ፍጹማዊ ድምፅን ባሕሪ ያሰናክላል።"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"የብሉቱዝ Gabeldorsche ባህሪ ቁልሉን ያነቃል።"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"የተሻሻለ ተገናኝነት ባህሪውን ያነቃል።"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"አካባቢያዊ ተርሚናል"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"የአካባቢያዊ ሼል መዳረሻ የሚያቀርብ የተርሚናል መተግበሪያ አንቃ"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"የHDCP ምልከታ"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"የመገለጫ HWUI ምስልን በመስራት ላይ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"የጂፒዩ ስህተት ማረሚያ ንብርብሮችን ያንቁ"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ለስህተት ማረሚያ መተግበሪያዎች የጂፒዩ ንብርብሮችን መስቀልን ፍቀድ"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"የዝርክርክ ቃላት አቅራቢ ምዝግብ ማስታወሻን መያዝ አንቃ"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"በሳንካ ሪፖርቶች ውስጥ ተጨማሪ መሣሪያ-ተኮር የአቅራቢ ምዝግብ ማስታወሻዎችን ያካትቱ፣ ይህም የግል መረጃን ሊይዝ፣ ተጨማሪ ባትሪ ሊፈጅ እና/ወይም ተጨማሪ ማከማቻ ሊጠቀም ይችላል።"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"የዊንዶው እነማ ልኬት ለውጥ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"የእነማ ልኬት ለውጥ ሽግግር"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"እነማ አድራጊ ቆይታ መለኪያ"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ሁልጊዜ ጠይቅ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"እስኪያጠፉት ድረስ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ልክ አሁን"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ይህ መሣሪያ"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"የስልክ ድምጽ ማጉያ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"መገናኘት ላይ ችግር። መሳሪያውን ያጥፉት እና እንደገና ያብሩት"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ባለገመድ የኦዲዮ መሣሪያ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 7fa6b7f..1798e45 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -57,7 +57,7 @@
     <string name="osu_sign_up_complete" msgid="7640183358878916847">"اكتمل الاشتراك. جارٍ الاتصال…"</string>
     <string name="speed_label_very_slow" msgid="8526005255731597666">"بطيئة جدًا"</string>
     <string name="speed_label_slow" msgid="6069917670665664161">"بطيئة"</string>
-    <string name="speed_label_okay" msgid="1253594383880810424">"موافق"</string>
+    <string name="speed_label_okay" msgid="1253594383880810424">"حسنًا"</string>
     <string name="speed_label_medium" msgid="9078405312828606976">"متوسطة"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"سريعة"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"سريعة جدًا"</string>
@@ -206,60 +206,33 @@
     <string name="enable_adb" msgid="8072776357237289039">"‏تصحيح أخطاء USB"</string>
     <string name="enable_adb_summary" msgid="3711526030096574316">"‏وضع تصحيح الأخطاء عند توصيل USB"</string>
     <string name="clear_adb_keys" msgid="3010148733140369917">"‏إلغاء عمليات تفويض تصحيح أخطاء USB"</string>
-    <!-- no translation found for enable_adb_wireless (6973226350963971018) -->
-    <skip />
-    <!-- no translation found for enable_adb_wireless_summary (7344391423657093011) -->
-    <skip />
-    <!-- no translation found for adb_wireless_error (721958772149779856) -->
-    <skip />
-    <!-- no translation found for adb_wireless_settings (2295017847215680229) -->
-    <skip />
-    <!-- no translation found for adb_wireless_list_empty_off (1713707973837255490) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_title (6982904096137468634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_summary (3729901496856458634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_title (1122590300445142904) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_summary (6370414511333685185) -->
-    <skip />
-    <!-- no translation found for adb_paired_devices_title (5268997341526217362) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_connected_summary (3039660790249148713) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_details_title (7129369670526565786) -->
-    <skip />
-    <!-- no translation found for adb_device_forget (193072400783068417) -->
-    <skip />
-    <!-- no translation found for adb_device_fingerprint_title_format (291504822917843701) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_title (664211177427438438) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_message (9213896700171602073) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_title (7141739231018530210) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_pairing_code_label (3639239786669722731) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_title (3426758947882091735) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_msg (6611097519661997148) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_summary (8051414549011801917) -->
-    <skip />
-    <!-- no translation found for adb_wireless_verifying_qrcode_text (6123192424916029207) -->
-    <skip />
-    <!-- no translation found for adb_qrcode_pairing_device_failed_msg (6936292092592914132) -->
-    <skip />
-    <!-- no translation found for adb_wireless_ip_addr_preference_title (8335132107715311730) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_title (1906409667944674707) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_description (8578868049289910131) -->
-    <skip />
-    <!-- no translation found for keywords_adb_wireless (6507505581882171240) -->
-    <skip />
+    <string name="enable_adb_wireless" msgid="6973226350963971018">"‏تصحيح الأخطاء عبر شبكة Wi-Fi"</string>
+    <string name="enable_adb_wireless_summary" msgid="7344391423657093011">"‏وضع تصحيح الأخطاء عندما يتم الاتصال بشبكة Wi‑Fi"</string>
+    <string name="adb_wireless_error" msgid="721958772149779856">"خطأ"</string>
+    <string name="adb_wireless_settings" msgid="2295017847215680229">"‏تصحيح الأخطاء عبر شبكة Wi-Fi"</string>
+    <string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"لعرض الأجهزة المتاحة واستخدامها، فعِّل ميزة تصحيح الأخطاء لاسلكيًا."</string>
+    <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"إقران الجهاز باستخدام رمز الاستجابة السريعة"</string>
+    <string name="adb_pair_method_qrcode_summary" msgid="3729901496856458634">"إقران الأجهزة الجديدة باستخدام الماسح الضوئي لرموز الاستجابة السريعة"</string>
+    <string name="adb_pair_method_code_title" msgid="1122590300445142904">"إقران الجهاز باستخدام رمز الإقران"</string>
+    <string name="adb_pair_method_code_summary" msgid="6370414511333685185">"إقران الأجهزة الجديدة باستخدام رمز مكوّن من 6 أعداد"</string>
+    <string name="adb_paired_devices_title" msgid="5268997341526217362">"الأجهزة المقترنة"</string>
+    <string name="adb_wireless_device_connected_summary" msgid="3039660790249148713">"الأجهزة المتصلة حاليًا"</string>
+    <string name="adb_wireless_device_details_title" msgid="7129369670526565786">"تفاصيل الجهاز"</string>
+    <string name="adb_device_forget" msgid="193072400783068417">"حذف"</string>
+    <string name="adb_device_fingerprint_title_format" msgid="291504822917843701">"بصمة الإصبع للجهاز: <xliff:g id="FINGERPRINT_PARAM">%1$s</xliff:g>"</string>
+    <string name="adb_wireless_connection_failed_title" msgid="664211177427438438">"تعذّر الاتصال بالشبكة"</string>
+    <string name="adb_wireless_connection_failed_message" msgid="9213896700171602073">"تأكّدْ من اتصال <xliff:g id="DEVICE_NAME">%1$s</xliff:g> بالشبكة الصحيحة."</string>
+    <string name="adb_pairing_device_dialog_title" msgid="7141739231018530210">"الإقران مع الجهاز"</string>
+    <string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"‏رمز إقران Wi‑Fi"</string>
+    <string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"تعذّر الإقران"</string>
+    <string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"تأكّد من توصيل الجهاز بالشبكة نفسها."</string>
+    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"‏إقران الجهاز من خلال شبكة Wi‑Fi عن طريق المسح الضوئي لرمز استجابة سريعة"</string>
+    <string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"جارٍ إقران الجهاز…"</string>
+    <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"تعذّر إقران الجهاز. إما أن رمز الاستجابة السريعة غير صحيح أو أن الجهاز غير متصل بالشبكة نفسها."</string>
+    <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"‏عنوان IP والمنفذ"</string>
+    <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"المسح الضوئي لرمز الاستجابة السريعة"</string>
+    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"‏إقران الجهاز من خلال شبكة Wi‑Fi عن طريق المسح الضوئي لرمز استجابة سريعة"</string>
+    <string name="keywords_adb_wireless" msgid="6507505581882171240">"‏adb، تصحيح الأخطاء، مطور برامج"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"اختصار تقرير الأخطاء"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"عرض زر في قائمة خيارات التشغيل لإعداد تقرير بالأخطاء"</string>
     <string name="keep_screen_on" msgid="1187161672348797558">"البقاء في الوضع النشط"</string>
@@ -269,7 +242,7 @@
     <string name="oem_unlock_enable" msgid="5334869171871566731">"فتح قفل المصنّع الأصلي للجهاز"</string>
     <string name="oem_unlock_enable_summary" msgid="5857388174390953829">"‏السماح بإلغاء قفل برنامج bootloader"</string>
     <string name="confirm_enable_oem_unlock_title" msgid="8249318129774367535">"هل تريد السماح بإلغاء قفل المصنّع الأصلي للجهاز؟"</string>
-    <string name="confirm_enable_oem_unlock_text" msgid="854131050791011970">"تحذير: لن تعمل ميزات الحماية على هذا الجهاز أثناء تشغيل هذا الإعداد."</string>
+    <string name="confirm_enable_oem_unlock_text" msgid="854131050791011970">"تحذير: لن تعمل ميزات الحماية على هذا الجهاز أثناء تفعيل هذا الإعداد."</string>
     <string name="mock_location_app" msgid="6269380172542248304">"اختيار تطبيق الموقع الزائف"</string>
     <string name="mock_location_app_not_set" msgid="6972032787262831155">"لم يتم تعيين تطبيق موقع زائف"</string>
     <string name="mock_location_app_set" msgid="4706722469342913843">"تطبيق الموقع الزائف: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
@@ -282,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"عرض أجهزة البلوتوث بدون أسماء"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"إيقاف مستوى الصوت المطلق"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"‏تفعيل Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"إمكانية اتصال محسّن"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"‏إصدار Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"‏اختيار إصدار Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"‏إصدار Bluetooth MAP"</string>
@@ -325,10 +299,8 @@
     <string name="tethering_hardware_offload_summary" msgid="7801345335142803029">"استخدام إعداد تسريع الأجهزة للتوصيل إن كان متاحًا"</string>
     <string name="adb_warning_title" msgid="7708653449506485728">"‏هل تريد السماح بتصحيح أخطاء USB؟"</string>
     <string name="adb_warning_message" msgid="8145270656419669221">"‏تم تصميم تصحيح أخطاء USB لأغراض التطوير فقط. يمكن استخدامه لنسخ البيانات بين الكمبيوتر والجهاز، وتثبيت التطبيقات على جهازك بدون تنبيه، وقراءة بيانات السجل."</string>
-    <!-- no translation found for adbwifi_warning_title (727104571653031865) -->
-    <skip />
-    <!-- no translation found for adbwifi_warning_message (8005936574322702388) -->
-    <skip />
+    <string name="adbwifi_warning_title" msgid="727104571653031865">"‏هل تريد السماح بتصحيح الأخطاء عبر شبكة Wi-Fi؟"</string>
+    <string name="adbwifi_warning_message" msgid="8005936574322702388">"‏تم تصميم ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\" لأغراض التطوير فقط. يمكن استخدامها لنسخ البيانات بين الكمبيوتر والجهاز وتثبيت التطبيقات على جهازك بدون إرسال إشعار وقراءة بيانات السجلّ."</string>
     <string name="adb_keys_warning_message" msgid="2968555274488101220">"‏هل تريد إلغاء إمكانية الدخول إلى تصحيح أخطاء USB من جميع أجهزة الكمبيوتر التي تم التصريح لها سابقًا؟"</string>
     <string name="dev_settings_warning_title" msgid="8251234890169074553">"هل تريد السماح لإعدادات التطوير؟"</string>
     <string name="dev_settings_warning_message" msgid="37741686486073668">"هذه الإعدادات مخصصة لاستخدام التطوير فقط. قد يتسبب هذا في حدوث أعطال أو خلل في أداء الجهاز والتطبيقات المثبتة عليه."</string>
@@ -337,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"‏سيتم عرض أجهزة البلوتوث بدون أسماء (عناوين MAC فقط)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"لإيقاف ميزة مستوى الصوت المطلق للبلوتوث في حال حدوث مشاكل متعلقة بمستوى الصوت في الأجهزة البعيدة، مثل مستوى صوت عالٍ بشكل غير مقبول أو عدم إمكانية التحكّم في الصوت"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"‏تفعيل حِزم ميزة Bluetooth Gabeldorsche"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"لتفعيل الميزة \"إمكانية اتصال محسّن\""</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"تطبيق طرفي محلي"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"تفعيل تطبيق طرفي يوفر إمكانية الدخول إلى واجهة النظام المحلية"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"‏التحقق من HDCP"</string>
@@ -383,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"‏عرض ملف التعريف HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"‏تفعيل طبقات تصحيح أخطاء GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"‏السماح بتحميل طبقات تصحيح أخطاء GPU لتطبيقات تصحيح الأخطاء"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"تفعيل التسجيل المطوَّل للمورّد"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"يمكنك تضمين سجلات المورّدين الإضافية الخاصة بالجهاز في تقارير الخطأ، وقد تحتوي على معلومات شخصية و/أو تستهلك المزيد من شحن البطارية و/أو تستهلك المزيد من مساحة التخزين."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"حجم الرسوم المتحركة للنافذة"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"حجم الرسوم المتحركة للنقل"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"طول مدة الرسوم المتحركة"</string>
@@ -427,11 +402,11 @@
     <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>
-    <string name="convert_to_file_encryption" msgid="2828976934129751818">"التحويل إلى تشفير ملفات"</string>
+    <string name="convert_to_file_encryption" msgid="2828976934129751818">"التحويل إلى ترميز ملفات"</string>
     <string name="convert_to_file_encryption_enabled" msgid="840757431284311754">"تحويل…"</string>
-    <string name="convert_to_file_encryption_done" msgid="8965831011811180627">"تم استخدام تشفير ملفات من قبل"</string>
-    <string name="title_convert_fbe" msgid="5780013350366495149">"التحويل إلى تشفير على الملف"</string>
-    <string name="convert_to_fbe_warning" msgid="34294381569282109">"تحويل قسم البيانات إلى تشفير على الملف.\n !!تحذير!! سيؤدي هذا إلى محو جميع بياناتك.\n لا تزال هذه الميزة في مرحلة ألفا، وقد لا تعمل على نحو سليم.\n للمتابعة، اضغط على \"مسح وتحويل…\"."</string>
+    <string name="convert_to_file_encryption_done" msgid="8965831011811180627">"تم استخدام ترميز ملفات من قبل"</string>
+    <string name="title_convert_fbe" msgid="5780013350366495149">"التحويل إلى ترميز على الملف"</string>
+    <string name="convert_to_fbe_warning" msgid="34294381569282109">"تحويل قسم البيانات إلى ترميز على الملف.\n !!تحذير!! سيؤدي هذا إلى محو جميع بياناتك.\n لا تزال هذه الميزة في مرحلة ألفا، وقد لا تعمل على نحو سليم.\n للمتابعة، اضغط على \"مسح وتحويل…\"."</string>
     <string name="button_convert_fbe" msgid="1159861795137727671">"مسح وتحويل…"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"نمط لون الصورة"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"‏استخدام sRGB"</string>
@@ -441,8 +416,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"غطش الأحمر (الأحمر والأخضر)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"غمش الأزرق (الأزرق والأصفر)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"تصحيح الألوان"</string>
-    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (6178138727195403796) -->
-    <skip />
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"تساعد ميزة تصحيح الألوان المصابين بعمى الألوان على رؤية الألوان بدقة أكبر"</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_duration_only" msgid="8264199158671531431">"يتبقى <xliff:g id="TIME_REMAINING">%1$s</xliff:g> تقريبًا"</string>
@@ -461,27 +435,19 @@
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"يتبقى أقل من <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"يتبقى أكثر من <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_remaining_only_more_than_subtext" msgid="3274496164769110480">"يتبقى أكثر من <xliff:g id="TIME_REMAINING">%1$s</xliff:g>."</string>
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (137330009791560774) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (145489081521468132) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1070562682853942350) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4429259621177089719) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (7703677921000858479) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4374784375644214578) -->
-    <skip />
+    <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="137330009791560774">"قد يتم إغلاق الهاتف قريبًا"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="145489081521468132">"قد يتم إغلاق الجهاز اللوحي قريبًا"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="1070562682853942350">"قد يتم إغلاق الجهاز قريبًا"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="4429259621177089719">"قد يتم إغلاق الهاتف قريبًا (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7703677921000858479">"قد يتم إغلاق الجهاز اللوحي قريبًا (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="4374784375644214578">"قد يتم إغلاق الجهاز قريبًا (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
     <string name="power_charging" msgid="6727132649743436802">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
     <string name="power_remaining_charging_duration_only" msgid="7415639699283965818">"<xliff:g id="TIME">%1$s</xliff:g> إلى أن يتم شحن الجهاز بالكامل"</string>
     <string name="power_charging_duration" msgid="5005740040558984057">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> إلى أن يتم شحن الجهاز بالكامل"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"غير معروف"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"جارٍ الشحن"</string>
-    <!-- no translation found for battery_info_status_charging_fast (8027559755902954885) -->
-    <skip />
-    <!-- no translation found for battery_info_status_charging_slow (3190803837168962319) -->
-    <skip />
+    <string name="battery_info_status_charging_fast" msgid="8027559755902954885">"جارٍ الشحن سريعًا"</string>
+    <string name="battery_info_status_charging_slow" msgid="3190803837168962319">"جارٍ الشحن ببطء"</string>
     <string name="battery_info_status_discharging" msgid="6962689305413556485">"لا يتم الشحن"</string>
     <string name="battery_info_status_not_charging" msgid="8330015078868707899">"تم التوصيل، ولكن يتعذّر الشحن الآن"</string>
     <string name="battery_info_status_full" msgid="4443168946046847468">"ممتلئة"</string>
@@ -529,9 +495,9 @@
     <string name="accessibility_manual_zen_more_time" msgid="5141801092071134235">"وقت أكثر."</string>
     <string name="accessibility_manual_zen_less_time" msgid="6828877595848229965">"وقت أقل."</string>
     <string name="cancel" msgid="5665114069455378395">"إلغاء"</string>
-    <string name="okay" msgid="949938843324579502">"موافق"</string>
-    <string name="zen_mode_enable_dialog_turn_on" msgid="6418297231575050426">"تشغيل"</string>
-    <string name="zen_mode_settings_turn_on_dialog_title" msgid="2760567063190790696">"تشغيل وضع \"الرجاء عدم الإزعاج\""</string>
+    <string name="okay" msgid="949938843324579502">"حسنًا"</string>
+    <string name="zen_mode_enable_dialog_turn_on" msgid="6418297231575050426">"تفعيل"</string>
+    <string name="zen_mode_settings_turn_on_dialog_title" msgid="2760567063190790696">"تفعيل وضع \"الرجاء عدم الإزعاج\""</string>
     <string name="zen_mode_settings_summary_off" msgid="3832876036123504076">"مطلقًا"</string>
     <string name="zen_interruption_level_priority" msgid="5392140786447823299">"الأولوية فقط"</string>
     <string name="zen_mode_and_condition" msgid="8877086090066332516">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
@@ -543,6 +509,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"الطلب في كل مرة"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"إلى أن توقف الوضع يدويًا"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"للتو"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"هذا الجهاز"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"مكبر صوت الهاتف"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"حدثت مشكلة أثناء الاتصال. يُرجى إيقاف الجهاز ثم إعادة تشغيله."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"جهاز سماعي سلكي"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index dc22f29..ce967a3 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"নামবিহীন ব্লুটুথ ডিভাইচসমূহ দেখুৱাওক"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"পূৰ্ণ মাত্ৰাৰ ভলিউম অক্ষম কৰক"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche সক্ষম কৰক"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"উন্নত সংযোগ"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ব্লুটুথ AVRCP সংস্কৰণ"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ব্লুটুথ AVRCP সংস্কৰণ বাছনি কৰক"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ব্লুটুথ MAP সংস্কৰণ"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"নামহীন ব্লুটুথ ডিভাইচসমূহ (মাত্ৰ MAC ঠিকনাযুক্ত) দেখুওৱা হ\'ব"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ৰিম\'ট ডিভাইচবিলাকৰ সৈতে ভলিউম সম্পৰ্কীয় সমস্যা, যেনেকৈ অতি উচ্চ ভলিউম বা নিয়ন্ত্ৰণ কৰিবই নোৱাৰা অৱস্থাত ব্লুটুথৰ পূৰ্ণ ভলিউম সুবিধা অক্ষম কৰে।"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ব্লুটুথ Gabeldorche সুবিধাৰ সমষ্টিটো সক্ষম কৰে।"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"উন্নত সংযোগ সুবিধাটো সক্ষম কৰে।"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"স্থানীয় টাৰ্মিনেল"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"স্থানীয় শ্বেল প্ৰৱেশাধিকাৰ দিয়া টাৰ্মিনেল এপ্ সক্ষম কৰক"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP পৰীক্ষণ"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"প্ৰ\'ফাইল HWUI ৰেণ্ডাৰিং"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"জিপিইউ ডিবাগ স্তৰবোৰ সক্ষম কৰক"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ডিবাগ এপসমূহৰ বাবে জিপিইউ ডিবাগ তৰপ ল\'ড কৰিবলৈ অনুমতি দিয়ক"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"বিক্ৰেতাৰ ভাৰ্ব’ছ লগিং সক্ষম কৰক"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"ৱিণ্ড\' এনিমেশ্বন স্কেল"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ট্ৰাঞ্জিশ্বন এনিমেশ্বন স্কেল"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"এনিমেটৰ কালদৈৰ্ঘ্য স্কেল"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"প্ৰতিবাৰতে সোধক"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"আপুনি অফ নকৰা পর্যন্ত"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"এই মাত্ৰ"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"এই ডিভাইচটো"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ফ’নৰ স্পীকাৰ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"সংযোগ হোৱাত সমস্যা হৈছে। ডিভাইচটো অফ কৰি পুনৰ অন কৰক"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"তাঁৰযুক্ত অডিঅ’ ডিভাইচ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index 9b082b6..29624ab 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bluetooth cihazlarını adsız göstərin"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Mütləq səs həcmi deaktiv edin"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche\'ni aktiv edin"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Təkmilləşdirilmiş Bağlantı"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP Versiya"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP Versiyasını seçin"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP Versiyası"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Adsız Bluetooth cihazları (yalnız MAC ünvanları) göstəriləcək"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Uzaqdan idarə olunan cihazlarda dözülməz yüksək səs həcmi və ya nəzarət çatışmazlığı kimi səs problemləri olduqda Bluetooth mütləq səs həcmi xüsusiyyətini deaktiv edir."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche funksiyasını aktiv edir."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Təkmilləşdirilmiş Bağlantı funksiyasını aktiv edir."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Yerli terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Yerli örtük girişini təklif edən terminal tətbiqi aktiv edin"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP yoxlanılır"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil HWUI bərpası"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU debaq təbəqələrini aktiv edin"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"GPU debaq təbəqələrinin yüklənməsinə icazə verin"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Detallı təchizatçı qeydini aktiv edin"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Xəta hesabatlarına cihaza xas əlavə təchizatçı jurnallarını daxil edin, lakin nəzərə alın ki, onlar şəxsi məlumatları ehtiva edə, daha çox batareya istifadə edə və/və ya daha çox yaddaş istifadə edə bilər."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Pəncərə animasiya miqyası"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Animasiya keçid miqyası"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator müddət şkalası"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Hər dəfə soruşun"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Deaktiv edənə qədər"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"İndicə"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Bu cihaz"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon dinamiki"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Qoşulmaqla bağlı problem. Cihazı deaktiv edin, sonra yenidən aktiv edin"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Simli audio cihaz"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index cc63740..2d28006 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Prikaži Bluetooth uređaje bez naziva"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Onemogući glavno podešavanje jačine zvuka"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Omogući Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Poboljšano povezivanje"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Verzija Bluetooth AVRCP-a"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Izaberite verziju Bluetooth AVRCP-a"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Verzija Bluetooth MAP-a"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Biće prikazani Bluetooth uređaji bez naziva (samo sa MAC adresama)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Onemogućava glavno podešavanje jačine zvuka na Bluetooth uređaju u slučaju problema sa jačinom zvuka na daljinskim uređajima, kao što su izuzetno velika jačina zvuka ili nedostatak kontrole."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Omogućava grupu Bluetooth Gabeldorsche funkcija."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Omogućava funkciju Poboljšano povezivanje."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokalni terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Omogući apl. terminala za pristup lokalnom komandnom okruženju"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP provera"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Renderuj pomoću HWUI-a"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Omogući slojeve za otklanjanje grešaka GPU-a"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Omogući učitavanje otk. greš. GPU-a u apl. za otk. greš."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Opširne evidencije prodavca"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Uvrstite u izveštaje o greškama dodatne posebne evidencije prodavca za uređaje, koje mogu da sadrže privatne podatke, da troše više baterije i/ili da koriste više memorije."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Razmera animacije prozora"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Razmera animacije prelaza"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animatorova razmera trajanja"</string>
@@ -502,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Pitaj svaki put"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Dok ne isključite"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Upravo"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Ovaj uređaj"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvučnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem pri povezivanju. Isključite uređaj, pa ga ponovo uključite"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audio uređaj"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index f08726e..bd6fdf3 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Паказваць прылады Bluetooth без назваў"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Адключыць абсалютны гук"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Уключыць Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Палепшанае падключэнне"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Версія Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Выбраць версію Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Версія Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Прылады Bluetooth будуць паказаны без назваў (толькі MAC-адрасы)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Адключыць функцыю абсалютнага гуку Bluetooth у выпадку праблем з гукам на аддаленых прыладах, напрыклад, пры непрымальна высокай гучнасці або адсутнасці кіравання."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Уключае стос функцый Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Уключае функцыю \"Палепшанае падключэнне\"."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Лакальны тэрмінал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Уключэнне прыкладання тэрмінала, якое прапануе доступ да лакальнай абалонкі"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Праверка HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Профіль візуалізацыі HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Уключыць слаі адладкі GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Загружаць слаі адладкі GPU для праграм адладкі"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Уключыць падрабязны журнал пастаўшчыка"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Дадаваць у справаздачы пра памылкі дадатковыя журналы пастаўшчыка для пэўнай прылады (могуць утрымлівацца прыватныя даныя, можа павышацца выкарыстанне акумулятара і/ці памяці)."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Маштаб анімацыі акна"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Маштаб перадачы анімацыі"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Працягласць анімацыі"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Заўсёды пытацца"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Пакуль не выключыце"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Толькі што"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Гэта прылада"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Дынамік тэлефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Праблема з падключэннем. Выключыце і зноў уключыце прыладу"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Правадная аўдыяпрылада"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 78ab01a..3d27f63 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Показване на устройствата с Bluetooth без имена"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Деактивиране на пълната сила на звука"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Активиране на Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Подобрена свързаност"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Версия на AVRCP за Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Избиране на версия на AVRCP за Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"MAP версия за Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Ще бъдат показани устройствата с Bluetooth без имена (само MAC адресите)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Деактивира функцията на Bluetooth за пълна сила на звука в случай на проблеми със звука на отдалечени устройства, като например неприемливо висока сила на звука или липса на управление."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Активира стека на функциите на Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Активира функцията за подобрена свързаност."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Локален терминал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Актив. на прил. за терминал с достъп до локалния команден ред"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Проверка с HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Изобр. на HWUI: Профилир."</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Активиране на слоевете за отстр. на грешки в ГП"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Разреш. на зарежд. на слоевете за отстр. на грешки в ГП за съотв. прилож."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Подр. рег. файлове за доставчиците: Актив."</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Включване на допълнителни регистрационни файлове за доставчиците на конкретни устройства в сигналите за програмни грешки, които може да съдържат поверителна информация, да изразходват батерията в по-голяма степен и/или да използват повече място в хранилището."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Скала на аним.: Прозорец"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Скала на преходната анимация"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Скала за Animator"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Да се пита винаги"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"До изключване"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Току-що"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Това устройство"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Високоговорител на телефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"При свързването възникна проблем. Изключете устройството и го включете отново"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Аудиоустройство с кабел"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index 15ebfb8..6c459fc 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"নামহীন ব্লুটুথ ডিভাইসগুলি দেখুন"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"চূড়ান্ত ভলিউম অক্ষম করুন"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche ফিচার চালু করুন"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"কানেক্টিভিটি উন্নত করা হয়েছে"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ব্লুটুথ AVRCP ভার্সন"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ব্লুটুথ AVRCP ভার্সন বেছে নিন"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ব্লুটুথ MAP ভার্সন"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"নামহীন ব্লুটুথ ডিভাইসগুলি দেখানো হবে (শুধুমাত্র MAC অ্যাড্রেস)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"অপ্রত্যাশিত উচ্চ ভলিউম বা নিয়ন্ত্রণের অভাবের মত দূরবর্তী ডিভাইসের ভলিউম সমস্যাগুলির ক্ষেত্রে, ব্লুটুথ চুড়ান্ত ভলিউম বৈশিষ্ট্য অক্ষম করে৷"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ব্লুটুথ Gabeldorche ফিচার স্ট্যাক চালু করে।"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"কানেক্টিভিটি ফিচার উন্নত করার বিষয়টি চালু করা হয়েছে।"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"স্থানীয় টার্মিনাল"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"স্থানীয় শেল অ্যাক্সেসের প্রস্তাব করে এমন টার্মিনাল অ্যাপ্লিকেশন সক্ষম করুন"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP পরীক্ষণ"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"প্রোফাইল HWUI রেন্ডারিং"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU ডিবাগ স্তর চালু করুন"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ডিবাগ অ্যাপের জন্য GPU ডিবাগ স্তর লোড হতে দিন"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"ভারবোস ভেন্ডর লগ-ইন চালু করুন"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"উইন্ডো অ্যানিমেশন স্কেল"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ট্র্যানজিশন অ্যানিমেশন স্কেল"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"অ্যানিমেটর সময়কাল স্কেল"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"প্রতিবার জিজ্ঞেস করা হবে"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"যতক্ষণ না আপনি বন্ধ করছেন"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"এখনই"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"এই ডিভাইস"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ফেনের স্পিকার"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"কানেক্ট করতে সমস্যা হচ্ছে। ডিভাইস বন্ধ করে আবার চালু করুন"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ওয়্যার অডিও ডিভাইস"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index cb55c5d..e4c6e0c 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Prikaži Bluetooth uređaje bez naziva"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Onemogući apsolutnu jačinu zvuka"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Omogući Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Poboljšana povezivost"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP verzija"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Odaberite Bluetooth AVRCP verziju"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP verzija"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Prikazat će se Bluetooth uređaji bez naziva (samo MAC adrese)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Onemogućava funkciju apsolutne jačine zvuka za Bluetooth u slučaju problema s jačinom zvuka na udaljenim uređajima, kao što je neprihvatljivo glasan zvuk ili nedostatak kontrole."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Omogućava grupisanje funkcije Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Omogućava funkciju Poboljšane povezivosti."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokalni terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Omogući terminalnu aplik. koja nudi pristup lok. kom. okruženju"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP provjera"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil HWUI iscrtavanja"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Omogući slojeve za otklanjanje grešaka na GPU-u"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Omoguć. učit. sloj. za otkl. greš. na GPU-u za apl. za otkl. greš."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Omogući opširni zapisnik"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"U izvještaje o greškama uključite dodatne zapisnike dobavljača specifične za uređaj, koji mogu sadržavati lične informacije, povećati potrošnju baterije i/ili koristiti više prostora za pohranu."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Skala animacije prozora"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Skala animacije prijelaza"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Skala trajanja animatora"</string>
@@ -502,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Pitaj svaki put"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Dok ne isključite"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Upravo"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Ovaj uređaj"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvučnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Došlo je do problema prilikom povezivanja. Isključite, pa ponovo uključite uređaj"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audio uređaj"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 7ac03aa..1a6e078 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostra els dispositius Bluetooth sense el nom"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Desactiva el volum absolut"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Activa Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Connectivitat millorada"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versió AVRCP de Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selecciona la versió AVRCP de Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versió MAP de Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Es mostraran els dispositius Bluetooth sense el nom (només l\'adreça MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Desactiva la funció de volum absolut del Bluetooth en cas que es produeixin problemes de volum amb dispositius remots, com ara un volum massa alt o una manca de control."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Activa el conjunt de funcions de Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Activa la funció de connectivitat millorada."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Activa l\'aplicació de terminal que ofereix accés al shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Comprovació d\'HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Renderització perfil HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Activa les capes de depuració de GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permet capes de depuració de GPU en apps de depuració"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Activa el registre detallat"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inclou altres registres de proveïdor específics del dispositiu als informes d’errors; és possible que continguin informació privada, consumeixin més bateria o utilitzin més espai d\'emmagatzematge."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Escala d\'animació finestra"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala d\'animació transició"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala de durada d\'animació"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Pregunta sempre"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Fins que no ho desactivis"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Ara mateix"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Aquest dispositiu"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altaveu del telèfon"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Hi ha hagut un problema amb la connexió. Desactiva el dispositiu i torna\'l a activar."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositiu d\'àudio amb cable"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 932051d..cdec461 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Zobrazovat zařízení Bluetooth bez názvů"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Zakázat absolutní hlasitost"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Zapnout funkci Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Lepší připojování"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Verze profilu Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Vyberte verzi profilu Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Verze MAP pro Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Zařízení Bluetooth se budou zobrazovat bez názvů (pouze adresy MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Zakáže funkci absolutní hlasitosti Bluetooth. Zabrání tak problémům s hlasitostí vzdálených zařízení (jako je příliš vysoká hlasitost nebo nemožnost ovládání)."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Zapne sadu funkcí Bluetooth Gabeldorche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Aktivuje funkci Lepší připojování."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Místní terminál"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Aktivovat terminálovou aplikaci pro místní přístup k prostředí shell"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Kontrola HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil – vykres. HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Povolit vrstvy ladění GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Povolit načítání vrstev ladění GPU pro ladicí aplikace"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Povolit podrobné protokolování dodavatele"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Zahrnovat do zpráv o chybách dodatečné protokoly dodavatelů specifické pro zařízení, které mohou obsahovat soukromé údaje, více vybíjet baterii nebo využívat více místa v úložišti."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Měřítko animace okna"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Měřítko animace přeměny"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Měřítko délky animace"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Pokaždé se zeptat"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Dokud tuto funkci nevypnete"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Právě teď"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Toto zařízení"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Reproduktor telefonu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problém s připojením. Vypněte zařízení a znovu jej zapněte"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Kabelové audiozařízení"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 20fbf94..d88c149 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Vis Bluetooth-enheder uden navne"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Deaktiver absolut lydstyrke"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Aktivér Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Enhanced Connectivity"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"AVRCP-version for Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Vælg AVRCP-version for Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"MAP-version for Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-enheder uden navne (kun MAC-adresser) vises"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Deaktiverer funktionen til absolut lydstyrke via Bluetooth i tilfælde af problemer med lydstyrken på eksterne enheder, f.eks. uacceptabel høj lyd eller manglende kontrol."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Aktiverer funktioner fra Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Aktivér funktionen Enhanced Connectivity."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokal terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Aktivér terminalappen, der giver lokal shell-adgang"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-kontrol"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI-profilgengivelse"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Aktivér fejlretningslag for grafikprocessor"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Tillad, at fejlretningslag indlæses for grafikprocessor i apps til fejlretning"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Aktivér detaljeret leverandørlogging"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Medtag yderligere enhedsspecifikke leverandørlogfiler i fejlrapporter, som muligvis indeholder personlige oplysninger. Dette bruger muligvis mere batteri og/eller lagerplads."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Animationsskala for vindue"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Overgangsanimationsskala"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animatorvarighedsskala"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Spørg hver gang"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Indtil du deaktiverer"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Lige nu"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Denne enhed"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonens højttaler"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Der kunne ikke oprettes forbindelse. Sluk og tænd enheden"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Lydenhed med ledning"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 3d46649..b388686 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bluetooth-Geräte ohne Namen anzeigen"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Absolute Lautstärkeregelung deaktivieren"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Bluetooth-Gabeldorsche aktivieren"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Verbesserte Konnektivität"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP-Version"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP-Version auswählen"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP-Version"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-Geräte werden ohne Namen und nur mit ihren MAC-Adressen angezeigt"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Deaktiviert die Funktion \"Absolute Lautstärkeregelung\" für Bluetooth-Geräte, falls auf Remote-Geräten Probleme mit der Lautstärke auftreten, wie beispielsweise übermäßig laute Wiedergabe oder fehlende Steuerungsmöglichkeiten."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Aktiviert das Bluetooth-Gabeldorsche-Funktionspaket."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Aktiviert die Funktion \"Verbesserte Konnektivität\"."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokales Terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Terminal-App mit Zugriff auf lokale Shell aktivieren"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-Prüfung"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI-Rendering für Profil"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU-Debug-Ebenen zulassen"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Debug-Apps das Laden von GPU-Debug-Ebenen erlauben"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Ausführliche Protokollierung aktivieren"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Fensteranimationsfaktor"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Übergangsanimationsfaktor"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animationsdauerfaktor"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Jedes Mal fragen"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Bis zur Deaktivierung"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"gerade eben"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Dieses Gerät"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Smartphone-Lautsprecher"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Verbindung kann nicht hergestellt werden. Schalte das Gerät aus &amp; und wieder ein."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Netzbetriebenes Audiogerät"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 6bd8736..07f73c3 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Εμφάνιση συσκευών Bluetooth χωρίς ονόματα"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Απενεργοποίηση απόλυτης έντασης"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Ενεργοποίηση Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Βελτιωμένη συνδεσιμότητα"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Έκδοση AVRCP Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Επιλογή έκδοσης AVRCP Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Έκδοση MAP Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Θα εμφανιστούν οι συσκευές Bluetooth χωρίς ονόματα (μόνο διευθύνσεις MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Απενεργοποιεί τη δυνατότητα απόλυτης έντασης του Bluetooth σε περίπτωση προβλημάτων έντασης με απομακρυσμένες συσκευές, όπως όταν υπάρχει μη αποδεκτά υψηλή ένταση ή απουσία ελέγχου."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Ενεργοποιεί τη στοίβα λειτουργιών Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Επιτρέπει τη λειτουργία Βελτιωμένης συνδεσιμότητας."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Τοπική τερματική εφαρμογή"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Ενεργοπ.τερμ.εφαρμογής που προσφέρει πρόσβαση στο τοπικό κέλυφος"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Έλεγχος HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Απόδοση HWUI προφίλ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Ενεργ. επιπ. εντ. σφ. GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Φόρτωση επιπ. εντοπ. σφ. GPU για εφαρμ. αντιμ. σφ."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Ενεργ. λεπτ. καταγραφής προμ."</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Συμπερίληψη πρόσθετων αρχείων καταγραφής προμηθευτή για συγκεκριμένες συσκευές στις αναφορές σφαλμάτων, τα οποία ενδέχεται να περιέχουν ιδιωτικές πληροφορίες, να χρησιμοποιούν περισσότερη μπαταρία ή/και να χρησιμοποιούν περισσότερο αποθηκευτικό χώρο."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Κλίμακα κίνησης παραθύρου"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Κλίμακα κίνησης μετάβασης"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Κλίμ. διάρ. Animator"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Να ερωτώμαι κάθε φορά"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Μέχρι την απενεργοποίηση"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Μόλις τώρα"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Αυτή η συσκευή"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Ηχείο τηλεφώνου"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Πρόβλημα κατά τη σύνδεση. Απενεργοποιήστε τη συσκευή και ενεργοποιήστε την ξανά"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Ενσύρματη συσκευή ήχου"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 810f81e..79cf4df 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Show Bluetooth devices without names"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Disable absolute volume"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Enable Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Enhanced connectivity"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP version"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Select Bluetooth AVRCP Version"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP version"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth devices without names (MAC addresses only) will be displayed"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Disables the Bluetooth absolute volume feature in case of volume issues with remote devices such as unacceptably loud volume or lack of control."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Enables the Bluetooth Gabeldorsche feature stack."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Enables the enhanced connectivity feature."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Local terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Enable terminal app that offers local shell access"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP checking"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profile HWUI rendering"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Enable GPU debug layers"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Allow loading GPU debug layers for debug apps"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Enable verbose vendor logging"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Include additional device-specific vendor logs in bug reports, which may contain private information, use more battery and/or use more storage."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Window animation scale"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Transition animation scale"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator duration scale"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Just now"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"This device"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index 810f81e..79cf4df 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Show Bluetooth devices without names"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Disable absolute volume"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Enable Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Enhanced connectivity"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP version"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Select Bluetooth AVRCP Version"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP version"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth devices without names (MAC addresses only) will be displayed"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Disables the Bluetooth absolute volume feature in case of volume issues with remote devices such as unacceptably loud volume or lack of control."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Enables the Bluetooth Gabeldorsche feature stack."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Enables the enhanced connectivity feature."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Local terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Enable terminal app that offers local shell access"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP checking"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profile HWUI rendering"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Enable GPU debug layers"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Allow loading GPU debug layers for debug apps"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Enable verbose vendor logging"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Include additional device-specific vendor logs in bug reports, which may contain private information, use more battery and/or use more storage."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Window animation scale"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Transition animation scale"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator duration scale"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Just now"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"This device"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 810f81e..79cf4df 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Show Bluetooth devices without names"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Disable absolute volume"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Enable Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Enhanced connectivity"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP version"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Select Bluetooth AVRCP Version"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP version"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth devices without names (MAC addresses only) will be displayed"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Disables the Bluetooth absolute volume feature in case of volume issues with remote devices such as unacceptably loud volume or lack of control."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Enables the Bluetooth Gabeldorsche feature stack."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Enables the enhanced connectivity feature."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Local terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Enable terminal app that offers local shell access"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP checking"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profile HWUI rendering"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Enable GPU debug layers"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Allow loading GPU debug layers for debug apps"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Enable verbose vendor logging"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Include additional device-specific vendor logs in bug reports, which may contain private information, use more battery and/or use more storage."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Window animation scale"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Transition animation scale"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator duration scale"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Just now"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"This device"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 810f81e..79cf4df 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Show Bluetooth devices without names"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Disable absolute volume"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Enable Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Enhanced connectivity"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP version"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Select Bluetooth AVRCP Version"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP version"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth devices without names (MAC addresses only) will be displayed"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Disables the Bluetooth absolute volume feature in case of volume issues with remote devices such as unacceptably loud volume or lack of control."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Enables the Bluetooth Gabeldorsche feature stack."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Enables the enhanced connectivity feature."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Local terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Enable terminal app that offers local shell access"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP checking"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profile HWUI rendering"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Enable GPU debug layers"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Allow loading GPU debug layers for debug apps"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Enable verbose vendor logging"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Include additional device-specific vendor logs in bug reports, which may contain private information, use more battery and/or use more storage."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Window animation scale"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Transition animation scale"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator duration scale"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Just now"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"This device"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rXC/strings.xml b/packages/SettingsLib/res/values-en-rXC/strings.xml
index d142c0a..c128e2c 100644
--- a/packages/SettingsLib/res/values-en-rXC/strings.xml
+++ b/packages/SettingsLib/res/values-en-rXC/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎Show Bluetooth devices without names‎‏‎‎‏‎"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‎Disable absolute volume‎‏‎‎‏‎"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‎Enable Gabeldorsche‎‏‎‎‏‎"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎Enhanced Connectivity‎‏‎‎‏‎"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎Bluetooth AVRCP Version‎‏‎‎‏‎"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‎‏‎Select Bluetooth AVRCP Version‎‏‎‎‏‎"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‏‏‎Bluetooth MAP Version‎‏‎‎‏‎"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎Bluetooth devices without names (MAC addresses only) will be displayed‎‏‎‎‏‎"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎Disables the Bluetooth absolute volume feature in case of volume issues with remote devices such as unacceptably loud volume or lack of control.‎‏‎‎‏‎"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎Enables the Bluetooth Gabeldorsche feature stack.‎‏‎‎‏‎"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎Enables the Enhanced Connectivity feature.‎‏‎‎‏‎"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‎Local terminal‎‏‎‎‏‎"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎Enable terminal app that offers local shell access‎‏‎‎‏‎"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎HDCP checking‎‏‎‎‏‎"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎Profile HWUI rendering‎‏‎‎‏‎"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎Enable GPU debug layers‎‏‎‎‏‎"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎Allow loading GPU debug layers for debug apps‎‏‎‎‏‎"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‏‎‎‎‎Enable verbose vendor logging‎‏‎‎‏‎"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‎‎‎Include additional device-specific vendor logs in bug reports, which may contain private information, use more battery, and/or use more storage.‎‏‎‎‏‎"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‎Window animation scale‎‏‎‎‏‎"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎Transition animation scale‎‏‎‎‏‎"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎Animator duration scale‎‏‎‎‏‎"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎Ask every time‎‏‎‎‏‎"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎Until you turn off‎‏‎‎‏‎"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎Just now‎‏‎‎‏‎"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎This device‎‏‎‎‏‎"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‎‎Phone speaker‎‏‎‎‏‎"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‎Problem connecting. Turn device off &amp; back on‎‏‎‎‏‎"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‏‏‎Wired audio device‎‏‎‎‏‎"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 8b99f72..06660ee 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostrar dispositivos Bluetooth sin nombre"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Inhabilitar volumen absoluto"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Habilitar Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Conectividad mejorada"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versión de AVRCP del Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selecciona la versión de AVRCP del Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versión de MAP de Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Se mostrarán los dispositivos Bluetooth sin nombre (solo direcciones MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Inhabilita la función de volumen absoluto de Bluetooth si se producen problemas de volumen con dispositivos remotos (por ejemplo, volumen demasiado alto o falta de control)."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Habilita la pila de funciones de Bluetooth Gabeldorsche"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Habilita la función Conectividad mejorada."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Habilitar aplicac. de terminal que ofrece acceso al shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Comprobación HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Perfil procesamiento HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Habilitar depuración GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permitir capas de GPU para apps de depuración"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Habilitar registro detallado"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Incluye otros registros de proveedor específicos del dispositivo en los informes de errores, que podrían contener información privada, consumir más batería o usar más espacio de almacenamiento."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Escala de animación de ventana"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala de animación de transición"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala de duración de animador"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Preguntar siempre"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Hasta que lo desactives"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Recién"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Este dispositivo"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altavoz del teléfono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Error al establecer la conexión. Apaga el dispositivo y vuelve a encenderlo."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 5c8efc5..2e5adb8 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -202,7 +202,7 @@
     <string name="development_settings_not_available" msgid="355070198089140951">"Las opciones de desarrollador no están disponibles para este usuario"</string>
     <string name="vpn_settings_not_available" msgid="2894137119965668920">"Los ajustes de VPN no están disponibles para este usuario"</string>
     <string name="tethering_settings_not_available" msgid="266821736434699780">"Los ajustes para compartir conexión no están disponibles para este usuario"</string>
-    <string name="apn_settings_not_available" msgid="1147111671403342300">"Los ajustes del nombre de punto de acceso no están disponibles para este usuario"</string>
+    <string name="apn_settings_not_available" msgid="1147111671403342300">"Los ajustes del nombre del punto de acceso no están disponibles para este usuario"</string>
     <string name="enable_adb" msgid="8072776357237289039">"Depuración por USB"</string>
     <string name="enable_adb_summary" msgid="3711526030096574316">"Activar el modo de depuración cuando el dispositivo esté conectado por USB"</string>
     <string name="clear_adb_keys" msgid="3010148733140369917">"Revocar autorizaciones de depuración USB"</string>
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostrar dispositivos Bluetooth sin nombre"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Inhabilitar volumen absoluto"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Habilitar Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Conectividad mejorada"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versión AVRCP de Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selecciona la versión AVRCP de Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versión de MAP de Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Mostrar dispositivos Bluetooth sin nombre (solo direcciones MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Inhabilitar la función de volumen absoluto de Bluetooth si se producen problemas de volumen con dispositivos remotos (por ejemplo, volumen demasiado alto o falta de control)"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Habilita la pila de funciones de Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Habilita la función de conectividad mejorada."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Habilitar aplicación de terminal que ofrece acceso a shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Comprobación de HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Trazar la renderización de HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Activar capas de depuración de GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permitir cargar capas de depuración de GPU en aplicaciones"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Habilit. registro de proveedor"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Incluye otros registros de proveedor específicos del dispositivo en informes de errores; es posible que contenga información privada, que consuma más batería o que ocupe más espacio de almacenamiento."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Escala de animación de ventana"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala de animación de transición"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala de duración de animación"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Preguntar siempre"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Hasta que se desactive"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Justo ahora"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Este dispositivo"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altavoz del teléfono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"No se ha podido conectar; reinicia el dispositivo"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index 7597476..027ab1a 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Kuva ilma nimedeta Bluetoothi seadmed"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Keela absoluutne helitugevus"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Luba Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Täiustatud ühenduvus"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetoothi AVRCP versioon"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Valige Bluetoothi AVRCP versioon"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetoothi MAP-i versioon"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Kuvatakse ilma nimedeta (ainult MAC-aadressidega) Bluetoothi seadmed"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Keelatakse Bluetoothi absoluutse helitugevuse funktsioon, kui kaugseadmetega on helitugevuse probleeme (nt liiga vali heli või juhitavuse puudumine)."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Lubab Bluetooth Gabeldorsche\'i funktsiooni virnastamise."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Lubab täiustatud ühenduvuse funktsiooni."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Kohalik terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Luba kohalikku turvalist juurdepääsu pakkuv terminalirakendus"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-kontrollimine"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profiili HWUI renderdamine"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU silumise kihtide lubamine"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"GPU silumise kihtide laadimise lubamine silumisrakendustele"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Luba paljusõnaline logimine"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Veaaruannetesse kaasatakse täiendavad seadmepõhised teenusepakkuja logid, mis võivad sisaldada privaatset teavet, kasutada rohkem akut ja/või salvestusruumi."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Akna animatsioonimastaap"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Ülemineku animatsioonimastaap"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animaatori kestuse mastaap"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Küsi iga kord"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Kuni välja lülitate"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Äsja"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"See seade"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefoni kõlar"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Probleem ühendamisel. Lülitage seade välja ja uuesti sisse"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Juhtmega heliseade"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index fd2635a..95ed7f0 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -212,9 +212,9 @@
     <string name="adb_wireless_settings" msgid="2295017847215680229">"Hari gabeko arazketa"</string>
     <string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"Erabilgarri dauden gailuak ikusteko eta erabiltzeko, aktibatu hari gabeko arazketa"</string>
     <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"Parekatu gailua QR kodearekin"</string>
-    <string name="adb_pair_method_qrcode_summary" msgid="3729901496856458634">"Parekatu gailu berriak QR kodea eskaneatuta"</string>
+    <string name="adb_pair_method_qrcode_summary" msgid="3729901496856458634">"Parekatu gailu gehiago QR kodea eskaneatuta"</string>
     <string name="adb_pair_method_code_title" msgid="1122590300445142904">"Parekatu gailua parekatze-kodearekin"</string>
-    <string name="adb_pair_method_code_summary" msgid="6370414511333685185">"Parekatu gailu berriak sei digituko kodearekin"</string>
+    <string name="adb_pair_method_code_summary" msgid="6370414511333685185">"Parekatu gailu gehiago sei digituko kodearekin"</string>
     <string name="adb_paired_devices_title" msgid="5268997341526217362">"Parekatutako gailuak"</string>
     <string name="adb_wireless_device_connected_summary" msgid="3039660790249148713">"Konektatuta daudenak"</string>
     <string name="adb_wireless_device_details_title" msgid="7129369670526565786">"Gailuaren xehetasunak"</string>
@@ -226,12 +226,12 @@
     <string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"Wifi bidezko parekatze-kodea"</string>
     <string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"Ezin izan da parekatu gailua"</string>
     <string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"Ziurtatu gailua sare berera konektatuta dagoela."</string>
-    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Parekatu gailua wifi sare baten bidez QR kode bat eskaneatuta"</string>
+    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Parekatu gailua wifi-sare baten bidez QR kode bat eskaneatuta"</string>
     <string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"Gailua parekatzen…"</string>
-    <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"Ezin izan da parekatu gailua. QR kodea ez zen zuzena zen edo gailua ez dago sare berera konektatuta."</string>
+    <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"Ezin izan da parekatu gailua. QR kodea ez da zuzena edo gailua ez dago sare berera konektatuta."</string>
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP helbidea eta ataka"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Eskaneatu QR kodea"</string>
-    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Parekatu gailua wifi sare baten bidez QR kode bat eskaneatuta"</string>
+    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Parekatu gailua wifi-sare baten bidez QR kode bat eskaneatuta"</string>
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, araztu, gailua"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Akatsen txostenerako lasterbidea"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Bateriaren menuan, erakutsi akatsen txostena sortzeko botoia"</string>
@@ -252,9 +252,10 @@
     <string name="wifi_scan_throttling" msgid="2985624788509913617">"Wifi-sareen bilaketaren muga"</string>
     <string name="mobile_data_always_on" msgid="8275958101875563572">"Datu-konexioa beti aktibo"</string>
     <string name="tethering_hardware_offload" msgid="4116053719006939161">"Konexioa partekatzeko hardwarearen azelerazioa"</string>
-    <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Erakutsi Bluetooth gailuak izenik gabe"</string>
+    <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Erakutsi Bluetooth bidezko gailuak izenik gabe"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Desgaitu bolumen absolutua"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gaitu Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Konexio hobeak"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP bertsioa"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Hautatu Bluetooth AVRCP bertsioa"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAParen bertsioa"</string>
@@ -305,9 +306,10 @@
     <string name="dev_settings_warning_message" msgid="37741686486073668">"Ezarpen hauek garapen-xedeetarako pentsatu dira soilik. Baliteke ezarpenen eraginez gailua matxuratzea edo funtzionamendu okerra izatea."</string>
     <string name="verify_apps_over_usb_title" msgid="6031809675604442636">"Egiaztatu USBko aplikazioak"</string>
     <string name="verify_apps_over_usb_summary" msgid="1317933737581167839">"Egiaztatu ADB/ADT bidez instalatutako aplikazioak portaera kaltegarriak atzemateko"</string>
-    <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth gailuak izenik gabe (MAC helbideak soilik) erakutsiko dira"</string>
+    <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth bidezko gailuak izenik gabe (MAC helbideak soilik) erakutsiko dira"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Bluetooth bidezko bolumen absolutuaren eginbidea desgaitu egiten du urruneko gailuetan arazoak hautematen badira; esaterako, bolumena ozenegia bada edo ezin bada kontrolatu"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche eginbide sorta gaitzen du."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Konexioak hobetzeko eginbidea gaitzen du."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Tokiko terminala"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Gaitu tokiko shell-sarbidea duen terminal-aplikazioa"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP egiaztapena"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profilaren HWUI errendatzea"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Gaitu GPUaren arazketa-geruzak"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Eman GPUaren arazketa-geruzak kargatzeko baimena arazketa-aplikazioei"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Gaitu saltzaileen erregistro xehatuak"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Leihoen animazio-eskala"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Trantsizioen animazio-eskala"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animatzailearen iraupena"</string>
@@ -412,7 +417,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanopia (gorri-berdeak)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanopia (urdin-horia)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Koloreen zuzenketa"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Kolore-zuzenketak kolore zehatzagoak ikusten laguntzen die kolore-itsutasuna duten pertsonei"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Koloreen zuzenketak kolore zehatzagoak ikusten laguntzen die kolore-itsutasuna duten pertsonei"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> hobespena gainjarri zaio"</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_duration_only" msgid="8264199158671531431">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> inguru gelditzen dira"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Galdetu beti"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Zuk desaktibatu arte"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Oraintxe"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Gailu hau"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonoaren bozgorailua"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Arazoren bat izan da konektatzean. Itzali gailua eta pitz ezazu berriro."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Audio-gailu kableduna"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 9d92cfe..4cc6974 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"نمایش دستگاه‌های بلوتوث بدون نام"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"غیرفعال کردن میزان صدای مطلق"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"‏فعال کردن Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"اتصال بهبودیافته"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"‏نسخه AVRCP بلوتوث"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"‏انتخاب نسخه AVRCP بلوتوث"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"‏نسخه MAP بلوتوث"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"‏دستگاه‌های بلوتوث بدون نام (فقط نشانی‌های MAC) نشان داده خواهند شد"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"درصورت وجود مشکل در صدا با دستگاه‌های راه دور مثل صدای بلند ناخوشایند یا عدم کنترل صدا، ویژگی میزان صدای کامل بلوتوث را غیرفعال کنید."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"‏دسته ویژگی Gabeldorsche، بلوتوث را فعال می‌کند."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"ویژگی «اتصال بهبودیافته» را فعال می‌کند."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"ترمینال محلی"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"فعال کردن ترمینال برنامه‌ کاربردی که دسترسی به برنامه محلی را پیشنهاد می‌کند"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"‏بررسی HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"‏پرداز زدن HWUI نمایه"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"‏فعال کردن لایه‌های اشکال‌زدایی GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"‏مجاز کردن بارگیری لایه‌های اشکال‌زدایی GPU برای برنامه‌های اشکا‌ل‌زدایی"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"فعال کردن گزارش طولانی فروشنده"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"شامل گزارشات اشکال تکمیلی ورود به سیستم فروشنده ویژه دستگاه می‌شود که ممکن است دربرگیرنده اطلاعات خصوصی، استفاده بیشتر از باتری، و/یا استفاده بیشتر از فضای ذخیره‌سازی باشد."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"مقیاس پویانمایی پنجره"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"مقیاس پویانمایی انتقالی"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"مقیاس طول مدت انیماتور"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"هربار پرسیده شود"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"تا زمانی‌که آن را خاموش کنید"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"هم‌اکنون"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"این دستگاه"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"بلندگوی تلفن"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"مشکل در اتصال. دستگاه را خاموش و دوباره روشن کنید"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"دستگاه صوتی سیمی"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index 6bb6d5b..a2531d5 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Näytä nimettömät Bluetooth-laitteet"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Poista yleinen äänenvoimakkuuden säätö käytöstä"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Ota Gabeldorsche käyttöön"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Parannetut yhteydet"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetoothin AVRCP-versio"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Valitse Bluetoothin AVRCP-versio"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetoothin MAP-versio"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Näytetään Bluetooth-laitteet, joilla ei ole nimiä (vain MAC-osoitteet)."</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Bluetoothin yleinen äänenvoimakkuuden säätö poistetaan käytöstä ongelmien välttämiseksi esimerkiksi silloin, kun laitteen äänenvoimakkuus on liian kova tai sitä ei voi säätää."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetoothin Gabeldorsche-ominaisuuspino otetaan käyttöön."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Ottaa käyttöön Parannetut yhteydet ‑ominaisuuden."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Paikallinen pääte"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Ota käyttöön päätesov. joka mahdollistaa paikall. liittymäkäytön"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-tarkistus"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI-profiilirenderöinti"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU-virheenkorjaus päälle"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Salli GPU:n virheenkorjauskerrosten lataus."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Käytä laajennettua kirjausta"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Sisällytä virheraportteihin muita laitekohtaisia myyjälokeja, jotka voivat sisältää yksityisiä tietoja, käyttää enemmän akkua ja/tai käyttää enemmän tallennustilaa."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Ikkuna"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Siirtymä"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animaattori"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Kysy aina"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Kunnes poistat sen käytöstä"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Äsken"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Tämä laite"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Puhelimen kaiutin"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Yhteysvirhe. Sammuta laite ja käynnistä se uudelleen."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Langallinen äänilaite"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index b040be9..8ee44ac 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -226,13 +226,13 @@
     <string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"Code d\'association Wi-Fi"</string>
     <string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"Échec de l\'association"</string>
     <string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"Vérifier que l\'appareil est connecté au même réseau."</string>
-    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Associer un appareil au Wi-Fi en numérisant un code QR"</string>
+    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Associer un appareil par Wi-Fi en numérisant un code QR"</string>
     <string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"Association de l\'appareil en cours…"</string>
     <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"Échec de l\'association de l\'appareil Soit le code QR est incorrect, soit l\'appareil n\'est pas connecté au même réseau."</string>
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adresse IP et port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Numériser le code QR"</string>
-    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Associer un appareil au Wi-Fi en numérisant un code QR"</string>
-    <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, débogage, appareil"</string>
+    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Associer un appareil par Wi-Fi en numérisant un code QR"</string>
+    <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, débogage, concepteur"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Raccourci de rapport de bogue"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Afficher un bouton permettant d\'établir un rapport de bogue dans le menu de démarrage"</string>
     <string name="keep_screen_on" msgid="1187161672348797558">"Rester activé"</string>
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Afficher les appareils Bluetooth sans nom"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Désactiver le volume absolu"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Activer le Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Connectivité améliorée"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Version du profil Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Sélectionner la version du profil Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Version du profil Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Les appareils Bluetooth sans nom (adresses MAC seulement) seront affichés"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Désactive la fonctionnalité de volume absolu par Bluetooth en cas de problème de volume sur les appareils à distance, par exemple si le volume est trop élevé ou s\'il ne peut pas être contrôlé."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Active la pile de la fonctionnalité Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Active la fonctionnalité Connectivité améliorée."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Activer l\'application Terminal permettant l\'accès au shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Vérification HDCP"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"Rendu HWUI du profil"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Activer couches débogage GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Autoriser couches débogage GPU pour applis de débogage"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Activer le journal détaillé des fournisseurs"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Échelle animation fenêtres"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Échelle animination transitions"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Échelle durée animation"</string>
@@ -443,7 +448,7 @@
     <string name="battery_info_status_unknown" msgid="268625384868401114">"Inconnu"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"Charge en cours…"</string>
     <string name="battery_info_status_charging_fast" msgid="8027559755902954885">"Recharge rapide"</string>
-    <string name="battery_info_status_charging_slow" msgid="3190803837168962319">"Charge lente"</string>
+    <string name="battery_info_status_charging_slow" msgid="3190803837168962319">"Recharge lente"</string>
     <string name="battery_info_status_discharging" msgid="6962689305413556485">"N\'est pas en charge"</string>
     <string name="battery_info_status_not_charging" msgid="8330015078868707899">"L\'appareil est branché, mais il ne peut pas être chargé pour le moment"</string>
     <string name="battery_info_status_full" msgid="4443168946046847468">"Pleine"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Toujours demander"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Jusqu\'à la désactivation"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"À l\'instant"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Cet appareil"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Haut-parleur du téléphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problème de connexion. Éteingez et rallumez l\'appareil"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Appareil audio à câble"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index fb70c88..271c52b 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Afficher les appareils Bluetooth sans nom"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Désactiver le volume absolu"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Activer Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Connectivité améliorée"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Version Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Sélectionner la version Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Version Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Les appareils Bluetooth sans nom (adresses MAC seulement) seront affichés"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Désactive la fonctionnalité de volume absolu du Bluetooth en cas de problème de volume sur les appareils à distance, par exemple si le volume est trop élevé ou s\'il ne peut pas être contrôlé"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Active la pile de fonctionnalités Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Active la fonctionnalité Connectivité améliorée."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Activer l\'application Terminal permettant l\'accès au shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Vérification HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Rendu HWUI du profil"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Activer les couches de débogage GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Autoriser le chargement de couches de débogage GPU"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Act. journalisation détaillée"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inclure les journaux supplémentaires du fournisseur, spécifiques à l\'appareil, dans les rapports de bug. Ils peuvent contenir des informations personnelles, solliciter davantage la batterie et/ou utiliser plus d\'espace de stockage."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Échelle d\'animation des fenêtres"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Échelle d\'animation des transitions"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Échelle de durée d\'animation"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Toujours demander"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Jusqu\'à la désactivation"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"À l\'instant"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Cet appareil"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Haut-parleur du téléphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problème de connexion. Éteignez l\'appareil, puis rallumez-le"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Appareil audio filaire"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 1407a50..ec600c0 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostrar dispositivos Bluetooth sen nomes"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Desactivar volume absoluto"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Activar Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Conectividade mellorada"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versión de Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selecciona a versión de Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versión de MAP de Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Mostraranse dispositivos Bluetooth sen nomes (só enderezos MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Desactiva a función do volume absoluto do Bluetooth en caso de que se produzan problemas de volume cos dispositivos remotos, como volume demasiado alto ou falta de control"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Activa o conxunto de funcións de Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Activa a función de conectividade mellorada."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Activa a aplicación terminal que ofrece acceso ao shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Comprobación HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Perfil procesamento HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Activar depuración da GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permite capas da GPU para apps de depuración"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Activar rexistro de provedores"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inclúe outros rexistros de provedores específicos do dispositivo en informes de erros; pode conter información privada, consumir máis batería e ocupar máis espazo almacenamento."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Escala de animación da ventá"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala animación-transición"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala duración animador"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Preguntar sempre"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Ata a desactivación"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Agora mesmo"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Este dispositivo"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altofalante do teléfono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Produciuse un problema coa conexión. Apaga e acende o dispositivo."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 889857a..00c7b37 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"નામ વિનાના બ્લૂટૂથ ઉપકરણો બતાવો"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ચોક્કસ વૉલ્યૂમને અક્ષમ કરો"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche ચાલુ કરો"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"વિસ્તૃત કનેક્ટિવિટી"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"બ્લૂટૂથ AVRCP સંસ્કરણ"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"બ્લૂટૂથ AVRCP સંસ્કરણ પસંદ કરો"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"બ્લૂટૂથ MAP વર્ઝન"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"નામ વગરના (ફક્ત MAC ઍડ્રેસવાળા) બ્લૂટૂથ ઉપકરણો બતાવવામાં આવશે"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"રિમોટ ઉપકરણોમાં વધુ પડતું ઊંચું વૉલ્યૂમ અથવા નિયંત્રણની કમી જેવી વૉલ્યૂમની સમસ્યાઓની સ્થિતિમાં બ્લૂટૂથ ચોક્કસ વૉલ્યૂમ સુવિધાને અક્ષમ કરે છે."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"બ્લૂટૂથ Gabeldorsche સુવિધાનું સ્ટૅક ચાલુ કરે છે."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"કનેક્ટિવિટીની વિસ્તૃત સુવિધા ચાલુ કરે છે."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"સ્થાનિક ટર્મિનલ"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"સ્થાનિક શેલ અ‍ૅક્સેસની ઑફર કરતી ટર્મિનલ એપ્લિકેશનને સક્ષમ કરો"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP તપાસણી"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUIની પ્રોફાઇલ રેંડરીંગ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU ડિબગ સ્તરોને સક્ષમ કરો"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ડિબગ ઍપ માટે GPU ડિબગ સ્તરો લોડ કરવાની મંજૂરી આપો"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"વર્બોઝ વેન્ડર લૉગિંગ ચાલુ કરો"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"વિંડો એનિમેશન સ્કેલ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"સંક્રમણ એનિમેશન સ્કેલ"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"એનિમેટર અવધિ સ્કેલ"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"દર વખતે પૂછો"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"તમે બંધ ન કરો ત્યાં સુધી"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"હમણાં જ"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"આ ડિવાઇસ"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ફોન સ્પીકર"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"કનેક્ટ કરવામાં સમસ્યા આવી રહી છે. ડિવાઇસને બંધ કરીને ફરી ચાલુ કરો"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"વાયરવાળો ઑડિયો ડિવાઇસ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 24153b9..b382234 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -206,60 +206,33 @@
     <string name="enable_adb" msgid="8072776357237289039">"USB डीबग करना"</string>
     <string name="enable_adb_summary" msgid="3711526030096574316">"डीबग मोड जब USB कनेक्‍ट किया गया हो"</string>
     <string name="clear_adb_keys" msgid="3010148733140369917">"USB डीबग करने की मंज़ूरी रद्द करें"</string>
-    <!-- no translation found for enable_adb_wireless (6973226350963971018) -->
-    <skip />
-    <!-- no translation found for enable_adb_wireless_summary (7344391423657093011) -->
-    <skip />
-    <!-- no translation found for adb_wireless_error (721958772149779856) -->
-    <skip />
-    <!-- no translation found for adb_wireless_settings (2295017847215680229) -->
-    <skip />
-    <!-- no translation found for adb_wireless_list_empty_off (1713707973837255490) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_title (6982904096137468634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_summary (3729901496856458634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_title (1122590300445142904) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_summary (6370414511333685185) -->
-    <skip />
-    <!-- no translation found for adb_paired_devices_title (5268997341526217362) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_connected_summary (3039660790249148713) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_details_title (7129369670526565786) -->
-    <skip />
-    <!-- no translation found for adb_device_forget (193072400783068417) -->
-    <skip />
-    <!-- no translation found for adb_device_fingerprint_title_format (291504822917843701) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_title (664211177427438438) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_message (9213896700171602073) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_title (7141739231018530210) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_pairing_code_label (3639239786669722731) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_title (3426758947882091735) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_msg (6611097519661997148) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_summary (8051414549011801917) -->
-    <skip />
-    <!-- no translation found for adb_wireless_verifying_qrcode_text (6123192424916029207) -->
-    <skip />
-    <!-- no translation found for adb_qrcode_pairing_device_failed_msg (6936292092592914132) -->
-    <skip />
-    <!-- no translation found for adb_wireless_ip_addr_preference_title (8335132107715311730) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_title (1906409667944674707) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_description (8578868049289910131) -->
-    <skip />
-    <!-- no translation found for keywords_adb_wireless (6507505581882171240) -->
-    <skip />
+    <string name="enable_adb_wireless" msgid="6973226350963971018">"वायरलेस डीबग करना"</string>
+    <string name="enable_adb_wireless_summary" msgid="7344391423657093011">"डिवाइस के वाई-फ़ाई से कनेक्ट हाेने पर, डीबग मोड चालू करें"</string>
+    <string name="adb_wireless_error" msgid="721958772149779856">"गड़बड़ी"</string>
+    <string name="adb_wireless_settings" msgid="2295017847215680229">"वायरलेस डीबग करना"</string>
+    <string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"उपलब्ध डिवाइस देखने और इस्तेमाल करने के लिए, वायरलेस डीबग करने की सुविधा चालू करें"</string>
+    <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"क्यूआर कोड की मदद से डिवाइस जोड़ें"</string>
+    <string name="adb_pair_method_qrcode_summary" msgid="3729901496856458634">"क्यूआर कोड स्कैनर का इस्तेमाल करके, नए डिवाइस जोड़ें"</string>
+    <string name="adb_pair_method_code_title" msgid="1122590300445142904">"जोड़ने का कोड इस्तेमाल करके, डिवाइस जोड़ें"</string>
+    <string name="adb_pair_method_code_summary" msgid="6370414511333685185">"छह अंकों का कोड इस्तेमाल करके, नए डिवाइस जोड़ें"</string>
+    <string name="adb_paired_devices_title" msgid="5268997341526217362">"जोड़े गए डिवाइस"</string>
+    <string name="adb_wireless_device_connected_summary" msgid="3039660790249148713">"फ़िलहाल, कनेक्ट किया गया"</string>
+    <string name="adb_wireless_device_details_title" msgid="7129369670526565786">"डिवाइस की जानकारी"</string>
+    <string name="adb_device_forget" msgid="193072400783068417">"जानकारी हटाएं"</string>
+    <string name="adb_device_fingerprint_title_format" msgid="291504822917843701">"डिवाइस फ़िंगरप्रिंट: <xliff:g id="FINGERPRINT_PARAM">%1$s</xliff:g>"</string>
+    <string name="adb_wireless_connection_failed_title" msgid="664211177427438438">"कनेक्ट नहीं किया जा सका"</string>
+    <string name="adb_wireless_connection_failed_message" msgid="9213896700171602073">"पक्का करें कि <xliff:g id="DEVICE_NAME">%1$s</xliff:g> सही नेटवर्क से कनेक्ट किया गया है"</string>
+    <string name="adb_pairing_device_dialog_title" msgid="7141739231018530210">"डिवाइस से जोड़ें"</string>
+    <string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"वाई-फ़ाई से जोड़ने का कोड"</string>
+    <string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"दूसरे डिवाइस से जोड़ा नहीं जा सका"</string>
+    <string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"पक्का करें कि आपका डिवाइस और दूसरा डिवाइस, दाेनाें एक ही नेटवर्क से जुड़े हैं."</string>
+    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"क्यूआर कोड स्कैन करके, वाई-फ़ाई से डिवाइस को जोड़ें"</string>
+    <string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"डिवाइस जोड़ा जा रहा है…"</string>
+    <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"डिवाइस को जोड़ा नहीं जा सका. शायद, क्यूआर कोड ठीक नहीं था या फिर आपका डिवाइस और दूसरा डिवाइस, दाेनाें एक ही नेटवर्क से नहीं जुड़े हैं."</string>
+    <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"आईपी पता और पोर्ट"</string>
+    <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"क्यूआर कोड स्कैन करें"</string>
+    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"क्यूआर कोड स्कैन करके, वाई-फ़ाई से डिवाइस को जोड़ें"</string>
+    <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"गड़बड़ी की रिपोर्ट का शॉर्टकट"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"गड़बड़ी की रिपोर्ट लेने के लिए पावर मेन्यू में कोई बटन दिखाएं"</string>
     <string name="keep_screen_on" msgid="1187161672348797558">"स्क्रीन को चालू रखें"</string>
@@ -282,6 +255,8 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"बिना नाम वाले ब्लूटूथ डिवाइस दिखाएं"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ब्लूटूथ से आवाज़ के नियंत्रण की सुविधा रोकें"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche चालू करें"</string>
+    <!-- no translation found for enhanced_connectivity (7201127377781666804) -->
+    <skip />
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ब्लूटूथ एवीआरसीपी वर्शन"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ब्लूटूथ AVRCP वर्शन चुनें"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ब्लूटूथ का MAP वर्शन"</string>
@@ -325,10 +300,8 @@
     <string name="tethering_hardware_offload_summary" msgid="7801345335142803029">"हार्डवेयर से तेज़ी लाने के लिए टेदर करने की सुविधा मौजूद होने पर उसका इस्तेमाल करें"</string>
     <string name="adb_warning_title" msgid="7708653449506485728">"USB डीबग करने की अनुमति दें?"</string>
     <string name="adb_warning_message" msgid="8145270656419669221">"USB डीबग करने का मकसद केवल डेवेलप करना है. इसका इस्तेमाल आपके कंप्‍यूटर और आपके डिवाइस के बीच डेटा को कॉपी करने, बिना सूचना के आपके डिवाइस पर ऐप इंस्‍टॉल करने और लॉग डेटा पढ़ने के लिए करें."</string>
-    <!-- no translation found for adbwifi_warning_title (727104571653031865) -->
-    <skip />
-    <!-- no translation found for adbwifi_warning_message (8005936574322702388) -->
-    <skip />
+    <string name="adbwifi_warning_title" msgid="727104571653031865">"वायरलेस डीबग करने की अनुमति देना चाहते हैं?"</string>
+    <string name="adbwifi_warning_message" msgid="8005936574322702388">"वायरलेस डीबग करने का मकसद सिर्फ़ डेवलपमेंट करना है. इसका इस्तेमाल, आपके कंप्यूटर और डिवाइस के बीच डेटा कॉपी करने, बिना सूचना के आपके डिवाइस पर ऐप्लिकेशन इंस्टॉल करने, और लॉग डेटा पढ़ने के लिए करें."</string>
     <string name="adb_keys_warning_message" msgid="2968555274488101220">"उन सभी कंप्यूटरों से USB डीबग करने की पहुंचर रद्द करें, जिन्हें आपने पहले इसकी मंज़ूरी दी थी?"</string>
     <string name="dev_settings_warning_title" msgid="8251234890169074553">"विकास सेटिंग की अनुमति दें?"</string>
     <string name="dev_settings_warning_message" msgid="37741686486073668">"ये सेटिंग केवल विकास संबंधी उपयोग के प्रयोजन से हैं. वे आपके डिवाइस और उस पर स्‍थित ऐप्लिकेशन  को खराब कर सकती हैं या उनके दुर्व्यवहार का कारण हो सकती हैं."</string>
@@ -337,6 +310,8 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"बिना नाम वाले ब्लूटूथ डिवाइस (केवल MAC पते वाले) दिखाए जाएंगे"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"दूर के डिवाइस पर आवाज़ बहुत बढ़ जाने या उससे नियंत्रण हटने जैसी समस्याएं होने पर, यह ब्लूटूथ के ज़रिए आवाज़ के नियंत्रण की सुविधा रोक देता है."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ब्लूटूथ सेटिंग में Gabeldorsche सुविधा को चालू करता है."</string>
+    <!-- no translation found for enhanced_connectivity_summary (1576414159820676330) -->
+    <skip />
     <string name="enable_terminal_title" msgid="3834790541986303654">"स्थानीय टर्मिनल"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"लोकल शेल तक पहुंचने की सुविधा देने वाले टर्मिनल ऐप को चालू करें"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"एचडीसीपी जाँच"</string>
@@ -383,6 +358,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"प्रोफ़ाइल HWUI रेंडरिंग"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"जीपीयू डीबग लेयर चालू करें"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"डीबग ऐप के लिए जीपीयू डीबग लेयर लोड करने दें"</string>
+    <!-- no translation found for enable_verbose_vendor_logging (1196698788267682072) -->
+    <skip />
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"गड़बड़ियों की रिपोर्ट में खास डिवाइस से जुड़े वेंडर लॉग शामिल करें. इन लॉग में निजी जानकारी, बैटरी का ज़्यादा इस्तेमाल, और/या डिवाइस की मेमोरी ज़्यादा इस्तेमाल करने की जानकारी हो सकती है."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"विंडो एनिमेशन स्‍केल"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ट्रांज़िशन एनिमेशन स्‍केल"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"एनिमेटर अवधि स्केल"</string>
@@ -441,8 +419,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"लाल रंग पहचान न पाना (लाल-हरा)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"नीला रंग पहचान न पाना (नीला-पीला)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"रंग सुधार"</string>
-    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (6178138727195403796) -->
-    <skip />
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"रंग में सुधार करने की सेटिंग, वर्णान्धता (कलर ब्लाइंडनेस) वाले लोगों को ज़्यादा सटीक रंग देखने में मदद करती है"</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_duration_only" msgid="8264199158671531431">"बैटरी करीब <xliff:g id="TIME_REMAINING">%1$s</xliff:g> में खत्म हो जाएगी"</string>
@@ -461,27 +438,19 @@
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> से कम बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> से ज़्यादा चलने लायक बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_only_more_than_subtext" msgid="3274496164769110480">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> से ज़्यादा चलने लायक बैटरी बची है"</string>
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (137330009791560774) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (145489081521468132) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1070562682853942350) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4429259621177089719) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (7703677921000858479) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4374784375644214578) -->
-    <skip />
+    <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="137330009791560774">"फ़ोन जल्द ही बंद हो सकता है"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="145489081521468132">"टैबलेट जल्द ही बंद हो सकता है"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="1070562682853942350">"डिवाइस जल्द ही बंद हो सकता है"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="4429259621177089719">"फ़ोन जल्द ही बंद हो सकता है (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7703677921000858479">"टैबलेट जल्द ही बंद हो सकता है (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="4374784375644214578">"डिवाइस जल्द ही बंद हो सकता है (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
     <string name="power_charging" msgid="6727132649743436802">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
     <string name="power_remaining_charging_duration_only" msgid="7415639699283965818">"चार्ज पूरा होने में <xliff:g id="TIME">%1$s</xliff:g> बचा है"</string>
     <string name="power_charging_duration" msgid="5005740040558984057">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> में पूरा चार्ज हो जाएगा"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"अज्ञात"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"चार्ज हो रही है"</string>
-    <!-- no translation found for battery_info_status_charging_fast (8027559755902954885) -->
-    <skip />
-    <!-- no translation found for battery_info_status_charging_slow (3190803837168962319) -->
-    <skip />
+    <string name="battery_info_status_charging_fast" msgid="8027559755902954885">"तेज़ चार्ज हो रही है"</string>
+    <string name="battery_info_status_charging_slow" msgid="3190803837168962319">"धीरे चार्ज हो रही है"</string>
     <string name="battery_info_status_discharging" msgid="6962689305413556485">"चार्ज नहीं हो रही है"</string>
     <string name="battery_info_status_not_charging" msgid="8330015078868707899">"प्लग इन है, अभी चार्ज नहीं हो सकती"</string>
     <string name="battery_info_status_full" msgid="4443168946046847468">"पूरी"</string>
@@ -539,6 +508,9 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"हर बार पूछें"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"जब तक आप इसे बंद नहीं करते"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"अभी-अभी"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"यह डिवाइस"</string>
+    <!-- no translation found for media_transfer_this_device_name (2716555073132169240) -->
+    <skip />
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"कनेक्ट करने में समस्या हो रही है. डिवाइस को बंद करके चालू करें"</string>
+    <!-- no translation found for media_transfer_wired_device_name (4447880899964056007) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 28a8858..a3d1b95 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Prikaži Bluetooth uređaje bez naziva"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Onemogući apsolutnu glasnoću"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Omogući Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Poboljšana povezivost"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Verzija AVRCP-a za Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Odaberite verziju AVRCP-a za Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Verzija MAP-a za Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Prikazivat će se Bluetooth uređaji bez naziva (samo MAC adrese)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Onemogućuje Bluetoothovu značajku apsolutne glasnoće ako udaljeni uređaji imaju poteškoća sa zvukom, kao što su neprihvatljiva glasnoća ili nepostojanje kontrole"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Omogućuje nizove značajke Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Omogućuje značajku Poboljšana povezivost."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokalni terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Omogući aplikaciju terminala koja nudi pristup lokalnoj ovojnici"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP provjera"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil HWUI generiranja"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Omogući slojeve za otklanjanje pogrešaka GPU-a"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Omogućite učitavanje slojeva za otklanjanje pogrešaka GPU-a za aplikacije za otklanjanje pogrešaka"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Omogući opširni zapisnik"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Uključite dodatne zapisnike dobavljača pojedinog uređaja u izvješća o programskoj pogrešci koja mogu sadržavati privatne podatke, trošiti više baterije i/ili zauzeti više prostora za pohranu."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Brzina animacije prozora"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Brzina animacije prijelaza"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Razmjer duljine animatora"</string>
@@ -502,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Pitaj svaki put"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Dok ne isključite"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Upravo sad"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Ovaj uređaj"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvučnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem s povezivanjem. Isključite i ponovo uključite uređaj"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audiouređaj"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 61433be..e1c49c8 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Név nélküli Bluetooth-eszközök megjelenítése"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Abszolút hangerő funkció letiltása"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"A Gabeldorsche engedélyezése"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Enhanced Connectivity"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"A Bluetooth AVRCP-verziója"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"A Bluetooth AVRCP-verziójának kiválasztása"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"A Bluetooth MAP-verziója"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Név nélküli Bluetooth-eszközök jelennek meg (csak MAC-címekkel)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Letiltja a Bluetooth abszolút hangerő funkcióját a távoli eszközökkel kapcsolatos hangerőproblémák – például elfogadhatatlanul magas vagy nem vezérelhető hangerő – esetén."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Engedélyezi a Bluetooth Gabeldorsche funkcióit."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Bekapcsolja az Enhanced Connectivity funkciót."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Helyi végpont"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Végalkalmazás engedélyezése a helyi rendszerhéj eléréséhez"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP ellenőrzés"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil HWUI-renderelése"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU-hibakeresési rétegek engedélyezése"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"GPU-hibakeresési rétegek betöltésének engedélyezése"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Részletes szolgáltatói naplózás engedélyezése"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"További eszközspecifikus szolgáltatói naplók felvétele a hibajelentésekbe. Ezek a naplók tartalmazhatnak privát információkat, ezenkívül előfordulhat, hogy jobban merítik az akkumulátort, illetve nagyobb tárhelyet foglalnak el."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Ablakanimáció tempója"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Áttűnési animáció tempója"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animáció tempója"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Mindig kérdezzen rá"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Kikapcsolásig"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Az imént"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Ez az eszköz"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon hangszórója"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Sikertelen csatlakozás. Kapcsolja ki az eszközt, majd kapcsolja be újra."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Vezetékes audioeszköz"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index 2e39f2c..db1748d 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Ցուցադրել Bluetooth սարքերն առանց անունների"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Անջատել ձայնի բացարձակ ուժգնությունը"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Միացնել Gabeldorsche-ը"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Տվյալների լավացված փոխանակում"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP տարբերակը"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Ընտրել Bluetooth AVRCP տարբերակը"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP-ի տարբերակ"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth սարքերը կցուցադրվեն առանց անունների (միայն MAC հասցեները)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Կասեցնում է Bluetooth-ի ձայնի բացարձակ ուժգնության գործառույթը՝ հեռավոր սարքերի հետ ձայնի ուժգնությանը վերաբերող խնդիրներ ունենալու դեպքում (օրինակ՝ երբ ձայնի ուժգնությունն անընդունելի է կամ դրա կառավարումը հնարավոր չէ):"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Միացնել Bluetooth Gabeldorsche գործառույթի զտիչը"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Միացնում է «Տվյալների լավացված փոխանակում» գործառույթը։"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Տեղային տերմինալ"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Միացնել տերմինալային հավելվածը, որն առաջարկում է մուտք տեղային խեցի"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP ստուգում"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Պրոֆիլի HWUI արտապատկերում"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Միացնել GPU վրիպազերծման շերտերը"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Թույլատրել GPU վրիպազերծման շերտերի բեռնումը վրիպազերծման հավելվածների համար"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Մատակարարի մանրամասն գրանցամատյան"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Վրիպակների հաշվետվություններում ներառել կոնկրետ սարքի վերաբերյալ մատակարարի լրացուցիչ մատյանները։ Դա կարող է պարունակել խիստ անձնական տեղեկություններ, ավելի արագ սպառել մարտկոցի լիցքը և/կամ ավելի շատ տարածք օգտագործել։"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Պատուհանի շարժապատկերի սանդղակ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Անցումային շարժական սանդղակ"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Շարժանկարի տևողության սանդղակ"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Հարցնել ամեն անգամ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Մինչև չանջատեք"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Հենց նոր"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Այս սարքը"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Հեռախոսի բարձրախոս"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Կապի խնդիր կա: Սարքն անջատեք և նորից միացրեք:"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Լարով աուդիո սարք"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index b75fa35..02500ef 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Tampilkan perangkat Bluetooth tanpa nama"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Nonaktifkan volume absolut"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Aktifkan Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Konektivitas Yang Disempurnakan"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versi AVRCP Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Pilih Versi AVRCP Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versi MAP Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Perangkat Bluetooth tanpa nama (hanya alamat MAC) akan ditampilkan"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Menonaktifkan fitur volume absolut Bluetooth jika ada masalah volume dengan perangkat jarak jauh, misalnya volume terlalu keras atau kurangnya kontrol."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Mengaktifkan stack fitur Gabeldorsche Bluetooth."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Mengaktifkan fitur Konektivitas Yang Disempurnakan."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal lokal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Aktifkan aplikasi terminal yang menawarkan akses kerangka lokal"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Pemeriksaan HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Rendering HWUI profil"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Aktifkan lapisan debug GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Izinkan memuat lapisan debug GPU untuk aplikasi debug"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Aktifkan logging vendor panjang"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Sertakan log vendor khusus perangkat tambahan dalam laporan bug, yang mungkin berisi informasi pribadi, menggunakan lebih banyak baterai, dan/atau menggunakan lebih banyak ruang penyimpanan."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Skala animasi jendela"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Skala animasi transisi"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Skala durasi animator"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Selalu tanya"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Sampai Anda menonaktifkannya"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Baru saja"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Perangkat ini"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Speaker ponsel"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ada masalah saat menghubungkan. Nonaktifkan perangkat &amp; aktifkan kembali"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Perangkat audio berkabel"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index c75c689..7a7ba4c 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Sýna Bluetooth-tæki án heita"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Slökkva á samstillingu hljóðstyrks"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Virkja Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Aukin tengigeta"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP-útgáfa"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Velja Bluetooth AVRCP-útgáfu"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP-útgáfa"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-tæki án heita (aðeins MAC-vistfang) verða birt"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Slekkur á samstillingu Bluetooth-hljóðstyrks ef vandamál koma upp með hljóðstyrk hjá fjartengdum tækjum, svo sem of hár hljóðstyrkur eða erfiðleikar við stjórnun."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Kveikir á eiginleikastafla Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Virkjar eiginleika aukinnar tengigetu."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Staðbundin skipanalína"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Virkja skipanalínuforrit sem leyfir staðbundinn skeljaraðgang"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-athugun"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI-teiknun prófíls"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Virkja villuleit skják."</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Leyfa villuleit skjákorts fyrir villuleit forrita"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Nákvæm skráning söluaðila"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Kvarði gluggahreyfinga"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Lengd hreyfiumbreytinga"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Tímalengd hreyfiáhrifa"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Spyrja í hvert skipti"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Þar til þú slekkur"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Rétt í þessu"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Þetta tæki"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Símahátalari"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Vandamál í tengingu. Slökktu og kveiktu á tækinu"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Snúrutengt hljómtæki"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index f0dba68..01d7a65 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostra dispositivi Bluetooth senza nome"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Disattiva volume assoluto"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Attiva Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Connettività migliorata"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versione Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Seleziona versione Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versione Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Verranno mostrati solo dispositivi Bluetooth senza nome (solo indirizzo MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Disattiva la funzione del volume assoluto Bluetooth in caso di problemi con il volume dei dispositivi remoti, ad esempio un volume troppo alto o la mancanza di controllo"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Consente di attivare lo stack delle funzionalità Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Consente di attivare la funzionalità Connettività migliorata."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminale locale"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Abilita l\'app Terminale che offre l\'accesso alla shell locale"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Verifica HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Rendering HWUI profilo"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Attiva livelli debug GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Consenti caricamento livelli debug GPU per app di debug"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Attiva reg. dettagl. fornitori"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Includi log aggiuntivi di fornitori relativi a un dispositivo specifico nelle segnalazioni di bug che potrebbero contenere informazioni private, causare un maggior consumo della batteria e/o utilizzare più spazio di archiviazione."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Scala animazione finestra"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Scala animazione transizione"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Scala durata animatore"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Chiedi ogni volta"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Fino alla disattivazione"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Adesso"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Questo dispositivo"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altoparlante telefono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problema di connessione. Spegni e riaccendi il dispositivo"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo audio cablato"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 524a87d..49929d4 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"‏הצגת מכשירי Bluetooth ללא שמות"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"השבת עוצמת קול מוחלטת"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"‏הפעלת Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"קישוריות משופרת"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"‏Bluetooth גרסה AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"‏בחר Bluetooth גרסה AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"‏גרסת Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"‏יוצגו מכשירי Bluetooth ללא שמות (כתובות MAC בלבד)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"‏משבית את תכונת עוצמת הקול המוחלטת ב-Bluetooth במקרה של בעיות בעוצמת הקול במכשירים מרוחקים, כגון עוצמת קול רמה מדי או חוסר שליטה ברמת העוצמה."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"‏הפעלת מקבץ הפיצ\'רים של Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"הפעלה של תכונת הקישוריות המשופרת."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"מסוף מקומי"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"הפעל אפליקציית מסוף המציעה גישה מקומית למעטפת"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"‏בדיקת HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"‏עיבוד פרופיל ב-HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"‏הפעלת שכבות לניפוי באגים ב-GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"‏טעינת שכבות לניפוי באגים ב-GPU לאפליקציות ניפוי באגים"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"הפעלת רישום ספקים מפורט ביומן"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"הכללת יומני ספקים נוספים, ספציפיים למכשירים, בדוחות על באגים, שעשויים להכיל מידע פרטי, לצרוך יותר מהסוללה ו/או להשתמש ביותר אחסון."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"קנה מידה לאנימציה של חלון"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"קנה מידה לאנימציית מעבר"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"קנה מידה למשך זמן אנימציה"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"שאל בכל פעם"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"עד הכיבוי"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"הרגע"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"המכשיר הזה"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"רמקול של טלפון"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"יש בעיה בחיבור. עליך לכבות את המכשיר ולהפעיל אותו מחדש"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"התקן אודיו חוטי"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index acefe20..c7380f6 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bluetooth デバイスを名前なしで表示"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"絶対音量を無効にする"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche を有効にする"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"接続強化"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP バージョン"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP バージョンを選択する"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP バージョン"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth デバイスを名前なしで(MAC アドレスのみで)表示します"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"リモートデバイスで音量に関する問題(音量が大きすぎる、制御できないなど)が発生した場合に、Bluetooth の絶対音量の機能を無効にする"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche 機能スタックを有効にします。"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"接続強化機能を有効にします。"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"ローカルターミナル"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"ローカルシェルアクセスを提供するターミナルアプリを有効にします"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCPチェック"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI レンダリングのプロファイル作成"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU デバッグレイヤの有効化"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"デバッグアプリに GPU デバッグレイヤの読み込みを許可"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"ベンダーの詳細なロギングを有効にする"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"バグレポートには、その他のデバイス固有のベンダーログが含まれます。これには、非公開の情報が含まれることがあります。また、電池やストレージの使用量が増えることもあります。"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"ウィンドウアニメスケール"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"トランジションアニメスケール"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator再生時間スケール"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"毎回確認"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"OFF にするまで"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"たった今"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"このデバイス"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"スマートフォンのスピーカー"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"接続エラーです。デバイスを OFF にしてから ON に戻してください"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線オーディオ デバイス"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index ddc46ad..43a52f3 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bluetooth-მოწყობილობების ჩვენება სახელების გარეშე"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ხმის აბსოლუტური სიძლიერის გათიშვა"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche-ის ჩართვა"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"კავშირის გაძლიერებული შესაძლებლობა"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth-ის AVRCP-ის ვერსია"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"აირჩიეთ Bluetooth-ის AVRCP-ის ვერსია"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP-ის ვერსია"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-მოწყობილობები ნაჩვენები იქნება სახელების გარეშე (მხოლოდ MAC-მისამართები)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"გათიშავს Bluetooth-ის ხმის აბსოლუტური სიძლიერის ფუნქციას დისტანციურ მოწყობილობებზე ხმასთან დაკავშირებული ისეთი პრობლემების არსებობის შემთხვევაში, როგორიცაა ხმის დაუშვებლად მაღალი სიძლიერე ან კონტროლის შეუძლებლობა."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ჩართავს Bluetooth Gabeldorsche-ის ფუნქციების დასტას."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"ჩართავს კავშირის გაძლიერებული შესაძლებლობის ფუნქციას."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"ადგილობრივი ტერმინალი"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"ლოკალურ გარსზე წვდომის ტერმინალური აპლიკაციის ჩართვა"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP შემოწმება"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"პროფილის HWUI რენდერი"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU-ს შეცდომების გამართვის შრეების ჩართვა"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"გასამართი აპებისთვის GPU-ს შეცდომების გამართვის შრეების გაშვების დაშვება"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"ჟურნალებში მომწოდებელთა დაწვრილებითი აღრიცხვის ჩართვა"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"გამყიდველის მოწყობილობისთვის სპეციფიკური დამატებითი ჟურნალები შევიდეს სისტემის ხარვეზის ანგარიშებში, რომლებიც შეიძლება შეიცავდეს პირად ინფორმაციას, ხარჯავდეს ბატარეის მეტ მუხტს და/ან იყენებდეს მეტ მეხსიერებას."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"ფანჯარა: მასშტაბი"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"გადასვლის მასშტაბი"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"ანიმაციების ხანგრძლივობის მასშტაბი"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ყოველთვის მკითხეთ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"გამორთვამდე"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ახლახან"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ეს მოწყობილობა"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ტელეფონის დინამიკი"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"დაკავშირებისას წარმოიქმნა პრობლემა. გამორთეთ და კვლავ ჩართეთ მოწყობილობა"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"სადენიანი აუდიო მოწყობილობა"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index 47babb1..2b2093b 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bluetooth құрылғыларын атаусыз көрсету"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Абсолютті дыбыс деңгейін өшіру"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche функциясын іске қосу"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Жетілдірілген байланыс"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP нұсқасы"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP нұсқасын таңдау"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP нұсқасы"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth құрылғылары атаусыз (тек MAC мекенжайымен) көрсетіледі"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Қашықтағы құрылғыларда дыбыстың тым қатты шығуы немесе реттеуге келмеуі сияқты дыбыс деңгейіне қатысты мәселелер туындағанда, Bluetooth абсолютті дыбыс деңгейі функциясын өшіреді."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche функциясы стегін қосады."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Жетілдірілген байланыс функциясын қосады."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Жергілікті терминал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Жергілікті шелл-код қол жетімділігін ұсынатын терминалды қолданбаны қосу"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP тексеру"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Профиль бойынша HWUI рендерингі"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU жөндеу қабаттарын қосу"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"GPU жөндеу қабаттарының жүктелуіне рұқсат ету"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Жеткізушілерді журналға тіркеу"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Қате туралы есепте қызмет көрсетушінің құрылғыға қатысты қосымша ақпаратын қамту. Мұнда жеке ақпарат көрсетілуі, батарея шығыны артуы және/немесе қосымша жад пайдаланылуы мүмкін."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Терезе анимациясының өлшемі"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Ауысу анимациясының өлшемі"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Аниматор ұзақтығы"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Әрдайым сұрау"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Өшірілгенге дейін"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Дәл қазір"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Осы құрылғы"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Телефон динамигі"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Байланыс орнату қатесі шығуып жатыр. Құрылғыны өшіріп, қайта қосыңыз."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Сымды аудио құрылғысы"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index f62408d..337bb8b 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"បង្ហាញ​ឧបករណ៍​ប្ល៊ូធូស​គ្មានឈ្មោះ"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"បិទកម្រិតសំឡេងលឺខ្លាំង"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"បើក Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"ការតភ្ជាប់​ដែលបានធ្វើឱ្យប្រសើរឡើង"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"កំណែប្ល៊ូធូស AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ជ្រើសរើសកំណែប្ល៊ូធូស AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"កំណែ​ប៊្លូធូស MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"​ឧបករណ៍​ប្ល៊ូធូសគ្មានឈ្មោះ​ (អាសយដ្ឋាន MAC តែប៉ុណ្ណោះ) នឹង​បង្ហាញ"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"បិទមុខងារកម្រិតសំឡេងឮខ្លាំងពេលភ្ជាប់ប៊្លូធូសក្នុងករណីមានបញ្ហាជាមួយឧបករណ៍បញ្ជាពីចម្ងាយ ដូចជាកម្រិតសំឡេងឮខ្លាំងដែលមិនអាចទទួលយកបាន ឬខ្វះការគ្រប់គ្រង។"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"បើកជង់​មុខងារ​ប៊្លូធូស Gabeldorsche។"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"បើក​មុខងារ​ការតភ្ជាប់​ដែលបានធ្វើឱ្យប្រសើរឡើង។"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"ស្ថានីយ​មូលដ្ឋាន"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"បើក​កម្មវិធី​ស្ថានីយ​ដែល​ផ្ដល់​ការ​ចូល​សែល​មូលដ្ឋាន"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"ពិនិត្យ HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"ការបំប្លែង​កម្រងព័ត៌មាន HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"បើក​ស្រទាប់​ជួសជុល GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"អនុញ្ញាតឱ្យ​ផ្ទុក​ស្រទាប់​ជួស​ជុល GPU សម្រាប់​កម្មវិធី​ជួសជុល"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"បើកកំណត់ហេតុរៀបរាប់អំពីអ្នកលក់"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"រួមមានកំណត់​ហេតុបន្ថែមអំពី​អ្នកលក់ឧបករណ៍ជាក់លាក់​នៅក្នុងរបាយការណ៍​អំពីបញ្ហា ដែលអាច​មានព័ត៌មាន​ឯកជន ប្រើប្រាស់​ថ្មច្រើនជាងមុន និង/ឬប្រើប្រាស់​ទំហំផ្ទុកច្រើនជាងមុន។"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"មាត្រដ្ឋាន​ចលនា​វិនដូ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"មាត្រដ្ឋាន​ដំណើរ​ផ្លាស់ប្ដូរ​ចលនា"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"មាត្រដ្ឋាន​រយៈពេល​នៃ​កម្មវិធី​ចលនា"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"សួរគ្រប់ពេល"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"រហូតទាល់តែ​អ្នកបិទ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"អម្បាញ់មិញ"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ឧបករណ៍នេះ"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ឧបករណ៍​បំពង​សំឡេង​ទូរសព្ទ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"មាន​បញ្ហា​ក្នុងការ​ភ្ជាប់។ បិទ រួច​បើក​ឧបករណ៍​វិញ"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ឧបករណ៍​សំឡេងប្រើខ្សែ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 39d6069..926c98a 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"ಹೆಸರುಗಳಿಲ್ಲದ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ತೋರಿಸಿ"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ಸಂಪೂರ್ಣ ವಾಲ್ಯೂಮ್‌ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"ವರ್ಧಿತ ಸಂಪರ್ಕ"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ಬ್ಲೂಟೂತ್ AVRCP ಆವೃತ್ತಿ"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ಬ್ಲೂಟೂತ್ AVRCP ಆವೃತ್ತಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ಬ್ಲೂಟೂತ್ MAP ಆವೃತ್ತಿ"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"ಹೆಸರುಗಳಿಲ್ಲದ (ಕೇವಲ MAC ವಿಳಾಸಗಳು ಮಾತ್ರ) ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ರಿಮೋಟ್ ಸಾಧನಗಳಲ್ಲಿ ಕಂಡುಬರುವ ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲದ ಜೋರಾದ ವಾಲ್ಯೂಮ್ ಅಥವಾ ನಿಯಂತ್ರಣದ ಕೊರತೆಯಂತಹ ವಾಲ್ಯೂಮ್ ಸಮಸ್ಯೆಗಳಂತಹ ಸಂದರ್ಭದಲ್ಲಿ ಬ್ಲೂಟೂತ್‍ನ ನಿಚ್ಚಳ ವಾಲ್ಯೂಮ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ಬ್ಲೂಟೂತ್ Gabeldorsche ವೈಶಿಷ್ಟ್ಯದ ಸ್ಟ್ಯಾಕ್‌ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"ವರ್ಧಿತ ಸಂಪರ್ಕ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"ಸ್ಥಳೀಯ ಟರ್ಮಿನಲ್"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"ಸ್ಥಳೀಯ ಶೆಲ್ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುವ ಟರ್ಮಿನಲ್ ಅಪ್ಲಿಕೇಶನ್ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP ಪರೀಕ್ಷಿಸುವಿಕೆ"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"ಪ್ರೊಫೈಲ್ HWUI ಸಲ್ಲಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU ಡೀಬಗ್ ಲೇಯರ್‌ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ಡೀಬಗ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ GPU ಡೀಬಗ್ ಲೇಯರ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡುವುದನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"ವೆರ್‌ಬೋಸ್ ವೆಂಡರ್ ಲಾಗಿಂಗ್‌ ಆನ್"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Window ಅನಿಮೇಶನ್ ಸ್ಕೇಲ್‌"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ಪರಿವರ್ತನೆ ಅನಿಮೇಶನ್ ಸ್ಕೇಲ್‌"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"ಅನಿಮೇಟರ್ ಅವಧಿಯ ಪ್ರಮಾಣ"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ಪ್ರತಿ ಬಾರಿ ಕೇಳಿ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"ನೀವು ಆಫ್ ಮಾಡುವವರೆಗೆ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ಇದೀಗ"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ಈ ಸಾಧನ"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ಫೋನ್ ಸ್ಪೀಕರ್"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ಕನೆಕ್ಟ್ ಮಾಡುವಾಗ ಸಮಸ್ಯೆ ಎದುರಾಗಿದೆ ಸಾಧನವನ್ನು ಆಫ್ ಮಾಡಿ ಹಾಗೂ ನಂತರ ಪುನಃ ಆನ್ ಮಾಡಿ"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ವೈರ್ ಹೊಂದಿರುವ ಆಡಿಯೋ ಸಾಧನ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 1ac029c..991bc22 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"이름이 없는 블루투스 기기 표시"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"절대 볼륨 사용 안함"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche 사용 설정"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"향상된 연결"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"블루투스 AVRCP 버전"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"블루투스 AVRCP 버전 선택"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"블루투스 MAP 버전"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"이름이 없이 MAC 주소만 있는 블루투스 기기 표시"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"참기 어려울 정도로 볼륨이 크거나 제어가 되지 않는 등 원격 기기에서 볼륨 문제가 발생할 경우 블루투스 절대 볼륨 기능을 사용 중지"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"블루투스 Gabeldorsche 기능 스택을 사용 설정합니다."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"향상된 연결 기능을 사용 설정합니다."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"로컬 터미널"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"로컬 셸 액세스를 제공하는 터미널 앱 사용"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP 확인"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"프로필 HWUI 렌더링"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU 디버그 레이어 사용 설정"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"디버그 앱에 GPU 디버그 레이어 로드 허용"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"상세 공급업체 로깅 사용 설정"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"버그 신고에 추가적인 기기별 공급업체 로그를 포함합니다. 여기에는 개인정보가 포함될 수 있으며, 배터리 또는 저장공간 사용량이 늘어날 수 있습니다."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"창 애니메이션 배율"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"전환 애니메이션 배율"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator 길이 배율"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"항상 확인"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"사용 중지할 때까지"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"조금 전"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"이 기기"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"휴대전화 스피커"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"연결 중에 문제가 발생했습니다. 기기를 껐다가 다시 켜 보세요."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"유선 오디오 기기"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index 2070056..d6ed074 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -26,7 +26,7 @@
     <string name="wifi_disconnected" msgid="7054450256284661757">"Ажыратылды"</string>
     <string name="wifi_disabled_generic" msgid="2651916945380294607">"Өчүрүлгөн"</string>
     <string name="wifi_disabled_network_failure" msgid="2660396183242399585">"IP конфигурациясы бузулду"</string>
-    <string name="wifi_disabled_by_recommendation_provider" msgid="1302938248432705534">"Тармактын сапаты начар болгондуктан туташкан жок"</string>
+    <string name="wifi_disabled_by_recommendation_provider" msgid="1302938248432705534">"Тармактын сапаты начар болгондуктан, туташкан жок"</string>
     <string name="wifi_disabled_wifi_failure" msgid="8819554899148331100">"WiFi туташуусу бузулду"</string>
     <string name="wifi_disabled_password_failure" msgid="6892387079613226738">"Аутентификация маселеси бар"</string>
     <string name="wifi_cant_connect" msgid="5718417542623056783">"Туташпай жатат"</string>
@@ -117,7 +117,7 @@
     <string name="bluetooth_pairing_decline" msgid="6483118841204885890">"Жок"</string>
     <string name="bluetooth_pairing_will_share_phonebook" msgid="3064334458659165176">"Жупташканда байланыштарыңыз менен чалуу таржымалыңызды пайдалана аласыз."</string>
     <string name="bluetooth_pairing_error_message" msgid="6626399020672335565">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> менен жупташуу мүмкүн эмес."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="264422127613704940">"PIN же код туура эмес болгондуктан <xliff:g id="DEVICE_NAME">%1$s</xliff:g> туташуу мүмкүн эмес."</string>
+    <string name="bluetooth_pairing_pin_error_message" msgid="264422127613704940">"PIN же код туура эмес болгондуктан, <xliff:g id="DEVICE_NAME">%1$s</xliff:g> туташуу мүмкүн эмес."</string>
     <string name="bluetooth_pairing_device_down_error_message" msgid="2554424863101358857">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> менен байланышуу мүмкүн эмес."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="5943444352777314442">"Жупташтырууну <xliff:g id="DEVICE_NAME">%1$s</xliff:g> четке какты."</string>
     <string name="bluetooth_talkback_computer" msgid="3736623135703893773">"Компьютер"</string>
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Аталышсыз Bluetooth түзмөктөрү көрсөтүлсүн"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Үндүн абсолюттук деңгээли өчүрүлсүн"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche функциясын иштетүү"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Жакшыртылган туташуу"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP версиясы"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP версиясын тандоо"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP версиясы"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Аталышсыз Bluetooth түзмөктөрү (MAC даректери менен гана) көрсөтүлөт"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Алыскы түзмөктөр өтө катуу добуш чыгарып же көзөмөлдөнбөй жатса Bluetooth \"Үндүн абсолюттук деңгээли\" функциясын өчүрөт."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche функциясынын топтомун иштетет."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Жакшыртылган туташуу функциясын иштетет."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Жергиликтүү терминал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Жергиликтүү буйрук кабыгын сунуштаган терминалга уруксат берүү"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP текшерүү"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI профили түзүлүүдө"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU мүчүлүштүктөрдү оңдоо катмарларын иштетүү"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"GPU мүчүлүштүктөрдү оңдоо катмарларын иштетет"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Кызмат көрсөтүүчүнү оозеки киргизүүнү иштетет"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Түзмөккө байланыштуу кызмат көрсөтүүчүнүн кирүүлөрү боюнча мүчүлүштүк тууралуу кабар берүү камтылсын. Анда купуя маалымат көрсөтүлүп, батарея тезирээк отуруп жана/же сактагычтан көбүрөөк орун ээлениши мүмкүн."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Терезелердин анимациясы"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Өткөрүү анимацснн шкаласы"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Анимациянын узактыгы"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Ар дайым суралсын"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Бул функция өчүрүлгөнгө чейин"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Азыр эле"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Ушул түзмөк"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Телефондун динамиги"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Туташууда маселе келип чыкты. Түзмөктү өчүрүп, кайра күйгүзүп көрүңүз"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Зымдуу аудио түзмөк"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 5d504d4..5f58dfb 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"ສະແດງອຸປະກອນ Bluetooth ທີ່ບໍ່ມີຊື່"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ປິດໃຊ້ລະດັບສຽງສົມບູນ"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"ເປີດໃຊ້ Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"ການເຊື່ອມຕໍ່ທີ່ເສີມແຕ່ງແລ້ວ"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ເວີຊັນ Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ເລືອກເວີຊັນ Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ເວີຊັນ Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"ຈະສະແດງອຸປະກອນ Bluetooth ທີ່ບໍ່ມີຊື່ (ທີ່ຢູ່ MAC ເທົ່ານັ້ນ)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ປິດໃຊ້ຄຸນສົມບັດລະດັບສຽງສົມບູນຂອງ Bluetooth ໃນກໍລະນີເກີດບັນຫາລະດັບສຽງສົມບູນກັບອຸປະກອນທາງໄກ ເຊັ່ນວ່າ ລະດັບສຽງດັງເກີນຍອມຮັບໄດ້ ຫຼື ຄວບຄຸມບໍ່ໄດ້."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ເປີດໃຊ້ສະແຕັກຄຸນສົມບັດ Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"ເປີດນຳໃຊ້ຄຸນສົມບັດການເຊື່ອມຕໍ່ທີ່ເສີມແຕ່ງແລ້ວ"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal ໃນໂຕເຄື່ອງ"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"ເປີດນຳໃຊ້ແອັບຯ Terminal ທີ່ໃຫ້ການເຂົ້າເຖິງ shell ໃນໂຕເຄື່ອງໄດ້"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"ການກວດສອບ HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"ການປະມວນຜົນໂປຣໄຟລ໌ HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"ເປີດໃຊ້ຊັ້ນຂໍ້ມູນດີບັກ GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ອະນຸຍາດການໂຫລດຊັ້ນຂໍ້ມູນດີບັກ GPU ສຳລັບແອັບດີບັກ"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"ເປີດໃຊ້ການບັນທຶກຜູ້ຂາຍແບບລະອຽດ"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"ຮວມທັງການລາຍງານຂໍ້ຜິດພາດການເຂົ້າສູ່ລະບົບຂອງຜູ້ຂາຍສະເພາະອຸປະກອນເພີ່ມເຕີມ, ເຊິ່ງອາດມີຂໍ້ມູນສ່ວນຕົວ, ໃຊ້ແບັດເຕີຣີຫຼາຍຂຶ້ນ ແລະ/ຫຼື ໃຊ້ບ່ອນຈັດເກັບຂໍ້ມູນເພີ່ມເຕີມ."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"ຂະໜາດໜ້າ​ຈໍ​ຂອງອະນິເມຊັນ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ຂະໜາດອະນິເມຊັນ"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"ໄລຍະເວລາອະນິເມຊັນ"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ຖາມທຸກເທື່ອ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"ຈົນກວ່າທ່ານຈະປິດ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ຕອນນີ້"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ອຸປະກອນນີ້"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ລຳໂພງໂທລະສັບ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ເກີດບັນຫາໃນການເຊື່ອມຕໍ່. ປິດອຸປະກອນແລ້ວເປີດກັບຄືນມາໃໝ່"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ອຸປະກອນສຽງແບບມີສາຍ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 6cdb547..ce41bc5 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Rodyti „Bluetooth“ įrenginius be pavadinimų"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Išjungti didžiausią garsą"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Įgalinti „Gabeldorsche“"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Patobulintas ryšys"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"„Bluetooth“ AVRCP versija"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Pasirinkite „Bluetooth“ AVRCP versiją"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"„Bluetooth“ MRK versija"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bus rodomi „Bluetooth“ įrenginiai be pavadinimų (tik MAC adresai)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Išjungiama „Bluetooth“ didžiausio garso funkcija, jei naudojant nuotolinio valdymo įrenginius kyla problemų dėl garso, pvz., garsas yra per didelis arba jo negalima tinkamai valdyti."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Įgalinama „Bluetooth Gabeldorsche“ funkcijų grupė."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Įgalinti patobulinto ryšio funkciją."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Vietinis terminalas"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Įgal. terminalo progr., siūlančią prieigą prie viet. apvalkalo"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP tikrinimas"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profilio HWUI atvaizdav."</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Įg. graf. proc. der. sl."</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Leisti įkelti graf. proc. der. sluoks. der. progr."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Įg. daugiaž. pasl. teik. reg."</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Į pranešimus apie riktą įtraukiami papildomi konkretaus įrenginio paslaugų teikėjo žurnalai, kuriuose gali būti privačios informacijos, kurie gali naudoti daugiau akumuliatoriaus energijos ir (arba) daugiau vietos saugykloje."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Lango animacijos mast."</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Animuoto perėjimo mast."</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator. trukmės skalė"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Klausti kaskart"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Kol išjungsite"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Ką tik"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Šis įrenginys"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefono garsiakalbis"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Prisijungiant kilo problema. Išjunkite įrenginį ir vėl jį įjunkite"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Laidinis garso įrenginys"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 8257d53..7c2dfbd 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Rādīt Bluetooth ierīces bez nosaukumiem"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Atspējot absolūto skaļumu"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Iespējot Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Uzlabota savienojamība"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP versija"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Atlasiet Bluetooth AVRCP versiju"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP versija"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Tiks parādītas Bluetooth ierīces bez nosaukumiem (tikai MAC adreses)."</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Atspējo Bluetooth absolūtā skaļuma funkciju skaļuma problēmu gadījumiem attālajās ierīcēs, piemēram, ja ir nepieņemami liels skaļums vai nav iespējas kontrolēt skaļumu."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Tiek iespējota funkciju grupa Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Tiek iespējota uzlabotās savienojamības funkcija."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Vietējā beigu lietotne"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Iespējot beigu lietotni, kurā piedāvāta vietējā čaulas piekļuve"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP pārbaude"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profila HWUI atveide"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Iesp. GPU atkļūd. slāņus"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Atļaut GPU atkļūd. slāņu ielādi atkļūd. lietotnēm"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Iespējot izvērsto reģistrēšanu"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Iekļaut kļūdu pārskatos konkrētas ierīces papildu nodrošinātāju žurnālus (var iekļaut privātu informāciju, patērēt vairāk akumulatora enerģijas un/vai aizņemt vairāk vietas krātuvē)."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Loga animācijas mērogs"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Pārejas animācijas mērogs"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animācijas ilguma mērogs"</string>
@@ -502,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Vaicāt katru reizi"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Līdz brīdim, kad izslēgsiet"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Tikko"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Šī ierīce"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Tālruņa skaļrunis"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Radās problēma ar savienojuma izveidi. Izslēdziet un atkal ieslēdziet ierīci."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Vadu audioierīce"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index ae2df9a..33f8f45 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Прикажувај уреди со Bluetooth без имиња"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Оневозможете апсолутна јачина на звук"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Овозможи Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Подобрена поврзливост"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Верзија Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Изберете верзија Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Верзија на Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Уредите со Bluetooth без имиња (само MAC-адреси) ќе се прикажуваат"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Ја оневозможува карактеристиката за апсолутна јачина на звук преку Bluetooth во случај кога ќе настанат проблеми со далечинските уреди, како на пр., неприфатливо силен звук или недоволна контрола."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Ја овозможува функцијата Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Ја овозможува функцијата „Подобрена поврзливост“."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Локален терминал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Овозможи апликација на терминал што овозможува локален пристап кон школка."</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Проверување HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI-прикажување профил"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Овозм. отстр. греш. на GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Дозволи отстр. греш. на GPU за поправање апликации"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Опширна евиденција на продавачи"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Вклучува дополнителна евиденција на продавачи во извештаите за грешки за конкретен уред, којашто може да содржи приватни податоци, повеќе да ја користи батеријата и/или да користи повеќе капацитет."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Опсег на аним. на прозор."</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Опсег на преодна анимац."</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Скала за времетраење на аниматор"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Секогаш прашувај"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Додека не го исклучите"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Неодамнешни"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Овој уред"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Телефонски звучник"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Проблем со поврзување. Исклучете го уредот и повторно вклучете го"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Жичен аудиоуред"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index 8727755..a360fcd 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -206,60 +206,33 @@
     <string name="enable_adb" msgid="8072776357237289039">"USB ഡീബഗ്ഗിംഗ്"</string>
     <string name="enable_adb_summary" msgid="3711526030096574316">"USB കണ‌ക്റ്റുചെയ്‌തിരിക്കുമ്പോഴുള്ള ഡീബഗ് മോഡ്"</string>
     <string name="clear_adb_keys" msgid="3010148733140369917">"USB ഡീബഗ്ഗിംഗ് അംഗീകാരം പിൻവലിക്കുക"</string>
-    <!-- no translation found for enable_adb_wireless (6973226350963971018) -->
-    <skip />
-    <!-- no translation found for enable_adb_wireless_summary (7344391423657093011) -->
-    <skip />
-    <!-- no translation found for adb_wireless_error (721958772149779856) -->
-    <skip />
-    <!-- no translation found for adb_wireless_settings (2295017847215680229) -->
-    <skip />
-    <!-- no translation found for adb_wireless_list_empty_off (1713707973837255490) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_title (6982904096137468634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_summary (3729901496856458634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_title (1122590300445142904) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_summary (6370414511333685185) -->
-    <skip />
-    <!-- no translation found for adb_paired_devices_title (5268997341526217362) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_connected_summary (3039660790249148713) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_details_title (7129369670526565786) -->
-    <skip />
-    <!-- no translation found for adb_device_forget (193072400783068417) -->
-    <skip />
-    <!-- no translation found for adb_device_fingerprint_title_format (291504822917843701) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_title (664211177427438438) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_message (9213896700171602073) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_title (7141739231018530210) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_pairing_code_label (3639239786669722731) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_title (3426758947882091735) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_msg (6611097519661997148) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_summary (8051414549011801917) -->
-    <skip />
-    <!-- no translation found for adb_wireless_verifying_qrcode_text (6123192424916029207) -->
-    <skip />
-    <!-- no translation found for adb_qrcode_pairing_device_failed_msg (6936292092592914132) -->
-    <skip />
-    <!-- no translation found for adb_wireless_ip_addr_preference_title (8335132107715311730) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_title (1906409667944674707) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_description (8578868049289910131) -->
-    <skip />
-    <!-- no translation found for keywords_adb_wireless (6507505581882171240) -->
-    <skip />
+    <string name="enable_adb_wireless" msgid="6973226350963971018">"വയർലെസ് ഡീബഗ് ചെയ്യൽ"</string>
+    <string name="enable_adb_wireless_summary" msgid="7344391423657093011">"വൈഫൈ കണക്റ്റ് ചെയ്‌തിരിക്കുമ്പോൾ ഡീബഗ് ചെയ്യൽ മോഡിലാക്കുക"</string>
+    <string name="adb_wireless_error" msgid="721958772149779856">"പിശക്"</string>
+    <string name="adb_wireless_settings" msgid="2295017847215680229">"വയർലെസ് ഡീബഗ് ചെയ്യൽ"</string>
+    <string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"ലഭ്യമായ ഉപകരണങ്ങൾ കാണാനും ഉപയോഗിക്കാനും വയർലെസ് ഡീബഗ് ചെയ്യൽ ഓണാക്കുക"</string>
+    <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"QR കോഡ് ഉപയോഗിച്ച് ഉപകരണം ജോടിയാക്കുക"</string>
+    <string name="adb_pair_method_qrcode_summary" msgid="3729901496856458634">"QR കോഡ് സ്‌കാനർ ഉപയോഗിച്ച് പുതിയ ഉപകരണങ്ങൾ ജോടിയാക്കുക"</string>
+    <string name="adb_pair_method_code_title" msgid="1122590300445142904">"ജോടിയാക്കൽ കോഡ് ഉപയോഗിച്ച് ഉപകരണം ജോടിയാക്കുക"</string>
+    <string name="adb_pair_method_code_summary" msgid="6370414511333685185">"ആറക്ക കോഡ് ഉപയോഗിച്ച് പുതിയ ഉപകരണങ്ങൾ ജോടിയാക്കുക"</string>
+    <string name="adb_paired_devices_title" msgid="5268997341526217362">"ജോടിയാക്കിയ ഉപകരണങ്ങൾ"</string>
+    <string name="adb_wireless_device_connected_summary" msgid="3039660790249148713">"നിലവിൽ കണക്റ്റ് ചെയ്‌തത്"</string>
+    <string name="adb_wireless_device_details_title" msgid="7129369670526565786">"ഉപകരണ വിശദാംശങ്ങൾ"</string>
+    <string name="adb_device_forget" msgid="193072400783068417">"മറക്കുക"</string>
+    <string name="adb_device_fingerprint_title_format" msgid="291504822917843701">"ഉപകരണ ഫിംഗർപ്രിന്റ്: <xliff:g id="FINGERPRINT_PARAM">%1$s</xliff:g>"</string>
+    <string name="adb_wireless_connection_failed_title" msgid="664211177427438438">"കണക്റ്റ് ചെയ്യാനായില്ല"</string>
+    <string name="adb_wireless_connection_failed_message" msgid="9213896700171602073">"ശരിയായ നെറ്റ്‌വർക്കിൽ ആണ് <xliff:g id="DEVICE_NAME">%1$s</xliff:g> കണക്റ്റ് ചെയ്‌തിട്ടുള്ളത് എന്ന് ഉറപ്പാക്കുക"</string>
+    <string name="adb_pairing_device_dialog_title" msgid="7141739231018530210">"ഉപകരണവുമായി ജോടിയാക്കുക"</string>
+    <string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"വൈഫൈ ജോടിയാക്കൽ കോഡ്"</string>
+    <string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"ജോടിയാക്കാനായില്ല"</string>
+    <string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"ഒരേ നെറ്റ്‌വർക്കിൽ തന്നെയാണ് ഉപകരണം കണക്റ്റ് ചെയ്‌തിട്ടുള്ളതെന്ന് ഉറപ്പാക്കുക."</string>
+    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"QR കോഡ് സ്‌കാൻ ചെയ്‌ത് വൈഫൈയിലൂടെ ഉപകരണം ജോടിയാക്കുക"</string>
+    <string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"ഉപകരണം ജോടിയാക്കുന്നു…"</string>
+    <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"ഉപകരണം ജോടിയാക്കാനായില്ല. ഒന്നുകിൽ QR കോഡ് തെറ്റായിരുന്നു അല്ലെങ്കിൽ ഉപകരണം ഒരേ നെറ്റ്‌വർക്കിൽ അല്ല കണക്റ്റ് ചെയ്‌തിട്ടുള്ളത്."</string>
+    <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP വിലാസവും പോർട്ടും"</string>
+    <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR കോഡ് സ്‌കാൻ ചെയ്യുക"</string>
+    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR കോഡ് സ്‌കാൻ ചെയ്‌ത് വൈഫൈയിലൂടെ ഉപകരണം ജോടിയാക്കുക"</string>
+    <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ബഗ് റിപ്പോർട്ട് കുറുക്കുവഴി"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"ബഗ് റിപ്പോർട്ട് എടുക്കുന്നതിന് പവർ മെനുവിൽ ഒരു ബട്ടൺ കാണിക്കുക"</string>
     <string name="keep_screen_on" msgid="1187161672348797558">"സജീവമായി തുടരുക"</string>
@@ -282,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"പേരില്ലാത്ത Bluetooth ഉപകരണങ്ങൾ കാണിക്കുക"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"അബ്‌സൊല്യൂട്ട് വോളിയം പ്രവർത്തനരഹിതമാക്കുക"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"മെച്ചപ്പെടുത്തിയ കണക്റ്റിവിറ്റി"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP പതിപ്പ്"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP പതിപ്പ് തിരഞ്ഞെടുക്കുക"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP പതിപ്പ്"</string>
@@ -325,10 +299,8 @@
     <string name="tethering_hardware_offload_summary" msgid="7801345335142803029">"ലഭ്യമാണെങ്കിൽ \'ടെതറിംഗ് ഹാർഡ്‌വെയർ ത്വരിതപ്പെടുത്തൽ\' ഉപയോഗിക്കുക"</string>
     <string name="adb_warning_title" msgid="7708653449506485728">"USB ഡീബഗ്ഗുചെയ്യാൻ അനുവദിക്കണോ?"</string>
     <string name="adb_warning_message" msgid="8145270656419669221">"USB ഡീബഗ്ഗിംഗ് വികസന ആവശ്യകതകൾക്ക് മാത്രമുള്ളതാണ്. നിങ്ങളുടെ കമ്പ്യൂട്ടറിനും ഉപകരണത്തിനുമിടയിൽ ഡാറ്റ പകർത്തുന്നതിനും അറിയിപ്പില്ലാതെ തന്നെ നിങ്ങളുടെ ഉപകരണത്തിൽ അപ്ലിക്കേഷനുകൾ ഇൻസ്‌റ്റാളുചെയ്യുന്നതിനും ലോഗ് ഡാറ്റ റീഡുചെയ്യുന്നതിനും ഇത് ഉപയോഗിക്കുക."</string>
-    <!-- no translation found for adbwifi_warning_title (727104571653031865) -->
-    <skip />
-    <!-- no translation found for adbwifi_warning_message (8005936574322702388) -->
-    <skip />
+    <string name="adbwifi_warning_title" msgid="727104571653031865">"വയർലെസ് ഡീബഗ് ചെയ്യൽ അനുവദിക്കണോ?"</string>
+    <string name="adbwifi_warning_message" msgid="8005936574322702388">"വയർലെസ് ഡീബഗ് ചെയ്യൽ ഡെവലപ്മെന്റ് ആവശ്യങ്ങൾക്ക് മാത്രമുള്ളതാണ്. നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് ഉപകരണത്തിലേക്കും തിരിച്ചും ഡാറ്റ പകർത്തുന്നതിനും ലോഗ് ഡാറ്റ റീഡ് ചെയ്യുന്നതിനും അറിയിപ്പില്ലാതെ നിങ്ങളുടെ ഉപകരണത്തിൽ ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും ഇത് ഉപയോഗിക്കുക."</string>
     <string name="adb_keys_warning_message" msgid="2968555274488101220">"നിങ്ങൾ മുമ്പ് അംഗീകരിച്ച എല്ലാ കമ്പ്യൂട്ടറുകളിൽ നിന്നും USB ഡീബഗ്ഗുചെയ്യുന്നതിനുള്ള ആക്‌സസ്സ് പിൻവലിക്കണോ?"</string>
     <string name="dev_settings_warning_title" msgid="8251234890169074553">"വികസന ക്രമീകരണങ്ങൾ അനുവദിക്കണോ?"</string>
     <string name="dev_settings_warning_message" msgid="37741686486073668">"ഈ ക്രമീകരണങ്ങൾ വികസന ഉപയോഗത്തിന് മാത്രമായുള്ളതാണ്. അവ നിങ്ങളുടെ ഉപകരണവും അതിലെ അപ്ലിക്കേഷനുകളും തകരാറിലാക്കുന്നതിനോ തെറ്റായി പ്രവർത്തിക്കുന്നതിനോ ഇടയാക്കാം."</string>
@@ -337,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"പേരില്ലാത്ത Bluetooth ഉപകരണങ്ങൾ (MAC വിലാസങ്ങൾ മാത്രം) പ്രദർശിപ്പിക്കും"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"അസ്വീകാര്യമായ തരത്തിൽ ഉയർന്ന വോളിയമോ ശബ്ദ നിയന്ത്രണത്തിന്റെ അഭാവമോ പോലെ, വിദൂര ഉപകരണങ്ങളുമായി ബന്ധപ്പെട്ട വോളിയം പ്രശ്നങ്ങൾ ഉണ്ടാകുന്ന സാഹചര്യത്തിൽ, Bluetooth അബ്‌സൊല്യൂട്ട് വോളിയം ഫീച്ചർ പ്രവർത്തനരഹിതമാക്കുന്നു."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche ഫീച്ചർ സ്റ്റാക്ക് പ്രവർത്തനക്ഷമമാക്കുന്നു."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"മെച്ചപ്പെടുത്തിയ കണക്റ്റിവിറ്റി ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കുന്നു."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"പ്രാദേശിക ടെർമിനൽ"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"പ്രാദേശിക ഷെൽ ആക്‌സസ് നൽകുന്ന ടെർമിനൽ അപ്ലിക്കേഷൻ പ്രവർത്തനക്ഷമമാക്കുക"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP പരിശോധന"</string>
@@ -383,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI റെൻഡറിംഗ് പ്രൊഫൈൽ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU ഡീബഗ് ലെയറുകൾ പ്രവർത്തനക്ഷമമാക്കൂ"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ഡീബഗ് ആപ്പുകൾക്കായി GPU ഡീബഗ് ലെയറുകൾ ലോഡ് ചെയ്യാൻ അനുവദിക്കുക"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"വെർബോസ് വെണ്ടർ ലോഗ് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കൂ"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"വിൻഡോ ആനിമേഷൻ സ്‌കെയിൽ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"സംക്രമണ ആനിമേഷൻ സ്‌കെയിൽ"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"ആനിമേറ്റർ ദൈർഘ്യ സ്‌കെയിൽ"</string>
@@ -441,8 +417,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"പ്രോട്ടാനോമലി (ചുവപ്പ്-പച്ച)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ട്രിട്ടാനോമലി (നീല-മഞ്ഞ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"വർണ്ണം ക്രമീകരിക്കൽ"</string>
-    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (6178138727195403796) -->
-    <skip />
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"വർണ്ണം ശരിയാക്കൽ, വർണ്ണാന്ധത ബാധിച്ച ആളുകൾക്ക് നിറങ്ങൾ കൂടുതൽ കൃത്യമായി കാണാൻ സഹായിക്കുന്നു"</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_duration_only" msgid="8264199158671531431">"ഏതാണ്ട് <xliff:g id="TIME_REMAINING">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
@@ -461,27 +436,19 @@
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-ൽ കുറവ് സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ൽ കൂടുതൽ സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_only_more_than_subtext" msgid="3274496164769110480">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ൽ കൂടുതൽ സമയം ശേഷിക്കുന്നു"</string>
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (137330009791560774) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (145489081521468132) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1070562682853942350) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4429259621177089719) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (7703677921000858479) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4374784375644214578) -->
-    <skip />
+    <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="137330009791560774">"ഫോൺ ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="145489081521468132">"ടാബ്‌ലെറ്റ് ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="1070562682853942350">"ഉപകരണം ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="4429259621177089719">"ഫോൺ ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7703677921000858479">"ടാബ്‌ലെറ്റ് ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="4374784375644214578">"ഉപകരണം ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
     <string name="power_charging" msgid="6727132649743436802">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
     <string name="power_remaining_charging_duration_only" msgid="7415639699283965818">"പൂർണ്ണമായി ചാർജാവാൻ <xliff:g id="TIME">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
     <string name="power_charging_duration" msgid="5005740040558984057">"<xliff:g id="LEVEL">%1$s</xliff:g> - പൂർണ്ണമായി ചാർജാവാൻ <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"അജ്ഞാതം"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"ചാർജ് ചെയ്യുന്നു"</string>
-    <!-- no translation found for battery_info_status_charging_fast (8027559755902954885) -->
-    <skip />
-    <!-- no translation found for battery_info_status_charging_slow (3190803837168962319) -->
-    <skip />
+    <string name="battery_info_status_charging_fast" msgid="8027559755902954885">"അതിവേഗ ചാർജിംഗ്"</string>
+    <string name="battery_info_status_charging_slow" msgid="3190803837168962319">"പതുക്കെയുള്ള ചാർജിംഗ്"</string>
     <string name="battery_info_status_discharging" msgid="6962689305413556485">"ചാർജ്ജുചെയ്യുന്നില്ല"</string>
     <string name="battery_info_status_not_charging" msgid="8330015078868707899">"പ്ലഗ് ഇൻ ചെയ്‌തു, ഇപ്പോൾ ചാർജ് ചെയ്യാനാവില്ല"</string>
     <string name="battery_info_status_full" msgid="4443168946046847468">"നിറഞ്ഞു"</string>
@@ -539,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"എപ്പോഴും ചോദിക്കുക"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"നിങ്ങൾ ഓഫാക്കുന്നത് വരെ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ഇപ്പോൾ"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ഈ ഉപകരണം"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ഫോൺ സ്‌പീക്കർ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"കണക്‌റ്റ് ചെയ്യുന്നതിൽ പ്രശ്‌നമുണ്ടായി. ഉപകരണം ഓഫാക്കി വീണ്ടും ഓണാക്കുക"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"വയർ മുഖേന ബന്ധിപ്പിച്ച ഓഡിയോ ഉപകരണം"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index dc57b3b..c8fb2a5 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Нэргүй Bluetooth төхөөрөмжийг харуулах"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Үнэмлэхүй дууны түвшинг идэвхгүй болгох"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche-г идэвхжүүлэх"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Сайжруулсан холболт"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP хувилбар"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP хувилбарыг сонгох"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP хувилбар"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Нэргүй Bluetooth төхөөрөмжийг (зөвхөн MAC хаяг) харуулна"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Хэт чанга дуугаралт эсвэл муу тохиргоо зэрэг алсын зайн төхөөрөмжийн дуугаралттай холбоотой асуудлын үед Bluetooth-ийн үнэмлэхүй дууны түвшинг идэвхгүй болго."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche онцлогийн өрөлтийг идэвхжүүлдэг."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Сайжруулсан холболтын онцлогийг идэвхжүүлдэг."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Локал терминал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Локал суурьт хандалт хийх боломж олгодог терминалын апп-г идэвхжүүлэх"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP шалгах"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Профайл HWUI-н буулгалт"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU дебаг хийх давхаргыг идэвхжүүлэх"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Дебаг хийх аппад GPU дебаг хийх давхарга ачааллахыг зөвшөөрөх"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Нийлүүлэгчийн дэлгэрэнгүй логийг идэвхжүүлэх"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Төхөөрөмжийн тодорхойосон нийлүүлэгчийн нэвтрэх үеийн алдааны нэмэлт мэдээг оруулах бөгөөд энэ нь хувийн мэдээлэл агуулж, батарейг илүү ашиглах болон/эсвэл хадгалах сан илүү ашиглаж болзошгүй."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Цонхны дүрс амилуулалтын далайц"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Шилжилтийн дүрс амилуулалтын далайц"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Дүрс амилуулалт үргэлжлэх далайц"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Тухай бүрд асуух"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Таныг унтраах хүртэл"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Дөнгөж сая"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Энэ төхөөрөмж"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Утасны чанга яригч"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Холбогдоход асуудал гарлаа. Төхөөрөмжийг унтраагаад дахин асаана уу"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Утастай аудио төхөөрөмж"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index 1240c5b..afb88de 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"नावांशिवाय ब्‍लूटूथ डिव्‍हाइस दाखवा"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"संपूर्ण आवाज बंद करा"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"गाबलडॉर्ष सुरू करा"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"वर्धित कनेक्टिव्हिटी"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ब्लूटूथ AVRCP आवृत्ती"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ब्लूटूथ AVRCP आवृत्ती निवडा"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ब्लूटूथ MAP आवृत्ती"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"नावांशिवाय ब्‍लूटूथ डीव्‍हाइस (फक्‍त MAC पत्‍ते) दाखवले जातील"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"रिमोट डिव्हाइसमध्ये सहन न होणारा मोठा आवाज किंवा नियंत्रणाचा अभाव यासारखी आवाजाची समस्या असल्यास ब्लूटूथ संपूर्ण आवाज वैशिष्ट्य बंद करते."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ब्लूटूथ गाबलडॉर्ष वैशिष्‍ट्य स्टॅक सुरू करा."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"वर्धित कनेक्टिव्हिटी वैशिष्‍ट्य सुरू करा."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"स्थानिक टर्मिनल"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"स्थानिक शेल प्रवेश देणारा टर्मिनल अ‍ॅप सुरू करा"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP तपासणी"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"प्रोफाइल HWUI रेंडरिंग"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU डीबग स्तर सुरू करा"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"डीबग अ‍ॅप्ससाठी GPU डीबग स्तर लोड करण्याची अनुमती द्या"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"व्हर्बोझ विक्रेता लॉगिंग सुरू करा"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"विंडो ॲनिमेशन स्केल"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ट्रांझिशन ॲनिमेशन स्केल"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"ॲनिमेटर कालावधी स्केल"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"प्रत्येक वेळी विचारा"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"तुम्ही बंद करेपर्यंत"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"आत्ताच"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"हे डिव्हाइस"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"फोनचा स्पीकर"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"कनेक्‍ट करण्‍यात समस्‍या आली. डिव्हाइस बंद करा आणि नंतर सुरू करा"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"वायर असलेले ऑडिओ डिव्हाइस"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index b4c3f60..2c59768 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Tunjukkan peranti Bluetooth tanpa nama"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Lumpuhkan kelantangan mutlak"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Dayakan Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Kesambungan Dipertingkat"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versi AVRCP Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Pilih Versi AVRCP Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versi MAP Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Peranti Bluetooth tanpa nama (alamat MAC sahaja) akan dipaparkan"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Lumpuhkan ciri kelantangan mutlak Bluetooth dalam kes isu kelantangan menggunakan peranti kawalan jauh seperti kelantangan yang sangat kuat atau tidak dapat mengawal."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Mendayakan tindanan ciri Gabeldorche Bluetooth."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Mendayakan ciri Kesambungan Dipertingkat"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal setempat"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Dayakan apl terminal yang menawarkan akses shell tempatan"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Penyemakan HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Pemaparan HWUI profil"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Dayakan lpsn nyhppjat GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Bnrkn pemuatan lpsn nyhppjt GPU utk apl pnyhppjtn"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Dayakn pngelogan vendor brjela"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Sertakan log tambahan vendor khusus peranti dalam laporan pepijat, yang mungkin mengandungi maklumat peribadi, menggunakan lebih banyak kuasa bateri dan/atau menggunakan lebih banyak storan."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Skala animasi tetingkap"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Skala animasi peralihan"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Skala tempoh juruanimasi"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Tanya setiap kali"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Sehingga anda matikan"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Sebentar tadi"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Peranti ini"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Pembesar suara telefon"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Masalah penyambungan. Matikan &amp; hidupkan kembali peranti"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Peranti audio berwayar"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index ae8c1b9..ff24590 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"အမည်မရှိသော ဘလူးတုသ်စက်ပစ္စည်းများကို ပြသရန်"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ပကတိ အသံနှုန်း သတ်မှတ်ချက် ပိတ်ရန်"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche ကို ဖွင့်ရန်"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"အရည်အသွေးမြှင့်တင်ထားသော ချိတ်ဆက်နိုင်မှု"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ဘလူးတုသ် AVRCP ဗားရှင်း"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ဘလူးတုသ် AVRCP ဗားရှင်းကို ရွေးပါ"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ဘလူးတုသ် MAP ဗားရှင်း"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"အမည်မရှိသော (MAC လိပ်စာများသာပါသော) ဘလူးတုသ်စက်ပစ္စည်းများကို ပြသပါမည်"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ချိတ်ဆက်ထားသည့် ကိရိယာတွင် လက်မခံနိုင်လောက်အောင် ဆူညံ သို့မဟုတ် ထိန်းညှိမရနိုင်သော အသံပိုင်းပြဿနာ ရှိခဲ့လျှင် ဘလူးတုသ် ပကတိ အသံနှုန်းကို ပိတ်ပါ။"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ဘလူးတုသ် Gabeldorsche လုပ်ဆောင်ချက်အပိုင်းကို ဖွင့်သည်။"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"အရည်အသွေးမြှင့်တင်ထားသော ချိတ်ဆက်နိုင်သည့် ဝန်ဆောင်မှုကို ဖွင့်ပါ။"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"လိုကယ်တာမီနယ်"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"local shell အသုံးပြုခွင့်ကမ်းလှမ်းသော တာမင်နယ်အပလီကေးရှင်းဖွင့်ပါ"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP စစ်ဆေးမှု"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI ပရိုဖိုင် ဆောင်ရွက်ခြင်း"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU အမှားရှာ အလွှာများဖွင့်ထားပါ"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"အမှားရှာအက်ပ်များအတွက် GPU အမှားရှာအလွှာများ ထည့်သွင်းခွင့်ပြုပါ"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"verbose vendor မှတ်တမ်းဖွင့်ရန်"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"ချွတ်ယွင်းမှု အစီရင်ခံချက်တွင် စက်ပစ္စည်းအလိုက် ထုတ်လုပ်သူမှတ်တမ်းများကို ထည့်သွင်းခြင်းဖြင့် ကိုယ်ရေးကိုယ်တာ အချက်အလက်များ ပါဝင်ခြင်း၊ ဘက်ထရီပိုသုံးခြင်း နှင့်/သို့မဟုတ် သိုလှောင်ခန်းပိုသုံးခြင်းတို့ ဖြစ်စေနိုင်သည်။"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"လှုပ်ရှားသက်ဝင်ပုံစကေး"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"သက်ဝင်အသွင်ပြောင်းခြင်း"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"လှုပ်ရှားမှုကြာချိန်စကေး"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"အမြဲမေးပါ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"သင်ပိတ်လိုက်သည် အထိ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ယခုလေးတင်"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ဤစက်ပစ္စည်း"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ဖုန်းစပီကာ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ချိတ်ဆက်ရာတွင် ပြဿနာရှိပါသည်။ စက်ကိုပိတ်ပြီး ပြန်ဖွင့်ပါ"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ကြိုးတပ် အသံစက်ပစ္စည်း"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 960398d..8c4e241 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Vis Bluetooth-enheter uten navn"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Slå av funksjonen for absolutt volum"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Aktiver Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Forbedret tilkobling"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP-versjon"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Velg Bluetooth AVRCP-versjon"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP-versjon"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-enheter uten navn (bare MAC-adresser) vises"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Slår av funksjonen for absolutt volum via Bluetooth i tilfelle det oppstår volumrelaterte problemer med eksterne enheter, for eksempel uakseptabelt høyt volum eller mangel på kontroll."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Aktiverer funksjonsstabelen Bluetooth Gabeldorsche"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Slår på Forbedret tilkobling-funksjonen."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokal terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Aktiver terminalappen som gir lokal kommandolistetilgang"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-kontroll"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI-gjengivelse av profil"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Slå på GPU-feilsøkingslag"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Tillat GPU-feilsøkingslag for feilsøkingsapper"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Detaljert leverandørlogging"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inkluder ytterligere enhetsspesifikke leverandørlogger i feilrapporter, som kan inneholde privat informasjon, bruke mer batteri og/eller bruke mer lagringsplass."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Animasjonsskala for vindu"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Animasjonsskala for overgang"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Varighetsskala for animasjoner"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Spør hver gang"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Til du slår av"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Nå nettopp"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Denne enheten"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonhøyttaler"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Tilkoblingsproblemer. Slå enheten av og på igjen"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Lydenhet med kabel"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index e11f02d..e78e8fa 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"नामकरण नगरिएका ब्लुटुथ यन्त्रहरू देखाउनुहोस्"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"निरपेक्ष आवाज असक्षम गर्नुहोस्"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche सक्षम पार्नुहोस्"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"परिष्कृत जडान"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ब्लुटुथको AVRCP संस्करण"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ब्लुटुथको AVRCP संस्करण चयन गर्नुहोस्"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ब्लुटुथको MAP संस्करण"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"नामकरण नगरिएका ब्लुटुथ यन्त्रहरू (MAC ठेगाना भएका मात्र) देखाइनेछ"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"रिमोट यन्त्रहरूमा अस्वीकार्य चर्को आवाज वा नियन्त्रणमा कमी जस्ता आवाज सम्बन्धी समस्याहरूको अवस्थामा ब्लुटुथ निरपेक्ष आवाज सुविधालाई असक्षम गराउँछ।"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ब्लुटुथ Gabeldorsche सुविधाको स्ट्याक सक्षम पार्नुहोस्।"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"यसले परिष्कृत जडानको सुविधा सक्षम पार्छ।"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"स्थानीय टर्मिनल"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"स्थानीय सेल पहुँच प्रदान गर्ने टर्मिनल अनुप्रयोग सक्षम गर्नुहोस्"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP जाँच गर्दै"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"प्रोफाइल HWUI रेन्डर गरिँदै छ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU का डिबग तहहरूलाई सक्षम पार्नुहोस्"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"डिबगसम्बन्धी अनुप्रयोगहरूका लागि GPU का डिबग तहहरूलाई लोड गर्न दिनुहोस्"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"भर्वस भेन्डर लगिङ सक्षम पार्नु…"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"विन्डो सजीविकरण स्केल"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"संक्रमण सजीविकरण मापन"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"सजीविकरण अवधि मापन"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"प्रत्येक पटक सोध्नुहोस्"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"तपाईंले निष्क्रिय नपार्दासम्म"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"अहिले भर्खरै"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"यो यन्त्र"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"फोनको स्पिकर"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"जोड्ने क्रममा समस्या भयो। यन्त्रलाई निष्क्रिय पारेर फेरि सक्रिय गर्नुहोस्"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"तारयुक्त अडियो यन्त्र"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index e79784c..221ba53 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bluetooth-apparaten zonder namen weergeven"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Absoluut volume uitschakelen"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche inschakelen"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Verbeterde connectiviteit"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth-AVRCP-versie"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth-AVRCP-versie selecteren"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"MAP-versie voor bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-apparaten zonder namen (alleen MAC-adressen) worden weergegeven"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Hiermee wordt de functie voor absoluut volume van Bluetooth uitgeschakeld in geval van volumeproblemen met externe apparaten, zoals een onacceptabel hoog volume of geen volumeregeling."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Hierdoor wordt de Gabeldorsche-functiestack voor bluetooth ingeschakeld."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Hiermee wordt de functie voor verbeterde connectiviteit ingeschakeld."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokale terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Terminal-app inschakelen die lokale shell-toegang biedt"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-controle"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI-weergave van profiel"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU-foutopsporingslagen inschakelen"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Laden van GPU-foutopsporingslagen toestaan voor foutopsporingsapps"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Uitgebreide leverancierslogboeken inschakelen"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Aanvullende apparaatspecifieke leverancierslogboeken opnemen in bugrapporten. Deze kunnen privégegevens bevatten, meer batterijlading gebruiken en/of meer opslagruimte gebruiken."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Venster­animatieschaal"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Overgangs­animatieschaal"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Duur van animatieschaal"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Altijd vragen"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Totdat je uitschakelt"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Zojuist"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Dit apparaat"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefoonspeaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Probleem bij verbinding maken. Schakel het apparaat uit en weer in."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Bedraad audioapparaat"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index 7e7c22d..65c44cb 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"ବ୍ଲୁଟୂଥ୍‍‌ ଡିଭାଇସ୍‌ଗୁଡ଼ିକୁ ନାମ ବିନା ଦେଖନ୍ତୁ"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ପୂର୍ଣ୍ଣ ଭଲ୍ୟୁମ୍‌ ଅକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"ଗାବେଲ୍‌ଡୋର୍ସ ସକ୍ରିୟ କରନ୍ତୁ"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"ଏନହାନ୍ସଡ୍ କନେକ୍ଟିଭିଟି"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ବ୍ଲୁଟୂଥ୍‌ AVRCP ଭର୍ସନ୍"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ବ୍ଲୁଟୂଥ୍‍‌ AVRCP ଭର୍ସନ୍‌"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ବ୍ଲୁଟୁଥ୍ MAP ସଂସ୍କରଣ"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"(କେବଳ MAC ଠିକଣା ଥାଇ) ନାମ ବିନା ବ୍ଲୁଟୂଥ ଡିଭାଇସଗୁଡ଼ିକ ପ୍ରଦର୍ଶିତ ହେବ"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ରିମୋଟ୍‌ ଡିଭାଇସ୍‌ଗୁଡ଼ିକରେ ଯଦି ଅସ୍ୱୀକାର୍ଯ୍ୟ ଭାବେ ଉଚ୍ଚ ଭଲ୍ୟୁମ୍ କିମ୍ବା ନିୟନ୍ତ୍ରଣର ଅଭାବ ପରି ଭଲ୍ୟୁମ୍ ସମସ୍ୟା ଥାଏ, ବ୍ଲୁଟୂଥ୍‌ ପୂର୍ଣ୍ଣ ଭଲ୍ୟୁମ୍ ଫିଚର୍ ଅକ୍ଷମ କରିଥାଏ।"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ବ୍ଲୁଟୁଥ୍ ଗାବେଲଡୋର୍ସ ଫିଚର୍ ଷ୍ଟକ୍ ସକ୍ଷମ କରେ।"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"ଏନହାନ୍ସଡ୍ କନେକ୍ଟିଭିଟି ଫିଚର୍ ସକ୍ଷମ କରିଥାଏ।"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"ସ୍ଥାନୀୟ ଟର୍ମିନାଲ୍‌"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"ସ୍ଥାନୀୟ ଶେଲ୍‌କୁ ଆକ‌ସେସ୍‌ ଦେଉଥିବା ଟର୍ମିନଲ୍‌ ଆପ୍‌କୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP ଯାଞ୍ଚ କରୁଛି"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"ପ୍ରୋଫାଇଲ୍ HWUI ରେଣ୍ଡର୍ ହେଉଛି"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU ଡିବଗ୍‌ ଲେୟର୍‌ ସକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ଡିବଗ୍‌ ଆପ୍‌ଗୁଡ଼ିକ ପାଇଁ GPU ଡିବଗ୍‌ ଲେୟର୍‌ ଲୋଡ୍ କରିବାର ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"ଭର୍ବୋସ ଭେଣ୍ଡର୍ ଲଗିଂ ସକ୍ଷମ କରନ୍ତୁ"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"ୱିଣ୍ଡୋ ଆନିମେସନ୍‌ ସ୍କେଲ୍‌"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ଟ୍ରାଞ୍ଜିସନ୍‌ ଆନିମେସନ୍‌ ସ୍କେଲ୍‌"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"ଆନିମେଟର୍‌ ଅବଧି ସ୍କେଲ୍‌"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ପ୍ରତ୍ୟେକ ଥର ପଚାରନ୍ତୁ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"ଆପଣ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ଏହିକ୍ଷଣି"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ଏହି ଡିଭାଇସ୍‍"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ଫୋନ୍ ସ୍ପିକର୍"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ସଂଯୋଗ କରିବାରେ ସମସ୍ୟା ହେଉଛି। ଡିଭାଇସ୍ ବନ୍ଦ କରି ପୁଣି ଚାଲୁ କରନ୍ତୁ"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ତାରଯୁକ୍ତ ଅଡିଓ ଡିଭାଇସ୍"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 7279f31..ed020e8 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"ਅਨਾਮ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਦਿਖਾਓ"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ਪੂਰਨ ਅਵਾਜ਼ ਨੂੰ ਬੰਦ ਕਰੋ"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"ਵਿਸਤ੍ਰਿਤ ਕਨੈਕਟੀਵਿਟੀ"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ਬਲੂਟੁੱਥ AVRCP ਵਰਜਨ"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ਬਲੂਟੁੱਥ AVRCP ਵਰਜਨ ਚੁਣੋ"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP ਵਰਜਨ"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"ਅਨਾਮ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਦਿਖਾਈਆਂ ਜਾਣਗੀਆਂ (ਸਿਰਫ਼ MAC ਪਤੇ)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ਰਿਮੋਟ ਡੀਵਾਈਸਾਂ ਨਾਲ ਅਵਾਜ਼ੀ ਸਮੱਸਿਆਵਾਂ ਜਿਵੇਂ ਕਿ ਨਾ ਪਸੰਦ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਉੱਚੀ ਅਵਾਜ਼ ਜਾਂ ਕੰਟਰੋਲ ਦੀ ਕਮੀ ਵਰਗੀ ਹਾਲਤ ਵਿੱਚ ਬਲੂਟੁੱਥ ਪੂਰਨ ਅਵਾਜ਼ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ।"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ਬਲੂਟੁੱਥ Gabeldorsche ਵਿਸ਼ੇਸ਼ਤਾ ਸਟੈਕ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ।"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"ਵਿਸਤ੍ਰਿਤ ਕਨੈਕਟੀਵਿਟੀ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ।"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"ਸਥਾਨਕ ਟਰਮੀਨਲ"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"ਟਰਮੀਨਲ ਐਪ ਨੂੰ ਚਾਲੂ ਕਰੋ ਜੋ ਸਥਾਨਕ ਸ਼ੈਲ ਪਹੁੰਚ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP ਜਾਂਚ"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"ਪ੍ਰੋਫਾਈਲ HWUI ਰੈਂਡਰਿੰਗ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU ਡੀਬੱਗ ਲੇਅਰਾਂ ਚਾਲੂ ਕਰੋ"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"ਡੀਬੱਗ ਐਪਾਂ ਲਈ GPU ਡੀਬੱਗ ਲੇਅਰਾਂ ਨੂੰ ਲੋਡ ਹੋਣ ਦਿਓ"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"ਵਰਬੋਸ ਵਿਕਰੇਤਾ ਲੌਗਿੰਗ ਚਾਲੂ ਕਰੋ"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"ਵਿੰਡੋ ਐਨੀਮੇਸ਼ਨ ਸਕੇਲ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ਟ੍ਰਾਂਜਿਸ਼ਨ ਐਨੀਮੇਸ਼ਨ ਸਕੇਲ"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"ਐਨੀਮੇਟਰ ਮਿਆਦ ਸਕੇਲ"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ਹਰ ਵਾਰ ਪੁੱਛੋ"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਬੰਦ ਨਹੀਂ ਕਰਦੇ"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ਹੁਣੇ ਹੀ"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ਇਹ ਡੀਵਾਈਸ"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ਫ਼ੋਨ ਦਾ ਸਪੀਕਰ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ। ਡੀਵਾਈਸ ਨੂੰ ਬੰਦ ਕਰਕੇ ਵਾਪਸ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ਤਾਰ ਵਾਲਾ ਆਡੀਓ ਡੀਵਾਈਸ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 3b12891..8ab91fa 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Pokaż urządzenia Bluetooth bez nazw"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Wyłącz głośność bezwzględną"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Włącz Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Lepsza obsługa połączeń"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Wersja AVRCP Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Wybierz wersję AVRCP Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Wersja MAP Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Zostaną wyświetlone urządzenia Bluetooth bez nazw (tylko adresy MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Wyłącza funkcję Głośność bezwzględna Bluetooth, jeśli występują problemy z urządzeniami zdalnymi, np. zbyt duża głośność lub brak kontroli."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Włącza funkcje Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Włącza funkcję lepszej obsługi połączeń."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal lokalny"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Włącz terminal, który umożliwia dostęp do powłoki lokalnej"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Sprawdzanie HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil renderowania HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Warstwy debugowania GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Zezwól na ładowanie warstw debugowania GPU"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Włącz szczegółowe rejestrowanie dostawcy"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Dołączaj do raportów o błędach dodatkowe dane dostawcy dotyczące konkretnego urządzenia, które mogą zawierać dane prywatne oraz wykorzystywać więcej baterii lub pamięci."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Skala animacji okna"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Skala animacji przejścia"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Skala długości animacji"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Zawsze pytaj"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Dopóki nie wyłączysz"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Przed chwilą"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"To urządzenie"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Głośnik telefonu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem z połączeniem. Wyłącz i ponownie włącz urządzenie"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Przewodowe urządzenie audio"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 5e76fe0..16b92e9 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostrar dispositivos Bluetooth sem nomes"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Desativar volume absoluto"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Ativar Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Conectividade melhorada"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versão do Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selecionar versão do Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versão MAP do Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Dispositivos Bluetooth sem nomes (somente endereços MAC) serão exibidos"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Desativa o recurso Bluetooth de volume absoluto em caso de problemas com o volume em dispositivos remotos, como volume excessivamente alto ou falta de controle"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Ativa a pilha de recursos Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Ativa o recurso \"Conectividade melhorada\"."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Ativar o app terminal que oferece acesso ao shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Verificação HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Classificar renderização HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Ativar camadas de depuração de GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permitir carregamento de camadas de depuração de GPU p/ apps de depuração"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Ativ. registro detal. de fornecedor"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inclui mais registros de fornecedores específicos do dispositivo em relatórios de bugs, que podem conter informações privadas e usar mais bateria e/ou armazenamento."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Escala de animação da janela"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala de animação de transição"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala de duração do Animator"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Perguntar sempre"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Até você desativar"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Agora"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Este dispositivo"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Alto-falante do smartphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ocorreu um problema na conexão. Desligue o dispositivo e ligue-o novamente"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fio"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index d1b29f0..f1cb113 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostrar dispositivos Bluetooth sem nomes"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Desativar volume absoluto"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Ativar o Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Conetividade melhorada"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versão de Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selecionar versão de Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versão do MAP do Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"São apresentados os dispositivos Bluetooth sem nomes (apenas endereços MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Desativa a funcionalidade de volume absoluto do Bluetooth caso existam problemas de volume com dispositivos remotos, como um volume insuportavelmente alto ou a ausência de controlo."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Ativa a pilha de funcionalidades Bluetooth Gabeldorche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Ativa a funcionalidade Conetividade melhorada."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Ativar aplicação terminal que oferece acesso local à shell"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Verificação HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Renderização HWUI do perfil"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Ativar cam. depuração GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permitir carreg. cam. depuração GPU p/ dep. app"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Ativ. regist. verbo. forneced."</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inclua registos adicionais de fornecedores específicos de dispositivos em relatórios de erros, que podem conter informações privadas, utilizar mais bateria e/ou utilizar mais armazenamento."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Escala de animação de transição"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala de animação de transição"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala de duração de animação"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Perguntar sempre"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Até ser desativado"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Agora mesmo"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Este dispositivo"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altifalante do telemóvel"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problema ao ligar. Desligue e volte a ligar o dispositivo."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fios"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 5e76fe0..16b92e9 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Mostrar dispositivos Bluetooth sem nomes"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Desativar volume absoluto"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Ativar Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Conectividade melhorada"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versão do Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selecionar versão do Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versão MAP do Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Dispositivos Bluetooth sem nomes (somente endereços MAC) serão exibidos"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Desativa o recurso Bluetooth de volume absoluto em caso de problemas com o volume em dispositivos remotos, como volume excessivamente alto ou falta de controle"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Ativa a pilha de recursos Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Ativa o recurso \"Conectividade melhorada\"."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminal local"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Ativar o app terminal que oferece acesso ao shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Verificação HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Classificar renderização HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Ativar camadas de depuração de GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permitir carregamento de camadas de depuração de GPU p/ apps de depuração"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Ativ. registro detal. de fornecedor"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inclui mais registros de fornecedores específicos do dispositivo em relatórios de bugs, que podem conter informações privadas e usar mais bateria e/ou armazenamento."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Escala de animação da janela"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala de animação de transição"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala de duração do Animator"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Perguntar sempre"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Até você desativar"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Agora"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Este dispositivo"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Alto-falante do smartphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ocorreu um problema na conexão. Desligue o dispositivo e ligue-o novamente"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fio"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index e1aa85b..06a83f5 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Afișați dispozitivele Bluetooth fără nume"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Dezactivați volumul absolut"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Activați Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Conectivitate îmbunătățită"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versiunea AVRCP pentru Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Selectați versiunea AVRCP pentru Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versiunea MAP pentru Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Vor fi afișate dispozitivele Bluetooth fără nume (numai adresele MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Dezactivează funcția Bluetooth de volum absolut în cazul problemelor de volum apărute la dispozitivele la distanță, cum ar fi volumul mult prea ridicat sau lipsa de control asupra acestuia."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Activează setul de funcții Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Activează funcția Conectivitate îmbunătățită."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Aplicație terminal locală"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Activați aplicația terminal care oferă acces la shell local"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Verificare HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil redare cu HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Activați nivelurile de depanare GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permiteți încărcarea nivelurilor de depanare GPU pentru aplicațiile de depanare"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Activați înregistrarea detaliată a furnizorilor"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Includeți alte jurnale ale furnizorilor de dispozitive în rapoartele de eroare, care pot conține informații private, folosiți mai multă baterie și/sau mai mult spațiu de stocare."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Scară animație fereastră"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Scară tranziție animații"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Scară durată Animator"</string>
@@ -502,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Întreabă de fiecare dată"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Până când dezactivați"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Chiar acum"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Acest dispozitiv"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Difuzorul telefonului"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problemă la conectare. Opriți și reporniți dispozitivul."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispozitiv audio cu fir"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 3df750d..5439979 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Показывать Bluetooth-устройства без названий"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Отключить абсолютный уровень громкости"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Включить Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Улучшенный обмен данными"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Версия Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Выберите версию Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Версия Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Показывать Bluetooth-устройства без названий (только с MAC-адресами)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Отключить абсолютный уровень громкости Bluetooth при возникновении проблем на удаленных устройствах, например при слишком громком звучании или невозможности контролировать настройку"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Включить стек Bluetooth Gabeldorsche"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Включить улучшенный обмен данными"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Локальный терминальный доступ"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Разрешить терминальный доступ к локальной оболочке"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Проверка HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Учет времени работы HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Отладка графического процессора"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Включить загрузку слоев отладки графического процессора"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Подробный журнал поставщика"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Включать в информацию об ошибках дополнительные записи поставщика об устройстве, которые могут содержать личные данные и занимать больше места. Также это может увеличить расход заряда батареи."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Анимация окон"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Анимация переходов"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Длительность анимации"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Всегда спрашивать"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Пока вы не отключите"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Только что"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Это устройство"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Встроенный динамик"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ошибка подключения. Выключите и снова включите устройство."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Проводное аудиоустройство"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index c1452d2..b441209 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"නම් නොමැති බ්ලූටූත් උපාංග පෙන්වන්න"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"නිරපේක්ෂ හඩ පරිමාව අබල කරන්න"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche සබල කරන්න"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"වැඩිදියුණු කළ සබැඳුම් හැකියාව"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"බ්ලූටූත් AVRCP අනුවාදය"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"බ්ලූටූත් AVRCP අනුවාදය තෝරන්න"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP අනුවාදය"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"නම් නොමැති බ්ලූටූත් උපාංග (MAC ලිපින පමණි) සංදර්ශනය කරනු ඇත"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"පිළිගත නොහැකි ලෙස වැඩි හඩ පරිමාව හෝ පාලනය නොමැති වීම යනාදී දුරස්ථ උපාංග සමගින් වන හඬ පරිමා ගැටලුවලදී බ්ලූටූත් නිරපේක්ෂ හඬ පරිමා විශේෂාංගය අබල කරයි."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche විශේෂාංග අට්ටිය සබල කරයි."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"වැඩිදියුණු කළ සබැඳුම් හැකියා විශේෂාංගය සබල කරයි."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"අභ්‍යන්තර අන්තය"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"දේශීය ෂෙල් ප්‍රවේශනය පිරිනමන ටර්මිනල් යෙදුම සබල කරන්න"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP පරික්ෂාව"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"පැතිකඩ HWUI විදහමින්"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU නිදොසීමේ ස්තර සබල කර."</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"නිදොසීමේ යෙදුම්වලට GPU නිදොසීමේ ස්තර පූරණයට ඉඩ දෙ."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"verbose vendor පිරීම සබල කරන්න"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"පුද්ගලික තොරතුරු අන්තර්ගත විය හැකි, වැඩි බැටරි බලයක් භාවිත කිරීමට සහ/හෝ වැඩි ගබඩා ඉඩක් භාවිත කිරීමට හැකි අමතර උපාංග නිශ්චිත විකුණුම්කරු ලොග, දෝෂ වාර්තාවල අඩංගු වේ."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"කවුළු සජීවිකරණ පරිමාණය"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"සංක්‍රමණ සජීවන පරිමාණය"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"සජීවක කාල පරාස පරිමාණය"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"සෑම විටම ඉල්ලන්න"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"ඔබ ක්‍රියාවිරහිත කරන තුරු"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"මේ දැන්"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"මෙම උපාංගය"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"දුරකථන ස්පීකරය"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"සම්බන්ධ කිරීමේ ගැටලුවකි උපාංගය ක්‍රියාවිරහිත කර &amp; ආපසු ක්‍රියාත්මක කරන්න"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"රැහැන්ගත කළ ඕඩියෝ උපාංගය"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 0f1fbce..41a858d 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Zobrazovať zariadenia Bluetooth bez názvov"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Zakázať absolútnu hlasitosť"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Povoliť Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Zlepšené možnosti pripojenia"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Verzia rozhrania Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Zvoľte verziu rozhrania Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Verzia profilu Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Zariadenia Bluetooth sa budú zobrazovať bez názvov (iba adresy MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Umožňuje zakázať funkciu absolútnej hlasitosti rozhrania Bluetooth v prípade problémov s hlasitosťou vo vzdialených zariadeniach, ako je napríklad neprijateľne vysoká hlasitosť alebo absencia ovládacích prvkov."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Umožňuje povoliť skupinu funkcií Bluetooth Gabeldorche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Povoľuje funkciu Zlepšené možnosti pripojenia."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Miestny terminál"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Povoliť terminálovú apl. na miestny prístup k prostrediu shell"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Kontrola HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Vykresľovanie HWUI profilu"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Povoliť vrstvy ladenia grafického procesora"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Povoliť načítanie vrstiev ladenia grafického procesora na ladenie aplikácií"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Aktivovať podr. zapis. dodáv. do denníka"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Zahŕňajte v hláseniach chýb ďalšie denníky dodávateľa pre konkrétne zariadenie, ktoré môžu obsahovať osobné údaje, zvýšiť spotrebu batérie alebo zabrať viac ukladacieho priestoru."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Mierka animácie okna"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Mierka animácie premeny"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Mierka dĺžky animácie"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Vždy sa opýtať"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Dokiaľ túto funkciu nevypnete"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Teraz"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Toto zariadenie"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Reproduktor telefónu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Pri pripájaní sa vyskytol problém. Zariadenie vypnite a znova zapnite."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Audio zariadenie s káblom"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 08a74fb..50b8ef2 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Prikaži naprave Bluetooth brez imen"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Onemogočanje absolutne glasnosti"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Omogoči Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Izboljšana povezljivost"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Različica profila AVRCP za Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Izberite različico profila AVRCP za Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Različica profila MAP za Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Prikazane bodo naprave Bluetooth brez imen (samo z naslovi MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Onemogoči funkcijo absolutne glasnosti za Bluetooth, če pride do težav z glasnostjo z oddaljenimi napravami, kot je nesprejemljivo visoka glasnost ali pomanjkanje nadzora."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Omogoči sklad funkcij Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Omogoči funkcijo Izboljšana povezljivost."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokalni terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Omogočanje terminalske aplikacije za dostop do lokalne lupine"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Preverjanje HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Upodob. profilov s HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Omog. sloje odpr. nap. GPE"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Aplikacijam za odpravljanje napak dovoli nalaganje slojev za odpravljanje napak GPE"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Omogoči podrobno beleženje za ponudnika"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Vključitev dodatnih dnevnikov ponudnika, odvisnih od posamezne naprave, v poročila o napakah. Takšno poročilo lahko vsebuje zasebne podatke, porabi več energije baterije in/ali več shrambe."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Merilo animacije okna"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Merilo animacije prehoda"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Merilo trajanja animacije"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Vedno vprašaj"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Dokler ne izklopite"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"pravkar"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Ta naprava"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvočnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Težava pri povezovanju. Napravo izklopite in znova vklopite."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žična zvočna naprava"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index 1bd9424..e3f2680 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Shfaq pajisjet me Bluetooth pa emra"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Çaktivizo volumin absolut"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Aktivizo Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Lidhshmëria e përmirësuar"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Versioni AVRCP i Bluetooth-it"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Zgjidh versionin AVRCP të Bluetooth-it"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Versioni MAP i Bluetooth-it"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Pajisjet me Bluetooth do të shfaqen pa emra (vetëm adresat MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Çaktivizon funksionin e volumit absolut të Bluetooth në rast të problemeve të volumit me pajisjet në largësi, si p.sh. një volum i lartë i papranueshëm ose mungesa e kontrollit."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Aktivizon grupin e veçorive të Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Aktivizon veçorinë e \"Lidhshmërisë së përmirësuar\"."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Terminali lokal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Aktivizo aplikacionin terminal që ofron qasje në guaskën lokale"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Kontrolli HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Interpretimi i profilit me HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Aktivizo shtresat e korrigjimit të GPU-së"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Lejo ngarkimin e shtresave të korrigjimit të GPU-së për aplikacionet e korrigjimit"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Aktivizo evidencat e tregtuesit me shumë fjalë"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Përfshi evidenca shtesë të treguesve specifike për pajisjen në raportet e defekteve, që mund të përfshijnë informacion privat, mund të përdorin më shumë bateri dhe/ose të përdorin më shumë hapësirë ruajtëse."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Animacioni i dritares"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Animacioni kalimtar"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Kohëzgjatja e animatorit"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Pyet çdo herë"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Deri sa ta çaktivizosh"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Pikërisht tani"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Kjo pajisje"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altoparlanti i telefonit"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem me lidhjen. Fike dhe ndize përsëri pajisjen"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Pajisja audio me tel"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 3355c57..31e395c 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Прикажи Bluetooth уређаје без назива"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Онемогући главно подешавање јачине звука"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Омогући Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Побољшано повезивање"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Верзија Bluetooth AVRCP-а"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Изаберите верзију Bluetooth AVRCP-а"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Верзија Bluetooth MAP-а"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Биће приказани Bluetooth уређаји без назива (само са MAC адресама)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Онемогућава главно подешавање јачине звука на Bluetooth уређају у случају проблема са јачином звука на даљинским уређајима, као што су изузетно велика јачина звука или недостатак контроле."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Омогућава групу Bluetooth Gabeldorsche функција."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Омогућава функцију Побољшано повезивање."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Локални терминал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Омогући апл. терминала за приступ локалном командном окружењу"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP провера"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Рендеруј помоћу HWUI-а"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Омогући слојеве за отклањање грешака GPU-a"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Омогући учитавање отк. греш. GPU-a у апл. за отк. греш."</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Опширне евиденције продавца"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Уврстите у извештаје о грешкама додатне посебне евиденције продавца за уређаје, које могу да садрже приватне податке, да троше више батерије и/или да користе више меморије."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Размера анимације прозора"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Размера анимације прелаза"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Аниматорова размера трајања"</string>
@@ -502,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Питај сваки пут"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Док не искључите"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Управо"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Овај уређај"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Звучник телефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Проблем при повезивању. Искључите уређај, па га поново укључите"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Жичани аудио уређај"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index fce23af..634a16e 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Visa namnlösa Bluetooth-enheter"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Inaktivera Absolute volume"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Aktivera Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Förbättrad anslutning"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"AVRCP-version för Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Välj AVRCP-version för Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"MAP-version för Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth-enheter utan namn (enbart MAC-adresser) visas"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Inaktivera Bluetooth-funktionen Absolute volume om det skulle uppstå problem med volymen på fjärrenheter, t.ex. alldeles för hög volym eller brist på kontroll."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Aktiverar funktionsgruppen Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Aktiverar funktionen Förbättrad anslutning."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokal terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Aktivera en terminalapp som ger åtkomst till hyllor lokalt"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP-kontroll"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profilens HWUI-rendering"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Aktivera GPU-felsökningslager"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Tillåt att felsökningsappar läser in GPU-felsökningslager"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Aktivera verbose-loggning"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Ta med ytterligare enhetsspecifika leverantörsloggar i felrapporter. Dessa kan innehålla privata uppgifter samt använda mer batteri och/eller mer lagringsutrymme."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Skala – fönsteranimering"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Skala – övergångsanimering"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Längdskala för Animator"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Fråga varje gång"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Tills du inaktiverar funktionen"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Nyss"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Den här enheten"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonens högtalare"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Det gick inte att ansluta. Stäng av enheten och slå på den igen"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Ljudenhet med kabelanslutning"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 3ca705f..3263a6c 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Onyesha vifaa vya Bluetooth visivyo na majina"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Zima sauti kamili"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Washa Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Muunganisho Ulioboreshwa"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Toleo la Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Chagua Toleo la Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Toleo la Ramani ya Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Itaonyesha vifaa vya Bluetooth bila majina (anwani za MAC pekee)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Huzima kipengele cha Bluetooth cha sauti kamili kunapotokea matatizo ya sauti katika vifaa vya mbali kama vile sauti ya juu mno au inaposhindikana kuidhibiti."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Huwasha rafu ya kipengele ya Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Huwasha kipengele cha Muunganisho Ulioboreshwa."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Kituo cha karibu"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Washa programu ya mwisho inayotoa ufikiaji mkuu wa karibu"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Inakagua HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Kutekeleza HWUI ya wasifu"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Ruhusu safu za utatuzi wa GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Ruhusu upakiaji wa safu za utatuzi wa GPU za programu za utatuzi"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Washa uwekaji kumbukumbu za muuzaji kwa kutumia sauti"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Jumuisha kumbukumbu zaidi za muuzaji ambazo ni mahususi kwa kifaa kwenye ripoti za hitilafu, ambazo huenda zikawa na maelezo ya faragha, zikatumia chaji nyingi ya betri na/au zikatumia nafasi kubwa ya hifadhi."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Uhuishaji kwenye dirisha"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Mageuzi ya kipimo cha uhuishaji"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Mizani ya muda wa uhuishaji"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Uliza kila wakati"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Hadi utakapoizima"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Sasa hivi"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Kifaa hiki"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Spika ya simu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Kuna tatizo la kuunganisha kwenye Intaneti. Zima kisha uwashe kifaa"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Kifaa cha sauti kinachotumia waya"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index 4f0b779..18ab23d 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -206,60 +206,33 @@
     <string name="enable_adb" msgid="8072776357237289039">"USB பிழைதிருத்தம்"</string>
     <string name="enable_adb_summary" msgid="3711526030096574316">"USB இணைக்கப்பட்டிருக்கும்போது பிழைத்திருத்தப் பயன்முறையை அமை"</string>
     <string name="clear_adb_keys" msgid="3010148733140369917">"USB பிழைத்திருத்த அங்கீகரிப்புகளை நிராகரி"</string>
-    <!-- no translation found for enable_adb_wireless (6973226350963971018) -->
-    <skip />
-    <!-- no translation found for enable_adb_wireless_summary (7344391423657093011) -->
-    <skip />
-    <!-- no translation found for adb_wireless_error (721958772149779856) -->
-    <skip />
-    <!-- no translation found for adb_wireless_settings (2295017847215680229) -->
-    <skip />
-    <!-- no translation found for adb_wireless_list_empty_off (1713707973837255490) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_title (6982904096137468634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_qrcode_summary (3729901496856458634) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_title (1122590300445142904) -->
-    <skip />
-    <!-- no translation found for adb_pair_method_code_summary (6370414511333685185) -->
-    <skip />
-    <!-- no translation found for adb_paired_devices_title (5268997341526217362) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_connected_summary (3039660790249148713) -->
-    <skip />
-    <!-- no translation found for adb_wireless_device_details_title (7129369670526565786) -->
-    <skip />
-    <!-- no translation found for adb_device_forget (193072400783068417) -->
-    <skip />
-    <!-- no translation found for adb_device_fingerprint_title_format (291504822917843701) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_title (664211177427438438) -->
-    <skip />
-    <!-- no translation found for adb_wireless_connection_failed_message (9213896700171602073) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_title (7141739231018530210) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_pairing_code_label (3639239786669722731) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_title (3426758947882091735) -->
-    <skip />
-    <!-- no translation found for adb_pairing_device_dialog_failed_msg (6611097519661997148) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_summary (8051414549011801917) -->
-    <skip />
-    <!-- no translation found for adb_wireless_verifying_qrcode_text (6123192424916029207) -->
-    <skip />
-    <!-- no translation found for adb_qrcode_pairing_device_failed_msg (6936292092592914132) -->
-    <skip />
-    <!-- no translation found for adb_wireless_ip_addr_preference_title (8335132107715311730) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_title (1906409667944674707) -->
-    <skip />
-    <!-- no translation found for adb_wireless_qrcode_pairing_description (8578868049289910131) -->
-    <skip />
-    <!-- no translation found for keywords_adb_wireless (6507505581882171240) -->
-    <skip />
+    <string name="enable_adb_wireless" msgid="6973226350963971018">"வயர்லெஸ் பிழைதிருத்தம்"</string>
+    <string name="enable_adb_wireless_summary" msgid="7344391423657093011">"வைஃபையை இணைக்கும்போது பிழைதிருத்தப் பயன்முறை இயக்கப்படும்"</string>
+    <string name="adb_wireless_error" msgid="721958772149779856">"பிழை"</string>
+    <string name="adb_wireless_settings" msgid="2295017847215680229">"வயர்லெஸ் பிழைதிருத்தம்"</string>
+    <string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"கிடைக்கும் சாதனங்களைப் பார்க்கவும் பயன்படுத்தவும் வயர்லெஸ் பிழைதிருத்தத்தை ஆன் செய்யவும்"</string>
+    <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"QR குறியீட்டின் மூலம் சாதனத்தை இணைத்தல்"</string>
+    <string name="adb_pair_method_qrcode_summary" msgid="3729901496856458634">"QR குறியீடு ஸ்கேனரைப் பயன்படுத்தி புதிய சாதனங்களை இணைக்கலாம்"</string>
+    <string name="adb_pair_method_code_title" msgid="1122590300445142904">"இணைத்தல் குறியீட்டின் மூலம் சாதனத்தை இணைத்தல்"</string>
+    <string name="adb_pair_method_code_summary" msgid="6370414511333685185">"ஆறு இலக்கக் குறியீட்டைப் பயன்படுத்தி புதிய சாதனங்களை இணைக்கலாம்"</string>
+    <string name="adb_paired_devices_title" msgid="5268997341526217362">"இணைக்கப்பட்ட சாதனங்கள்"</string>
+    <string name="adb_wireless_device_connected_summary" msgid="3039660790249148713">"தற்போது இணைக்கப்பட்டுள்ளது"</string>
+    <string name="adb_wireless_device_details_title" msgid="7129369670526565786">"சாதன விவரங்கள்"</string>
+    <string name="adb_device_forget" msgid="193072400783068417">"அகற்று"</string>
+    <string name="adb_device_fingerprint_title_format" msgid="291504822917843701">"சாதனக் கைரேகை: <xliff:g id="FINGERPRINT_PARAM">%1$s</xliff:g>"</string>
+    <string name="adb_wireless_connection_failed_title" msgid="664211177427438438">"இணைக்கப்படவில்லை"</string>
+    <string name="adb_wireless_connection_failed_message" msgid="9213896700171602073">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சரியான நெட்வொர்க்குடன் இணைக்கப்பட்டுள்ளதை உறுதிசெய்துகொள்ளவும்"</string>
+    <string name="adb_pairing_device_dialog_title" msgid="7141739231018530210">"சாதனத்துடன் இணைத்தல்"</string>
+    <string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"வைஃபை இணைத்தல் குறியீடு"</string>
+    <string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"இணைக்கப்படவில்லை"</string>
+    <string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"சாதனம் அதே நெட்வொர்க்கில் இணைக்கப்பட்டுள்ளதை உறுதிசெய்து கொள்ளவும்."</string>
+    <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"QR குறியீட்டை ஸ்கேன் செய்வதன் மூலம் சாதனத்தை வைஃபை மூலம் இணைக்கலாம்"</string>
+    <string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"சாதனத்தை இணைக்கிறது…"</string>
+    <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"சாதனத்துடன் இணைக்க முடியவில்லை. தவறான QR குறியீடாகவோ சாதனம் அதே நெர்வொர்க்குடன் இணைக்கப்படாமலோ இருக்கலாம்."</string>
+    <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP முகவரி &amp; போர்ட்"</string>
+    <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR குறியீட்டை ஸ்கேன் செய்தல்"</string>
+    <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR குறியீட்டை ஸ்கேன் செய்வதன் மூலம் சாதனத்தை வைஃபை மூலம் இணைக்கலாம்"</string>
+    <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"பிழைப் புகாருக்கான ஷார்ட்கட்"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"பிழை அறிக்கையைப் பெற பவர் மெனுவில் விருப்பத்தைக் காட்டு"</string>
     <string name="keep_screen_on" msgid="1187161672348797558">"செயலில் வைத்திரு"</string>
@@ -282,6 +255,8 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"பெயர்கள் இல்லாத புளூடூத் சாதனங்களைக் காட்டு"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"அப்சல்யூட் ஒலியளவு அம்சத்தை முடக்கு"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorscheவை இயக்கு"</string>
+    <!-- no translation found for enhanced_connectivity (7201127377781666804) -->
+    <skip />
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"புளூடூத் AVRCP பதிப்பு"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"புளூடூத் AVRCP பதிப்பைத் தேர்ந்தெடு"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"புளூடூத்தின் MAP பதிப்பு"</string>
@@ -306,7 +281,7 @@
     <string name="private_dns_mode_provider_hostname_hint" msgid="6564868953748514595">"DNS வழங்குநரின் ஹோஸ்ட் பெயரை உள்ளிடவும்"</string>
     <string name="private_dns_mode_provider_failure" msgid="8356259467861515108">"இணைக்க முடியவில்லை"</string>
     <string name="wifi_display_certification_summary" msgid="8111151348106907513">"வயர்லெஸ் காட்சி சான்றுக்கான விருப்பங்களைக் காட்டு"</string>
-    <string name="wifi_verbose_logging_summary" msgid="4993823188807767892">"வைஃபை நுழைவு அளவை அதிகரித்து, வைஃபை தேர்வியில் ஒவ்வொன்றிற்கும் SSID RSSI ஐ காட்டுக"</string>
+    <string name="wifi_verbose_logging_summary" msgid="4993823188807767892">"வைஃபை நுழைவு அளவை அதிகரித்து, வைஃபை தேர்வுக் கருவியில் ஒவ்வொன்றிற்கும் SSID RSSI ஐ காட்டுக"</string>
     <string name="wifi_scan_throttling_summary" msgid="2577105472017362814">"பேட்டரி தீர்ந்துபோவதைக் குறைத்து நெட்வொர்க்கின் செயல்திறனை மேம்படுத்தும்"</string>
     <string name="wifi_metered_label" msgid="8737187690304098638">"கட்டண நெட்வொர்க்"</string>
     <string name="wifi_unmetered_label" msgid="6174142840934095093">"கட்டணமில்லா நெட்வொர்க்"</string>
@@ -325,10 +300,8 @@
     <string name="tethering_hardware_offload_summary" msgid="7801345335142803029">"வன்பொருள் விரைவுப்படுத்துதல் இணைப்பு முறை கிடைக்கும் போது, அதைப் பயன்படுத்தும்"</string>
     <string name="adb_warning_title" msgid="7708653449506485728">"USB பிழைதிருத்தத்தை அனுமதிக்கவா?"</string>
     <string name="adb_warning_message" msgid="8145270656419669221">"USB பிழைதிருத்தம் மேம்படுத்தல் நோக்கங்களுக்காக மட்டுமே. அதை உங்கள் கணினி மற்றும் சாதனத்திற்கு இடையில் தரவை நகலெடுக்கவும், அறிவிப்பு இல்லாமல் உங்கள் சாதனத்தில் ஆப்ஸை நிறுவவும், பதிவு தரவைப் படிக்கவும் பயன்படுத்தவும்."</string>
-    <!-- no translation found for adbwifi_warning_title (727104571653031865) -->
-    <skip />
-    <!-- no translation found for adbwifi_warning_message (8005936574322702388) -->
-    <skip />
+    <string name="adbwifi_warning_title" msgid="727104571653031865">"வயர்லெஸ் பிழைதிருத்தத்தை அனுமதிக்கவா?"</string>
+    <string name="adbwifi_warning_message" msgid="8005936574322702388">"\'வயர்லெஸ் பிழைதிருத்தம்\' டெவெலப்மெண்ட் நோக்கங்களுக்காக மட்டுமே. அதை உங்கள் கம்ப்யூட்டருக்கும் சாதனத்திற்கும் இடையே தரவை நகலெடுக்கவும், உங்கள் சாதனத்தில் அறிவிப்பின்றி ஆப்ஸை நிறுவவும், பதிவுத் தரவைப் படிக்கவும் பயன்படுத்தவும்."</string>
     <string name="adb_keys_warning_message" msgid="2968555274488101220">"நீங்கள் ஏற்கனவே அனுமதித்த எல்லா கணினிகளிலிருந்தும் USB பிழைத்திருத்தத்திற்கான அணுகலைத் திரும்பப்பெற வேண்டுமா?"</string>
     <string name="dev_settings_warning_title" msgid="8251234890169074553">"மேம்பட்ட அமைப்புகளை அனுமதிக்கவா?"</string>
     <string name="dev_settings_warning_message" msgid="37741686486073668">"இந்த அமைப்பு மேம்பட்டப் பயன்பாட்டிற்காக மட்டுமே. உங்கள் சாதனம் மற்றும் அதில் உள்ள பயன்பாடுகளைச் சிதைக்கும் அல்லது தவறாகச் செயல்படும் வகையில் பாதிப்பை ஏற்படுத்தும்."</string>
@@ -337,6 +310,8 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"பெயர்கள் இல்லாத புளூடூத் சாதனங்கள் (MAC முகவரிகள் மட்டும்) காட்டப்படும்"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"மிகவும் அதிகமான ஒலியளவு அல்லது கட்டுப்பாடு இழப்பு போன்ற தொலைநிலைச் சாதனங்களில் ஏற்படும் ஒலி தொடர்பான சிக்கல்கள் இருக்கும் சமயங்களில், புளூடூத் அப்சல்யூட் ஒலியளவு அம்சத்தை முடக்கும்."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"புளூடூத்தின் Gabeldorsche அம்சங்களை இயக்கும்."</string>
+    <!-- no translation found for enhanced_connectivity_summary (1576414159820676330) -->
+    <skip />
     <string name="enable_terminal_title" msgid="3834790541986303654">"அக முனையம்"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"அக ஷெல் அணுகலை வழங்கும் இறுதிப் ஆப்ஸை இயக்கு"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP சரிபார்ப்பு"</string>
@@ -383,6 +358,10 @@
     <string name="track_frame_time" msgid="522674651937771106">"சுயவிவர HWUI ரெண்டரிங்"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU பிழைத்திருத்த லேயர்களை இயக்கு"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"பிழைத்திருத்த ஆப்ஸிற்கு, GPU பிழைத்திருத்த லேயர்களை ஏற்றுவதற்கு அனுமதி"</string>
+    <!-- no translation found for enable_verbose_vendor_logging (1196698788267682072) -->
+    <skip />
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"சாளர அனிமேஷன் வேகம்"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"அனிமேஷன் மாற்றத்தின் வேகம்"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"அனிமேட்டர் கால அளவு"</string>
@@ -441,8 +420,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"நிறம் அடையாளங்காண முடியாமை (சிவப்பு-பச்சை)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"நிறம் அடையாளங்காண முடியாமை (நீலம்-மஞ்சள்)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"வண்ணத்திருத்தம்"</string>
-    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (6178138727195403796) -->
-    <skip />
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"நிறக்குருடு உள்ளவர்கள் வண்ணங்களை இன்னும் துல்லியமாகப் பார்க்க வண்ணத் திருத்தம் உதவுகிறது"</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_duration_only" msgid="8264199158671531431">"கிட்டத்தட்ட <xliff:g id="TIME_REMAINING">%1$s</xliff:g> மீதமுள்ளது"</string>
@@ -461,27 +439,19 @@
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>க்கும் குறைவாகவே பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>க்கும் மேல் பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_only_more_than_subtext" msgid="3274496164769110480">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>க்கும் மேல் பயன்படுத்த முடியும்"</string>
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (137330009791560774) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (145489081521468132) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1070562682853942350) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4429259621177089719) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (7703677921000858479) -->
-    <skip />
-    <!-- no translation found for power_remaining_duration_shutdown_imminent (4374784375644214578) -->
-    <skip />
+    <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="137330009791560774">"மொபைல் விரைவில் ஆஃப் ஆகக்கூடும்"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="145489081521468132">"டேப்லெட் விரைவில் ஆஃப் ஆகக்கூடும்"</string>
+    <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="1070562682853942350">"சாதனம் விரைவில் ஆஃப் ஆகக்கூடும்"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="4429259621177089719">"மொபைல் விரைவில் ஆஃப் ஆகக்கூடும் (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7703677921000858479">"டேப்லெட் விரைவில் ஆஃப் ஆகக்கூடும் (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+    <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="4374784375644214578">"சாதனம் விரைவில் ஆஃப் ஆகக்கூடும் (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
     <string name="power_charging" msgid="6727132649743436802">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
     <string name="power_remaining_charging_duration_only" msgid="7415639699283965818">"முழு சார்ஜாக <xliff:g id="TIME">%1$s</xliff:g> ஆகும்"</string>
     <string name="power_charging_duration" msgid="5005740040558984057">"<xliff:g id="LEVEL">%1$s</xliff:g> - முழு சார்ஜாக <xliff:g id="TIME">%2$s</xliff:g> ஆகும்"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"அறியப்படாத"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"சார்ஜ் ஆகிறது"</string>
-    <!-- no translation found for battery_info_status_charging_fast (8027559755902954885) -->
-    <skip />
-    <!-- no translation found for battery_info_status_charging_slow (3190803837168962319) -->
-    <skip />
+    <string name="battery_info_status_charging_fast" msgid="8027559755902954885">"வேகமாக சார்ஜாகிறது"</string>
+    <string name="battery_info_status_charging_slow" msgid="3190803837168962319">"மெதுவாக சார்ஜாகிறது"</string>
     <string name="battery_info_status_discharging" msgid="6962689305413556485">"சார்ஜ் செய்யப்படவில்லை"</string>
     <string name="battery_info_status_not_charging" msgid="8330015078868707899">"செருகப்பட்டது, ஆனால் இப்போது சார்ஜ் செய்ய முடியவில்லை"</string>
     <string name="battery_info_status_full" msgid="4443168946046847468">"முழுவதும் சார்ஜ் ஆனது"</string>
@@ -539,6 +509,9 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ஒவ்வொரு முறையும் கேள்"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"ஆஃப் செய்யும் வரை"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"சற்றுமுன்"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"இந்தச் சாதனம்"</string>
+    <!-- no translation found for media_transfer_this_device_name (2716555073132169240) -->
+    <skip />
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"இணைப்பதில் சிக்கல். சாதனத்தை ஆஃப் செய்து மீண்டும் ஆன் செய்யவும்"</string>
+    <!-- no translation found for media_transfer_wired_device_name (4447880899964056007) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index 3a354e0..74739ee 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"పేర్లు లేని బ్లూటూత్ పరికరాలు  చూపించు"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"సంపూర్ణ వాల్యూమ్‌‍ను నిలిపివేయి"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorscheను ఎనేబుల్ చేయి"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"మెరుగైన కనెక్టివిటీ"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"బ్లూటూత్ AVRCP వెర్షన్"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"బ్లూటూత్ AVRCP సంస్కరణను ఎంచుకోండి"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"బ్లూటూత్ MAP వెర్షన్‌"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"పేర్లు (MAC చిరునామాలు మాత్రమే) లేని బ్లూటూత్ పరికరాలు ప్రదర్శించబడతాయి"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"రిమోట్ పరికరాల్లో ఆమోదించలేని స్థాయిలో అధిక వాల్యూమ్ ఉండటం లేదా వాల్యూమ్ నియంత్రణ లేకపోవడం వంటి సమస్యలు ఉంటే బ్లూటూత్ సంపూర్ణ వాల్యూమ్ ఫీచర్‌ని నిలిపివేస్తుంది."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"బ్లూటూత్ Gabeldorsche ఫీచర్ స్ట్యాక్‌ను ఎనేబుల్ చేస్తుంది."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"మెరుగైన కనెక్టివిటీ ఫీచర్‌ను ఎనేబుల్ చేస్తుంది."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"స్థానిక టెర్మినల్"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"స్థానిక షెల్ ప్రాప్యతను అందించే టెర్మినల్ అనువర్తనాన్ని ప్రారంభించు"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP తనిఖీ"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"ప్రొఫైల్ HWUI రెండరింగ్"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU డీబగ్ లేయర్‌లను ప్రారంభించండి"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"డీబగ్ యాప్‌ల కోసం GPU డీబగ్ లేయర్‌లను లోడ్ చేయడాన్ని అనుమతించండి"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"వివరణాత్మక విక్రేత లాగింగ్‌ను ఎనేబుల్ చేయండి"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"విండో యానిమేషన్ ప్రమాణం"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"పరివర్తన యానిమేషన్ ప్రమాణం"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"యానిమేటర్ వ్యవధి ప్రమాణం"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ప్రతిసారి అడుగు"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"మీరు ఆఫ్‌ చేసే వరకు"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ఇప్పుడే"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"ఈ పరికరం"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ఫోన్ స్పీకర్"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"కనెక్ట్ చేయడంలో సమస్య ఉంది. పరికరాన్ని ఆఫ్ చేసి, ఆపై తిరిగి ఆన్ చేయండి"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"వైర్ గల ఆడియో పరికరం"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index e34c548..bc0970c 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"แสดงอุปกรณ์บลูทูธที่ไม่มีชื่อ"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ปิดใช้การควบคุมระดับเสียงของอุปกรณ์อื่น"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"เปิดใช้ Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"การเชื่อมต่อที่ปรับปรุงแล้ว"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"เวอร์ชันของบลูทูธ AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"เลือกเวอร์ชันของบลูทูธ AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"เวอร์ชัน MAP ของบลูทูธ"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"ระบบจะแสดงอุปกรณ์บลูทูธที่ไม่มีชื่อ (มีเฉพาะที่อยู่ MAC)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ปิดใช้ฟีเจอร์การควบคุมระดับเสียงของอุปกรณ์อื่นผ่านบลูทูธในกรณีที่มีปัญหาเกี่ยวกับระดับเสียงของอุปกรณ์ระยะไกล เช่น ระดับเสียงที่ดังเกินไปหรือระดับเสียงที่ไม่มีการควบคุม"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"เปิดใช้สแต็กฟีเจอร์ Bluetooth Gabeldorsche"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"เปิดใช้ฟีเจอร์การเชื่อมต่อที่ปรับปรุงแล้ว"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"เทอร์มินัลในตัวเครื่อง"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"เปิดใช้งานแอปเทอร์มินัลที่ให้การเข้าถึงเชลล์ในตัวเครื่อง"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"การตรวจสอบ HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"การแสดงผล HWUI ตามโปรไฟล์"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"เปิดใช้เลเยอร์การแก้ไขข้อบกพร่อง GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"อนุญาตให้โหลดเลเยอร์การแก้ไขข้อบกพร่อง GPU สำหรับแอปแก้ไขข้อบกพร่อง"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"เปิดบันทึกเวนเดอร์เพิ่มเติม"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"รวมบันทึกเวนเดอร์เพิ่มเติมเฉพาะอุปกรณ์ไว้ในรายงานข้อบกพร่อง ซึ่งอาจมีข้อมูลส่วนตัว ใช้แบตเตอรี่มากขึ้น และ/หรือใช้พื้นที่เก็บข้อมูลมากขึ้น"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"อัตราการเคลื่อนไหวของหน้าต่าง"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"อัตราการเคลื่อนไหวของการเปลี่ยนภาพ"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"อัตราความเร็วตามตัวสร้างภาพเคลื่อนไหว"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ถามทุกครั้ง"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"จนกว่าคุณจะปิด"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"เมื่อสักครู่"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"อุปกรณ์นี้"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ลำโพงโทรศัพท์"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"เกิดปัญหาในการเชื่อมต่อ ปิดอุปกรณ์แล้วเปิดใหม่อีกครั้ง"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"อุปกรณ์เสียงแบบมีสาย"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index ee04288..9ed2d9a 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Ipakita ang mga Bluetooth device na walang pangalan"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"I-disable ang absolute volume"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"I-enable ang Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Pinagandang Pagkakonekta"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bersyon ng AVRCP ng Bluetooth"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Pumili ng Bersyon ng AVRCP ng Bluetooth"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bersyon ng MAP ng Bluetooth"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Ipapakita ang mga Bluetooth device na walang pangalan (mga MAC address lang)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Dini-disable ang absolute volume feature ng Bluetooth kung may mga isyu sa volume ang mga malayong device gaya ng hindi katanggap-tanggap na malakas na volume o kawalan ng kontrol."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Ine-enable ang stack ng feature ng Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Ine-enable ang feature na Pinagandang Pagkakonekta."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Lokal na terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Paganahin ang terminal app na nag-aalok ng lokal na shell access"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Pagsusuring HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Rendering ng Profile HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"I-enable ang GPU debug layer"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Payagang i-load ang GPU debug layer sa debug app"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Enable verbose vendor logging"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Magsama sa mga ulat ng bug ng mga karagdagang log ng vendor na partikular sa device, na posibleng may pribadong impormasyon, gumamit ng mas maraming baterya, at/o gumamit ng mas malaking storage."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Scale ng window animation"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Scale ng transition animation"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Scale ng tagal ng animator"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Magtanong palagi"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Hanggang sa i-off mo"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Ngayon lang"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Ang device na ito"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Speaker ng telepono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Nagkaproblema sa pagkonekta. I-off at pagkatapos ay i-on ang device"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired na audio device"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 5015e38..1a489d1 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Adsız Bluetooth cihazlarını göster"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Mutlak sesi iptal et"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche\'yi etkileştir"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Gelişmiş Bağlantı"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP Sürümü"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP Sürümünü seçin"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP Sürümü"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Adsız Bluetooth cihazları (yalnızca MAC adresleri) gösterilecek"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Uzak cihazda sesin aşırı yüksek olması veya kontrol edilememesi gibi ses sorunları olması ihtimaline karşı Bluetooh mutlak ses özelliğini iptal eder."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche özellik yığınını etkinleştirir."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Gelişmiş Bağlantı özelliğini etkinleştirir."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Yerel terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Yerel kabuk erişimi sunan terminal uygulamasını etkinleştir"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP denetimi"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Profil HWUI oluşturma"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU hata ayıklama katmanlarını etkinleştir"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Hata ayıklama uygulamaları için GPU hata ayıklama katmanlarının yüklenmesine izin ver"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Ayrıntılı satıcı günlüğünü etkinleştir"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Hata raporlarına cihaza özgü ek satıcı günlükleri ekle. Bu günlükler gizli bilgiler içerebilir, daha fazla pil ve/veya daha fazla depolama alanı kullanabilir."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Pencere animasyonu ölçeği"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Geçiş animasyonu ölçeği"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animatör süre ölçeği"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Her zaman sor"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Siz kapatana kadar"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Az önce"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Bu cihaz"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon hoparlörü"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Bağlanırken sorun oluştu. Cihazı kapatıp tekrar açın"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Kablolu ses cihazı"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index 3c8f481..fbe2ba6 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Показувати пристрої Bluetooth без назв"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Вимкнути абсолютну гучність"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Увімкнути Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Покращене з\'єднання"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Версія Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Виберіть версію Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Версія Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Пристрої Bluetooth відображатимуться без назв (лише MAC-адреси)"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Функція абсолютної гучності Bluetooth вимикається, якщо на віддалених пристроях виникають проблеми, як-от надто висока гучність або втрата контролю."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Вмикає функції Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Вмикає функцію покращеного з\'єднання."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Локальний термінал"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Увімк. програму-термінал, що надає локальний доступ до оболонки"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Перевірка HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Обробка HWUI за профілем"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Увімкнути шари налагодження ГП"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Дозвольте завантажувати шари налагодження ГП для додатків налагодження"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Увімкнути докладну реєстрацію постачальника"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Включати у звіти про помилки додаткові записи про постачальника пристрою, які можуть містити особисті дані, призводити до надмірного споживання заряду акумулятора та/або використовувати більший обсяг пам\'яті."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Анімація вікон"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Анімація переходів"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Тривалість анімації"</string>
@@ -503,6 +507,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Запитувати щоразу"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Доки не вимкнути"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Щойно"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Цей пристрій"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Динамік телефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Не вдається підключитися. Перезавантажте пристрій."</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Дротовий аудіопристрій"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 27e5b20..10bce1b 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"بغیر نام والے بلوٹوتھ آلات دکھائیں"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"مطلق والیوم کو غیر فعال کریں"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"‏Gabeldorsche فعال کریں"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"بہتر کردہ کنیکٹوٹی"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"‏بلوٹوتھ AVRCP ورژن"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"‏بلوٹوتھ AVRCP ورژن منتخب کریں"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"‏بلوٹوتھ MAP ورژن"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"‏بغیر نام والے بلوٹوتھ آلات (صرف MAC پتے) ڈسپلے کئے جائیں گے"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"ریموٹ آلات کے ساتھ والیوم کے مسائل مثلاً نا قابل قبول حد تک بلند والیوم یا کنٹرول نہ ہونے کی صورت میں بلو ٹوتھ مطلق والیوم والی خصوصیت کو غیر فعال کریں۔"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"‏بلوٹوتھ Gabeldorsche خصوصیت کے انبار کو فعال کرتا ہے۔"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"بہتر کردہ کنیکٹوٹی کی خصوصیات کو فعال کرتا ہے۔"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"مقامی ٹرمینل"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"مقامی شیل رسائی پیش کرنے والی ٹرمینل ایپ فعال کریں"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"‏HDCP چیکنگ"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"‏پروفائل HWUI رینڈرنگ"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"‏GPU ڈیبگ پرتیں فعال کریں"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"‏ڈیبگ ایپس کیلئے GPU ڈیبگ پرتوں کو لوڈ کرنے دیں"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"وربوس وینڈر لاگنگ فعال کریں"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"ونڈو اینیمیشن اسکیل"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"ٹرانزیشن اینیمیشن اسکیل"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"اینیمیٹر دورانیے کا اسکیل"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"ہر بار پوچھیں"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"یہاں تک کہ آپ آف کر دیں"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"ابھی ابھی"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"یہ آلہ"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"فون اسپیکر"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"منسلک کرنے میں مسئلہ پیش آ گیا۔ آلہ کو آف اور بیک آن کریں"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"وائرڈ آڈیو آلہ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index ee78795..df11004 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bluetooth qurilmalarini nomlarisiz ko‘rsatish"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Tovush balandligining mutlaq darajasini faolsizlantirish"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche funksiyasini yoqish"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Kuchaytirilgan aloqa"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Bluetooth AVRCP versiyasi"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Bluetooth AVRCP versiyasini tanlang"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Bluetooth MAP versiyasi"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Bluetooth qurilmalari nomsiz (faqat MAC manzillari) ko‘rsatiladi"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Masofadan ulanadigan qurilmalar bilan muammolar yuz berganda, jumladan, juda baland ovoz yoki sozlamalarni boshqarib bo‘lmaydigan holatlarda Bluetooth ovozi balandligining mutlaq darajasini o‘chirib qo‘yadi."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bluetooth Gabeldorsche funksiyasini ishga tushiradi."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Kuchaytirilgan aloqa funksiyasini ishga tushiradi."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Mahalliy terminal"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Mahalliy terminalga kirishga ruxsat beruvchi terminal ilovani faollashtirish"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP tekshiruvi"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI ishlash vaqtining hisobi"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Grafik protsessorni tuzatish"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Grafik protsessorni tuzatish qatlamlarini yuklashni yoqish"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Taʼminotchining batafsil jurnali"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Xatoliklar hisobotiga shaxsiy maʼlumotlari bor va koʻp joy olishi mumkin boʻlgan qurilma haqida taʼminotchining qoʻshimcha yozuvlari kiradi. Bunda batareya quvvati tezroq sarflanishi mumkin."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Oynalar animatsiyasi"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"O‘tish animatsiyasi"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animatsiya tezligi"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Har safar so‘ralsin"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Rejimdan chiqilgunicha"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Hozir"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Shu qurilma"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon karnayi"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ulanishda muammo yuz berdi. Qurilmani oʻchiring va yoqing"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Simli audio qurilma"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index 6d76962..9863bfe 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Hiển thị các thiết bị Bluetooth không có tên"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Vô hiệu hóa âm lượng tuyệt đối"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Bật tính năng Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Kết nối nâng cao"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Phiên bản Bluetooth AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Chọn phiên bản Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Phiên bản Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Các thiết bị Bluetooth không có tên (chỉ có địa chỉ MAC) sẽ được hiển thị"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Vô hiệu hóa tính năng âm lượng tuyệt đối qua Bluetooth trong trường hợp xảy ra sự cố về âm lượng với các thiết bị từ xa, chẳng hạn như âm lượng lớn không thể chấp nhận được hoặc thiếu kiểm soát."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Bật ngăn xếp tính năng Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Bật tính năng Kết nối nâng cao."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Dòng lệnh cục bộ"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Bật ứng dụng dòng lệnh cung cấp quyền truy cập vỏ cục bộ"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Kiểm tra HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Kết xuất HWUI cấu hình"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Bật lớp gỡ lỗi GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Cho phép tải lớp gỡ lỗi GPU cho ứng dụng gỡ lỗi"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Bật tùy chọn ghi nhật ký chi tiết của nhà cung cấp"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Đưa thêm nhật ký của nhà cung cấp dành riêng cho thiết bị vào các báo cáo lỗi. Nhật ký này có thể chứa thông tin cá nhân, dùng nhiều pin hơn và/hoặc chiếm nhiều dung lượng lưu trữ hơn."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Tỷ lệ hình động của cửa sổ"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Tỷ lệ hình động chuyển tiếp"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Tỷ lệ thời lượng của trình tạo hình động"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Luôn hỏi"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Cho đến khi bạn tắt"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Vừa xong"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Thiết bị này"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Loa điện thoại"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Sự cố kết nối. Hãy tắt thiết bị rồi bật lại"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Thiết bị âm thanh có dây"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index fbb30ca..b2b9dc7 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"显示没有名称的蓝牙设备"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"停用绝对音量功能"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"启用“Gabeldorsche”"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"增强连接性"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"蓝牙 AVRCP 版本"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"选择蓝牙 AVRCP 版本"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"蓝牙 MAP 版本"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"系统将显示没有名称(只有 MAC 地址)的蓝牙设备"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"停用蓝牙绝对音量功能,即可避免在连接到远程设备时出现音量问题(例如音量高得让人无法接受或无法控制音量等)。"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"启用“蓝牙 Gabeldorsche”功能堆栈。"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"启用增强连接性功能。"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"本地终端"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"启用终端应用,以便在本地访问 Shell"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP 检查"</string>
@@ -354,6 +356,9 @@
     <string name="track_frame_time" msgid="522674651937771106">"HWUI 呈现模式分析"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"启用 GPU 调试层"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"允许为调试应用加载 GPU 调试层"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"启用详细供应商日志记录"</string>
+    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
+    <skip />
     <string name="window_animation_scale_title" msgid="5236381298376812508">"窗口动画缩放"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"过渡动画缩放"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator 时长缩放"</string>
@@ -501,6 +506,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"每次都询问"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"直到您将其关闭"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"刚刚"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"此设备"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"手机扬声器"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"连接时遇到问题。请关闭并重新开启设备"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有线音频设备"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 0b4ee7a..992cb5f 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"顯示沒有名稱的藍牙裝置"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"停用絕對音量功能"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"啟用 Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"強化連線功能"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"藍牙 AVRCP 版本"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"選擇藍牙 AVRCP 版本"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"藍牙 MAP 版本"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"系統將顯示沒有名稱 (只有 MAC 位址) 的藍牙裝置"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"連線至遠端裝置時,如發生音量過大或無法控制音量等問題,請停用藍牙絕對音量功能。"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"啟用藍牙 Gabeldorsche 功能組合。"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"啟用強化連線功能。"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"本機終端機"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"啟用可提供本機命令介面存取權的終端機應用程式"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP 檢查"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"分析 HWUI 轉譯"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"啟用 GPU 偵錯圖層"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"允許為偵錯應用程式載入 GPU 偵錯圖層"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"啟用詳細供應商記錄"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"在錯誤報告中加入其他裝置專屬供應商記錄,其中可能包含私人資料,並會耗用更多電量及/或儲存空間。"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"視窗動畫比例"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"轉場動畫比例"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Animator 片長比例"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"每次都詢問"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"直至您關閉為止"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"剛剛"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"此裝置"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"手機喇叭"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"無法連接,請關閉裝置然後重新開機"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線音響裝置"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 487c33d..6c664d9 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"顯示沒有名稱的藍牙裝置"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"停用絕對音量功能"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"啟用 Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"加強型連線"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"藍牙 AVRCP 版本"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"選取藍牙 AVRCP 版本"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"藍牙 MAP 版本"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"系統會顯示沒有名稱 (僅具有 MAC 位址) 的藍牙裝置"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"只要停用藍牙絕對音量功能,即可避免在連線到遠端裝置時,發生音量過大或無法控制音量等問題。"</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"啟用藍牙 Gabeldorsche 功能堆疊。"</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"啟用「加強型連線」功能。"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"本機終端機"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"啟用可提供本機命令介面存取權的終端機應用程式"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"HDCP 檢查"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"剖析 HWUI 轉譯"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"啟用 GPU 偵錯圖層"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"允許載入 GPU 偵錯圖層為應用程式偵錯"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"啟用詳細供應商記錄功能"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"在錯誤報告中附上其他的裝置專屬供應商記錄。如果你這麼做,可能會增加電池用量及/或占用較多儲存空間,報告中可能也會包含私人資訊。"</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"視窗動畫比例"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"轉場動畫比例"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"動畫影片長度比例"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"每次都詢問"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"直到你關閉為止"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"剛剛"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"這個裝置"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"手機喇叭"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"無法連線,請關閉裝置後再重新開啟"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線音訊裝置"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 684c100..6def217 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -255,6 +255,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"Bonisa amadivayisi e-Bluetooth ngaphandle kwamagama"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"Khubaza ivolumu ngokuphelele"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Nika amandla i-Gabeldorsche"</string>
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"Ukuxhumeka Okuthuthukisiwe"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"Inguqulo ye-Bluetooth ye-AVRCP"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"Khetha inguqulo ye-Bluetooth AVRCP"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"Inguqulo ye-Bluetooth MAP"</string>
@@ -308,6 +309,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"Amadivayisi e-Bluetooth anganawo amagama (Amakheli e-MAC kuphela) azoboniswa"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Ikhubaza isici esiphelele sevolumu ye-Bluetooth uma kuba nezinkinga zevolumu ngamadivayisi esilawuli kude ezifana nevolumu ephezulu noma eshoda ngokulawuleka."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Inika amandla isitaki sesici se-Bluetooth Gabeldorsche."</string>
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"Inika amandla isici Sokuxhumeka Okuthuthukisiwe."</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"Itheminali yasendaweni"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"Nika amandla uhlelo lokusebenza letheminali olunikeza ukufinyelela kwasendaweni kwe-shell"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"Ihlola i-HDCP"</string>
@@ -354,6 +356,8 @@
     <string name="track_frame_time" msgid="522674651937771106">"Inikezela iphrofayela ye-HWUI"</string>
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"Nika amandla izendlalelo zokususa amaphutha ze-GPU"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Vumela izendlalelo zokususa amaphutha ze-GPU ngezinhlelo zokusebenza zokususa amaphutha"</string>
+    <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Nika amandla ilogu yomthengisi we-verbose"</string>
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Faka phakathi amalogu athize womthengisi wedivayisi angeziwe, angase afake phakathi ulwazi oluyimfihlo, kusebenzisa ibhethri eningi, futhi/noma kusebenzisa isitoreji esiningi."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"Iwindi yesilinganisi sesithombe esinyakazayo"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"Isilinganiso sesithombe soku"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"Isilinganiso sobude besikhathi somenzi womfanekiso onyakazayo"</string>
@@ -501,6 +505,7 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="3212996860498119555">"Buza njalo"</string>
     <string name="zen_mode_forever" msgid="3339224497605461291">"Uze uvale isikrini"</string>
     <string name="time_unit_just_now" msgid="3006134267292728099">"Khona manje"</string>
-    <string name="media_transfer_this_device_name" msgid="2858384945459339073">"Le divayisi"</string>
+    <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Isipikha sefoni"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Inkinga yokuxhumeka. Vala idivayisi futhi uphinde uyivule"</string>
+    <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Idivayisi yomsindo enentambo"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values/colors.xml b/packages/SettingsLib/res/values/colors.xml
index 5e8779f..88c6185 100644
--- a/packages/SettingsLib/res/values/colors.xml
+++ b/packages/SettingsLib/res/values/colors.xml
@@ -39,4 +39,7 @@
 
     <color name="dark_mode_icon_color_single_tone">#99000000</color>
     <color name="light_mode_icon_color_single_tone">#ffffff</color>
+
+    <!-- Yellow 600, used for highlighting "important" conversations in settings & notifications -->
+    <color name="important_conversation">#f9ab00</color>
 </resources>
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index 2297ddf..e8e1d0b 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -895,7 +895,7 @@
     <!-- UI debug setting: enable verbose vendor logging [CHAR LIMIT=60] -->
     <string name="enable_verbose_vendor_logging">Enable verbose vendor logging</string>
     <!-- UI debug setting: enable verbose vendor logging summary [CHAR LIMIT=NONE] -->
-    <string name="enable_verbose_vendor_logging_summary">Allow additional vendor logs to be included in bug reports, may contain private information</string>
+    <string name="enable_verbose_vendor_logging_summary">Include additional device-specific vendor logs in bug reports, which may contain private information, use more battery, and/or use more storage.</string>
 
     <!-- UI debug setting: scaling factor for window animations [CHAR LIMIT=25] -->
     <string name="window_animation_scale_title">Window animation scale</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java
index 1ebe917..18eb187 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java
@@ -164,7 +164,9 @@
         if (mBluetoothAdapter == null) {
             return false;
         }
-        return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_AUDIO);
+        return device == null
+                ? mBluetoothAdapter.removeActiveDevice(ACTIVE_DEVICE_AUDIO)
+                : mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_AUDIO);
     }
 
     public BluetoothDevice getActiveDevice() {
@@ -216,24 +218,32 @@
     }
 
     public boolean supportsHighQualityAudio(BluetoothDevice device) {
-        int support = mService.supportsOptionalCodecs(device);
+        BluetoothDevice bluetoothDevice = (device == null) ? device : mService.getActiveDevice();
+        if (bluetoothDevice == null) {
+            return false;
+        }
+        int support = mService.isOptionalCodecsSupported(bluetoothDevice);
         return support == BluetoothA2dp.OPTIONAL_CODECS_SUPPORTED;
     }
 
     public boolean isHighQualityAudioEnabled(BluetoothDevice device) {
-        int enabled = mService.getOptionalCodecsEnabled(device);
+        BluetoothDevice bluetoothDevice = (device == null) ? device : mService.getActiveDevice();
+        if (bluetoothDevice == null) {
+            return false;
+        }
+        int enabled = mService.isOptionalCodecsEnabled(bluetoothDevice);
         if (enabled != BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN) {
             return enabled == BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED;
-        } else if (getConnectionStatus(device) != BluetoothProfile.STATE_CONNECTED &&
-                supportsHighQualityAudio(device)) {
+        } else if (getConnectionStatus(bluetoothDevice) != BluetoothProfile.STATE_CONNECTED
+                && supportsHighQualityAudio(bluetoothDevice)) {
             // Since we don't have a stored preference and the device isn't connected, just return
             // true since the default behavior when the device gets connected in the future would be
             // to have optional codecs enabled.
             return true;
         }
         BluetoothCodecConfig codecConfig = null;
-        if (mService.getCodecStatus(device) != null) {
-            codecConfig = mService.getCodecStatus(device).getCodecConfig();
+        if (mService.getCodecStatus(bluetoothDevice) != null) {
+            codecConfig = mService.getCodecStatus(bluetoothDevice).getCodecConfig();
         }
         if (codecConfig != null)  {
             return !codecConfig.isMandatoryCodec();
@@ -243,23 +253,28 @@
     }
 
     public void setHighQualityAudioEnabled(BluetoothDevice device, boolean enabled) {
+        BluetoothDevice bluetoothDevice = (device == null) ? device : mService.getActiveDevice();
+        if (bluetoothDevice == null) {
+            return;
+        }
         int prefValue = enabled
                 ? BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED
                 : BluetoothA2dp.OPTIONAL_CODECS_PREF_DISABLED;
-        mService.setOptionalCodecsEnabled(device, prefValue);
-        if (getConnectionStatus(device) != BluetoothProfile.STATE_CONNECTED) {
+        mService.setOptionalCodecsEnabled(bluetoothDevice, prefValue);
+        if (getConnectionStatus(bluetoothDevice) != BluetoothProfile.STATE_CONNECTED) {
             return;
         }
         if (enabled) {
-            mService.enableOptionalCodecs(device);
+            mService.enableOptionalCodecs(bluetoothDevice);
         } else {
-            mService.disableOptionalCodecs(device);
+            mService.disableOptionalCodecs(bluetoothDevice);
         }
     }
 
     public String getHighQualityAudioOptionLabel(BluetoothDevice device) {
+        BluetoothDevice bluetoothDevice = (device == null) ? device : mService.getActiveDevice();
         int unknownCodecId = R.string.bluetooth_profile_a2dp_high_quality_unknown_codec;
-        if (!supportsHighQualityAudio(device)
+        if (bluetoothDevice == null || !supportsHighQualityAudio(device)
                 || getConnectionStatus(device) != BluetoothProfile.STATE_CONNECTED) {
             return mContext.getString(unknownCodecId);
         }
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java
index 9dfc4d9..9dd329e 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java
@@ -125,7 +125,10 @@
         if (mBluetoothAdapter == null) {
             return false;
         }
-        return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_PHONE_CALL);
+
+        return device == null
+                ? mBluetoothAdapter.removeActiveDevice(ACTIVE_DEVICE_PHONE_CALL)
+                : mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_PHONE_CALL);
     }
 
     public BluetoothDevice getActiveDevice() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
index a3b68b4..d17f242 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
@@ -162,7 +162,9 @@
         if (mBluetoothAdapter == null) {
             return false;
         }
-        return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_ALL);
+        return device == null
+                ? mBluetoothAdapter.removeActiveDevice(ACTIVE_DEVICE_ALL)
+                : mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_ALL);
     }
 
     public List<BluetoothDevice> getActiveDevices() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/notification/ConversationIconFactory.java b/packages/SettingsLib/src/com/android/settingslib/notification/ConversationIconFactory.java
index 885b7d3..9dc454f 100644
--- a/packages/SettingsLib/src/com/android/settingslib/notification/ConversationIconFactory.java
+++ b/packages/SettingsLib/src/com/android/settingslib/notification/ConversationIconFactory.java
@@ -15,32 +15,48 @@
  */
 package com.android.settingslib.notification;
 
+import android.annotation.ColorInt;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
 import android.content.pm.ShortcutInfo;
-import android.graphics.Bitmap;
 import android.graphics.Canvas;
-import android.graphics.drawable.BitmapDrawable;
+import android.graphics.ColorFilter;
+import android.graphics.Paint;
+import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.os.UserHandle;
 import android.util.IconDrawableFactory;
+import android.util.Log;
 
 import com.android.launcher3.icons.BaseIconFactory;
-import com.android.launcher3.icons.BitmapInfo;
-import com.android.launcher3.icons.ShadowGenerator;
+import com.android.settingslib.R;
 
 /**
  * Factory for creating normalized conversation icons.
  * We are not using Launcher's IconFactory because conversation rendering only runs on the UI
- * thread, so there is no need to manage a pool across multiple threads.
+ * thread, so there is no need to manage a pool across multiple threads. Launcher's rendering
+ * also includes shadows, which are only appropriate on top of wallpaper, not embedded in UI.
  */
 public class ConversationIconFactory extends BaseIconFactory {
+    // Geometry of the various parts of the design. All values are 1dp on a 48x48dp icon grid.
+    // Space is left around the "head" (main avatar) for
+    // ........
+    // .HHHHHH.
+    // .HHHrrrr
+    // .HHHrBBr
+    // ....rrrr
+
+    private static final float BASE_ICON_SIZE = 48f;
+    private static final float RING_STROKE_WIDTH = 2f;
+    private static final float HEAD_SIZE = BASE_ICON_SIZE - RING_STROKE_WIDTH * 2 - 2; // 40
+    private static final float BADGE_SIZE = HEAD_SIZE * 0.4f; // 16
 
     final LauncherApps mLauncherApps;
     final PackageManager mPackageManager;
     final IconDrawableFactory mIconDrawableFactory;
+    private int mImportantConversationColor;
 
     public ConversationIconFactory(Context context, LauncherApps la, PackageManager pm,
             IconDrawableFactory iconDrawableFactory, int iconSizePx) {
@@ -49,65 +65,156 @@
         mLauncherApps = la;
         mPackageManager = pm;
         mIconDrawableFactory = iconDrawableFactory;
+        mImportantConversationColor = context.getResources().getColor(
+                R.color.important_conversation, null);
     }
 
-    private int getBadgeSize() {
-        return mContext.getResources().getDimensionPixelSize(
-                com.android.launcher3.icons.R.dimen.profile_badge_size);
-    }
     /**
      * Returns the conversation info drawable
      */
-    private Drawable getConversationDrawable(ShortcutInfo shortcutInfo) {
+    private Drawable getBaseIconDrawable(ShortcutInfo shortcutInfo) {
         return mLauncherApps.getShortcutIconDrawable(shortcutInfo, mFillResIconDpi);
     }
 
     /**
-     * Get the {@link Drawable} that represents the app icon
+     * Get the {@link Drawable} that represents the app icon, badged with the work profile icon
+     * if appropriate.
      */
-    private Drawable getBadgedIcon(String packageName, int userId) {
+    private Drawable getAppBadge(String packageName, int userId) {
+        Drawable badge = null;
         try {
             final ApplicationInfo appInfo = mPackageManager.getApplicationInfoAsUser(
                     packageName, PackageManager.GET_META_DATA, userId);
-            return mIconDrawableFactory.getBadgedIcon(appInfo, userId);
+            badge = mIconDrawableFactory.getBadgedIcon(appInfo, userId);
         } catch (PackageManager.NameNotFoundException e) {
-            return mPackageManager.getDefaultActivityIcon();
+            badge = mPackageManager.getDefaultActivityIcon();
         }
+        return badge;
     }
 
     /**
-     * Turns a Drawable into a Bitmap
+     * Returns a {@link Drawable} for the entire conversation. The shortcut icon will be badged
+     * with the launcher icon of the app specified by packageName.
      */
-    BitmapInfo toBitmap(Drawable userBadgedAppIcon) {
-        Bitmap bitmap = createIconBitmap(
-                userBadgedAppIcon, 1f, getBadgeSize());
-
-        Canvas c = new Canvas();
-        ShadowGenerator shadowGenerator = new ShadowGenerator(getBadgeSize());
-        c.setBitmap(bitmap);
-        shadowGenerator.recreateIcon(Bitmap.createBitmap(bitmap), c);
-        return createIconBitmap(bitmap);
+    public Drawable getConversationDrawable(ShortcutInfo info, String packageName, int uid,
+            boolean important) {
+        return getConversationDrawable(getBaseIconDrawable(info), packageName, uid, important);
     }
 
     /**
-     * Returns a {@link BitmapInfo} for the entire conversation icon including the badge.
+     * Returns a {@link Drawable} for the entire conversation. The drawable will be badged
+     * with the launcher icon of the app specified by packageName.
      */
-    public Bitmap getConversationBitmap(ShortcutInfo info, String packageName, int uid) {
-        return getConversationBitmap(getConversationDrawable(info), packageName, uid);
+    public Drawable getConversationDrawable(Drawable baseIcon, String packageName, int uid,
+            boolean important) {
+        return new ConversationIconDrawable(baseIcon,
+                getAppBadge(packageName, UserHandle.getUserId(uid)),
+                mIconBitmapSize,
+                mImportantConversationColor,
+                important);
     }
 
     /**
-     * Returns a {@link BitmapInfo} for the entire conversation icon including the badge.
+     * Custom Drawable that overlays a badge drawable (e.g. notification small icon or app icon) on
+     * a base icon (conversation/person avatar), plus decorations indicating conversation
+     * importance.
      */
-    public Bitmap getConversationBitmap(Drawable baseIcon, String packageName, int uid) {
-        int userId = UserHandle.getUserId(uid);
-        Drawable badge = getBadgedIcon(packageName, userId);
-        BitmapInfo iconInfo = createBadgedIconBitmap(baseIcon,
-                UserHandle.of(userId),
-                true /* shrinkNonAdaptiveIcons */);
+    public static class ConversationIconDrawable extends Drawable {
+        private Drawable mBaseIcon;
+        private Drawable mBadgeIcon;
+        private int mIconSize;
+        private Paint mRingPaint;
+        private boolean mShowRing;
 
-        badgeWithDrawable(iconInfo.icon,
-                new BitmapDrawable(mContext.getResources(), toBitmap(badge).icon));
-        return iconInfo.icon;
+        public ConversationIconDrawable(Drawable baseIcon,
+                Drawable badgeIcon,
+                int iconSize,
+                @ColorInt int ringColor,
+                boolean showImportanceRing) {
+            mBaseIcon = baseIcon;
+            mBadgeIcon = badgeIcon;
+            mIconSize = iconSize;
+            mShowRing = showImportanceRing;
+            mRingPaint = new Paint();
+            mRingPaint.setStyle(Paint.Style.STROKE);
+            mRingPaint.setColor(ringColor);
+        }
+
+        /**
+         * Show or hide the importance ring.
+         */
+        public void setImportant(boolean important) {
+            if (important != mShowRing) {
+                mShowRing = important;
+                invalidateSelf();
+            }
+        }
+
+        @Override
+        public int getIntrinsicWidth() {
+            return mIconSize;
+        }
+
+        @Override
+        public int getIntrinsicHeight() {
+            return mIconSize;
+        }
+
+        // Similar to badgeWithDrawable, but relying on the bounds of each underlying drawable
+        @Override
+        public void draw(Canvas canvas) {
+            final Rect bounds = getBounds();
+
+            // scale to our internal 48x48 grid
+            final float scale = bounds.width() / BASE_ICON_SIZE;
+            final int centerX = bounds.centerX();
+            final int centerY = bounds.centerX();
+            final int ringStrokeWidth = (int) (RING_STROKE_WIDTH * scale);
+            final int headSize = (int) (HEAD_SIZE * scale);
+            final int badgeSize = (int) (BADGE_SIZE * scale);
+
+            if (mBaseIcon != null) {
+                mBaseIcon.setBounds(
+                        centerX - headSize / 2,
+                        centerY - headSize / 2,
+                        centerX + headSize / 2,
+                        centerY + headSize / 2);
+                mBaseIcon.draw(canvas);
+            } else {
+                Log.w("ConversationIconFactory", "ConversationIconDrawable has null base icon");
+            }
+            if (mBadgeIcon != null) {
+                mBadgeIcon.setBounds(
+                        bounds.right - badgeSize - ringStrokeWidth,
+                        bounds.bottom - badgeSize - ringStrokeWidth,
+                        bounds.right - ringStrokeWidth,
+                        bounds.bottom - ringStrokeWidth);
+                mBadgeIcon.draw(canvas);
+            } else {
+                Log.w("ConversationIconFactory", "ConversationIconDrawable has null badge icon");
+            }
+            if (mShowRing) {
+                mRingPaint.setStrokeWidth(ringStrokeWidth);
+                final float radius = badgeSize * 0.5f + ringStrokeWidth * 0.5f; // stroke outside
+                final float cx = bounds.right - badgeSize * 0.5f - ringStrokeWidth;
+                final float cy = bounds.bottom - badgeSize * 0.5f - ringStrokeWidth;
+                canvas.drawCircle(cx, cy, radius, mRingPaint);
+            }
+        }
+
+        @Override
+        public void setAlpha(int alpha) {
+            // unimplemented
+        }
+
+        @Override
+        public void setColorFilter(ColorFilter colorFilter) {
+            // unimplemented
+        }
+
+        @Override
+        public int getOpacity() {
+            return 0;
+        }
     }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java
index c555cbe..9afdd43c 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java
@@ -69,30 +69,31 @@
         mProfile = new A2dpProfile(mContext, mDeviceManager, mProfileManager);
         mServiceListener = mShadowBluetoothAdapter.getServiceListener();
         mServiceListener.onServiceConnected(BluetoothProfile.A2DP, mBluetoothA2dp);
+        when(mBluetoothA2dp.getActiveDevice()).thenReturn(mDevice);
     }
 
     @Test
     public void supportsHighQualityAudio() {
-        when(mBluetoothA2dp.supportsOptionalCodecs(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsSupported(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_SUPPORTED);
         assertThat(mProfile.supportsHighQualityAudio(mDevice)).isTrue();
 
-        when(mBluetoothA2dp.supportsOptionalCodecs(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsSupported(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_NOT_SUPPORTED);
         assertThat(mProfile.supportsHighQualityAudio(mDevice)).isFalse();
 
-        when(mBluetoothA2dp.supportsOptionalCodecs(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsSupported(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_SUPPORT_UNKNOWN);
         assertThat(mProfile.supportsHighQualityAudio(mDevice)).isFalse();
     }
 
     @Test
     public void isHighQualityAudioEnabled() {
-        when(mBluetoothA2dp.getOptionalCodecsEnabled(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsEnabled(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED);
         assertThat(mProfile.isHighQualityAudioEnabled(mDevice)).isTrue();
 
-        when(mBluetoothA2dp.getOptionalCodecsEnabled(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsEnabled(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_PREF_DISABLED);
         assertThat(mProfile.isHighQualityAudioEnabled(mDevice)).isFalse();
 
@@ -100,16 +101,16 @@
         // then isHighQualityAudioEnabled() should return true or false based on whether optional
         // codecs are supported. If the device is connected then we should ask it directly, but if
         // the device isn't connected then rely on the stored pref about such support.
-        when(mBluetoothA2dp.getOptionalCodecsEnabled(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsEnabled(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN);
         when(mBluetoothA2dp.getConnectionState(any())).thenReturn(
                 BluetoothProfile.STATE_DISCONNECTED);
 
-        when(mBluetoothA2dp.supportsOptionalCodecs(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsSupported(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_NOT_SUPPORTED);
         assertThat(mProfile.isHighQualityAudioEnabled(mDevice)).isFalse();
 
-        when(mBluetoothA2dp.supportsOptionalCodecs(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsSupported(mDevice)).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_SUPPORTED);
         assertThat(mProfile.isHighQualityAudioEnabled(mDevice)).isTrue();
 
@@ -151,14 +152,14 @@
 
         // Most tests want to simulate optional codecs being supported by the device, so do that
         // by default here.
-        when(mBluetoothA2dp.supportsOptionalCodecs(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsSupported(any())).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_SUPPORTED);
     }
 
     @Test
     public void getLableCodecsNotSupported() {
         setupLabelTest();
-        when(mBluetoothA2dp.supportsOptionalCodecs(any())).thenReturn(
+        when(mBluetoothA2dp.isOptionalCodecsSupported(any())).thenReturn(
                 BluetoothA2dp.OPTIONAL_CODECS_NOT_SUPPORTED);
         assertThat(mProfile.getHighQualityAudioOptionLabel(mDevice)).isEqualTo(UNKNOWN_CODEC_LABEL);
     }
@@ -203,4 +204,10 @@
         assertThat(mProfile.getHighQualityAudioOptionLabel(mDevice)).isEqualTo(
                 String.format(KNOWN_CODEC_LABEL, config.getCodecName()));
     }
+
+    @Test
+    public void setActiveDevice_returnTrue() {
+        assertThat(mProfile.setActiveDevice(null)).isTrue();
+        assertThat(mProfile.setActiveDevice(mDevice)).isTrue();
+    }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java
index 9adef82..30182c4 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java
@@ -75,4 +75,10 @@
         assertThat(mProfile.getAudioState(mBluetoothDevice)).
                 isEqualTo(BluetoothHeadset.STATE_AUDIO_CONNECTED);
     }
+
+    @Test
+    public void setActiveDevice_returnTrue() {
+        assertThat(mProfile.setActiveDevice(null)).isTrue();
+        assertThat(mProfile.setActiveDevice(mBluetoothDevice)).isTrue();
+    }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidProfileTest.java
new file mode 100644
index 0000000..be3a517
--- /dev/null
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidProfileTest.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2020 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.bluetooth;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothHearingAid;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+
+import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowBluetoothAdapter.class})
+public class HearingAidProfileTest {
+    @Mock
+    private CachedBluetoothDeviceManager mDeviceManager;
+    @Mock
+    private LocalBluetoothProfileManager mProfileManager;
+    @Mock
+    private BluetoothHearingAid mService;
+    @Mock
+    private CachedBluetoothDevice mCachedBluetoothDevice;
+    @Mock
+    private BluetoothDevice mBluetoothDevice;
+
+    private BluetoothProfile.ServiceListener mServiceListener;
+    private HearingAidProfile mProfile;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        Context context = spy(RuntimeEnvironment.application);
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+
+        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
+
+        mProfile = new HearingAidProfile(context, mDeviceManager, mProfileManager);
+        mServiceListener = mShadowBluetoothAdapter.getServiceListener();
+        mServiceListener.onServiceConnected(BluetoothProfile.HEADSET, mService);
+    }
+
+    @Test
+    public void setActiveDevice_returnTrue() {
+        assertThat(mProfile.setActiveDevice(null)).isTrue();
+        assertThat(mProfile.setActiveDevice(mBluetoothDevice)).isTrue();
+    }
+}
diff --git a/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowBluetoothAdapter.java b/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowBluetoothAdapter.java
index 015ce149..b265d46 100644
--- a/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowBluetoothAdapter.java
+++ b/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowBluetoothAdapter.java
@@ -16,6 +16,10 @@
 
 package com.android.settingslib.testutils.shadow;
 
+import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_ALL;
+import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_AUDIO;
+import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_PHONE_CALL;
+
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
@@ -61,4 +65,26 @@
     public void setMostRecentlyConnectedDevices(List<BluetoothDevice> list) {
         mMostRecentlyConnectedDevices = list;
     }
+
+    @Implementation
+    protected boolean removeActiveDevice(@BluetoothAdapter.ActiveDeviceUse int profiles) {
+        if (profiles != ACTIVE_DEVICE_AUDIO && profiles != ACTIVE_DEVICE_PHONE_CALL
+                && profiles != ACTIVE_DEVICE_ALL) {
+            return false;
+        }
+        return true;
+    }
+
+    @Implementation
+    protected boolean setActiveDevice(BluetoothDevice device,
+            @BluetoothAdapter.ActiveDeviceUse int profiles) {
+        if (device == null) {
+            return false;
+        }
+        if (profiles != ACTIVE_DEVICE_AUDIO && profiles != ACTIVE_DEVICE_PHONE_CALL
+                && profiles != ACTIVE_DEVICE_ALL) {
+            return false;
+        }
+        return true;
+    }
 }
diff --git a/packages/SettingsProvider/res/values-as/strings.xml b/packages/SettingsProvider/res/values-as/strings.xml
index 5235e3c..89b7c1e 100644
--- a/packages/SettingsProvider/res/values-as/strings.xml
+++ b/packages/SettingsProvider/res/values-as/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"ছেটিংছসমূহৰ সঞ্চয়াগাৰ"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"হটস্পটৰ ছেটিংসমূহ সলনি হৈছে"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"সবিশেষ চাবলৈ টিপক"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-bn/strings.xml b/packages/SettingsProvider/res/values-bn/strings.xml
index c785cd8..b2eaa2f 100644
--- a/packages/SettingsProvider/res/values-bn/strings.xml
+++ b/packages/SettingsProvider/res/values-bn/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"সেটিংস স্টোরেজ"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"হটস্পট সেটিংসে পরিবর্তন করা হয়েছে"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"বিশদে জানতে ট্যাপ করুন"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-de/strings.xml b/packages/SettingsProvider/res/values-de/strings.xml
index a469936..b006ac9 100644
--- a/packages/SettingsProvider/res/values-de/strings.xml
+++ b/packages/SettingsProvider/res/values-de/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"Einstellungsspeicher"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"Hotspot-Einstellungen wurden geändert"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"Für Details tippen"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-es/strings.xml b/packages/SettingsProvider/res/values-es/strings.xml
index 3f1fa61..a3d3469 100644
--- a/packages/SettingsProvider/res/values-es/strings.xml
+++ b/packages/SettingsProvider/res/values-es/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"Almacenamiento de configuración"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"Se han cambiado los ajustes del punto de acceso"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"Toca para ver información detallada"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-gu/strings.xml b/packages/SettingsProvider/res/values-gu/strings.xml
index 074675f..1f91f71 100644
--- a/packages/SettingsProvider/res/values-gu/strings.xml
+++ b/packages/SettingsProvider/res/values-gu/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"સેટિંગ્સ સંગ્રહ"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"હૉટસ્પૉટ સેટિંગ બદલાઈ ગઈ છે"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"વિગતો જોવા માટે ટૅપ કરો"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-kn/strings.xml b/packages/SettingsProvider/res/values-kn/strings.xml
index 0b0000d..400b358 100644
--- a/packages/SettingsProvider/res/values-kn/strings.xml
+++ b/packages/SettingsProvider/res/values-kn/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಸಂಗ್ರಹಣೆ"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಬದಲಾಗಿವೆ"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"ವಿವರಗಳನ್ನು ನೋಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-ml/strings.xml b/packages/SettingsProvider/res/values-ml/strings.xml
index 54a05fb..8df8ce4 100644
--- a/packages/SettingsProvider/res/values-ml/strings.xml
+++ b/packages/SettingsProvider/res/values-ml/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"സംഭരണ ക്രമീകരണം"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"ഹോട്ട്‌സ്‌പോട്ട് ക്രമീകരണം മാറിയിരിക്കുന്നു"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"വിശദാംശങ്ങൾ കാണാൻ ടാപ്പ് ചെയ്യുക"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-mr/strings.xml b/packages/SettingsProvider/res/values-mr/strings.xml
index 0e80f70..51b8b19 100644
--- a/packages/SettingsProvider/res/values-mr/strings.xml
+++ b/packages/SettingsProvider/res/values-mr/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"सेटिंग्ज संचयन"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"हॉटस्पॉट सेटिंग्ज बदलल्या आहेत"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"तपशील पाहण्यासाठी टॅप करा"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-ne/strings.xml b/packages/SettingsProvider/res/values-ne/strings.xml
index bb04b6ba..a0e3465 100644
--- a/packages/SettingsProvider/res/values-ne/strings.xml
+++ b/packages/SettingsProvider/res/values-ne/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"सेटिङहरू भण्डारण"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"हटस्पटका सेटिङ परिवर्तन गरिएका छन्"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"विवरणहरू हेर्न ट्याप गर्नुहोस्"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-or/strings.xml b/packages/SettingsProvider/res/values-or/strings.xml
index 4b73a55..486d8ff 100644
--- a/packages/SettingsProvider/res/values-or/strings.xml
+++ b/packages/SettingsProvider/res/values-or/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"ସେଟିଙ୍ଗ ଷ୍ଟୋରେଜ୍‌"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"ହଟସ୍ପଟ୍ ସେଟିଂସ୍ ବଦଳାଯାଇଛି"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"ବିବରଣୀ ଦେଖିବାକୁ ଟାପ୍ କରନ୍ତୁ"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-pa/strings.xml b/packages/SettingsProvider/res/values-pa/strings.xml
index 5af8d6a..1c9a985 100644
--- a/packages/SettingsProvider/res/values-pa/strings.xml
+++ b/packages/SettingsProvider/res/values-pa/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"ਸੈਟਿੰਗਾਂ ਸਟੋਰੇਜ"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"ਹੌਟਸਪੌਟ ਸੈਟਿੰਗਾਂ ਬਦਲ ਗਈਆਂ ਹਨ"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"ਵੇਰਵੇ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-te/strings.xml b/packages/SettingsProvider/res/values-te/strings.xml
index b1955ed..fa2191f 100644
--- a/packages/SettingsProvider/res/values-te/strings.xml
+++ b/packages/SettingsProvider/res/values-te/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"సెట్టింగ్‌ల నిల్వ"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"హాట్‌స్పాట్ సెట్టింగ్‌లు మార్చబడ్డాయి"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"వివరాలను చూడటానికి ట్యాప్ చేయండి"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values-ur/strings.xml b/packages/SettingsProvider/res/values-ur/strings.xml
index 2ce44b1..5a1b0f9 100644
--- a/packages/SettingsProvider/res/values-ur/strings.xml
+++ b/packages/SettingsProvider/res/values-ur/strings.xml
@@ -20,8 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4567566098528588863">"ترتیبات کا اسٹوریج"</string>
-    <!-- no translation found for wifi_softap_config_change (5688373762357941645) -->
-    <skip />
-    <!-- no translation found for wifi_softap_config_change_summary (8946397286141531087) -->
-    <skip />
+    <string name="wifi_softap_config_change" msgid="5688373762357941645">"ہاٹ اسپاٹ کی ترتیبات تبدیل ہو گئیں"</string>
+    <string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"تفصیلات دیکھنے کے لیے تھپتھپائیں"</string>
 </resources>
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 99f8c7d..e13e49f 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -192,7 +192,10 @@
     <uses-permission android:name="android.permission.READ_CLIPBOARD_IN_BACKGROUND" />
     <!-- Permission needed to wipe the device for Test Harness Mode -->
     <uses-permission android:name="android.permission.ENABLE_TEST_HARNESS_MODE" />
+
+    <!-- Permissions required to test CompanionDeviceManager teses in CTS -->
     <uses-permission android:name="android.permission.MANAGE_COMPANION_DEVICES" />
+    <uses-permission android:name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS" />
 
     <uses-permission android:name="android.permission.MANAGE_APPOPS" />
 
@@ -201,6 +204,7 @@
 
     <!-- Permission needed to run network tests in CTS -->
     <uses-permission android:name="android.permission.MANAGE_TEST_NETWORKS" />
+    <uses-permission android:name="android.permission.NETWORK_STACK" />
     <!-- Permission needed to test tcp keepalive offload. -->
     <uses-permission android:name="android.permission.PACKET_KEEPALIVE_OFFLOAD" />
 
@@ -266,6 +270,12 @@
     <!-- Permission needed to test mainline permission module rollback -->
     <uses-permission android:name="android.permission.UPGRADE_RUNTIME_PERMISSIONS" />
 
+    <!-- Permission needed to read wifi network credentials for CtsNetTestCases -->
+    <uses-permission android:name="android.permission.READ_WIFI_CREDENTIAL" />
+
+    <!-- Permission needed to test registering pull atom callbacks -->
+    <uses-permission android:name="android.permission.REGISTER_STATS_PULL_ATOM" />
+
     <application android:label="@string/app_label"
                 android:theme="@android:style/Theme.DeviceDefault.DayNight"
                 android:defaultToDeviceProtectedStorage="true"
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index d126ee0..c76b50b 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -615,13 +615,16 @@
                     + " bugreport parcel file descriptor is null.");
             return;
         }
-        ParcelFileDescriptor screenshotFd = info.getDefaultScreenshotFd();
-        if (screenshotFd == null) {
-            Log.e(TAG, "Failed to start bugreport generation as"
-                    + " screenshot parcel file descriptor is null. Deleting bugreport file");
-            FileUtils.closeQuietly(bugreportFd);
-            info.bugreportFile.delete();
-            return;
+        ParcelFileDescriptor screenshotFd = null;
+        if (isDefaultScreenshotRequired(bugreportType)) {
+            screenshotFd = info.getDefaultScreenshotFd();
+            if (screenshotFd == null) {
+                Log.e(TAG, "Failed to start bugreport generation as"
+                        + " screenshot parcel file descriptor is null. Deleting bugreport file");
+                FileUtils.closeQuietly(bugreportFd);
+                info.bugreportFile.delete();
+                return;
+            }
         }
 
         mBugreportManager = (BugreportManager) mContext.getSystemService(
@@ -641,10 +644,20 @@
             // The binder call didn't go through successfully, so need to close the fds.
             // If the calls went through API takes ownership.
             FileUtils.closeQuietly(bugreportFd);
-            FileUtils.closeQuietly(screenshotFd);
+            if (screenshotFd != null) {
+                FileUtils.closeQuietly(screenshotFd);
+            }
         }
     }
 
+    private static boolean isDefaultScreenshotRequired(
+            @BugreportParams.BugreportMode int bugreportType) {
+        // Modify dumpstate#SetOptionsFromMode as well for default system screenshots.
+        // We override dumpstate for interactive bugreports.
+        return bugreportType == BugreportParams.BUGREPORT_MODE_FULL
+                || bugreportType == BugreportParams.BUGREPORT_MODE_WEAR;
+    }
+
     private static ParcelFileDescriptor getFd(File file) {
         try {
             return ParcelFileDescriptor.open(file,
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/NotificationPersonExtractorPlugin.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/NotificationPersonExtractorPlugin.java
index 6650c15..f79cd86 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/NotificationPersonExtractorPlugin.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/NotificationPersonExtractorPlugin.java
@@ -68,14 +68,14 @@
         public final String key;
         public final CharSequence name;
         public final Drawable avatar;
-        public final PendingIntent clickIntent;
+        public final Runnable clickRunnable;
 
         public PersonData(String key, CharSequence name, Drawable avatar,
-                PendingIntent clickIntent) {
+                Runnable clickRunnable) {
             this.key = key;
             this.name = name;
             this.avatar = avatar;
-            this.clickIntent = clickIntent;
+            this.clickRunnable = clickRunnable;
         }
     }
 }
diff --git a/packages/SystemUI/res-keyguard/drawable/bubble_manage_user_education_bg.xml b/packages/SystemUI/res-keyguard/drawable/bubble_manage_user_education_bg.xml
new file mode 100644
index 0000000..64db25b
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/drawable/bubble_manage_user_education_bg.xml
@@ -0,0 +1,21 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <solid android:color="?android:attr/colorAccent"/>
+    <corners
+        android:radius="?android:attr/dialogCornerRadius" />
+</shape>
\ No newline at end of file
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
index 847fba4..10cd3cb 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
@@ -75,6 +75,7 @@
             android:layout_width="match_parent"
             android:layout_height="@dimen/notification_shelf_height"
             android:layout_marginTop="@dimen/widget_vertical_padding"
+            android:visibility="invisible"
         />
     </LinearLayout>
 </com.android.keyguard.KeyguardStatusView>
diff --git a/packages/SystemUI/res/drawable-nodpi/controls_btn_star.xml b/packages/SystemUI/res/drawable-nodpi/controls_btn_star.xml
new file mode 100644
index 0000000..cfe7838
--- /dev/null
+++ b/packages/SystemUI/res/drawable-nodpi/controls_btn_star.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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"
+    android:width="24dp"
+    android:height="24dp">
+    <item android:state_checked="true"
+          android:drawable="@drawable/star_filled"
+          android:tint="@color/control_primary_text"/>
+    <item android:drawable="@drawable/star_outline"
+          android:tint="@color/control_primary_text"/>
+</selector>
diff --git a/packages/SystemUI/res-keyguard/layout/controls_zone_header.xml b/packages/SystemUI/res/drawable-nodpi/star_filled.xml
similarity index 61%
copy from packages/SystemUI/res-keyguard/layout/controls_zone_header.xml
copy to packages/SystemUI/res/drawable-nodpi/star_filled.xml
index 7b43a03..62802d3 100644
--- a/packages/SystemUI/res-keyguard/layout/controls_zone_header.xml
+++ b/packages/SystemUI/res/drawable-nodpi/star_filled.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2019 The Android Open Source Project
+  ~ Copyright (C) 2020 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,15 +14,14 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<TextView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:textAppearance="@style/TextAppearance.Control.Title"
-    android:textColor="?android:attr/colorPrimary"
-    android:layout_marginStart="12dp"
-    android:layout_marginEnd="2dp"
-    android:layout_marginTop="8dp"
-    android:layout_marginBottom="4dp">
 
-</TextView>
\ No newline at end of file
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:pathData="M 11.99 0.027 L 8.628 8.382 L 0.027 9.15 L 6.559 15.111 L 4.597 23.97 L 11.99 19.27 L 19.383 23.97 L 17.421 15.111 L 23.953 9.15 L 15.352 8.382 Z"
+        android:fillColor="#FFFFFFFF"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable-nodpi/star_outline.xml b/packages/SystemUI/res/drawable-nodpi/star_outline.xml
new file mode 100644
index 0000000..13983c6
--- /dev/null
+++ b/packages/SystemUI/res/drawable-nodpi/star_outline.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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="24"
+    android:viewportHeight="24">
+    <path
+        android:pathData="M 11.99 6.491 L 13.15 9.377 L 13.713 10.776 L 15.148 10.902 L 18.103 11.167 L 15.854 13.221 L 14.766 14.216 L 15.089 15.703 L 15.759 18.74 L 13.222 17.127 L 11.99 16.321 L 10.758 17.102 L 8.222 18.715 L 8.891 15.678 L 9.215 14.191 L 8.126 13.196 L 5.877 11.141 L 8.832 10.877 L 10.267 10.751 L 10.83 9.352 L 11.99 6.491 M 11.99 0.027 L 8.628 8.382 L 0.027 9.15 L 6.559 15.111 L 4.597 23.97 L 11.99 19.27 L 19.383 23.97 L 17.421 15.111 L 23.953 9.15 L 15.352 8.382 Z"
+        android:fillColor="#FFFFFFFF"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/bubble_stack_user_education_bg.xml b/packages/SystemUI/res/drawable/bubble_stack_user_education_bg.xml
new file mode 100644
index 0000000..4b9219c
--- /dev/null
+++ b/packages/SystemUI/res/drawable/bubble_stack_user_education_bg.xml
@@ -0,0 +1,22 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <solid android:color="?android:attr/colorAccent"/>
+    <corners
+        android:bottomRightRadius="360dp"
+        android:topRightRadius="360dp" />
+</shape>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/control_spinner_background.xml b/packages/SystemUI/res/drawable/control_spinner_background.xml
new file mode 100644
index 0000000..999a77c
--- /dev/null
+++ b/packages/SystemUI/res/drawable/control_spinner_background.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 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"
+            android:paddingMode="stack"
+            android:paddingStart="0dp"
+            android:paddingEnd="40dp"
+            android:paddingLeft="0dp"
+            android:paddingRight="0dp">
+    <item
+        android:gravity="end|fill_vertical"
+        android:width="40dp"
+        android:drawable="@*android:drawable/control_background_40dp_material" />
+
+    <item
+        android:drawable="@drawable/ic_ksh_key_down"
+        android:gravity="end|bottom"
+        android:paddingBottom="6dp"
+        android:width="24dp"
+        android:height="24dp"
+        android:end="12dp" />
+</layer-list>
diff --git a/packages/Incremental/NativeAdbDataLoader/res/values/strings.xml b/packages/SystemUI/res/drawable/controls_list_divider.xml
similarity index 66%
rename from packages/Incremental/NativeAdbDataLoader/res/values/strings.xml
rename to packages/SystemUI/res/drawable/controls_list_divider.xml
index 9921ae6..f8211d5 100644
--- a/packages/Incremental/NativeAdbDataLoader/res/values/strings.xml
+++ b/packages/SystemUI/res/drawable/controls_list_divider.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 The Android Open Source Project
+<!-- Copyright (C) 2020 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,7 +13,11 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Name of the Data Loader Service. [CHAR LIMIT=40] -->
-    <string name="app_name">Native Adb Data Loader Service</string>
-</resources>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:tint="@color/control_secondary_text">
+    <solid android:color="#33000000" />
+    <size
+        android:height="1dp"
+        android:width="1dp" />
+</shape>
diff --git a/packages/SystemUI/res/drawable/ic_more_vert.xml b/packages/SystemUI/res/drawable/ic_more_vert.xml
deleted file mode 100644
index 1309fa8..0000000
--- a/packages/SystemUI/res/drawable/ic_more_vert.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
-    Copyright (C) 2020 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="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
-</vector>
diff --git a/packages/SystemUI/res/layout/auth_container_view.xml b/packages/SystemUI/res/layout/auth_container_view.xml
index 3db01a4..63eccda5 100644
--- a/packages/SystemUI/res/layout/auth_container_view.xml
+++ b/packages/SystemUI/res/layout/auth_container_view.xml
@@ -23,6 +23,7 @@
         android:id="@+id/background"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:accessibilityLiveRegion="polite"
         android:background="@color/biometric_dialog_dim_color"
         android:contentDescription="@string/biometric_dialog_empty_space_description"/>
 
diff --git a/packages/SystemUI/res/layout/bubble_stack_user_education.xml b/packages/SystemUI/res/layout/bubble_stack_user_education.xml
new file mode 100644
index 0000000..81b28e6
--- /dev/null
+++ b/packages/SystemUI/res/layout/bubble_stack_user_education.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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:id="@+id/user_education_view"
+    android:layout_height="wrap_content"
+    android:layout_width="wrap_content"
+    android:paddingTop="48dp"
+    android:paddingBottom="48dp"
+    android:paddingStart="@dimen/bubble_stack_user_education_side_inset"
+    android:paddingEnd="16dp"
+    android:layout_marginEnd="24dp"
+    android:orientation="vertical"
+    android:background="@drawable/bubble_stack_user_education_bg">
+
+    <TextView
+        android:id="@+id/user_education_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingBottom="16dp"
+        android:fontFamily="@*android:string/config_bodyFontFamilyMedium"
+        android:maxLines="1"
+        android:text="@string/bubbles_user_education_title"
+        android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Headline"/>
+
+    <TextView
+        android:id="@+id/user_education_description"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/bubbles_user_education_description"
+        android:fontFamily="@*android:string/config_bodyFontFamily"
+        android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body2"/>
+
+</LinearLayout>
diff --git a/packages/SystemUI/res/layout/bubbles_manage_button_education.xml b/packages/SystemUI/res/layout/bubbles_manage_button_education.xml
new file mode 100644
index 0000000..0cabc32
--- /dev/null
+++ b/packages/SystemUI/res/layout/bubbles_manage_button_education.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<com.android.systemui.bubbles.BubbleManageEducationView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
+        android:id="@+id/manage_education_view"
+        android:orientation="vertical"
+        android:layout_height="wrap_content"
+        android:layout_width="@dimen/bubbles_manage_education_width">
+
+        <TextView
+            android:id="@+id/user_education_description"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="8dp"
+            android:text="@string/bubbles_user_education_manage"
+            android:fontFamily="@*android:string/config_bodyFontFamily"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body2"
+            android:background="@drawable/bubble_manage_user_education_bg"
+        />
+
+        <View
+            android:id="@+id/user_education_pointer"
+            android:layout_width="@dimen/bubble_pointer_width"
+            android:layout_height="@dimen/bubble_pointer_height"
+        />
+
+    </LinearLayout>
+</com.android.systemui.bubbles.BubbleManageEducationView>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/controls_base_item.xml b/packages/SystemUI/res/layout/controls_base_item.xml
index 823bbcd..374e3b1 100644
--- a/packages/SystemUI/res/layout/controls_base_item.xml
+++ b/packages/SystemUI/res/layout/controls_base_item.xml
@@ -31,6 +31,7 @@
         android:id="@+id/icon"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:paddingTop="@dimen/control_padding_adjustment"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
@@ -39,6 +40,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textAppearance="@style/TextAppearance.Control.Status"
+        android:paddingTop="@dimen/control_padding_adjustment"
         android:paddingStart="@dimen/control_status_padding"
         app:layout_constraintBottom_toBottomOf="@+id/icon"
         app:layout_constraintStart_toEndOf="@+id/icon" />
@@ -48,6 +50,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textAppearance="@style/TextAppearance.Control.Status"
+        android:paddingTop="@dimen/control_padding_adjustment"
         android:paddingStart="@dimen/control_status_padding"
         app:layout_constraintBottom_toBottomOf="@+id/icon"
         app:layout_constraintStart_toEndOf="@+id/status" />
@@ -57,23 +60,37 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textAppearance="@style/TextAppearance.Control.Title"
+        android:paddingLeft="@dimen/control_padding_adjustment"
+        android:paddingRight="@dimen/control_padding_adjustment"
         app:layout_constraintBottom_toTopOf="@+id/subtitle"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/icon" />
+        app:layout_constraintStart_toStartOf="parent" />
 
     <TextView
         android:id="@+id/subtitle"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textAppearance="@style/TextAppearance.Control.Subtitle"
+        android:paddingLeft="@dimen/control_padding_adjustment"
+        android:paddingRight="@dimen/control_padding_adjustment"
+        android:paddingBottom="@dimen/control_padding_adjustment"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintStart_toStartOf="parent" />
+        app:layout_constraintStart_toStartOf="parent"/>
 
-    <CheckBox
-        android:id="@+id/favorite"
+    <FrameLayout
+        android:id="@+id/favorite_container"
         android:visibility="gone"
         android:layout_width="48dp"
         android:layout_height="48dp"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintBottom_toBottomOf="parent"/>
+        app:layout_constraintBottom_toBottomOf="parent">
+
+        <CheckBox
+            android:id="@+id/favorite"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom|end"
+            android:button="@drawable/controls_btn_star"/>
+    </FrameLayout>
+
+
 </androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/packages/SystemUI/res/layout/controls_no_favorites.xml b/packages/SystemUI/res/layout/controls_no_favorites.xml
index 3e0699d..8074efd 100644
--- a/packages/SystemUI/res/layout/controls_no_favorites.xml
+++ b/packages/SystemUI/res/layout/controls_no_favorites.xml
@@ -28,6 +28,7 @@
       android:paddingBottom="40dp"
       android:layout_marginLeft="10dp"
       android:layout_marginRight="10dp"
+      android:layout_marginTop="@dimen/controls_top_margin"
       android:background="@drawable/control_no_favorites_background">
 
     <LinearLayout
diff --git a/packages/SystemUI/res/layout/controls_spinner_item.xml b/packages/SystemUI/res/layout/controls_spinner_item.xml
new file mode 100644
index 0000000..44ae3b1
--- /dev/null
+++ b/packages/SystemUI/res/layout/controls_spinner_item.xml
@@ -0,0 +1,43 @@
+<!--
+  ~ 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.
+  -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="4dp">
+
+  <LinearLayout
+      android:orientation="horizontal"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:gravity="center">
+
+    <ImageView
+        android:id="@+id/app_icon"
+        android:layout_gravity="center"
+        android:layout_width="@dimen/controls_header_app_icon_size"
+        android:layout_height="@dimen/controls_header_app_icon_size"
+        android:layout_marginEnd="10dp" />
+
+    <TextView
+        style="@style/Control.Spinner.Item"
+        android:id="@+id/controls_spinner_item"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center" />
+  </LinearLayout>
+
+</LinearLayout>
diff --git a/packages/SystemUI/res/layout/controls_with_favorites.xml b/packages/SystemUI/res/layout/controls_with_favorites.xml
index 2cd9505..d3de4cd 100644
--- a/packages/SystemUI/res/layout/controls_with_favorites.xml
+++ b/packages/SystemUI/res/layout/controls_with_favorites.xml
@@ -20,32 +20,36 @@
   <androidx.constraintlayout.widget.ConstraintLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:paddingBottom="20dp">
+      android:layout_marginTop="@dimen/controls_top_margin">
 
-    <TextView
-        android:text="@string/quick_controls_title"
+    <LinearLayout
+        android:id="@+id/controls_header"
+        android:orientation="horizontal"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:singleLine="true"
+        android:layout_marginStart="@dimen/controls_header_side_margin"
+        android:layout_marginEnd="@dimen/controls_header_side_margin"
         android:gravity="center"
-        android:textSize="25sp"
-        android:textColor="@*android:color/foreground_material_dark"
-        android:fontFamily="@*android:string/config_headlineFontFamily"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        app:layout_constraintTop_toTopOf="parent" >
 
-    <ImageView
-        android:id="@+id/controls_more"
-        android:src="@drawable/ic_more_vert"
-        android:layout_width="34dp"
-        android:layout_height="24dp" 
-        android:layout_marginEnd="10dp"
-        android:tint="@*android:color/foreground_material_dark"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+      <ImageView
+          android:id="@+id/app_icon"
+          android:layout_gravity="center"
+          android:layout_width="@dimen/controls_header_app_icon_size"
+          android:layout_height="@dimen/controls_header_app_icon_size"
+          android:layout_marginEnd="10dp" />
+
+      <TextView
+          style="@style/Control.Spinner.Header"
+          android:clickable="false"
+          android:id="@+id/app_or_structure_spinner"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:layout_gravity="center" />
+    </LinearLayout>
 
   </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -53,5 +57,8 @@
       android:id="@+id/global_actions_controls_list"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:orientation="vertical" />
+      android:orientation="vertical"
+      android:paddingTop="30dp"
+      android:layout_marginLeft="@dimen/controls_list_side_margin"
+      android:layout_marginRight="@dimen/controls_list_side_margin" />
 </merge>
diff --git a/packages/SystemUI/res-keyguard/layout/controls_zone_header.xml b/packages/SystemUI/res/layout/controls_zone_header.xml
similarity index 90%
rename from packages/SystemUI/res-keyguard/layout/controls_zone_header.xml
rename to packages/SystemUI/res/layout/controls_zone_header.xml
index 7b43a03..93f99b1 100644
--- a/packages/SystemUI/res-keyguard/layout/controls_zone_header.xml
+++ b/packages/SystemUI/res/layout/controls_zone_header.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2019 The Android Open Source Project
+  ~ Copyright (C) 2020 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.
@@ -19,7 +19,6 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:textAppearance="@style/TextAppearance.Control.Title"
-    android:textColor="?android:attr/colorPrimary"
     android:layout_marginStart="12dp"
     android:layout_marginEnd="2dp"
     android:layout_marginTop="8dp"
diff --git a/packages/SystemUI/res/layout/global_actions_grid_v2.xml b/packages/SystemUI/res/layout/global_actions_grid_v2.xml
index 4fe21e5..ff0c6a7 100644
--- a/packages/SystemUI/res/layout/global_actions_grid_v2.xml
+++ b/packages/SystemUI/res/layout/global_actions_grid_v2.xml
@@ -63,8 +63,6 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
-        android:layout_marginRight="@dimen/global_actions_grid_horizontal_padding"
-        android:layout_marginLeft="@dimen/global_actions_grid_horizontal_padding"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toBottomOf="@id/global_actions_panel"
diff --git a/packages/SystemUI/res/layout/people_strip.xml b/packages/SystemUI/res/layout/people_strip.xml
index c2dbaca..f5ed103 100644
--- a/packages/SystemUI/res/layout/people_strip.xml
+++ b/packages/SystemUI/res/layout/people_strip.xml
@@ -31,13 +31,16 @@
         android:layout_height="match_parent"
         android:layout_marginEnd="8dp"
         android:gravity="bottom"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:forceHasOverlappingRendering="false"
+        android:clipChildren="false">
 
         <FrameLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:gravity="start|center_vertical"
-            android:layout_weight="1">
+            android:layout_weight="1"
+            android:forceHasOverlappingRendering="false">
 
             <TextView
                 style="@style/TextAppearance.NotificationSectionHeaderButton"
@@ -53,6 +56,7 @@
             android:layout_height="48dp"
             android:padding="8dp"
             android:scaleType="fitCenter"
+            android:forceHasOverlappingRendering="false"
         />
 
         <ImageView
@@ -60,6 +64,7 @@
             android:layout_height="48dp"
             android:padding="8dp"
             android:scaleType="fitCenter"
+            android:forceHasOverlappingRendering="false"
         />
 
         <ImageView
@@ -67,6 +72,7 @@
             android:layout_height="48dp"
             android:padding="8dp"
             android:scaleType="fitCenter"
+            android:forceHasOverlappingRendering="false"
         />
 
         <ImageView
@@ -74,6 +80,7 @@
             android:layout_height="48dp"
             android:padding="8dp"
             android:scaleType="fitCenter"
+            android:forceHasOverlappingRendering="false"
         />
 
         <ImageView
@@ -81,6 +88,7 @@
             android:layout_height="48dp"
             android:padding="8dp"
             android:scaleType="fitCenter"
+            android:forceHasOverlappingRendering="false"
         />
 
     </LinearLayout>
diff --git a/packages/SystemUI/res/layout/qs_paged_tile_layout.xml b/packages/SystemUI/res/layout/qs_paged_tile_layout.xml
index 8878786..46a7cf6 100644
--- a/packages/SystemUI/res/layout/qs_paged_tile_layout.xml
+++ b/packages/SystemUI/res/layout/qs_paged_tile_layout.xml
@@ -17,6 +17,7 @@
 
 <com.android.systemui.qs.PagedTileLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/qs_pager"
     android:layout_width="match_parent"
     android:layout_height="0dp"
     android:layout_weight="1"
diff --git a/packages/SystemUI/res/layout/status_bar_notification_section_header.xml b/packages/SystemUI/res/layout/status_bar_notification_section_header.xml
index 0043d7a..44c409e 100644
--- a/packages/SystemUI/res/layout/status_bar_notification_section_header.xml
+++ b/packages/SystemUI/res/layout/status_bar_notification_section_header.xml
@@ -32,6 +32,8 @@
         android:layout_gravity="bottom"
         android:gravity="center_vertical"
         android:orientation="horizontal"
+        android:forceHasOverlappingRendering="false"
+        android:clipChildren="false"
         >
         <include layout="@layout/status_bar_notification_section_header_contents"/>
     </LinearLayout>
diff --git a/packages/SystemUI/res/layout/status_bar_notification_section_header_contents.xml b/packages/SystemUI/res/layout/status_bar_notification_section_header_contents.xml
index df4b047..3b9c44d 100644
--- a/packages/SystemUI/res/layout/status_bar_notification_section_header_contents.xml
+++ b/packages/SystemUI/res/layout/status_bar_notification_section_header_contents.xml
@@ -27,6 +27,7 @@
             android:id="@+id/header_label"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:forceHasOverlappingRendering="false"
             android:text="@string/notification_section_header_gentle"
         />
 
@@ -41,5 +42,6 @@
         android:tint="?attr/wallpaperTextColor"
         android:tintMode="src_in"
         android:visibility="gone"
+        android:forceHasOverlappingRendering="false"
     />
 </merge>
diff --git a/packages/SystemUI/res/layout/system_icons.xml b/packages/SystemUI/res/layout/system_icons.xml
index f3b72bf..6fb5590 100644
--- a/packages/SystemUI/res/layout/system_icons.xml
+++ b/packages/SystemUI/res/layout/system_icons.xml
@@ -26,6 +26,7 @@
         android:layout_weight="1"
         android:layout_height="match_parent"
         android:paddingEnd="@dimen/signal_cluster_battery_padding"
+        android:paddingTop="@dimen/status_bar_padding_top"
         android:gravity="center_vertical"
         android:orientation="horizontal"/>
 
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 8ee7ee0..02104f5 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Laat toe"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-ontfouting word nie toegelaat nie"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Die gebruiker wat tans by hierdie toestel aangemeld is, kan nie USB-ontfouting aanskakel nie. Skakel na die primêre gebruiker toe oor om hierdie kenmerk te gebruik."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Laat draadlose ontfouting op hierdie netwerk toe?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Netwerknaam (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi-adres (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Laat altyd toe op hierdie netwerk"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Laat toe"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Draadlose ontfouting word nie toegelaat nie"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Die gebruiker wat tans by hierdie toestel aangemeld is, kan nie draadlose ontfouting aanskakel nie. Skakel na die primêre gebruiker toe oor om hierdie kenmerk te gebruik."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-poort is gedeaktiveer"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Die USB-poort is gedeaktiveer om jou toestel teen vloeistowwe en vuilgoed te beskerm en dit sal nie enige bykomstighede bespeur nie.\n\nJy sal ingelig word wanneer die USB-poort weer gebruik kan word."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-poort is geaktiveer om laaiers en bykomstighede te bespeur"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Bestuur"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Geskiedenis"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Stil kennisgewings"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Opletkennisgewings"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Gesprekke"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Vee alle stil kennisgewings uit"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Kennisgewings onderbreek deur Moenie Steur Nie"</string>
@@ -553,7 +560,7 @@
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"Toestel sal gesluit bly totdat jy dit handmatig ontsluit"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"Kry kennisgewings vinniger"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"Sien hulle voordat jy ontsluit"</string>
-    <string name="hidden_notifications_cancel" msgid="4805370226181001278">"Nee dankie"</string>
+    <string name="hidden_notifications_cancel" msgid="4805370226181001278">"Nee, dankie"</string>
     <string name="hidden_notifications_setup" msgid="2064795578526982467">"Stel op"</string>
     <string name="zen_mode_and_condition" msgid="5043165189511223718">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
     <string name="volume_zen_end_now" msgid="5901885672973736563">"Skakel nou af"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Help jou om te fokus sonder klank of vibrasie."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Kry jou aandag met klank of vibrasie."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Hou jou aandag met \'n swewende kortpad na hierdie inhoud toe."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Geen onlangse borrels nie"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Onlangse borrels en borrels wat toegemaak is, sal hier verskyn."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hierdie kennisgewings kan nie gewysig word nie."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Hierdie groep kennisgewings kan nie hier opgestel word nie"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Instaanbediener-kennisgewing"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Beweeg na links onder"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Beweeg na regs onder"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Maak toe"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Stelselnavigasie is opgedateer. Gaan na Instellings toe om veranderinge te maak."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gaan na Instellings toe om stelselnavigasie op te dateer"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Bystandmodus"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Vinnige kontroles"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Voeg kontroles by"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Kies \'n program vanwaar jy kontroles kan byvoeg"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> huidige gunstelinge.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> huidige gunsteling.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontroles bygevoeg.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kontrole bygevoeg.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Kies kontroles vir kitstoegang"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Gunstelinge"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Almal"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Die lys met alle kontroles kon nie gelaai word nie."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Ander"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index 7292020..22df519 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"ፍቀድ"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"የዩኤስቢ እርማት አይፈቀድም"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"አሁን ወደዚህ መሣሪያ የገባው ተጠቃሚ የዩኤስቢ እርማትን ማብራት አይችልም። ይህን ባህሪ ለመጠቀም ወደ ዋና ተጠቃሚ ይቀይሩ።"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"በዚህ አውታረ መረብ ላይ ገመድ-አልባ ማረም ይፈቀድ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"የአውታረ መረብ ስም (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nየWi‑Fi አድራሻ (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ሁልጊዜ በዚህ አውታረ መረብ ላይ ፍቀድ"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"ፍቀድ"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ገመድ-አልባ ማረም አይፈቀድም"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"በአሁኑ ጊዜ በመለያ ወደዚህ መሣሪያ የገባው ተጠቃሚ የገመድ-አልባ ማረምን ማብራት አይችልም። ይህን ባህሪ ለመጠቀም ወደ ዋና ተጠቃሚ ይቀይሩ።"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"የዩኤስቢ ወደብ ተሰናክሏል"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"መሣሪያዎን ከፈሳሽ ወይም ፍርስራሽ ለመጠበቅ ሲባል የዩኤስቢ ወደቡ ተሰናክሏል፣ እና ማናቸውም ተቀጥላዎችን አያገኝም።\n\nየዩኤስቢ ወደቡን እንደገና መጠቀም ችግር በማይኖረው ጊዜ ማሳወቂያ ይደርሰዎታል።"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ኃይል መሙያዎችን እና ተጨማሪ መሣሪያዎችን ፈልጎ ለማግኘት የነቃ የዩኤስቢ ወደብ"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"ያቀናብሩ"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ታሪክ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ጸጥ ያሉ ማሳወቂያዎች"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"የማንቂያ ማሳወቂያዎች"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"ውይይቶች"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ሁሉንም ጸጥ ያሉ ማሳወቂያዎችን ያጽዱ"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"ማሳወቂያዎች በአትረብሽ ባሉበት ቆመዋል"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ያለ ድምፅ ወይም ንዝረት እርስዎ ትኩረት እንዲያደርጉ ያግዛል።"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ከድምፅ ወይም ንዝረት ጋር የእርስዎን ትኩረት ይስባል።"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ለዚህ ይዞታ ከተንሳፋፊ አቋራጭ ጋር የእርስዎን ትኩረት ያቆያል።"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ምንም የቅርብ ጊዜ አረፋዎች የሉም"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"የቅርብ ጊዜ አረፋዎች እና የተሰናበቱ አረፋዎች እዚህ ይመጣሉ።"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"እነዚህ ማሳወቂያዎች ሊሻሻሉ አይችሉም።"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"የማሳወቂያዎች ይህ ቡድን እዚህ ላይ ሊዋቀር አይችልም"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ተኪ ማሳወቂያ"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"የግርጌውን ግራ አንቀሳቅስ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ታችኛውን ቀኝ ያንቀሳቅሱ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"አሰናብት"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"የስርዓት ዳሰሳ ተዘምኗል። ለውጦችን ለማድረግ ወደ ቅንብሮች ይሂዱ።"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"የስርዓት ዳሰሳን ለማዘመን ወደ ቅንብሮች ይሂዱ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ተጠባባቂ"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ፈጣን መቆጣጠሪያዎች"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"መቆጣጠሪያዎችን ያክሉ"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"መቆጣጠሪያዎችን ከየት እንደሚታከሉ መተግበሪያ ይምረጡ"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> የአሁን ተወዳጆች።</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> የአሁን ተወዳጆች።</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> ቁጥጥሮች ታክለዋል።</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ቁጥጥሮች ታክለዋል።</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"መቆጣጠሪያዎች"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ለፈጣን መዳረሻ መቆጣጠሪያዎችን ይምረጡ"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ተወዳጆች"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ሁሉም"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"የሁሉም መቆጣጠሪያዎች ዝርዝር ሊጫን አልተቻለም።"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ሌላ"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 04ba45b..ee0c65f 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -35,7 +35,7 @@
     <string name="battery_low_why" msgid="2056750982959359863">"الإعدادات"</string>
     <string name="battery_saver_confirmation_title" msgid="1234998463717398453">"هل تريد تفعيل ميزة توفير شحن البطارية؟"</string>
     <string name="battery_saver_confirmation_title_generic" msgid="2299231884234959849">"لمحة حول ميزة \"توفير شحن البطارية\""</string>
-    <string name="battery_saver_confirmation_ok" msgid="5042136476802816494">"تشغيل"</string>
+    <string name="battery_saver_confirmation_ok" msgid="5042136476802816494">"تفعيل"</string>
     <string name="battery_saver_start_action" msgid="4553256017945469937">"هل تريد تفعيل ميزة توفير شحن البطارية؟"</string>
     <string name="status_bar_settings_settings_button" msgid="534331565185171556">"الإعدادات"</string>
     <string name="status_bar_settings_wifi_button" msgid="7243072479837270946">"Wi-Fi"</string>
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"سماح"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"‏لا يُسمح بتصحيح أخطاء USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"‏لا يمكن للمستخدم الذي يسجّل دخوله حاليًا إلى هذا الجهاز تشغيل تصحيح أخطاء USB. لاستخدام هذه الميزة، يمكنك التبديل إلى المستخدم الأساسي."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"‏هل تريد السماح باستخدام ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\" على هذه الشبكة؟"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"‏اسم الشبكة (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nعنوان شبكة Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"السماح باستخدام هذه الميزة على هذه الشبكة دائمًا"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"سماح"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"‏غير مسموح باستخدام ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\""</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"‏لا يمكن للمستخدم المسجِّل دخوله حاليًا على هذا الجهاز تفعيل ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\". لاستخدام هذه الميزة، يمكنك التبديل إلى المستخدم الأساسي."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"‏تمّ إيقاف منفذ USB"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"‏لحماية جهازك من السوائل أو الشوائب، سيتمّ إيقاف منفذ USB ولن يتم رصد أيّ ملحقات.\n\nوسيتمّ إعلامك عندما يُسمح باستخدام منفذ USB مرة أخرى."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"‏تم تفعيل منفذ USB لاكتشاف أجهزة الشحن والملحقات."</string>
@@ -80,31 +86,19 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"جرّب أخذ لقطة الشاشة مرة أخرى"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"يتعذر حفظ لقطة الشاشة لأن مساحة التخزين المتاحة محدودة."</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"يحظر التطبيق أو تحظر مؤسستك التقاط لقطات شاشة"</string>
-    <!-- no translation found for screenrecord_name (2596401223859996572) -->
-    <skip />
+    <string name="screenrecord_name" msgid="2596401223859996572">"مسجّل الشاشة"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"إشعار مستمر لجلسة تسجيل شاشة"</string>
-    <!-- no translation found for screenrecord_start_label (1750350278888217473) -->
-    <skip />
-    <!-- no translation found for screenrecord_description (1123231719680353736) -->
-    <skip />
-    <!-- no translation found for screenrecord_audio_label (6183558856175159629) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_label (9016927171280567791) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_description (4922694220572186193) -->
-    <skip />
-    <!-- no translation found for screenrecord_mic_label (2111264835791332350) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_and_mic_label (1831323771978646841) -->
-    <skip />
-    <!-- no translation found for screenrecord_start (330991441575775004) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_only (4459670242451527727) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_and_audio (5351133763125180920) -->
-    <skip />
-    <!-- no translation found for screenrecord_taps_label (1595690528298857649) -->
-    <skip />
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"هل تريد بدء التسجيل؟"</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"‏أثناء التسجيل، يمكن أن يسجّل نظام Android أي معلومات حساسة مرئية على شاشتك أو يتم تشغيلها على جهازك. ويشمل ذلك كلمات المرور ومعلومات الدفع والصور والرسائل والمقاطع الصوتية."</string>
+    <string name="screenrecord_audio_label" msgid="6183558856175159629">"تسجيل الصوت"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"صوت الجهاز"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"الصوت من جهازك، مثلاً الموسيقى والمكالمات ونغمات الرنين"</string>
+    <string name="screenrecord_mic_label" msgid="2111264835791332350">"الميكروفون"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"صوت الجهاز والميكروفون"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"بدء"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"جارٍ تسجيل الشاشة"</string>
+    <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"جارٍ تسجيل الشاشة والصوت"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"إظهار اللمسات على الشاشة"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"انقر لإيقاف التسجيل"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"إيقاف"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"إيقاف مؤقت"</string>
@@ -117,8 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"تمّ حذف تسجيل الشاشة."</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"حدث خطأ أثناء حذف تسجيل الشاشة."</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"تعذّر الحصول على أذونات."</string>
-    <!-- no translation found for screenrecord_start_error (2200660692479682368) -->
-    <skip />
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"حدث خطأ في بدء تسجيل الشاشة"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"‏خيارات نقل الملفات عبر USB"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"‏تثبيت كمشغل وسائط (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"‏تثبيت ككاميرا (PTP)"</string>
@@ -218,13 +211,13 @@
     <string name="accessibility_data_connection_wifi" msgid="4422160347472742434">"Wi-Fi"</string>
     <string name="accessibility_no_sim" msgid="1140839832913084973">"‏ليست هناك شريحة SIM."</string>
     <string name="accessibility_cell_data" msgid="172950885786007392">"بيانات الجوّال"</string>
-    <string name="accessibility_cell_data_on" msgid="691666434519443162">"تشغيل بيانات الجوال"</string>
+    <string name="accessibility_cell_data_on" msgid="691666434519443162">"تفعيل بيانات الجوال"</string>
     <string name="cell_data_off_content_description" msgid="9165555931499878044">"تم إيقاف بيانات الجوال"</string>
     <string name="not_default_data_content_description" msgid="6757881730711522517">"لم يتم الضبط على استخدام البيانات"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"إيقاف"</string>
     <string name="accessibility_bluetooth_tether" msgid="6327291292208790599">"التوصيل عبر البلوتوث"</string>
     <string name="accessibility_airplane_mode" msgid="1899529214045998505">"وضع الطائرة."</string>
-    <string name="accessibility_vpn_on" msgid="8037549696057288731">"‏الشبكة الافتراضية الخاصة (VPN) قيد التشغيل."</string>
+    <string name="accessibility_vpn_on" msgid="8037549696057288731">"‏الشبكة الافتراضية الخاصة (VPN) قيد التفعيل."</string>
     <string name="accessibility_no_sims" msgid="5711270400476534667">"‏ليس هناك شريحة SIM."</string>
     <string name="carrier_network_change_mode" msgid="5174141476991149918">"جارٍ تغيير شبكة مشغِّل شبكة الجوّال."</string>
     <string name="accessibility_battery_details" msgid="6184390274150865789">"فتح تفاصيل البطارية"</string>
@@ -254,13 +247,13 @@
     <string name="accessibility_desc_close" msgid="8293708213442107755">"إغلاق"</string>
     <string name="accessibility_quick_settings_wifi" msgid="167707325133803052">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi_changed_off" msgid="2230487165558877262">"‏تم إيقاف Wifi."</string>
-    <string name="accessibility_quick_settings_wifi_changed_on" msgid="1490362586009027611">"‏تم تشغيل Wifi."</string>
+    <string name="accessibility_quick_settings_wifi_changed_on" msgid="1490362586009027611">"‏تم تفعيل Wifi."</string>
     <string name="accessibility_quick_settings_mobile" msgid="1817825313718492906">"الجوّال <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
     <string name="accessibility_quick_settings_battery" msgid="533594896310663853">"البطارية <xliff:g id="STATE">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_airplane_off" msgid="1275658769368793228">"إيقاف وضع الطائرة."</string>
-    <string name="accessibility_quick_settings_airplane_on" msgid="8106176561295294255">"تشغيل وضع الطائرة."</string>
+    <string name="accessibility_quick_settings_airplane_on" msgid="8106176561295294255">"تفعيل وضع الطائرة."</string>
     <string name="accessibility_quick_settings_airplane_changed_off" msgid="8880183481476943754">"تم إيقاف وضع الطائرة."</string>
-    <string name="accessibility_quick_settings_airplane_changed_on" msgid="6327378061894076288">"تم تشغيل وضع الطائرة."</string>
+    <string name="accessibility_quick_settings_airplane_changed_on" msgid="6327378061894076288">"تم تفعيل وضع الطائرة."</string>
     <string name="accessibility_quick_settings_dnd_none_on" msgid="3235552940146035383">"كتم الصوت تمامًا"</string>
     <string name="accessibility_quick_settings_dnd_alarms_on" msgid="3375848309132140014">"المنبِّهات فقط"</string>
     <string name="accessibility_quick_settings_dnd" msgid="2415967452264206047">"عدم الإزعاج"</string>
@@ -268,11 +261,11 @@
     <string name="accessibility_quick_settings_dnd_changed_on" msgid="186315911607486129">"تم تفعيل \"عدم الإزعاج\"."</string>
     <string name="accessibility_quick_settings_bluetooth" msgid="8250942386687551283">"البلوتوث."</string>
     <string name="accessibility_quick_settings_bluetooth_off" msgid="3795983516942423240">"إيقاف البلوتوث."</string>
-    <string name="accessibility_quick_settings_bluetooth_on" msgid="3819082137684078013">"تشغيل البلوتوث."</string>
+    <string name="accessibility_quick_settings_bluetooth_on" msgid="3819082137684078013">"تفعيل البلوتوث."</string>
     <string name="accessibility_quick_settings_bluetooth_connecting" msgid="7362294657419149294">"جارٍ توصيل البلوتوث."</string>
     <string name="accessibility_quick_settings_bluetooth_connected" msgid="5237625393869747261">"تم توصيل البلوتوث."</string>
     <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="3344226652293797283">"تم إيقاف البلوتوث."</string>
-    <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="1263282011749437549">"تم تشغيل البلوتوث."</string>
+    <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="1263282011749437549">"تم تفعيل البلوتوث."</string>
     <string name="accessibility_quick_settings_location_off" msgid="6122523378294740598">"إيقاف الإبلاغ عن الموقع."</string>
     <string name="accessibility_quick_settings_location_on" msgid="6869947200325467243">"تفعيل ميزة الإبلاغ عن الموقع الجغرافي."</string>
     <string name="accessibility_quick_settings_location_changed_off" msgid="5132776369388699133">"تم إيقاف الإبلاغ عن الموقع."</string>
@@ -283,18 +276,18 @@
     <string name="accessibility_quick_settings_less_time" msgid="9110364286464977870">"وقت أقل."</string>
     <string name="accessibility_quick_settings_flashlight_off" msgid="7606563260714825190">"إيقاف الفلاش."</string>
     <string name="accessibility_quick_settings_flashlight_unavailable" msgid="7458591827288347635">"تطبيق المصباح اليدوي غير متاح."</string>
-    <string name="accessibility_quick_settings_flashlight_on" msgid="3785616827729850766">"تشغيل الفلاش."</string>
+    <string name="accessibility_quick_settings_flashlight_on" msgid="3785616827729850766">"تفعيل الفلاش."</string>
     <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3782375441381402599">"تم إيقاف الفلاش."</string>
-    <string name="accessibility_quick_settings_flashlight_changed_on" msgid="4747870681508334200">"تم تشغيل الفلاش."</string>
+    <string name="accessibility_quick_settings_flashlight_changed_on" msgid="4747870681508334200">"تم تفعيل الفلاش."</string>
     <string name="accessibility_quick_settings_color_inversion_changed_off" msgid="7548045840282925393">"تم إيقاف انعكاس اللون."</string>
-    <string name="accessibility_quick_settings_color_inversion_changed_on" msgid="4711141858364404084">"تم تشغيل انعكاس اللون."</string>
+    <string name="accessibility_quick_settings_color_inversion_changed_on" msgid="4711141858364404084">"تم تفعيل انعكاس اللون."</string>
     <string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"تم إيقاف نقطة اتصال الجوّال."</string>
-    <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"تم تشغيل نقطة اتصال الجوّال."</string>
+    <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"تم تفعيل نقطة اتصال الجوّال."</string>
     <string name="accessibility_casting_turned_off" msgid="1387906158563374962">"توقف إرسال الشاشة."</string>
     <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"وضع العمل معطَّل."</string>
     <string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"وضع العمل قيد التشغيل."</string>
     <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"تم إيقاف وضع العمل."</string>
-    <string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"تم تشغيل وضع العمل."</string>
+    <string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"تم تفعيل وضع العمل."</string>
     <string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"تم إيقاف توفير البيانات."</string>
     <string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"تم تفعيل توفير البيانات."</string>
     <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="7608378211873807353">"تم إيقاف \"خصوصية أجهزة الاستشعار\"."</string>
@@ -370,7 +363,7 @@
     <string name="quick_settings_wifi_not_connected" msgid="4071097522427039160">"ليست متصلة"</string>
     <string name="quick_settings_wifi_no_network" msgid="6003178398713839313">"لا تتوفر شبكة"</string>
     <string name="quick_settings_wifi_off_label" msgid="4003379736176547594">"‏إيقاف Wi-Fi"</string>
-    <string name="quick_settings_wifi_on_label" msgid="2489928193654318511">"‏تم تشغيل Wi-Fi"</string>
+    <string name="quick_settings_wifi_on_label" msgid="2489928193654318511">"‏تم تفعيل Wi-Fi"</string>
     <string name="quick_settings_wifi_detail_empty_text" msgid="483130889414601732">"‏لا تتوفر أي شبكة Wi-Fi"</string>
     <string name="quick_settings_wifi_secondary_label_transient" msgid="7501659015509357887">"جارٍ التفعيل…"</string>
     <string name="quick_settings_cast_title" msgid="2279220930629235211">"بث الشاشة"</string>
@@ -488,7 +481,7 @@
     <string name="user_logout_notification_text" msgid="7441286737342997991">"خروج المستخدم الحالي"</string>
     <string name="user_logout_notification_action" msgid="7974458760719361881">"خروج المستخدم"</string>
     <string name="user_add_user_title" msgid="4172327541504825032">"هل تريد إضافة مستخدم جديد؟"</string>
-    <string name="user_add_user_message_short" msgid="2599370307878014791">"عند إضافة مستخدم جديد، عليه إعداد مساحته.\n\nويُمكن لأي مستخدم إعادة تحميل التطبيقات لجميع المستخدمين الآخرين."</string>
+    <string name="user_add_user_message_short" msgid="2599370307878014791">"عند إضافة مستخدم جديد، عليه إعداد مساحته.\n\nويُمكن لأي مستخدم تحديث التطبيقات لجميع المستخدمين الآخرين."</string>
     <string name="user_limit_reached_title" msgid="2429229448830346057">"تم الوصول إلى أقصى عدد للمستخدمين"</string>
     <plurals name="user_limit_reached_message" formatted="false" msgid="2573535787802908398">
       <item quantity="zero">يمكنك إضافة ما يصل إلى <xliff:g id="COUNT">%d</xliff:g> مستخدم.</item>
@@ -511,9 +504,9 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"عدم الإظهار مرة أخرى"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"محو الكل"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"إدارة"</string>
-    <!-- no translation found for manage_notifications_history_text (57055985396576230) -->
-    <skip />
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"السجلّ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"الإشعارات الصامتة"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"إشعارات التنبيه"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"المحادثات"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"محو جميع الإشعارات الصامتة"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"تم إيقاف الإشعارات مؤقتًا وفقًا لإعداد \"الرجاء عدم الإزعاج\""</string>
@@ -675,9 +668,9 @@
     <string name="qs_rearrange" msgid="484816665478662911">"إعادة ترتيب الإعدادات السريعة"</string>
     <string name="show_brightness" msgid="6700267491672470007">"عرض السطوع في الإعدادات السريعة"</string>
     <string name="experimental" msgid="3549865454812314826">"إعدادات تجريبية"</string>
-    <string name="enable_bluetooth_title" msgid="866883307336662596">"تشغيل البلوتوث؟"</string>
-    <string name="enable_bluetooth_message" msgid="6740938333772779717">"لتوصيل لوحة المفاتيح بالجهاز اللوحي، يلزمك تشغيل بلوتوث أولاً."</string>
-    <string name="enable_bluetooth_confirmation_ok" msgid="2866408183324184876">"تشغيل"</string>
+    <string name="enable_bluetooth_title" msgid="866883307336662596">"تفعيل البلوتوث؟"</string>
+    <string name="enable_bluetooth_message" msgid="6740938333772779717">"لتوصيل لوحة المفاتيح بالجهاز اللوحي، يلزمك تفعيل بلوتوث أولاً."</string>
+    <string name="enable_bluetooth_confirmation_ok" msgid="2866408183324184876">"تفعيل"</string>
     <string name="show_silently" msgid="5629369640872236299">"عرض الإشعارات بدون تنبيه صوتي"</string>
     <string name="block" msgid="188483833983476566">"حظر كل الإشعارات"</string>
     <string name="do_not_silence" msgid="4982217934250511227">"عدم كتم التنبيه الصوتي"</string>
@@ -712,10 +705,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"يساعدك هذا الإشعار على التركيز بدون صوت أو اهتزاز."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"يلفت هذا الإشعار انتباهك باستخدام الصوت والاهتزاز."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"يلفِت هذا الإشعار انتباهك لهذا المحتوى باستخدام اختصار عائم."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ليس هناك فقاعات حديثة"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ستظهر هنا أحدث الفقاعات والفقاعات التي تم إغلاقها."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"يتعذّر تعديل هذه الإشعارات."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"يتعذّر ضبط مجموعة الإشعارات هذه هنا."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"إشعار مستند إلى خادم وكيل"</string>
@@ -738,25 +729,18 @@
     <string name="notification_done" msgid="6215117625922713976">"تم"</string>
     <string name="inline_undo" msgid="9026953267645116526">"تراجع"</string>
     <string name="demote" msgid="6225813324237153980">"تحويل الإشعار من محادثة إلى إشعار عادي"</string>
-    <!-- no translation found for notification_conversation_favorite (1905240206975921907) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unfavorite (181383708304763807) -->
-    <skip />
-    <!-- no translation found for notification_conversation_mute (268951550222925548) -->
-    <skip />
+    <string name="notification_conversation_favorite" msgid="1905240206975921907">"محادثة مهمة"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"ليست محادثة مهمة."</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"تم كتم الصوت"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"تنبيه"</string>
-    <!-- no translation found for notification_conversation_bubble (2242180995373949022) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unbubble (6908427185031099868) -->
-    <skip />
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"إظهار فقاعة تفسيرية"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"إزالة الفقاعات التفسيرية"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"إضافة إلى الشاشة الرئيسية"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"عناصر التحكم في الإشعارات"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"خيارات تأجيل الإشعارات"</string>
-    <!-- no translation found for notification_menu_snooze_action (5415729610393475019) -->
-    <skip />
-    <!-- no translation found for notification_menu_settings_action (7085494017202764285) -->
-    <skip />
+    <string name="notification_menu_snooze_action" msgid="5415729610393475019">"تذكيري"</string>
+    <string name="notification_menu_settings_action" msgid="7085494017202764285">"الإعدادات"</string>
     <string name="snooze_undo" msgid="60890935148417175">"تراجع"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"تم تأجيل الإشعار لمدة <xliff:g id="TIME_AMOUNT">%1$s</xliff:g>"</string>
     <plurals name="snoozeHourOptions" formatted="false" msgid="2066838694120718170">
@@ -836,8 +820,7 @@
     <string name="accessibility_data_saver_off" msgid="58339669022107171">"تم إيقاف توفير البيانات"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"مفعّل"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"إيقاف"</string>
-    <!-- no translation found for tile_unavailable (3095879009136616920) -->
-    <skip />
+    <string name="tile_unavailable" msgid="3095879009136616920">"غير متوفّر"</string>
     <string name="nav_bar" msgid="4642708685386136807">"شريط التنقل"</string>
     <string name="nav_bar_layout" msgid="4716392484772899544">"التنسيق"</string>
     <string name="left_nav_bar_button_type" msgid="2634852842345192790">"نوع زر اليسار الإضافي"</string>
@@ -971,9 +954,9 @@
     <string name="wifi_is_off" msgid="5389597396308001471">"‏تم إيقاف شبكة Wi-Fi"</string>
     <string name="bt_is_off" msgid="7436344904889461591">"تم إيقاف البلوتوث."</string>
     <string name="dnd_is_off" msgid="3185706903793094463">"تم إيقاف وضع \"عدم الإزعاج\""</string>
-    <string name="qs_dnd_prompt_auto_rule" msgid="3535469468310002616">"تم تشغيل وضع \"عدم الإزعاج\" بواسطة قاعدة تلقائية (<xliff:g id="ID_1">%s</xliff:g>)."</string>
-    <string name="qs_dnd_prompt_app" msgid="4027984447935396820">"تم تشغيل وضع \"عدم الإزعاج\" بواسطة تطبيق (<xliff:g id="ID_1">%s</xliff:g>)."</string>
-    <string name="qs_dnd_prompt_auto_rule_app" msgid="1841469944118486580">"تم تشغيل وضع \"عدم الإزعاج\" بواسطة قاعدة تلقائية أو تطبيق."</string>
+    <string name="qs_dnd_prompt_auto_rule" msgid="3535469468310002616">"تم تفعيل وضع \"عدم الإزعاج\" بواسطة قاعدة تلقائية (<xliff:g id="ID_1">%s</xliff:g>)."</string>
+    <string name="qs_dnd_prompt_app" msgid="4027984447935396820">"تم تفعيل وضع \"عدم الإزعاج\" بواسطة تطبيق (<xliff:g id="ID_1">%s</xliff:g>)."</string>
+    <string name="qs_dnd_prompt_auto_rule_app" msgid="1841469944118486580">"تم تفعيل وضع \"عدم الإزعاج\" بواسطة قاعدة تلقائية أو تطبيق."</string>
     <string name="qs_dnd_until" msgid="7844269319043747955">"حتى <xliff:g id="ID_1">%s</xliff:g>"</string>
     <string name="qs_dnd_keep" msgid="3829697305432866434">"الإبقاء على الإعدادات"</string>
     <string name="qs_dnd_replace" msgid="7712119051407052689">"استبدال"</string>
@@ -1016,7 +999,13 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"نقل إلى أسفل يمين الشاشة"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"نقل إلى أسفل اليسار"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"تجاهل"</string>
-    <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"تم إعادة تحميل التنقل داخل النظام. لإجراء التغييرات، يُرجى الانتقال إلى \"الإعدادات\"."</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
+    <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"تم تحديث التنقل داخل النظام. لإجراء التغييرات، يُرجى الانتقال إلى \"الإعدادات\"."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"الانتقال إلى \"الإعدادات\" لتعديل التنقل داخل النظام"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"وضع الاستعداد"</string>
     <string name="magnification_overlay_title" msgid="6584179429612427958">"نافذة تراكب التكبير"</string>
@@ -1025,20 +1014,18 @@
     <string name="quick_controls_title" msgid="525285759614231333">"عناصر التحكّم السريعة"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"إضافة عناصر تحكّم"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"اختيار تطبيق لإضافة عناصر التحكّم منه"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="zero"><xliff:g id="NUMBER_1">%s</xliff:g> عنصر مفضّل حالي</item>
-      <item quantity="two">عنصران مفضّلان (<xliff:g id="NUMBER_1">%s</xliff:g>) حاليان</item>
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> عناصر مفضّلة حالية</item>
-      <item quantity="many"><xliff:g id="NUMBER_1">%s</xliff:g> عنصرًا مفضّلاً حاليًا</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> عنصر مفضّل حالي</item>
-      <item quantity="one">عنصر مفضّل (<xliff:g id="NUMBER_0">%s</xliff:g>) واحد حالي</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="zero">تمت إضافة <xliff:g id="NUMBER_1">%s</xliff:g> عنصر تحكّم.</item>
+      <item quantity="two">تمت إضافة عنصرَي تحكّم (<xliff:g id="NUMBER_1">%s</xliff:g>).</item>
+      <item quantity="few">تمت إضافة <xliff:g id="NUMBER_1">%s</xliff:g> عناصر تحكّم.</item>
+      <item quantity="many">تمت إضافة <xliff:g id="NUMBER_1">%s</xliff:g> عنصر تحكّم.</item>
+      <item quantity="other">تمت إضافة <xliff:g id="NUMBER_1">%s</xliff:g> عنصر تحكّم.</item>
+      <item quantity="one">تمت إضافة عنصر تحكّم واحد (<xliff:g id="NUMBER_0">%s</xliff:g>).</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"عناصر التحكّم"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"اختيار عناصر التحكّم للوصول السريع"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"المفضّلة"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"الكل"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"تعذّر تحميل قائمة كل عناصر التحكّم."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"غير ذلك"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 76917bc..a1a6ae9 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"অনুমতি দিয়ক"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"ইউএছবি ডিবাগিঙৰ অনুমতি নাই"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"এই ডিভাইচটোত বর্তমান ছাইন ইন হৈ থকা ব্যৱহাৰকাৰীজনে ইউএছবি ডিবাগিং অন কৰিব নোৱাৰে। এই সুবিধাটো ব্যৱহাৰ কৰিবলৈ হ\'লে মুখ্য ব্যৱহাৰকাৰী হিচাপে ছাইন ইন কৰক।"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"এই নেটৱৰ্কত ৱায়াৰলেছ ডিবাগিঙৰ অনুমতি দিবনে?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"নেটৱৰ্কৰ নাম (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nৱাই-ফাইৰ ঠিকনা (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"এই নেটৱৰ্কত সদায় অনুমতি দিয়ক"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"অনুমতি দিয়ক"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ৱায়াৰলেছ ডিবাগিঙৰ অনুমতি নাই"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"এই ডিভাইচটোত বর্তমান ছাইন ইন হৈ থকা ব্যৱহাৰকাৰীজনে ৱায়াৰলেছ ডিবাগিং অন কৰিব নোৱাৰে। এই সুবিধাটো ব্যৱহাৰ কৰিবলৈ হ’লে প্ৰাথমিক ব্যৱহাৰকাৰী হিচাপে ছাইন ইন কৰক।"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"ইউএছবি প’ৰ্ট অক্ষম কৰা হ’ল"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"আপোনাৰ ডিভাইচটো তৰল বা ধূলি-মাকতিৰ পৰা ৰক্ষা কৰিবলৈ ইউএছবি প’ৰ্টটো অক্ষম কৰি ৰখা হৈছে ফলত ই কোনো আনুষংগিক সামগ্ৰী ধৰা পেলাব নোৱাৰে।\n\nযেতিয়া ইউএছবি প’ৰ্টটো নিৰাপদভাৱে ব্যৱহাৰ কৰিব পৰা হ’ব তেতিয়া আপোনাক জনোৱা হ’ব।"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"চাৰ্জাৰ আৰু আনুষংগিক সামগ্ৰী চিনাক্ত কৰিবলৈ USB প’ৰ্ট সক্ষম কৰা হ’ল"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"পৰিচালনা"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ইতিহাস"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"নীৰৱ জাননীসমূহ"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"সতৰ্কতামূলক জাননীসমূহ"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"বাৰ্তালাপসমূহ"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"সকলো নীৰৱ জাননী মচক"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"অসুবিধা নিদিব-ই জাননী পজ কৰিছে"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"কোনো ধ্বনি অথবা কম্পন অবিহনে আপোনাক মনোযোগ দিয়াত সহায় কৰে।"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ধ্বনি অথবা কম্পনৰ জৰিয়তে আপোনাৰ মনোযোগ আকৰ্ষণ কৰে।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"উপঙি থকা এটা শ্বৰ্টকাটৰ জৰিয়তে এই সমলখিনিৰ প্ৰতি আপোনাক মনোযোগী কৰি ৰাখে।"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"কোনো শেহতীয়া বাবল নাই"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"শেহতীয়া বাবলসমূহ আৰু অগ্ৰাহ্য কৰা বাবলসমূহ ইয়াত প্ৰদর্শিত হ\'ব।"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই জাননীসমূহ সংশোধন কৰিব নোৱাৰি।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"এই ধৰণৰ জাননীবোৰ ইয়াত কনফিগাৰ কৰিব পৰা নাযায়"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"প্ৰক্সি হিচাপে পঠিওৱা জাননী"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"বুটামটো বাওঁফালে নিয়ক"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"তলৰ সোঁফালে নিয়ক"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"অগ্ৰাহ্য কৰক"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ছিষ্টেম নেভিগেশ্বন আপডে’ট কৰা হ’ল। সলনি কৰিবলৈ ছেটিংসমূহ-লৈ যাওক।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ছিষ্টেম নেভিগেশ্বন আপডে’ট কৰিবলৈ ছেটিংসমূহ-লৈ যাওক"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ষ্টেণ্ডবাই"</string>
@@ -983,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ক্ষিপ্ৰ নিয়ন্ত্ৰণসমূহ"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"নিয়ন্ত্ৰণসমূহ যোগ দিয়ক"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"এটা এপ্ বাছনি কৰক, যিটোৰ পৰা নিয়ন্ত্ৰণসমূহ যোগ দিয়া হ\'ব"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">বর্তমানৰ প্ৰিয় <xliff:g id="NUMBER_1">%s</xliff:g> টা।</item>
-      <item quantity="other">বর্তমানৰ প্ৰিয় <xliff:g id="NUMBER_1">%s</xliff:g> টা।</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"নিয়ন্ত্ৰণসমূহ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ক্ষিপ্ৰ এক্সেছৰ বাবে নিয়ন্ত্ৰণসমূহ বাছনি কৰক"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"প্ৰিয়সমূহ"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"সকলো"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"নিয়ন্ত্ৰণসমূহৰ সম্পূর্ণ সূচীখন ল’ড কৰিব পৰা নগ’ল।"</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index cc3ede1..289838e 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"İcazə verin"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB debaq prosesinə icazə verilmir"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Hazırda bu cihaza daxil olmuş istifadəçi USB sazlama prosesini aktiv edə bilməz. Bu funksiyadan istifadə etmək üçün əsas istifadəçi hesaba daxil olmalıdır."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Bu şəbəkədə simsiz sazlamaya icazə verilsin?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Şəbəkə Adı (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi Ünvanı (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Bu şəbəkədə həmişə icazə verilsin"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"İcazə verin"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Simsiz sazlamaya icazə verilmir"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Hazırda bu cihaza daxil olmuş istifadəçi simsiz sazlamanı aktiv edə bilmir. Bu funksiyadan istifadə etmək üçün əsas istifadəçiyə keçin."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB portu deaktiv edildi"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"USB portu deaktivdir. Cihazı maye və zərbədən qorumaq üçün aksesuar aşkarlanmayacaq.\n\nUSB portu yenidən istifadə üçün təhlükəsiz olduqda bildiriş göndəriləcək."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Adapter və aksesuarları aşkarlamaq üçün USB portu aktiv edildi"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"İdarə edin"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Tarixçə"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Səssiz bildirişlər"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Xəbərdarlıq bildirişləri"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Söhbətlər"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Səssiz bildirişlərin hamısını silin"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Bildirişlər \"Narahat Etməyin\" rejimi tərəfindən dayandırıldı"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Səs və ya vibrasiya olmadan fokuslanmağınıza kömək edir."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Səs və ya vibrasiya ilə diqqətinizi çəkir."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Bu məzmuna üzən qısayol ilə diqqətinizi cəlb edir."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Qabarcıq yoxdur"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Son qabaqcıqlar və buraxılmış qabarcıqlar burada görünəcək."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirişlər dəyişdirilə bilməz."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildiriş qrupunu burada konfiqurasiya etmək olmaz"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proksi bildirişi"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Aşağıya sola köçürün"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Aşağıya sağa köçürün"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Kənarlaşdırın"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistem naviqasiyası yeniləndi. Dəyişiklik etmək üçün Ayarlara daxil olun."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistem naviqasiyasını yeniləmək üçün Ayarlara keçin"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gözləmə rejimi"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Sürətli Nizamlayıcılar"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Nizamlayıcılar əlavə edin"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Nizamlayıcıların hansı tətbiqdən əlavə ediləcəyini seçin"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Hazırda <xliff:g id="NUMBER_1">%s</xliff:g> sevimli var.</item>
-      <item quantity="one">Hazırda <xliff:g id="NUMBER_0">%s</xliff:g> sevimli var.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> nizamlayıcı əlavə edilib.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> nizamlayıcı əlavə edilib.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Nizamlayıcılar"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Sürətli Giriş üçün nizamlayıcıları seçin"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Sevimlilər"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Hamısı"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Bütün nizamlayıcıların siyahısı yüklənmədi."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Digər"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index 7f4530a..b690829 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Dozvoli"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Otklanjanje grešaka na USB-u nije dozvoljeno"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Korisnik koji je trenutno prijavljen na ovaj uređaj ne može da uključi otklanjanje grešaka na USB-u. Da biste koristili ovu funkciju, prebacite na primarnog korisnika."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Želite li da omogućite bežično otklanjanje grešaka na ovoj mreži?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Naziv mreže (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi adresa (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Uvek dozvoli na ovoj mreži"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Dozvoli"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Bežično otklanjanje grešaka nije dozvoljeno"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Korisnik koji je trenutno prijavljen na ovaj uređaj ne može da uključi bežično otklanjanje grešaka. Da biste koristili ovu funkciju, pređite na primarnog korisnika."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB port je onemogućen"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Da bi se uređaj zaštitio od tečnosti ili nečistoće, USB port je onemogućen i neće otkrivati dodatnu opremu.\n\nObavestićemo vas kada ponovo budete mogli da koristite USB port."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB port je omogućen radi otkrivanja punjača i dodatne opreme"</string>
@@ -491,6 +497,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Upravljajte"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Istorija"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Nečujna obaveštenja"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Obaveštenja koja privlače pažnju"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Konverzacije"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Obrišite sva nečujna obaveštenja"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Obaveštenja su pauzirana režimom Ne uznemiravaj"</string>
@@ -689,10 +696,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Pomaže vam da se koncentrišete bez zvuka ili vibracije."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Privlači vam pažnju pomoću zvuka ili vibracije."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Privlači vam pažnju pomoću plutajuće prečice do ovog sadržaja."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nema nedavnih oblačića"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Ovde se prikazuju nedavni i odbačeni oblačići."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ova obaveštenja 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>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Obaveštenje preko proksija"</string>
@@ -979,6 +984,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Premesti dole levo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Premesti dole desno"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Odbaci"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigacija sistema je ažurirana. Da biste uneli izmene, idite u Podešavanja."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Idite u Podešavanja da biste ažurirali navigaciju sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravnosti"</string>
@@ -988,17 +999,15 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Brze kontrole"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Dodajte kontrole"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Odaberite aplikaciju iz koje ćete dodavati kontrole"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> aktuelni favorit.</item>
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> aktuelna favorita.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> aktuelnih favorita.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> kontrola je dodata.</item>
+      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> kontrole su dodate.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontrola je dodato.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrole"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Odaberite kontrole za brz pristup"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Omiljeno"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Sve"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Učitavanje liste svih kontrola nije uspelo."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 0332091c..feee6a2 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Дазволіць"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Адладка USB не дапускаецца"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Карыстальнік, які зараз увайшоў у гэту прыладу, не можа ўключыць адладку USB. Каб выкарыстоўваць гэту функцыю, пераключыцеся на асноўнага карыстальніка."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Дазволіць бесправадную адладку ў гэтай сетцы?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Назва сеткі (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nАдрас Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Заўсёды дазваляць у гэтай сетцы"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Дазволіць"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Бесправадная адладка не дазволена"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Карыстальнік, які зараз увайшоў у гэту прыладу, не можа ўключыць бесправадную адладку. Каб выкарыстоўваць гэту функцыю, пераключыцеся на асноўнага карыстальніка."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Порт USB адключаны"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Порт USB адключаны, каб засцерагчы прыладу ад вадкасці і смецця, таму дадатковае абсталяванне не будзе выяўлена.\n\nВы атрымаеце апавяшчэнне, калі порт USB можна будзе выкарыстоўваць зноў."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-порту дазволена вызначаць зарадныя прылады і аксесуары"</string>
@@ -496,6 +502,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Кіраваць"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Гісторыя"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Апавяшчэнні без гуку"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Апавяшчэнні з абвесткамі"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Размовы"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Выдаліць усе апавяшчэнні без гуку"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Паказ апавяшчэнняў прыпынены ў рэжыме \"Не турбаваць\""</string>
@@ -694,10 +701,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Не адцягвае ўвагу дзякуючы выключаным гуку і вібрацыі."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Прыцягвае ўвагу гукам і вібрацыяй."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Прыцягвае ўвагу да гэтага змесціва ўсплывальнай кнопкай."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Няма нядаўніх усплывальных апавяшчэнняў"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Нядаўнія і адхіленыя ўсплывальныя апавяшчэнні будуць паказаны тут."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Гэтыя апавяшчэнні нельга змяніць."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Тут канфігурыраваць гэту групу апавяшчэнняў забаронена"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Праксіраванае апавяшчэнне"</string>
@@ -986,6 +991,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Перамясціць лявей і ніжэй"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Перамясціць правей і ніжэй"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Адхіліць"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навігацыя ў сістэме абноўлена. Каб унесці змяненні, перайдзіце ў Налады."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Перайдзіце ў Налады, каб абнавіць параметры навігацыі ў сістэме"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Рэжым чакання"</string>
@@ -995,18 +1006,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Элементы хуткага кіравання"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Дадаць сродкі кіравання"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Выберыце праграму, з якой трэба дадаць сродкі кіравання"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">У абраным цяпер <xliff:g id="NUMBER_1">%s</xliff:g> элемент.</item>
-      <item quantity="few">У абраным цяпер <xliff:g id="NUMBER_1">%s</xliff:g> элементы.</item>
-      <item quantity="many">У абраным цяпер <xliff:g id="NUMBER_1">%s</xliff:g> элементаў.</item>
-      <item quantity="other">У абраным цяпер <xliff:g id="NUMBER_1">%s</xliff:g> элемента.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Дададзены <xliff:g id="NUMBER_1">%s</xliff:g> элемент кіравання.</item>
+      <item quantity="few">Дададзена <xliff:g id="NUMBER_1">%s</xliff:g> элементы кіравання.</item>
+      <item quantity="many">Дададзена <xliff:g id="NUMBER_1">%s</xliff:g> элементаў кіравання.</item>
+      <item quantity="other">Дададзена <xliff:g id="NUMBER_1">%s</xliff:g> элемента кіравання.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Сродкі кіравання"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Выберыце сродкі кіравання для хуткага доступу"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Абраныя"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Усе"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не ўдалося загрузіць спіс усіх сродкаў кіравання."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Іншае"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 8c8ce1d..fa57d28 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Разрешаване"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Отстраняването на грешки през USB не е разрешено"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Потребителят, който понастоящем е влязъл в това устройство, не може да включи функцията за отстраняване на грешки през USB. За да я използвате, превключете към основния потребител."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Искате ли да разрешите безжичното отстраняване на грешки в тази мрежа?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Име на мрежата (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nАдрес на Wi‑Fi мрежата (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Винаги да се разрешава в тази мрежа"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Разрешаване"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Безжичното отстраняване на грешки не е разрешено"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Потребителят, който понастоящем е влязъл в това устройство, не може да включи функцията за безжично отстраняване на грешки. За да използвате, превключете към основния потребител."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB портът е деактивиран"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"С цел защита на устройството ви от течности и замърсяване USB портът е деактивиран и няма да открива аксесоари.\n\nЩе получите известие, когато можете отново да използвате USB порта."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB портът може да разпознава зарядни устройства и аксесоари"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Управление"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"История"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Беззвучни известия"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Известия за сигнализиране"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Разговори"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Изчистване на всички беззвучни известия"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Известията са поставени на пауза от режима „Не безпокойте“"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Помага ви да се фокусирате без звук или вибриране."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Привлича вниманието ви със звук или вибриране."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Задържа вниманието ви посредством плаващ пряк път към това съдържание."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Няма скорошни балончета"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Скорошните и отхвърлените балончета ще се показват тук."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Тези известия не могат да бъдат променяни."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Тази група от известия не може да бъде конфигурирана тук"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Известие, получено чрез делегиране"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Преместване долу вляво"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Преместване долу вдясно"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Отхвърляне"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Режимът за навигиране в системата е актуализиран. За да извършите промени, отворете настройките."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Отворете настройките, за да актуализирате режима за навигиране в системата"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим на готовност"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Бързи контроли"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Добавяне на контроли"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Изберете приложение, от което да добавите контроли"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Понастоящем има <xliff:g id="NUMBER_1">%s</xliff:g> любими.</item>
-      <item quantity="one">Понастоящем има <xliff:g id="NUMBER_0">%s</xliff:g> любимо.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Добавени са <xliff:g id="NUMBER_1">%s</xliff:g> контроли.</item>
+      <item quantity="one">Добавена е <xliff:g id="NUMBER_0">%s</xliff:g> контрола.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Контроли"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Изберете контроли за бърз достъп"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Любими"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Всички"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Списъкът с всички контроли не бе зареден."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Друго"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index 84ae5b8..1f6a377 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"অনুমতি দিন"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB ডিবাগিং অনুমোদিত নয়"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ব্যবহারকারী এখন এই ডিভাইসে সাইন-ইন করেছেন তাই USB ডিবাগিং চালু করা যাবে না। এই বৈশিষ্ট্যটি ব্যবহার করতে, প্রাথমিক ব্যবহারকারীতে পাল্টে নিন।"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"এই নেটওয়ার্কে ওয়্যারলেস ডিবাগিংয়ের অনুমতি দেবেন?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"নেটওয়ার্কের নাম (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nওয়াই-ফাই অ্যাড্রেস (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"এই নেটওয়ার্কে সবসময় অনুমতি দিন"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"অনুমতি দিন"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ওয়্যারলেস ডিবাগিং করা যাবে না"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ব্যবহারকারী এখন এই ডিভাইসে সাইন-ইন করেছেন তাই ওয়্যারলেস ডিবাগিং চালু করা যাবে না। এই ফিচারটি ব্যবহার করতে, প্রাথমিক ব্যবহারকারীতে পাল্টে নিন।"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"ইউএসবি পোর্ট বন্ধ করা হয়েছে"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"কোনও তরল পদার্থ ও ধুলো থেকে আপনার ডিভাইসকে সুরক্ষিত রাখতে, ইউএসবি পোর্ট বন্ধ করা আছে, তাই কোনও অ্যাক্সেসরির শনাক্ত করা যাবে না।\n\nইউএসবি পোর্ট আবার ব্যবহার করা নিরাপদ হলে, আপনাকে জানানো হবে।"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"চার্জার ও আনুষঙ্গিক আইটেম শনাক্ত করার জন্য ইউএসবি চালু করা হয়েছে"</string>
@@ -80,31 +86,19 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"আবার স্ক্রিনশট নেওয়ার চেষ্টা করুন"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"বেশি জায়গা নেই তাই স্ক্রিনশটটি সেভ করা যাবে না৷"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"এই অ্যাপ বা আপনার প্রতিষ্ঠান স্ক্রিনশট নেওয়ার অনুমতি দেয়নি"</string>
-    <!-- no translation found for screenrecord_name (2596401223859996572) -->
-    <skip />
+    <string name="screenrecord_name" msgid="2596401223859996572">"স্ক্রিন রেকর্ডার"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"স্ক্রিন রেকর্ডিং সেশন চলার বিজ্ঞপ্তি"</string>
-    <!-- no translation found for screenrecord_start_label (1750350278888217473) -->
-    <skip />
-    <!-- no translation found for screenrecord_description (1123231719680353736) -->
-    <skip />
-    <!-- no translation found for screenrecord_audio_label (6183558856175159629) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_label (9016927171280567791) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_description (4922694220572186193) -->
-    <skip />
-    <!-- no translation found for screenrecord_mic_label (2111264835791332350) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_and_mic_label (1831323771978646841) -->
-    <skip />
-    <!-- no translation found for screenrecord_start (330991441575775004) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_only (4459670242451527727) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_and_audio (5351133763125180920) -->
-    <skip />
-    <!-- no translation found for screenrecord_taps_label (1595690528298857649) -->
-    <skip />
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"রেকর্ডিং শুরু করবেন?"</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"রেকর্ড করার সময়, আপনার স্ক্রিনে দেখানো বা ডিভাইসে চালানো যেকোনও ধরনের সংবেদনশীল তথ্য Android সিস্টেম ক্যাপচার করতে পারে। এর মধ্যে পাসওয়ার্ড, পেমেন্টের তথ্য, ফটো, মেসেজ এবং অডিও সম্পর্কিত তথ্য থাকে।"</string>
+    <string name="screenrecord_audio_label" msgid="6183558856175159629">"অডিও রেকর্ড করুন"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"ডিভাইস অডিও"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"মিউজিক, কল এবং রিংটোনগুলির মতো আপনার ডিভাইস থেকে সাউন্ড"</string>
+    <string name="screenrecord_mic_label" msgid="2111264835791332350">"মাইক্রোফোন"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"ডিভাইস অডিও এবং মাইক্রোফোন"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"শুরু করুন"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"স্ক্রিন রেকর্ড করা হচ্ছে"</string>
+    <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"স্ক্রিন এবং অডিও রেকর্ড করা হচ্ছে"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"স্ক্রিনে টাচ লোকেশন দেখুন"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"বন্ধ করতে ট্যাপ করুন"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"বন্ধ করুন"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"পজ করুন"</string>
@@ -117,8 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"স্ক্রিন রেকর্ডিং মুছে ফেলা হয়েছে"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"স্ক্রিন রেকডিং মুছে ফেলার সময় সমস্যা হয়েছে"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"অনুমতি পাওয়া যায়নি"</string>
-    <!-- no translation found for screenrecord_start_error (2200660692479682368) -->
-    <skip />
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"স্ক্রিন রেকর্ডিং শুরু করার সময় সমস্যা হয়েছে"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USB ফাইল স্থানান্তরের বিকল্পগুলি"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"একটি মিডিয়া প্লেয়ার হিসেবে মাউন্ট করুন (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"একটি ক্যামেরা হিসেবে মাউন্ট করুন (PTP)"</string>
@@ -499,9 +492,9 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"আর দেখাবেন না"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"সবকিছু সাফ করুন"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"পরিচালনা করুন"</string>
-    <!-- no translation found for manage_notifications_history_text (57055985396576230) -->
-    <skip />
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"ইতিহাস"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"নীরব বিজ্ঞপ্তি"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"বিজ্ঞপ্তি সংক্রান্ত সতর্কতা"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"কথোপকথন"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"সব নীরব বিজ্ঞপ্তি মুছুন"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\'বিরক্ত করবে না\' দিয়ে বিজ্ঞপ্তি পজ করা হয়েছে"</string>
@@ -700,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"সাউন্ড বা ভাইব্রেশন ছাড়া ফোকাস করতে আপনাকে সাহায্য করে।"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"সাউন্ড বা ভাইব্রেশনের সাহায্যে দৃষ্টি আকর্ষণ করে।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ফ্লোটিং শর্টকাট ব্যবহার করে এই কন্টেন্টে আপনার দৃষ্টি আকর্ষণ করে রাখে।"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"কোনও সাম্প্রতিক বাবল নেই"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"সাম্প্রতিক বাবল এবং বাতিল করা বাবল এখানে দেখানো হবে।"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই বিজ্ঞপ্তিগুলি পরিবর্তন করা যাবে না।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"এই সমস্ত বিজ্ঞপ্তিকে এখানে কনফিগার করা যাবে না"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"প্রক্সি করা বিজ্ঞপ্তি"</string>
@@ -726,25 +717,18 @@
     <string name="notification_done" msgid="6215117625922713976">"সম্পন্ন"</string>
     <string name="inline_undo" msgid="9026953267645116526">"আগের অবস্থায় ফিরে যান"</string>
     <string name="demote" msgid="6225813324237153980">"কথোপকথন হিসেবে এই বিজ্ঞপ্তি চিহ্নিত করবেন না"</string>
-    <!-- no translation found for notification_conversation_favorite (1905240206975921907) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unfavorite (181383708304763807) -->
-    <skip />
-    <!-- no translation found for notification_conversation_mute (268951550222925548) -->
-    <skip />
+    <string name="notification_conversation_favorite" msgid="1905240206975921907">"গুরুত্বপূর্ণ কথোপকথন"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"গুরুত্বপূর্ণ কথোপকথন নয়"</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"মিউট করা হয়েছে"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"সতর্ক করা"</string>
-    <!-- no translation found for notification_conversation_bubble (2242180995373949022) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unbubble (6908427185031099868) -->
-    <skip />
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"বাবল দেখুন"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"বাবল সরিয়ে দিন"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"হোম স্ক্রিনে যোগ করুন"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"বিজ্ঞপ্তির নিয়ন্ত্রণগুলি"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"বিজ্ঞপ্তি মনে করিয়ে দেওয়ার বিকল্পগুলি"</string>
-    <!-- no translation found for notification_menu_snooze_action (5415729610393475019) -->
-    <skip />
-    <!-- no translation found for notification_menu_settings_action (7085494017202764285) -->
-    <skip />
+    <string name="notification_menu_snooze_action" msgid="5415729610393475019">"আমাকে মনে করিয়ে দিও"</string>
+    <string name="notification_menu_settings_action" msgid="7085494017202764285">"সেটিংস"</string>
     <string name="snooze_undo" msgid="60890935148417175">"পূর্বাবস্থায় ফিরুন"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"<xliff:g id="TIME_AMOUNT">%1$s</xliff:g> পরে আবার মনে করানো হবে"</string>
     <plurals name="snoozeHourOptions" formatted="false" msgid="2066838694120718170">
@@ -816,8 +800,7 @@
     <string name="accessibility_data_saver_off" msgid="58339669022107171">"ডেটা সেভার বন্ধ আছে"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"চালু আছে"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"বন্ধ আছে"</string>
-    <!-- no translation found for tile_unavailable (3095879009136616920) -->
-    <skip />
+    <string name="tile_unavailable" msgid="3095879009136616920">"উপলভ্য নয়"</string>
     <string name="nav_bar" msgid="4642708685386136807">"নেভিগেশন বার"</string>
     <string name="nav_bar_layout" msgid="4716392484772899544">"লেআউট"</string>
     <string name="left_nav_bar_button_type" msgid="2634852842345192790">"অতিরিক্ত বাঁদিকের বোতামের ধরণ"</string>
@@ -996,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"নিচে বাঁদিকে সরান"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"নিচে ডান দিকে সরান"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"খারিজ করুন"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"সিস্টেম নেভিগেশন আপডেট হয়েছে। পরিবর্তন করার জন্য সেটিংসে যান।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"সিস্টেম নেভিগেশন আপডেট করতে সেটিংসে যান"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"স্ট্যান্ডবাই"</string>
@@ -1005,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"দ্রুত নিয়ন্ত্রণ"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"কন্ট্রোল যোগ করুন"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"এমন একটি অ্যাপ বাছুন যেটি থেকে কন্ট্রোল যোগ করা যাবে"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g>টি সাম্প্রতিক ফেভারিট।</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g>টি সাম্প্রতিক ফেভারিট।</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"নিয়ন্ত্রণ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"দ্রুত অ্যাক্সেস করার জন্য কন্ট্রোল বেছে নিন"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"পছন্দসই"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"সব"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"সব কন্ট্রোলের তালিকা লোড করা যায়নি।"</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index 97b20d1..fcc3680 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Dozvoli"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Otklanjanje grešaka putem uređaja spojenog na USB nije dozvoljeno"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Korisnik koji je trenutno prijavljen na ovaj uređaj ne može uključiti opciju za otklanjanje grešaka koristeći USB. Da koristite tu funkciju, prebacite se na primarnog korisnika."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Dozvoliti bežično otklanjanje grešaka na ovoj mreži?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Naziv mreže (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresa WiFi mreže (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Uvijek dozvoli na ovoj mreži"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Dozvoli"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Bežično otklanjanje grešaka nije dozvoljeno"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Korisnik koji je trenutno prijavljen na ovaj uređaj ne može uključiti bežično otklanjanje grešaka. Da koristite tu funkciju, prebacite se na primarnog korisnika."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB priključak je onemogućen"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"USB priključak je onemogućen kako bi se vaš uređaj zaštitio od tečnosti i nečistoća i neće detektirati priključene uređaje.\n\nDobit ćete obavještenje kada ponovo bude sigurno koristiti USB priključak."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB priključak je omogućen za prepoznavanje punjača i pribora"</string>
@@ -491,6 +497,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Upravljajte"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historija"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Nečujna obavještenja"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Obavještenja koja privlače pažnju"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Razgovori"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Obriši sva nečujna obavještenja"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Obavještenja su pauzirana načinom rada Ne ometaj"</string>
@@ -691,10 +698,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Pomaže vam da se koncentrirate bez zvuka ili vibracije."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Privlači vašu pažnju pomoću zvuka ili vibracije."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Privlači vašu pažnju pomoću plutajuće prečice do ovog sadržaja."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nema nedavnih oblačića"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nedavni oblačići i odbačeni oblačići će se pojaviti ovdje."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ta obavještenja se ne mogu izmijeniti."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ovdje nije moguće konfigurirati ovu grupu obavještenja"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Obavještenje preko proksi servera"</string>
@@ -718,7 +723,7 @@
     <string name="inline_undo" msgid="9026953267645116526">"Opozovi"</string>
     <string name="demote" msgid="6225813324237153980">"Označi da ovo obavještenje nije razgovor"</string>
     <string name="notification_conversation_favorite" msgid="1905240206975921907">"Važan razgovor"</string>
-    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Ne radi se o važnom razgovoru"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Nije važan razgovor"</string>
     <string name="notification_conversation_mute" msgid="268951550222925548">"Bez zvuka"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"Upozorenja"</string>
     <string name="notification_conversation_bubble" msgid="2242180995373949022">"Prikaži oblačić"</string>
@@ -981,6 +986,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Pomjeri dolje lijevo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Pomjerite dolje desno"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Odbaci"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigiranje sistemom je ažurirano. Da izvršite promjene, idite u Postavke."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Idite u Postavke da ažurirate navigiranje sistemom"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
@@ -990,17 +1001,15 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Brze kontrole"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Dodavanje kontrola"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Odaberite aplikaciju za dodavanje kontrola"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">Trenutno <xliff:g id="NUMBER_1">%s</xliff:g> omiljena.</item>
-      <item quantity="few">Trenutno <xliff:g id="NUMBER_1">%s</xliff:g> omiljene.</item>
-      <item quantity="other">Trenutno <xliff:g id="NUMBER_1">%s</xliff:g> omiljenih.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Dodana je <xliff:g id="NUMBER_1">%s</xliff:g> kontrola.</item>
+      <item quantity="few">Dodane su <xliff:g id="NUMBER_1">%s</xliff:g> kontrole.</item>
+      <item quantity="other">Dodano je <xliff:g id="NUMBER_1">%s</xliff:g> kontrola.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrole"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Odaberite kontrole za brzi pristup"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Omiljeno"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Sve"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Učitavanje liste svih kontrola nije uspjelo."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 26074be..7f7eff1 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permet"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"No es permet la depuració per USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"L\'usuari que té iniciada la sessió al dispositiu en aquest moment no pot activar la depuració per USB. Per utilitzar aquesta funció, cal canviar a l\'usuari principal."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Vols permetre la depuració sense fil en aquesta xarxa?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nom de la xarxa (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdreça Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Permet sempre en aquesta xarxa"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permet"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"No es permet la depuració sense fil"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"L\'usuari que té iniciada la sessió al dispositiu en aquest moment no pot activar la depuració sense fil. Per utilitzar aquesta funció, cal canviar a l\'usuari principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"El port USB està desactivat"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Per protegir el teu dispositiu dels líquids o de la pols, el port USB s\'ha desactivat i no detectarà cap accessori.\n\nRebràs una notificació quan puguis tornar a utilitzar-lo."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"S\'ha activat el port USB per detectar carregadors i accessoris"</string>
@@ -83,10 +89,10 @@
     <string name="screenrecord_name" msgid="2596401223859996572">"Gravadora de pantalla"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificació en curs d\'una sessió de gravació de la pantalla"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Vols iniciar la gravació?"</string>
-    <string name="screenrecord_description" msgid="1123231719680353736">"Quan graves contingut, el sistema Android pot capturar qualsevol informació sensible que es mostri a la pantalla o que es reprodueixi al dispositiu. Això inclou contrasenyes, informació de pagament, fotos, missatges i àudio."</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"Quan graves contingut, el sistema Android pot capturar qualsevol informació sensible que es mostri a la pantalla o que es reprodueixi al dispositiu. Això inclou les contrasenyes, la informació de pagament, les fotos, els missatges i l\'àudio."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Grava l\'àudio"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Àudio del dispositiu"</string>
-    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Sons del dispositiu, com ara música, trucades i sons de trucada"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Sons del dispositiu, com ara la música, les trucades i els sons de trucada"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"Micròfon"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Àudio del dispositiu i micròfon"</string>
     <string name="screenrecord_start" msgid="330991441575775004">"Inicia"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gestiona"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historial"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificacions silencioses"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificacions d\'alerta"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Converses"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Esborra totes les notificacions silencioses"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notificacions pausades pel mode No molestis"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"T\'ajuda a concentrar-te sense so ni vibració."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Atrau la teva atenció amb so i vibració."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Atrau la teva atenció amb una drecera flotant a aquest contingut."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No hi ha bombolles recents"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Les bombolles recents i les ignorades es mostraran aquí."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aquestes notificacions no es poden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquest grup de notificacions no es pot configurar aquí"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificació mitjançant aplicació intermediària"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mou a baix a l\'esquerra"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mou a baix a la dreta"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Omet"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"S\'ha actualitzat el sistema de navegació. Per fer canvis, ves a Configuració."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ves a Configuració per actualitzar el sistema de navegació"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controls ràpids"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Afegeix controls"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Tria una aplicació de la qual vulguis afegir controls"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> preferits actuals.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> preferit actual.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">S\'han afegit <xliff:g id="NUMBER_1">%s</xliff:g> controls.</item>
+      <item quantity="one">S\'ha afegit <xliff:g id="NUMBER_0">%s</xliff:g> control.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Tria controls per a l\'accés ràpid"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Preferits"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tots"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"No s\'ha pogut carregar la llista completa de controls."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Altres"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index dc01532..8d26c4a 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Povolit"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Ladění přes USB není povoleno"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Uživatel aktuálně přihlášený k tomuto zařízení nemůže zapnout ladění přes USB. Chcete-li tuto funkci použít, přepněte na primárního uživatele."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Povolit v této síti bezdrátové ladění?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Název sítě (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresa Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Vždy povolit v této síti"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Povolit"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Bezdrátové ladění není povoleno"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Uživatel aktuálně přihlášený k tomuto zařízení nemůže zapnout bezdrátové ladění. Chcete-li tuto funkci použít, přepněte na primárního uživatele."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Port USB je deaktivován"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Kvůli ochraně vašeho zařízení před tekutinami a nečistotami je port USB zakázán a nerozpozná žádné příslušenství.\n\nAž bude opět bezpečné port USB použít, budeme vás informovat."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Port USB může zjišťovat nabíječky a příslušenství"</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Spravovat"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historie"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Tichá oznámení"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Oznámení s upozorněním"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Konverzace"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Vymazat všechna tichá oznámení"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Oznámení jsou pozastavena režimem Nerušit"</string>
@@ -692,10 +699,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Pomáhá vám soustředit se vypnutím zvuku a vibrací."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Upozorňuje vás pomocí zvuku a vibrací."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Přitahuje pozornost pomocí plovoucí zkratky k tomuto obsahu."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Žádné nedávné bubliny"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Zde se budou zobrazovat nedávné bubliny a zavřené bubliny."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tato oznámení nelze upravit."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tuto skupinu oznámení tady nelze nakonfigurovat"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Zprostředkované oznámení"</string>
@@ -984,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Přesunout vlevo dolů"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Přesunout vpravo dolů"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Zavřít"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systémová navigace byla aktualizována. Chcete-li provést změny, přejděte do Nastavení."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Přejděte do Nastavení a aktualizujte systémovou navigaci"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostní režim"</string>
@@ -993,18 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Rychlé ovládací prvky"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Přidání ovládacích prvků"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Vyberte aplikaci, ze které chcete přidat ovládací prvky"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> stávající oblíbené.</item>
-      <item quantity="many"><xliff:g id="NUMBER_1">%s</xliff:g> stávajících oblíbených.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> stávajících oblíbených.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> stávající oblíbený.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="few">Byly přidány <xliff:g id="NUMBER_1">%s</xliff:g> ovládací prvky.</item>
+      <item quantity="many">Bylo přidáno <xliff:g id="NUMBER_1">%s</xliff:g> ovládacího prvku.</item>
+      <item quantity="other">Bylo přidáno <xliff:g id="NUMBER_1">%s</xliff:g> ovládacích prvků.</item>
+      <item quantity="one">Byl přidán <xliff:g id="NUMBER_0">%s</xliff:g> ovládací prvek.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Ovládací prvky"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vyberte ovládací prvky pro rychlý přístup"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Oblíbené"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Vše"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Načtení seznamu všech ovládacích prvků se nezdařilo."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Jiné"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 261a80c..1ad3102 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Tillad"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-fejlretning er ikke tilladt"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Den bruger, der i øjeblikket er logget ind på denne enhed, kan ikke aktivere USB-fejlretning. Skift til den primære bruger for at bruge denne funktion."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Vil du tillade trådløs fejlretning på dette netværk?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Netværksnavn (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi-adresse (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Tillad altid på dette netværk"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Tillad"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Trådløs fejlretning er ikke tilladt"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Den bruger, der i øjeblikket er logget ind på denne enhed, kan ikke aktivere trådløs fejlretning. Skift til den primære bruger for at bruge denne funktion."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-porten er deaktiveret"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"USB-porten er blevet deaktiveret for at beskytte din enhed mod væske og snavs. Den kan derfor ikke registrere noget tilbehør.\n\nDu får besked, når du kan bruge USB-porten igen."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-porten er aktiveret for at registrere opladere og tilbehør"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Administrer"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historik"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Lydløse notifikationer"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notifikationer med vibration eller lyd"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Samtaler"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Ryd alle lydløse notifikationer"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifikationer er sat på pause af Forstyr ikke"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ingen lyde eller vibrationer, der forstyrrer dig."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Fanger din opmærksomhed med lyd eller vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Fastholder din opmærksomhed med en svævende genvej til indholdet."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ingen seneste bobler"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nye bobler og afviste bobler vises her."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse notifikationer kan ikke redigeres."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Du kan ikke konfigurere denne gruppe notifikationer her"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxyforbundet notifikation"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Flyt ned til venstre"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Flyt ned til højre"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Afvis"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigationen blev opdateret. Gå til Indstillinger for at foretage ændringer."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gå til Indstillinger for at opdatere systemnavigationen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Hurtig betjening"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Tilføj betjeningselementer"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Vælg en app at tilføje betjeningselementer fra"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> aktuel favorit.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> aktuelle favoritter.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> styringselement er tilføjet.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> styringselementer er tilføjet.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Betjeningselementer"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vælg betjeningselementer til hurtig adgang"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritter"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Listen over styringselementer kunne ikke indlæses."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Andre"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 28d53ec..4978041 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Erlauben"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-Debugging nicht zulässig"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Der momentan auf diesem Gerät angemeldete Nutzer kann das USB-Debugging nicht aktivieren. Um diese Funktion verwenden zu können, wechsle zum primären Nutzer."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Kabelloses Debugging in diesem Netzwerk zulassen?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Netzwerkname (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWLAN-Adresse (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Immer in diesem Netzwerk zulassen"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Zulassen"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Kabelloses Debugging nicht zulässig"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Der momentan auf diesem Gerät angemeldete Nutzer kann das kabellose Debugging nicht aktivieren. Um diese Funktion verwenden zu können, wechsle zum Hauptnutzer."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-Port deaktiviert"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Zum Schutz deines Geräts vor Flüssigkeiten oder Fremdkörpern ist der USB-Port zurzeit deaktiviert und erkennt kein Zubehör.\n\nDu wirst benachrichtigt, wenn der USB-Port wieder verwendet werden kann."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Erkennung von Ladegeräten und Zubehör am USB-Port aktiviert"</string>
@@ -83,16 +89,16 @@
     <string name="screenrecord_name" msgid="2596401223859996572">"Bildschirmaufzeichnung"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Fortlaufende Benachrichtigung für eine Bildschirmaufzeichnung"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Aufzeichnung starten?"</string>
-    <string name="screenrecord_description" msgid="1123231719680353736">"Beim Aufnehmen kann Android-System vertrauliche Informationen erfassen, die auf deinem Bildschirm angezeigt oder von deinem Gerät wiedergegeben werden. Das können Passwörter, Zahlungsinformationen Fotos, Nachrichten und Audioinhalte sein."</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"Beim Aufnehmen kann das Android-System vertrauliche Informationen erfassen, die auf deinem Bildschirm angezeigt oder von deinem Gerät wiedergegeben werden. Das können Passwörter, Zahlungsinformationen, Fotos, Nachrichten und Audioinhalte sein."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Audio aufnehmen"</string>
-    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Audioausgabe des Geräts"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Audio über das Gerät"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Audioinhalte auf deinem Gerät, wie Musik, Anrufe und Klingeltöne"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"Mikrofon"</string>
-    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Audio über Gerät und Mikrofon aufnehmen"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Audio über Gerät und externes Mikrofon aufnehmen"</string>
     <string name="screenrecord_start" msgid="330991441575775004">"Start"</string>
     <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Bildschirm wird aufgezeichnet"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"Bildschirm und Ton werden aufgezeichnet"</string>
-    <string name="screenrecord_taps_label" msgid="1595690528298857649">"Tippen auf dem Display anzeigen"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"Berührungen des Bildschirms anzeigen"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"Zum Stoppen tippen"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"Anhalten"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"Pausieren"</string>
@@ -492,6 +498,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Verwalten"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Verlauf"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Lautlose Benachrichtigungen"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Nicht stummgeschaltete Benachrichtigungen"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Unterhaltungen"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Alle lautlosen Benachrichtigungen löschen"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Benachrichtigungen durch \"Bitte nicht stören\" pausiert"</string>
@@ -690,10 +697,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Benachrichtigungen werden ohne Ton oder Vibration angekündigt, um deine Konzentration nicht zu stören."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Benachrichtigungen werden mit einem Ton oder einer Vibration angekündigt."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Du wirst mit einer unverankerten Verknüpfung darauf aufmerksam gemacht."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Keine kürzlich geschlossenen Bubbles"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Hier werden aktuelle und geschlossene Bubbles angezeigt."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Diese Benachrichtigungen können nicht geändert werden."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Die Benachrichtigungsgruppe kann hier nicht konfiguriert werden"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Weitergeleitete Benachrichtigung"</string>
@@ -978,6 +983,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Nach unten links verschieben"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Nach unten rechts verschieben"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Schließen"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemsteuerungseinstellungen wurden angepasst. Änderungen kannst du in den Einstellungen vornehmen."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gehe zu den Einstellungen, um die Systemsteuerung anzupassen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -987,16 +998,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Schnellsteuerung"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Steuerelemente hinzufügen"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"App auswählen, über die Steuerelemente hinzugefügt werden sollen"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> aktuelle Favoriten.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> aktueller Favorit.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> Steuerelemente hinzugefügt.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> Steuerelement hinzugefügt.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Steuerelemente"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Steuerelemente für den Schnellzugriff auswählen"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriten"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Fehler beim Laden der Liste mit Steuerelementen."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Andere"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 2ca15c8..3eab4dd 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Να επιτρέπεται"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Δεν επιτρέπεται ο εντοπισμός σφαλμάτων USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Ο χρήστης που είναι συνδεδεμένος αυτήν τη στιγμή σε αυτήν τη συσκευή δεν μπορεί να ενεργοποιήσει τον εντοπισμό σφαλμάτων USB. Για να χρησιμοποιήσετε αυτήν τη λειτουργία, κάντε εναλλαγή στον κύριο χρήστη."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Να επιτρέπεται ο εντοπισμός σφαλμάτων μέσω ασύρματης σύνδεσης σε αυτό το δίκτυο;"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Όνομα δικτύου (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nΔιεύθυνση Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Να επιτρέπεται πάντα σε αυτό το δίκτυο"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Να επιτρέπεται"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Ο εντοπισμός σφαλμάτων μέσω ασύρματης σύνδεσης δεν επιτρέπεται"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Ο χρήστης που είναι συνδεδεμένος αυτήν τη στιγμή στη συγκεκριμένη συσκευή δεν μπορεί να ενεργοποιήσει τον εντοπισμό σφαλμάτων μέσω ασύρματης σύνδεσης. Για να χρησιμοποιήσετε αυτήν τη λειτουργία, κάντε εναλλαγή στον κύριο χρήστη."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Η θύρα USB απενεργοποιήθηκε"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Για την προστασία της συσκευής σας από υγρασία ή ακαθαρσίες, η θύρα USB έχει απενεργοποιηθεί και δεν θα εντοπίζει τυχόν αξεσουάρ.\n\nΘα ειδοποιηθείτε όταν θα μπορείτε να χρησιμοποιήσετε ξανά τη θύρα USB."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Η θύρα USB ενεργοποιήθηκε για τον εντοπισμό φορτιστών και αξεσουάρ"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Διαχείριση"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Ιστορικό"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Ειδοποιήσεις σε σίγαση"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Ειδοποιήσεις"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Συνομιλίες"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Διαγραφή όλων των ειδοποιήσεων σε σίγαση"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Οι ειδοποιήσεις τέθηκαν σε παύση από τη λειτουργία \"Μην ενοχλείτε\""</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Σας βοηθά να συγκεντρωθείτε χωρίς ήχο και δόνηση."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Τραβά την προσοχή σας με ήχο ή δόνηση."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Κρατάει την προσοχή σας με μια κινούμενη συντόμευση προς αυτό το περιεχόμενο."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Δεν υπάρχουν πρόσφατες φούσκες"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Τα πρόσφατα συννεφάκια και τα συννεφάκια που παραβλέψατε θα εμφανίζονται εδώ."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Δεν είναι δυνατή η τροποποίηση αυτών των ειδοποιήσεων"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Δεν είναι δυνατή η διαμόρφωση αυτής της ομάδας ειδοποιήσεων εδώ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Ειδοποίηση μέσω διακομιστή μεσολάβησης"</string>
@@ -974,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Μετακίνηση κάτω αριστερά"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Μετακίνηση κάτω δεξιά"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Παράβλεψη"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Διατήρηση συζητήσεων στο προσκήνιο"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Οι νέες συζητήσεις από την εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> θα εμφανίζονται ως συννεφάκια. Πατήστε ένα συννεφάκι για άνοιγμα. Σύρετε για μετακίνηση.\n\nΠατήστε το συννεφάκι."</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Πατήστε Διαχείριση για να απενεργοποιήσετε τα συννεφάκια από αυτήν την εφαρμογή."</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Η πλοήγηση συστήματος ενημερώθηκε. Για να κάνετε αλλαγές, μεταβείτε στις Ρυθμίσεις."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Μεταβείτε στις Ρυθμίσεις για να ενημερώσετε την πλοήγηση συστήματος"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Κατάσταση αναμονής"</string>
@@ -983,16 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Στοιχεία γρήγορου ελέγχου"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Προσθήκη στοιχείων ελέγχου"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Επιλέξτε μια εφαρμογή από την οποία θα προσθέσετε στοιχεία ελέγχου"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> τρέχοντα αγαπημένα.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> τρέχον αγαπημένο.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Προστέθηκαν <xliff:g id="NUMBER_1">%s</xliff:g> στοιχεία ελέγχου.</item>
+      <item quantity="one">Προστέθηκε <xliff:g id="NUMBER_0">%s</xliff:g> στοιχείο ελέγχου.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Στοιχεία ελέγχου"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Επιλέξτε στοιχεία ελέγχου για γρήγορη πρόσβαση"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Αγαπημένα"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Όλα"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Ανεπιτυχής φόρτωση λίστας όλων των στοιχ. ελέγχου."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Άλλο"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 529c6af..98fcd53 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Allow"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB debugging not allowed"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Allow wireless debugging on this network?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Network Name (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi Address (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Always allow on this network"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Allow"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Wireless debugging not allowed"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"The user currently signed in to this device can’t turn on wireless debugging. To use this feature, switch to the primary user."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB port disabled"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"To protect your device from liquid or debris, the USB port is disabled and won’t detect any accessories.\n\nYou’ll be notified when it’s OK to use the USB port again."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB port enabled to detect chargers and accessories"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Manage"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"History"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Silent notifications"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Alerting notifications"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Clear all silent notifications"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifications paused by Do Not Disturb"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Recently dismissed bubbles will appear here for easy retrieval."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -972,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -981,13 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Add controls"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Choose an app from which to add controls"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> current favourites.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> current favourite.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controls added.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> control added.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index ce6c827..dbdff59 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Allow"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB debugging not allowed"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Allow wireless debugging on this network?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Network Name (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi Address (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Always allow on this network"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Allow"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Wireless debugging not allowed"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"The user currently signed in to this device can’t turn on wireless debugging. To use this feature, switch to the primary user."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB port disabled"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"To protect your device from liquid or debris, the USB port is disabled and won’t detect any accessories.\n\nYou’ll be notified when it’s OK to use the USB port again."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB port enabled to detect chargers and accessories"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Manage"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"History"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Silent notifications"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Alerting notifications"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Clear all silent notifications"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifications paused by Do Not Disturb"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Recently dismissed bubbles will appear here for easy retrieval."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -972,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -981,13 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Add controls"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Choose an app from which to add controls"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> current favourites.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> current favourite.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controls added.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> control added.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 529c6af..98fcd53 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Allow"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB debugging not allowed"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Allow wireless debugging on this network?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Network Name (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi Address (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Always allow on this network"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Allow"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Wireless debugging not allowed"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"The user currently signed in to this device can’t turn on wireless debugging. To use this feature, switch to the primary user."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB port disabled"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"To protect your device from liquid or debris, the USB port is disabled and won’t detect any accessories.\n\nYou’ll be notified when it’s OK to use the USB port again."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB port enabled to detect chargers and accessories"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Manage"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"History"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Silent notifications"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Alerting notifications"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Clear all silent notifications"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifications paused by Do Not Disturb"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Recently dismissed bubbles will appear here for easy retrieval."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -972,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -981,13 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Add controls"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Choose an app from which to add controls"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> current favourites.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> current favourite.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controls added.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> control added.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 529c6af..98fcd53 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Allow"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB debugging not allowed"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Allow wireless debugging on this network?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Network Name (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi Address (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Always allow on this network"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Allow"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Wireless debugging not allowed"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"The user currently signed in to this device can’t turn on wireless debugging. To use this feature, switch to the primary user."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB port disabled"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"To protect your device from liquid or debris, the USB port is disabled and won’t detect any accessories.\n\nYou’ll be notified when it’s OK to use the USB port again."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB port enabled to detect chargers and accessories"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Manage"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"History"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Silent notifications"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Alerting notifications"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Clear all silent notifications"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifications paused by Do Not Disturb"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Recently dismissed bubbles will appear here for easy retrieval."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -972,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -981,13 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Add controls"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Choose an app from which to add controls"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> current favourites.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> current favourite.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controls added.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> control added.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rXC/strings.xml b/packages/SystemUI/res/values-en-rXC/strings.xml
index 924ad60..8b6a7eb 100644
--- a/packages/SystemUI/res/values-en-rXC/strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎Allow‎‏‎‎‏‎"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‎‎USB debugging not allowed‎‏‎‎‏‎"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user.‎‏‎‎‏‎"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎Allow wireless debugging on this network?‎‏‎‎‏‎"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎Network Name (SSID)‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="SSID_0">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Wi‑Fi Address (BSSID)‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="BSSID_1">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‎‏‏‎Always allow on this network‎‏‎‎‏‎"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‏‏‏‎‎Allow‎‏‎‎‏‎"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‏‏‎‏‎Wireless debugging not allowed‎‏‎‎‏‎"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‎The user currently signed in to this device can’t turn on wireless debugging. To use this feature, switch to the primary user.‎‏‎‎‏‎"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎USB port disabled‎‏‎‎‏‎"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‏‏‏‏‎‏‎To protect your device from liquid or debris, the USB port is disabled and won’t detect any accessories.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You’ll be notified when it’s okay to use the USB port again.‎‏‎‎‏‎"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‎‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‎‎USB port enabled to detect chargers and accessories‎‏‎‎‏‎"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎Manage‎‏‎‎‏‎"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎History‎‏‎‎‏‎"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎Silent notifications‎‏‎‎‏‎"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎Alerting notifications‎‏‎‎‏‎"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎Conversations‎‏‎‎‏‎"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎Clear all silent notifications‎‏‎‎‏‎"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎Notifications paused by Do Not Disturb‎‏‎‎‏‎"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎Gets your attention with sound or vibration.‎‏‎‎‏‎"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‏‏‎‎‏‎Keeps your attention with a floating shortcut to this content.‎‏‎‎‏‎"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‎No recent bubbles‎‏‎‎‏‎"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎Recently dismissed bubbles will appear here for easy retrieval.‎‏‎‎‏‎"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‎Recent bubbles and dismissed bubbles will appear here.‎‏‎‎‏‎"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎These notifications can\'t be modified.‎‏‎‎‏‎"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‎‎‏‏‎This group of notifications cannot be configured here‎‏‎‎‏‎"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎Proxied notification‎‏‎‎‏‎"</string>
@@ -972,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎Move bottom left‎‏‎‎‏‎"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎Move bottom right‎‏‎‎‏‎"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎Dismiss‎‏‎‎‏‎"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‏‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎Keep chats up front‎‏‎‎‏‎"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎New chats from ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ will appear as bubbles. Tap a bubble to open it. Drag to move it.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Tap the bubble‎‏‎‎‏‎"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‎Tap Manage to turn off bubbles from this app‎‏‎‎‏‎"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‎‎‎System navigation updated. To make changes, go to Settings.‎‏‎‎‏‎"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎Go to Settings to update system navigation‎‏‎‎‏‎"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎Standby‎‏‎‎‏‎"</string>
@@ -981,13 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‎‏‎Quick Controls‎‏‎‎‏‎"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎Add Controls‎‏‎‎‏‎"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‎‏‎Choose an app from which to add controls‎‏‎‎‏‎"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="NUMBER_1">%s</xliff:g>‎‏‎‎‏‏‏‎ current favorites.‎‏‎‎‏‎</item>
-      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="NUMBER_0">%s</xliff:g>‎‏‎‎‏‏‏‎ current favorite.‎‏‎‎‏‎</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="NUMBER_1">%s</xliff:g>‎‏‎‎‏‏‏‎ controls added.‎‏‎‎‏‎</item>
+      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="NUMBER_0">%s</xliff:g>‎‏‎‎‏‏‏‎ control added.‎‏‎‎‏‎</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎Controls‎‏‎‎‏‎"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎Choose controls for quick access‎‏‎‎‏‎"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎Favorites‎‏‎‎‏‎"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎All‎‏‎‎‏‎"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎The list of all controls could not be loaded.‎‏‎‎‏‎"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‎Other‎‏‎‎‏‎"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index f2d145f..f5c7808 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permitir"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"No tienes permitida la depuración por USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"El usuario al que accediste en este dispositivo no puede activar la depuración por USB. Para usar esta función, debes cambiar al usuario principal."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"¿Quieres permitir la depuración inalámbrica en esta red?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nombre de red (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nDirección Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Permitir siempre en esta red"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permitir"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"No tienes permitida la depuración inalámbrica"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"El usuario al que accediste en este dispositivo no puede activar la depuración inalámbrica. Para usar esta función, debes cambiar al usuario principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Puerto USB inhabilitado"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Para proteger tu dispositivo de líquidos o suciedad, el puerto USB está inhabilitado y no detectará ningún accesorio.\n\nTe avisaremos cuando puedas usar el puerto USB de nuevo."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Se habilitó el puerto USB para detectar cargadores y accesorios"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Administrar"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historial"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificaciones silenciosas"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificaciones que alertan"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversaciones"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Borrar todas las notificaciones silenciosas"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notificaciones pausadas por el modo \"No interrumpir\""</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Te ayuda a concentrarte sin sonar ni vibrar."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Capta tu atención con sonido o vibración."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Retiene tu atención con un acceso directo flotante a este contenido."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No hay burbujas recientes"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Las burbujas recientes y las descartadas aparecerán aquí."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"No se pueden modificar estas notificaciones."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"No se puede configurar aquí este grupo de notificaciones"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificación almacenada en proxy"</string>
@@ -716,8 +721,8 @@
     <string name="notification_conversation_unfavorite" msgid="181383708304763807">"No es una conversación importante"</string>
     <string name="notification_conversation_mute" msgid="268951550222925548">"Silenciada"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"Activar alertas"</string>
-    <string name="notification_conversation_bubble" msgid="2242180995373949022">"Mostrar cuadro"</string>
-    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"Quitar cuadros"</string>
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"Mostrar burbuja"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"Quitar burbujas"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"Agregar a la pantalla principal"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g> de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"controles de notificación"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Ubicar abajo a la izquierda"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Ubicar abajo a la derecha"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorar"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Se actualizó el sistema de navegación. Para hacer cambios, ve a Configuración."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ve a Configuración para actualizar la navegación del sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Agregar controles"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Elige una app desde la cual agregar controles"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoritos actuales</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> favorito actual</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Se agregaron <xliff:g id="NUMBER_1">%s</xliff:g> controles.</item>
+      <item quantity="one">Se agregó <xliff:g id="NUMBER_0">%s</xliff:g> control.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Elige los controles de acceso rápido"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todo"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"No se cargó la lista completa de controles."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Otros"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index a5b1871..85af824 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permitir"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Depuración USB no permitida"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"El usuario con el que se ha iniciado sesión en este dispositivo no puede activar la depuración USB. Para utilizar esta función, inicia sesión con la cuenta de usuario principal."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"¿Quieres permitir la depuración inalámbrica en esta red?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nombre de la red (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nDirección Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Permitir siempre en esta red"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permitir"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Depuración inalámbrica no permitida"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"El usuario con el que se ha iniciado sesión en este dispositivo no puede activar la depuración inalámbrica. Para utilizar esta función, inicia sesión con la cuenta de usuario principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Puerto USB inhabilitado"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Para proteger tu dispositivo de los líquidos y la suciedad, el puerto USB se ha inhabilitado y no detectará ningún accesorio.\n\nRecibirás una notificación cuando puedas volver a usarlo."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Puerto USB habilitado para detectar cargadores y accesorios"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gestionar"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historial"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificaciones silenciadas"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificaciones que alertan"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversaciones"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Borrar todas las notificaciones silenciadas"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notificaciones pausadas por el modo No molestar"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Te ayuda a concentrarte sin sonido ni vibración."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Llama tu atención con sonido o vibración."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Llama tu atención con un acceso directo flotante a este contenido."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No hay burbujas recientes"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Las burbujas recientes y las descartadas aparecerán aquí."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificaciones no se pueden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Este grupo de notificaciones no se puede configurar aquí"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificación mediante proxy"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover abajo a la izquierda."</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover abajo a la derecha"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Cerrar"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Se ha actualizado la navegación del sistema. Para hacer cambios, ve a Ajustes."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ve a Ajustes para actualizar la navegación del sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Añadir controles"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Elige una aplicación de la que quieras añadir controles"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoritos.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> favorito.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Se han añadido <xliff:g id="NUMBER_1">%s</xliff:g> controles.</item>
+      <item quantity="one">Se ha añadido <xliff:g id="NUMBER_0">%s</xliff:g> control.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Elige controles de acceso rápido"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todos"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"No se ha podido cargar la lista de los controles."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Otros"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index aaa4d5c..548076d 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Luba"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-silumine pole lubatud"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Sellesse seadmesse praegu sisse logitud kasutaja ei saa USB-silumist sisse lülitada. Selle funktsiooni kasutamiseks vahetage peamisele kasutajale."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Kas lubada selles võrgus juhtmevaba silumine?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Võrgu nimi (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWiFi-võrgu aadress (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Luba selles võrgus alati"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Luba"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Juhtmevaba silumine pole lubatud"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Sellesse seadmesse praegu sisse logitud kasutaja ei saa juhtmevaba silumist sisse lülitada. Selle funktsiooni kasutamiseks vahetage peamisele kasutajale."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-port on keelatud"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Selleks et kaitsta teie seadet vedeliku või mustuse eest, on USB-port keelatud ja see ei tuvasta lisatarvikuid.\n\nKui USB-porti tohib taas kasutada, saate selle kohta märguande."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-pordil on lubatud tuvastada laadijaid ja tarvikuid"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Haldamine"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Ajalugu"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Hääletud märguanded"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Hoiatusmärguanded"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Vestlused"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Kustuta kõik hääletud märguanded"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Režiim Mitte segada peatas märguanded"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Aitab teil keskenduda (heli või vibreerimine puudub)."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Haarab heli või vibreerimisega teie tähelepanu."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Hoiab teie tähelepanu hõljuva otseteega selle sisu juurde."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Hiljutisi mulle pole"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Siin kuvatakse hiljutised mullid ja mullid, millest loobuti."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Neid märguandeid ei saa muuta."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Seda märguannete rühma ei saa siin seadistada"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Puhvriga märguanne"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Teisalda alla vasakule"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Teisalda alla paremale"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Loobu"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Süsteemis navigeerimine on värskendatud. Muutmiseks avage jaotis Seaded."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Süsteemi navigeerimise värskendamiseks avage jaotis Seaded"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ooterežiim"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Kiirnupud"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Juhtnuppude lisamine"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Valige rakendus, kus juhtnupud lisada"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> praegust lemmikut.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> praegune lemmik.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Lisati <xliff:g id="NUMBER_1">%s</xliff:g> juhtnuppu.</item>
+      <item quantity="one">Lisati <xliff:g id="NUMBER_0">%s</xliff:g> juhtnupp.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Juhtnupud"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Valige kiirjuurdepääsuks juhtnupud"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Lemmikud"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Kõik"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Kõikide juhtelementide loendit ei saanud laadida."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Muu"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 8397c34..380b752 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Baimendu"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Ez da onartzen USB bidezko arazketa"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Gailu honetan saioa hasita daukan erabiltzaileak ezin du aktibatu USB bidezko arazketa. Eginbide hori erabiltzeko, aldatu erabiltzaile nagusira."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Hari gabeko arazketa onartu nahi duzu sare honetan?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Sarearen izena (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWifi-helbidea (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Onartu beti sare honetan"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Baimendu"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Ez da onartzen hari gabeko arazketa"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Gailu honetan saioa hasita daukan erabiltzaileak ezin du aktibatu hari gabeko bidezko arazketa. Eginbide hori erabiltzeko, aldatu erabiltzaile nagusira."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Desgaitu egin da USB ataka"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"USB ataka desgaitu egin da gailua likido edo zikinkeriengandik babesteko, eta ez du hautemango osagarririk.\n\nJakinarazpen bat jasoko duzu USB ataka berriz erabiltzeko moduan dagoenean."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB ataka gaitu da kargagailuak eta osagarriak hautemateko"</string>
@@ -83,7 +89,7 @@
     <string name="screenrecord_name" msgid="2596401223859996572">"Pantaila-grabagailua"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Pantailaren grabaketa-saioaren jakinarazpen jarraitua"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Grabatzen hasi nahi duzu?"</string>
-    <string name="screenrecord_description" msgid="1123231719680353736">"Zerbait grabatzen duzun bitartean, Android sistemak atzeman egin dezake pantailan agertzen den edo gailuak erreproduzitzen duen kontuzko informazioa; besteak beste, pasahitzak, ordainketen informazioa, argazkiak, mezuak eta audioak."</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"Pantaila grabatzen duzun bitartean, Android sistemak detektatu egin dezake pantailan agertzen den edo gailuak erreproduzitzen duen kontuzko informazioa; besteak beste, pasahitzak, ordainketen informazioa, argazkiak, mezuak eta audioak."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Grabatu audioa"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Gailuaren audioa"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Gailuko soinuak; adibidez, musika, deiak eta tonuak"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Kudeatu"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historia"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Soinurik gabeko jakinarazpenak"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Soinua/Dar-dar egiten duten jakinarazpenak"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Elkarrizketak"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Garbitu soinurik gabeko jakinarazpen guztiak"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Ez molestatzeko moduak pausatu egin ditu jakinarazpenak"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ez du egiten soinu edo dardararik, arretarik gal ez dezazun."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Arreta erakartzen du soinua eta dardara eginda."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Eduki honetarako lasterbide gainerakor bat eskaintzen dizu, arretarik gal ez dezazun."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ez dago azkenaldiko burbuilarik"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Azken burbuilak eta baztertutakoak agertuko dira hemen."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Jakinarazpen horiek ezin dira aldatu."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Jakinarazpen talde hau ezin da konfiguratu hemen"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxy bidezko jakinarazpena"</string>
@@ -713,7 +718,7 @@
     <string name="inline_undo" msgid="9026953267645116526">"Desegin"</string>
     <string name="demote" msgid="6225813324237153980">"Markatu jakinarazpen hau ez dela elkarrizketa bat"</string>
     <string name="notification_conversation_favorite" msgid="1905240206975921907">"Elkarrizketa garrantzitsua"</string>
-    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Ez da elkarrizketa garrantzitsu bat"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Elkarrizketa ez da garrantzitsua"</string>
     <string name="notification_conversation_mute" msgid="268951550222925548">"Ezkutatuta"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"Aktibatu jakinarazpenak"</string>
     <string name="notification_conversation_bubble" msgid="2242180995373949022">"Erakutsi burbuila"</string>
@@ -788,7 +793,7 @@
     <string name="clock" msgid="8978017607326790204">"Erlojua"</string>
     <string name="headset" msgid="4485892374984466437">"Mikrofonodun entzungailua"</string>
     <string name="accessibility_long_click_tile" msgid="210472753156768705">"Ireki ezarpenak"</string>
-    <string name="accessibility_status_bar_headphones" msgid="1304082414912647414">"Aurikularrak konektatu dira"</string>
+    <string name="accessibility_status_bar_headphones" msgid="1304082414912647414">"Entzungailuak konektatu dira"</string>
     <string name="accessibility_status_bar_headset" msgid="2699275863720926104">"Mikrofonodun entzungailua konektatu da"</string>
     <string name="data_saver" msgid="3484013368530820763">"Datu-aurrezlea"</string>
     <string name="accessibility_data_saver_on" msgid="5394743820189757731">"Aktibatuta dago datu-aurrezlea"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Eraman behealdera, ezkerretara"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Eraman behealdera, eskuinetara"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Baztertu"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Eguneratu da sistemaren nabigazioa. Aldaketak egiteko, joan Ezarpenak atalera."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistemaren nabigazioa eguneratzeko, joan Ezarpenak atalera"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Egonean"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Kontrol bizkorrak"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Gehitu kontrolatzeko aukerak"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Aukeratu zein aplikaziotatik gehitu nahi dituzun kontrolatzeko aukerak"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Une honetan, <xliff:g id="NUMBER_1">%s</xliff:g> gogoko daude.</item>
-      <item quantity="one">Une honetan, <xliff:g id="NUMBER_0">%s</xliff:g> gogoko daude.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontrol-aukera gehitu dira.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kontrol-aukera gehitu da.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrolatzeko aukerak"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Aukeratu sarbide bizkorra kontrolatzeko aukerak"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Gogokoak"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Guztiak"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Ezin izan da kargatu kontrol guztien zerrenda."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Beste bat"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index b50e595..c7c0336 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"اجازه دادن"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"‏اشکال‌زدایی USB مجاز نیست"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"‏کاربری که درحال حاضر در این دستگاه وارد سیستم شده است نمی‌تواند اشکال‌زدایی USB را روشن کند. برای استفاده از این قابلیت، به کاربر اصلی تغییر وضعیت دهید."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"اشکال‌زدایی بی‌سیم در این شبکه مجاز شود؟"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"‏نام شبکه (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nنشانی Wi‑Fi (BSSID)‎\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"همیشه در این شبکه مجاز شود"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"مجاز"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"اشکال‌زدایی بی‌سیم مجاز نیست"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"کاربری که درحال‌حاضر در این دستگاه به سیستم وارد شده است نمی‌تواند اشکال‌زدایی بی‌سیم را روشن کند. برای استفاده از این ویژگی، به کاربر اصلی بروید."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"‏درگاه USB غیرفعال شده است"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"‏برای محافظت از دستگاهتان دربرابر مایعات یا خاکروبه، درگاه USB غیرفعال شده است و هیچ‌کدام از لوازم جانبی را شناسایی نخواهد کرد.\n\nهرزمان که استفاده از درگاه USB امکان‌پذیر باشد، به شما اطلاع داده می‌شود."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"‏درگاه USB برای تشخیص شارژرها و لوازم جانبی فعال شد"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"مدیریت"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"سابقه"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"اعلان‌های بی‌صدا"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"اعلان‌های هشدار"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"مکالمه‌ها"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"پاک کردن همه اعلان‌های بی‌صدا"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"اعلان‌ها توسط «مزاحم نشوید» موقتاً متوقف شدند"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"به شما کمک می‌کند بدون صدا یا لرزش تمرکز کنید."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"با صدا یا لرزش توجه شما را جلب می‌کند."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"با میان‌بری شناور به این محتوا، توجه‌تان را جلب می‌کند."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"هیچ ابزارک اعلان جدیدی وجود ندارد"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ابزارک‌های اعلان اخیر و ابزارک‌های اعلان ردشده اینجا ظاهر خواهند شد."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"این اعلان‌ها قابل اصلاح نیستند."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"نمی‌توانید این گروه اعلان‌ها را در اینجا پیکربندی کنید"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"اعلان‌های دارای پراکسی"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"انتقال به پایین سمت راست"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"انتقال به پایین سمت چپ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"رد کردن"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"پیمایش سیستم به‌روزرسانی شد. برای انجام تغییرات به «تنظیمات» بروید."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"برای به‌روزرسانی پیمایش سیستم، به «تنظیمات» بروید"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"آماده‌به‌کار"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"کنترل های سریع"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"افزودن کنترل‌ها"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"برنامه‌ای را که می‌خواهید کنترل‌ها را از آن اضافه کنید انتخاب کنید"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> مورد دلخواه کنونی.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> مورد دلخواه کنونی.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> کنترل اضافه شده است.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> کنترل اضافه شده است.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"کنترل‌ها"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"کنترل‌های موردنظر را برای دسترسی سریع انتخاب کنید"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"موارد دلخواه"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"همه"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"فهرست همه کنترل‌ها را نمی‌توان بارگیری کرد."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"موارد دیگر"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index c6898f0..0daab9e 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Salli"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-vianetsintää ei sallita"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Laitteelle tällä hetkellä kirjautunut käyttäjä ei voi ottaa USB-vianetsintää käyttöön. Vaihda käyttäjäksi ensisijainen käyttäjä, jotta voit käyttää tätä ominaisuutta."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Sallitaanko langaton virheenkorjaus tässä verkossa?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Verkon nimi (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi-Fin osoite (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Salli aina tässä verkossa"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Salli"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Langatonta virheenkorjausta ei sallita"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Laitteelle tällä hetkellä kirjautunut käyttäjä ei voi ottaa langatonta virheenkorjausta käyttöön. Vaihda käyttäjäksi ensisijainen käyttäjä, jotta voit käyttää tätä ominaisuutta."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-portti poistettu käytöstä"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Laitteen suojaamiseksi nesteiltä ja lialta USB-portti on poistettu käytöstä, eikä se havaitse lisävarusteita.\n\nSaat ilmoituksen, kun USB-porttia voi taas käyttää."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-portti on käytössä ja voi havaita latureita sekä lisävarusteita"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Muuta asetuksia"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historia"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Hiljaiset ilmoitukset"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Ääni-ilmoitukset"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Keskustelut"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Tyhjennä kaikki hiljaiset ilmoitukset"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Älä häiritse ‑tila keskeytti ilmoitukset"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Keskittyminen on helpompaa ilman ääntä tai värinää."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Kiinnittää huomion äänellä tai värinällä"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Kelluva sisällön pikakuvake säilyttää huomiosi"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ei viimeaikaisia ohjekuplia"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Viimeaikaiset ja äskettäin ohitetut ohjekuplat näkyvät täällä."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Näitä ilmoituksia ei voi muokata"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tätä ilmoitusryhmää ei voi määrittää tässä"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Välitetty ilmoitus"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Siirrä vasempaan alareunaan"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Siirrä oikeaan alareunaan"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ohita"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Järjestelmän navigointitapa vaihdettu. Voit muuttaa sitä asetuksista."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Vaihda järjestelmän navigointitapaa asetuksista"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Virransäästötila"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Pikasäätimet"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Säätimien lisääminen"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Valitse sovellus, jolla säätimet lisätään"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> nykyistä suosikkia.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> nykyinen suosikki.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> säädintä lisätty</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> säädin lisätty</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Säätimet"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Valitse pikakäytön säätimet"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Suosikit"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Kaikki"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Kaikkien säätimien luetteloa ei voitu ladata."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Muu"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 9b2003f..cc9b7c2 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Autoriser"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Débogage USB non autorisé"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"L\'utilisateur actuellement connecté sur cet appareil ne peut pas activer le débogage USB. Pour utiliser cette fonctionnalité, l\'utilisateur principal doit se connecter."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Autoriser le débogage sans fil sur ce réseau?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nom du réseau (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresse Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Toujours autoriser sur ce réseau"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Autoriser"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Débogage sans fil non autorisé"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"L\'utilisateur actuellement connecté sur cet appareil ne peut pas activer le débogage sans fil. Pour utiliser cette fonctionnalité, l\'utilisateur principal doit se connecter."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Le port USB a été désactivé"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Pour protéger votre appareil des liquides et des débris, le port USB est désactivé et ne pourra pas détecter les accessoires.\n\nVous verrez une notification lorsque vous pourrez utiliser le port USB à nouveau."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Le port USB a été activé afin de détecté les chargeurs et les accessoires"</string>
@@ -92,7 +98,7 @@
     <string name="screenrecord_start" msgid="330991441575775004">"Démarrer"</string>
     <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Enregistrement de l\'écran"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"Enregistrement de l\'écran et de l\'audio"</string>
-    <string name="screenrecord_taps_label" msgid="1595690528298857649">"Afficher là où le doigt touche l\'écran"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"Afficher les endroits touchés à l\'écran"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"Toucher pour arrêter"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"Arrêter"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"Pause"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gérer"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historique"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notifications silencieuses"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notifications d\'alerte"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Effacer toutes les notifications silencieuses"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Les notifications sont suspendues par le mode Ne pas déranger"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Vous aider à vous concentrer, sans son ni vibration."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Attire votre attention à l\'aide de sons et de vibrations."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Garde votre attention à l\'aide d\'un raccourci flottant vers ce contenu."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Aucune bulle récente"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Les bulles récentes et les bulles ignorées s\'afficheront ici."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ces notifications 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>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notification par mandataire"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Déplacer dans coin inf. gauche"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Déplacer dans coin inf. droit"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Fermer"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"La navigation système a été mise à jour. Pour apporter des modifications, accédez au menu Paramètres."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accédez au menu Paramètres pour mettre à jour la navigation système"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Veille"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Commandes rapides"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Ajouter des commandes"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Choisissez une application de laquelle ajouter des commandes"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> favori actuel.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoris actuels.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> commande ajoutée.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> commandes ajoutées.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Commandes"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choisissez les commandes d\'accès rapide"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoris"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tous"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Impossible de charger la liste des commandes."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Autre"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 90fdcfe..26a4010 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Autoriser"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Débogage USB non autorisé"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"L\'utilisateur actuellement connecté sur cet appareil ne peut pas activer le débogage USB. Pour utiliser cette fonctionnalité, l\'utilisateur principal doit se connecter."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Autoriser le débogage via Wi-Fi sur ce réseau ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nom du réseau (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresse Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Toujours autoriser sur ce réseau"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Autoriser"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Débogage via Wi-Fi non autorisé"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"L\'utilisateur actuellement connecté sur cet appareil ne peut pas activer le débogage via Wi-Fi. Pour que cette fonctionnalité soit disponible, l\'utilisateur principal doit se connecter."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Port USB désactivé"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Pour protéger votre appareil des liquides et des saletés, le port USB est désactivé et ne détecte plus les accessoires.\n\nVous recevrez une notification lorsque vous pourrez de nouveau utiliser le port USB."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Port USB activé pour détecter les chargeurs et les accessoires"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gérer"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historique"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notifications silencieuses"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notifications sonores"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Effacer toutes les notifications silencieuses"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifications suspendues par le mode Ne pas déranger"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Sans sons ni vibrations, vous aide à vous concentrer."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Attire votre attention à l\'aide de sons ou de vibrations."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Attire votre attention à l\'aide d\'un raccourci flottant vers ce contenu."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Aucune bulle récente"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Les bulles récentes et fermées s\'afficheront ici."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossible de modifier ces notifications."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Vous ne pouvez pas configurer ce groupe de notifications ici"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notification de proxy"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Déplacer en bas à gauche"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Déplacer en bas à droite"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorer"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigation système mise à jour. Pour apporter des modifications, accédez aux paramètres."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accédez aux paramètres pour mettre à jour la navigation système"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Mode Veille imminent"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Commandes rapides"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Ajouter des commandes"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Sélectionnez une application depuis laquelle vous souhaitez ajouter des commandes"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> current favorites.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoris actuels.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> controls added.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> commandes ajoutées.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Commandes"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Sélectionnez des commandes pour pouvoir y accéder rapidement"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoris"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tout"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Impossible de charger toutes les commandes."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Autre"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 4e2a116..e1e8c76 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permitir"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Non se permite a depuración por USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"O usuario coa sesión iniciada actualmente neste dispositivo non pode activar a depuración por USB. Para utilizar esta función, cambia ao usuario principal."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Queres permitir a depuración sen fíos nesta rede?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nome de rede (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nEnderezo wifi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Permitir sempre nesta rede"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permitir"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Non se permite a depuración sen fíos"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"O usuario coa sesión iniciada actualmente neste dispositivo non pode activar a depuración sen fíos. Para utilizar esta función, cambia ao usuario principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"O porto USB está desactivado"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Para protexer o dispositivo de líquidos ou residuos, desactivouse o porto USB e non detectará ningún accesorio.\n\nRecibirás unha notificación cando o poidas utilizar de novo."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Activouse o porto USB para detectar cargadores e accesorios"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Xestionar"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historial"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificacións silenciadas"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificación de alerta"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversas"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Borra todas as notificacións silenciadas"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"O modo Non molestar puxo en pausa as notificacións"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Axúdache a centrarte sen son nin vibración."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama a túa atención con son ou vibración."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantén a túa atención cun atallo flotante a este contido."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Non hai burbullas recentes"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"As burbullas recentes e rexeitadas aparecerán aquí."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificacións non se poden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquí non se pode configurar este grupo de notificacións"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificación mediante proxy"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover á parte infer. esquerda"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover á parte inferior dereita"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorar"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Actualizouse a navegación do sistema. Para facer cambios, vai a Configuración."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Para actualizar a navegación do sistema, vai a Configuración"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controis rápidos"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Engadir controis"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Escolle unha aplicación cuxos controis queiras engadir"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoritos actuais.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> favorito actual.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Engadíronse <xliff:g id="NUMBER_1">%s</xliff:g> controis.</item>
+      <item quantity="one">Engadiuse <xliff:g id="NUMBER_0">%s</xliff:g> control.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controis"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolle os controis aos que queiras acceder rapidamente"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todo"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Non se puido cargar a lista de todos os controis."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outra"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index b0f8cde..b16362b 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"મંજૂરી આપો"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB ડીબગિંગની મંજૂરી નથી"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"હાલમાં આ ઉપકરણમાં સાઇન ઇન થયેલ વપરાશકર્તા USB ડિબગીંગ ચાલુ કરી શકતા નથી. આ સુવિધાનો ઉપયોગ કરવા માટે પ્રાથમિક વપરાશકર્તા પર સ્વિચ કરો."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"આ નેટવર્ક પર વાયરલેસ ડિબગીંગની મંજૂરી આપીએ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"નેટવર્કનું નામ (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nવાઇ-ફાઇ ઍડ્રેસ (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"આ નેટવર્ક પર હંમેશા મંજૂરી આપો"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"મંજૂરી આપો"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"વાયરલેસ ડિબગીંગની મંજૂરી નથી"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"હાલમાં આ ડિવાઇસમાં સાઇન ઇન થયેલ વપરાશકર્તા વાયરલેસ ડિબગીંગ ચાલુ કરી શકતાં નથી. આ સુવિધાનો ઉપયોગ કરવા માટે પ્રાથમિક વપરાશકર્તા પર સ્વિચ કરો."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB પોર્ટ બંધ કરવામાં આવ્યો છે"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"પ્રવાહી અથવા ધૂળથી તમારા ડિવાઇસનું રક્ષણ કરવા માટે, USB પોર્ટ બંધ કરવામાં આવ્યો છે અને કોઈ ઍક્સેસરી શોધશે નહીં.\n\nજ્યારે ફરીથી USB પોર્ટને ઉપયોગમાં લેવાનું સુરક્ષિત હશે ત્યારે તમને નોટિફિકેશન આપવામાં આવશે."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ચાર્જર અને ઍક્સેસરીની ઓળખ માટે USB પોર્ટ ચાલુ કર્યું"</string>
@@ -80,31 +86,19 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ફરીથી સ્ક્રીનશૉટ લેવાનો પ્રયાસ કરો"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"મર્યાદિત સ્ટોરેજ સ્પેસને કારણે સ્ક્રીનશૉટ સાચવી શકાતો નથી"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ઍપ્લિકેશન કે તમારી સંસ્થા દ્વારા સ્ક્રીનશૉટ લેવાની મંજૂરી નથી"</string>
-    <!-- no translation found for screenrecord_name (2596401223859996572) -->
-    <skip />
+    <string name="screenrecord_name" msgid="2596401223859996572">"સ્ક્રીન રેકૉર્ડર"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"સ્ક્રીન રેકોર્ડિંગ સત્ર માટે ચાલુ નોટિફિકેશન"</string>
-    <!-- no translation found for screenrecord_start_label (1750350278888217473) -->
-    <skip />
-    <!-- no translation found for screenrecord_description (1123231719680353736) -->
-    <skip />
-    <!-- no translation found for screenrecord_audio_label (6183558856175159629) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_label (9016927171280567791) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_description (4922694220572186193) -->
-    <skip />
-    <!-- no translation found for screenrecord_mic_label (2111264835791332350) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_and_mic_label (1831323771978646841) -->
-    <skip />
-    <!-- no translation found for screenrecord_start (330991441575775004) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_only (4459670242451527727) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_and_audio (5351133763125180920) -->
-    <skip />
-    <!-- no translation found for screenrecord_taps_label (1595690528298857649) -->
-    <skip />
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"રેકૉર્ડિંગ શરૂ કરીએ?"</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"રેકૉર્ડ કરતી વખતે, Android System તમારી સ્ક્રીન પર દેખાતી હોય અથવા તમારા ડિવાઇસ પર ચલાવવામાં આવતી હોય તેવી કોઈપણ સંવેદનશીલ માહિતીને કૅપ્ચર કરી શકે છે. આમાં પાસવર્ડ, ચુકવણીની માહિતી, ફોટા, સંદેશા અને ઑડિયોનો સમાવેશ થાય છે."</string>
+    <string name="screenrecord_audio_label" msgid="6183558856175159629">"ઑડિયો રેકૉર્ડ કરો"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"ડિવાઇસનો ઑડિયો"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"મ્યુઝિક, કૉલ અને રિંગટોન જેવા તમારા ડિવાઇસના સાઉન્ડ"</string>
+    <string name="screenrecord_mic_label" msgid="2111264835791332350">"માઇક્રોફોન"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"ડિવાઇસનો ઑડિયો અને માઇક્રોફોન"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"શરૂ કરો"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"સ્ક્રીનને રેકૉર્ડ કરી રહ્યાં છીએ"</string>
+    <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"સ્ક્રીન અને ઑડિયોને રેકૉર્ડ કરી રહ્યાં છીએ"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"સ્ક્રીન પર ટચ બતાવો"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"રોકવા માટે ટૅપ કરો"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"રોકો"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"થોભાવો"</string>
@@ -117,8 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"સ્ક્રીન રેકોર્ડિંગ ડિલીટ કર્યું"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"સ્ક્રીન રેકોર્ડિંગ ડિલીટ કરવામાં ભૂલ આવી"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"પરવાનગીઓ મેળવવામાં નિષ્ફળ રહ્યાં"</string>
-    <!-- no translation found for screenrecord_start_error (2200660692479682368) -->
-    <skip />
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"સ્ક્રીનને રેકૉર્ડ કરવાનું શરૂ કરવામાં ભૂલ"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USB ફાઇલ ટ્રાન્સફર વિકલ્પો"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"મીડિયા પ્લેયર તરીકે માઉન્ટ કરો (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"કૅમેરા તરીકે માઉન્ટ કરો (PTP)"</string>
@@ -499,9 +492,9 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"ફરીથી બતાવશો નહીં"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"બધુ સાફ કરો"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"મેનેજ કરો"</string>
-    <!-- no translation found for manage_notifications_history_text (57055985396576230) -->
-    <skip />
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"ઇતિહાસ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"સાઇલન્ટ નોટિફિકેશન"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"નોટિફિકેશન બદલી રહ્યાં છીએ"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"વાતચીત"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"બધા સાઇલન્ટ નોટિફિકેશન સાફ કરો"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"ખલેલ પાડશો નહીં દ્વારા થોભાવેલ નોટિફિકેશન"</string>
@@ -700,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"તમને સાઉન્ડ અથવા વાઇબ્રેશન વિના ફોકસ કરવામાં સહાય કરે છે."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"સાઉન્ડ અથવા વાઇબ્રેશન વિના તમારું ધ્યાન દોરે છે."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ફ્લોટિંગ શૉર્ટકટથી આ કન્ટેન્ટ પર તમારું ધ્યાન દોરી રાખે છે."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"તાજેતરના કોઈ બબલ નથી"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"એકદમ નવા બબલ અને છોડી દીધેલા બબલ અહીં દેખાશે."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"આ નોટિફિકેશનમાં કોઈ ફેરફાર થઈ શકશે નહીં."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"નોટિફિકેશનના આ ગ્રૂપની ગોઠવણી અહીં કરી શકાશે નહીં"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"પ્રૉક્સી નોટિફિકેશન"</string>
@@ -726,25 +717,18 @@
     <string name="notification_done" msgid="6215117625922713976">"થઈ ગયું"</string>
     <string name="inline_undo" msgid="9026953267645116526">"રદ કરો"</string>
     <string name="demote" msgid="6225813324237153980">"આ નોટિફિકેશન વાતચીત ન હોવા તરીકે માર્ક કરો"</string>
-    <!-- no translation found for notification_conversation_favorite (1905240206975921907) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unfavorite (181383708304763807) -->
-    <skip />
-    <!-- no translation found for notification_conversation_mute (268951550222925548) -->
-    <skip />
+    <string name="notification_conversation_favorite" msgid="1905240206975921907">"મહત્ત્વપૂર્ણ વાતચીત"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"મહત્ત્વપૂર્ણ વાતચીત નથી"</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"શાંત કરી"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"અલર્ટ કરીએ છીએ"</string>
-    <!-- no translation found for notification_conversation_bubble (2242180995373949022) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unbubble (6908427185031099868) -->
-    <skip />
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"બબલ બતાવો"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"બબલ કાઢી નાખો"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"હોમ સ્ક્રીન પર ઉમેરો"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"સૂચના નિયંત્રણો"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"સૂચના સ્નૂઝ કરવાના વિકલ્પો"</string>
-    <!-- no translation found for notification_menu_snooze_action (5415729610393475019) -->
-    <skip />
-    <!-- no translation found for notification_menu_settings_action (7085494017202764285) -->
-    <skip />
+    <string name="notification_menu_snooze_action" msgid="5415729610393475019">"મને યાદ કરાવો"</string>
+    <string name="notification_menu_settings_action" msgid="7085494017202764285">"સેટિંગ"</string>
     <string name="snooze_undo" msgid="60890935148417175">"પૂર્વવત્ કરો"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"<xliff:g id="TIME_AMOUNT">%1$s</xliff:g> માટે સ્નૂઝ કરો"</string>
     <plurals name="snoozeHourOptions" formatted="false" msgid="2066838694120718170">
@@ -816,8 +800,7 @@
     <string name="accessibility_data_saver_off" msgid="58339669022107171">"ડેટા સેવર બંધ છે"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"ચાલુ"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"બંધ"</string>
-    <!-- no translation found for tile_unavailable (3095879009136616920) -->
-    <skip />
+    <string name="tile_unavailable" msgid="3095879009136616920">"ઉપલબ્ધ નથી"</string>
     <string name="nav_bar" msgid="4642708685386136807">"નેવિગેશન બાર"</string>
     <string name="nav_bar_layout" msgid="4716392484772899544">"લેઆઉટ"</string>
     <string name="left_nav_bar_button_type" msgid="2634852842345192790">"અતિરિક્ત ડાબો બટન પ્રકાર"</string>
@@ -996,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"નીચે ડાબે ખસેડો"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"નીચે જમણે ખસેડો"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"છોડી દો"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"સિસ્ટમ નૅવિગેશન અપડેટ કર્યું. ફેરફારો કરવા માટે, સેટિંગ પર જાઓ."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"સિસ્ટમ નૅવિગેશનને અપડેટ કરવા માટે સેટિંગ પર જાઓ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"સ્ટૅન્ડબાય"</string>
@@ -1005,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ઝડપી નિયંત્રણો"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"નિયંત્રણો ઉમેરો"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"જેમાંથી નિયંત્રણો ઉમેરવા હોય તે ઍપ પસંદ કરો"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">હાલમાં <xliff:g id="NUMBER_1">%s</xliff:g> મનપસંદ.</item>
-      <item quantity="other">હાલમાં <xliff:g id="NUMBER_1">%s</xliff:g> મનપસંદ.</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"નિયંત્રણો"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ઝડપી ઍક્સેસ માટેનાં નિયંત્રણો પસંદ કરો"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"મનપસંદ"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"તમામ"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"બધા નિયંત્રણોની સૂચિ લોડ કરી શકાઈ નથી."</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index c3b5528..3cb4c6f 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"अनुमति दें"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB डीबगिंग की अनुमति नहीं है"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"अभी इस डिवाइस में जिस उपयोगकर्ता ने साइन इन किया है, वो USB डीबगिंग चालू नहीं कर सकता. इस सुविधा का इस्तेमाल करने के लिए, प्राथमिक उपयोगकर्ता में बदलें."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"क्या आप इस नेटवर्क पर वायरलेस तरीके से डीबग करने की सुविधा के इस्तेमाल की अनुमति देना चाहते हैं?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"नेटवर्क का नाम (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nवाई-फ़ाई का पता (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"इस नेटवर्क पर हमेशा अनुमति दें"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"अनुमति दें"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"वायरलेस तरीके से डीबग करने की सुविधा चालू करने की अनुमति नहीं है"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"अभी इस डिवाइस में जिस उपयोगकर्ता ने साइन इन कर रखा है वह वायरलेस तरीके से डीबग करने की सुविधा चालू नहीं कर सकता. इस सुविधा का इस्तेमाल करने के लिए, मुख्य उपयोगकर्ता के तौर पर साइन इन करें."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"यूएसबी पोर्ट बंद है"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"तरल चीज़ या कचरे से आपके डिवाइस की सुरक्षा करने के लिए, यूएसबी पोर्ट को बंद कर दिया गया है. साथ ही, इससे किसी भी एक्सेसरी की पहचान नहीं की जा सकेगी.\n\nयूएसबी पोर्ट का दोबारा इस्तेमाल करना सुरक्षित होने पर आपको सूचित किया जाएगा."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"चार्जर और एक्सेसरी पहचानने के लिए यूएसबी पोर्ट को चालू कर दिया गया है"</string>
@@ -80,31 +86,19 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"स्क्रीनशॉट दोबारा लेने की कोशिश करें"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"मेमोरी कम होने की वजह से स्क्रीनशॉट सेव नहीं किया जा सका"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ऐप्लिकेशन या आपका संगठन स्क्रीनशॉट लेने की अनुमति नहीं देता"</string>
-    <!-- no translation found for screenrecord_name (2596401223859996572) -->
-    <skip />
+    <string name="screenrecord_name" msgid="2596401223859996572">"स्क्रीन रिकॉर्डर"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"स्क्रीन रिकॉर्ड सेशन के लिए जारी सूचना"</string>
-    <!-- no translation found for screenrecord_start_label (1750350278888217473) -->
-    <skip />
-    <!-- no translation found for screenrecord_description (1123231719680353736) -->
-    <skip />
-    <!-- no translation found for screenrecord_audio_label (6183558856175159629) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_label (9016927171280567791) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_description (4922694220572186193) -->
-    <skip />
-    <!-- no translation found for screenrecord_mic_label (2111264835791332350) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_and_mic_label (1831323771978646841) -->
-    <skip />
-    <!-- no translation found for screenrecord_start (330991441575775004) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_only (4459670242451527727) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_and_audio (5351133763125180920) -->
-    <skip />
-    <!-- no translation found for screenrecord_taps_label (1595690528298857649) -->
-    <skip />
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"रिकॉर्डिंग शुरू करना चाहते हैं?"</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"रिकॉर्ड करते समय, Android सिस्टम आपकी स्क्रीन पर दिखने वाली या चलाई जाने वाली संवेदनशील जानकारी को कैप्चर कर सकता है. इसमें पासवर्ड, पैसे चुकाने से जुड़ी जानकारी, फ़ोटो, मैसेज, और ऑडियो शामिल हैं."</string>
+    <string name="screenrecord_audio_label" msgid="6183558856175159629">"ऑडियो रिकॉर्ड करें"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"डिवाइस ऑडियो"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"आपके डिवाइस से आने वाली आवाज़. जैसे कि संगीत, कॉल, और रिंगटोन"</string>
+    <string name="screenrecord_mic_label" msgid="2111264835791332350">"माइक्रोफ़ोन"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"डिवाइस ऑडियो और माइक्रोफ़ोन"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"शुरू करें"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"स्क्रीन को रिकॉर्ड किया जा रहा है"</string>
+    <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"स्क्रीन और ऑडियो, दोनों रिकॉर्ड हो रहे हैं"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"स्क्रीन को कहां छुआ गया, ये दिखाएं"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"रोकने के लिए टैप करें"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"रोकें"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"रोकें"</string>
@@ -117,8 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"स्क्रीन रिकॉर्डिंग मिटा दी गई"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"स्क्रीन रिकॉर्डिंग मिटाने में गड़बड़ी हुई"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"मंज़ूरी नहीं मिल सकी"</string>
-    <!-- no translation found for screenrecord_start_error (2200660692479682368) -->
-    <skip />
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"स्क्रीन को रिकॉर्ड करने में गड़बड़ी आ रही है"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USB फ़ाइल स्थानांतरण विकल्प"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"मीडिया प्लेयर के रूप में माउंट करें (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"कैमरे के रूप में माउंट करें (PTP)"</string>
@@ -499,9 +492,9 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"फिर से न दिखाएं"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"सभी को हटाएं"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"प्रबंधित करें"</string>
-    <!-- no translation found for manage_notifications_history_text (57055985396576230) -->
-    <skip />
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"इतिहास"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"बिना आवाज़ या वाइब्रेशन वाली सूचनाएं"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"आवाज़ या वाइब्रेशन वाली सूचनाएं"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"बातचीत"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"बिना आवाज़ की सभी सूचनाएं हटाएं"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\'परेशान न करें\' सुविधा के ज़रिए कुछ समय के लिए सूचनाएं दिखाना रोक दिया गया है"</string>
@@ -700,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"आवाज़ या वाइब्रेशन न होने की वजह से आप काम में ध्यान लगा पाते हैं."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"आवाज़ या वाइब्रेशन होने की वजह से आपका ध्यान सूचनाओं पर जाता है."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"फ़्लोट करने वाले शॉर्टकट की मदद से इस सामग्री पर आपका ध्यान बना रहता है."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"हाल ही के बबल्स मौजूद नहीं हैं"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"हाल ही के बबल्स और हटाए गए बबल्स यहां दिखेंगे."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ये सूचनाएं नहीं बदली जा सकती हैं."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"सूचनाओं के इस समूह को यहां कॉन्फ़िगर नहीं किया जा सकता"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"प्रॉक्सी सूचना"</string>
@@ -726,25 +717,18 @@
     <string name="notification_done" msgid="6215117625922713976">"हो गया"</string>
     <string name="inline_undo" msgid="9026953267645116526">"पहले जैसा करें"</string>
     <string name="demote" msgid="6225813324237153980">"इस सूचना को \'बातचीत नहीं\' के रूप में मार्क करें"</string>
-    <!-- no translation found for notification_conversation_favorite (1905240206975921907) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unfavorite (181383708304763807) -->
-    <skip />
-    <!-- no translation found for notification_conversation_mute (268951550222925548) -->
-    <skip />
+    <string name="notification_conversation_favorite" msgid="1905240206975921907">"अहम बातचीत"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"अहम बातचीत नहीं है"</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"आवाज़ और वाइब्रेशन बंद किया गया"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"आवाज़ या वाइब्रेशन चालू करें"</string>
-    <!-- no translation found for notification_conversation_bubble (2242180995373949022) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unbubble (6908427185031099868) -->
-    <skip />
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"बबल दिखाएं"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"बबल हटाएं"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"होम स्क्रीन पर जोड़ें"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"सूचना नियंत्रण"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"सूचना को स्नूज़ (थोड़ी देर के लिए चुप करना) करने के विकल्प"</string>
-    <!-- no translation found for notification_menu_snooze_action (5415729610393475019) -->
-    <skip />
-    <!-- no translation found for notification_menu_settings_action (7085494017202764285) -->
-    <skip />
+    <string name="notification_menu_snooze_action" msgid="5415729610393475019">"बाद में याद दिलाएं"</string>
+    <string name="notification_menu_settings_action" msgid="7085494017202764285">"सेटिंग"</string>
     <string name="snooze_undo" msgid="60890935148417175">"पहले जैसा करें"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"<xliff:g id="TIME_AMOUNT">%1$s</xliff:g> के लिए याद दिलाया गया"</string>
     <plurals name="snoozeHourOptions" formatted="false" msgid="2066838694120718170">
@@ -816,8 +800,7 @@
     <string name="accessibility_data_saver_off" msgid="58339669022107171">"डेटा बचाने की सेटिंग बंद है"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"चालू"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"बंद"</string>
-    <!-- no translation found for tile_unavailable (3095879009136616920) -->
-    <skip />
+    <string name="tile_unavailable" msgid="3095879009136616920">"उपलब्ध नहीं है"</string>
     <string name="nav_bar" msgid="4642708685386136807">"नेविगेशन बार"</string>
     <string name="nav_bar_layout" msgid="4716392484772899544">"लेआउट"</string>
     <string name="left_nav_bar_button_type" msgid="2634852842345192790">"कुछ और बाएं बटन के प्रकार"</string>
@@ -996,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"बाईं ओर सबसे नीचे ले जाएं"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"सबसे नीचे दाईं ओर ले जाएं"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"खारिज करें"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"सिस्टम नेविगेशन अपडेट हो गया. बदलाव करने के लिए \'सेटिंग\' पर जाएं."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"सिस्टम नेविगेशन अपडेट करने के लिए \'सेटिंग\' में जाएं"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टैंडबाई"</string>
@@ -1005,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"फटाफट नियंत्रण"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"कंट्राेल जोड़ें"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"वह ऐप्लिकेशन चुनें जिससे आप कंट्राेल जोड़ना चाहते हैं"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">फ़िलहाल, <xliff:g id="NUMBER_1">%s</xliff:g> कंट्राेल पसंदीदा है.</item>
-      <item quantity="other">फ़िलहाल, <xliff:g id="NUMBER_1">%s</xliff:g> कंट्राेल पसंदीदा हैं.</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"कंट्राेल"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"झटपट ऐक्सेस पाने के लिए कंट्राेल चुनें"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"पसंदीदा"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"सभी"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"सभी कंट्रोल की सूची लोड नहीं हो सकी."</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 161c1ad..d648aeb 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Dopusti"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Otklanjanje pogrešaka putem USB-a nije dopušteno"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Korisnik koji je trenutačno prijavljen na ovaj uređaj ne može uključiti otklanjanje pogrešaka putem USB-a. Da biste upotrebljavali tu značajku, prijeđite na primarnog korisnika."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Želite li dopustiti bežično otklanjanje pogrešaka na ovoj mreži?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Naziv mreže (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresa Wi‑Fija (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Uvijek dopusti na ovoj mreži"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Dopusti"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Bežično otklanjanje pogrešaka nije dopušteno"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Korisnik koji je trenutačno prijavljen na ovaj uređaj ne može uključiti bežično otklanjanje pogrešaka. Da biste upotrebljavali tu značajku, prijeđite na primarnog korisnika."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Onemogućen je USB priključak"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Radi zaštite uređaja od tekućine ili prljavštine USB priključak onemogućen je i neće otkrivati pribor.\n\nPrimit ćete obavijest kad upotreba USB priključka ponovo bude sigurna."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB priključak omogućen za otkrivanje punjača i opreme"</string>
@@ -491,6 +497,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Upravljajte"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Povijest"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Bešumne obavijesti"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Upozoravajuće obavijesti"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Razgovori"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Izbriši sve bešumne obavijesti"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Značajka Ne uznemiravaj pauzirala je Obavijesti"</string>
@@ -689,10 +696,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Pomaže vam da se usredotočite bez zvučnih signala i vibracija."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Privlači vašu pažnju zvučnim signalima ili vibracijama."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Održava vam pozornost pomoću plutajućeg prečaca ovom sadržaju."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nema nedavnih oblačića"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Ovdje će se prikazivati nedavni i odbačeni oblačići."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Te se obavijesti ne mogu izmijeniti."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ta se grupa obavijesti ne može konfigurirati ovdje"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Obavijest poslana putem proxyja"</string>
@@ -979,6 +984,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Premjesti u donji lijevi kut"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Premjestite u donji desni kut"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Odbaci"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Ažurirana je navigacija sustavom. Možete je promijeniti u Postavkama."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Navigaciju sustavom možete ažurirati u Postavkama"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
@@ -988,17 +999,15 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Brze kontrole"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Dodavanje kontrola"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Odaberite aplikaciju putem koje želite dodati kontrole"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">Trenutačno <xliff:g id="NUMBER_1">%s</xliff:g> omiljena.</item>
-      <item quantity="few">Trenutačno <xliff:g id="NUMBER_1">%s</xliff:g> omiljene.</item>
-      <item quantity="other">Trenutačno <xliff:g id="NUMBER_1">%s</xliff:g> omiljenih.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Dodana je <xliff:g id="NUMBER_1">%s</xliff:g> kontrola.</item>
+      <item quantity="few">Dodane su <xliff:g id="NUMBER_1">%s</xliff:g> kontrole.</item>
+      <item quantity="other">Dodano je <xliff:g id="NUMBER_1">%s</xliff:g> kontrola.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrole"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Odaberite kontrole za brzi pristup"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriti"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Sve"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Popis svih kontrola nije se učitao."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 21b383c..03151ae 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Engedélyezés"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Az USB hibakeresése nem engedélyezett"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Az eszközre jelenleg bejelentkezett felhasználó nem engedélyezheti az USB-hibakeresést. A funkció használatához váltson az elsődleges felhasználóra."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Engedélyezi a vezeték nélküli hibakeresést ezen a hálózaton?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Hálózat neve (SSID):\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi-cím (BSSID):\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Mindig engedélyezze ezen a hálózaton"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Engedélyezés"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"A vezeték nélküli hibakeresés nem engedélyezett"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Az eszközre jelenleg bejelentkezett felhasználó nem engedélyezheti a vezeték nélküli hibakeresést. A funkció használatához váltson az elsődleges felhasználóra."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-port letiltva"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Az eszköz folyadéktól és szennyeződésektől való megóvása érdekében az USB-portot letiltottuk, így az nem észleli a kiegészítőket.\n\nÉrtesítést küldünk, amikor ismét rendben használhatja az USB-portot."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Az USB-csatlakozó számára engedélyezve van a töltők és más tartozékok észlelése"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Kezelés"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Előzmények"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Néma értesítések"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Figyelemfelkeltő értesítések"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Beszélgetések"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Az összes néma értesítés törlése"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Ne zavarjanak funkcióval szüneteltetett értesítések"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Hangjelzés és rezgés nélkül segít a koncentrálásban."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Figyelemfelkeltő a hangjelzésnek és rezgésnek köszönhetően."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"A tartalomra mutató lebegő parancsikon segítségével tartja fenn az Ön figyelmét."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nincsenek buborékok a közelmúltból"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"A legutóbbi és az elvetett buborékok itt jelennek majd meg."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ezeket az é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>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Továbbított értesítés"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Áthelyezés le és balra"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Áthelyezés le és jobbra"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Elvetés"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"A rendszer-navigáció módja megváltozott. Módosításához nyissa meg a Beállításokat."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"A rendszer-navigációs lehetőségeket a Beállításokban módosíthatja"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Készenléti mód"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Gyorsvezérlők"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Vezérlők hozzáadása"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Alkalmazás kiválasztása, amelyről vezérlőket adhat hozzá"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> jelenlegi kedvenc.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> jelenlegi kedvenc.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> vezérlő hozzáadva.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> vezérlő hozzáadva.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Vezérlők"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vezérlők kiválasztása a gyors hozzáféréshez"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Kedvencek"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Összes"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nem sikerült betölteni az összes vezérlő listáját."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Más"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index e5d85a5..d8728f5 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Թույլատրել"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-ով վրիպազերծումը թույլատրված չէ"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Ընթացիկ հաշվի միջոցով չեք կարող միացնել USB-ով վրիպազերծումը: Այս գործառույթը միացնելու համար մուտք գործեք հիմնական օգտատիրոջ հաշիվ:"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Թույլատրե՞լ անլար վրիպազերծումն այս ցանցում"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Ցանցի անվանումը (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi-ի հասցեն (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Միշտ թույլատրել այս ցանցում"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Թույլատրել"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Անլար վրիպազերծումը թույլատրված չէ"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Դուք չեք կարող միացնել անլար վրիպազերծումը ընթացիկ հաշվի միջոցով։ Այս գործառույթը միացնելու համար մուտք գործեք հիմնական օգտատիրոջ հաշիվ։"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB միացքն անջատված է"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"USB միացքն անջատվել է, որպեսզի ձեր սարքը չթրջվի կամ չաղտոտվի: Այժմ USB միացքի միջոցով հնարավոր չէ միացնել այլ սարքեր:\n\nԴուք ծանուցում կստանաք, երբ այն նորից անվտանգ լինի օգտագործել:"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB միացքը միացվել է՝ լիցքավորիչներն ու լրասարքերը հայտնաբերելու համար"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Կառավարել"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Պատմություն"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Անձայն ծանուցումներ"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Նախազգուշացնող ծանուցումներ"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Խոսակցություններ"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Ջնջել բոլոր անձայն ծանուցումները"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Ծանուցումները չեն ցուցադրվի «Չանհանգստացնել» ռեժիմում"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ծանուցումները գալիս են ձայնով կամ թրթռոցով։"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Լողացող դյուրանցման միջոցով ձեր ուշադրությունն է գրավում բովանդակության նկատմամբ"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Վերջին ամպիկներ չկան"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Այստեղ կցուցադրվեն վերջերս փակված ամպիկները, որոնք կկարողանաք հեշտությամբ վերաբացել։"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Այստեղ կցուցադրվեն վերջերս օգտագործված և փակված ամպիկները, որոնք կկարողանաք հեշտությամբ վերաբացել։"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Այս ծանուցումները չեն կարող փոփոխվել:"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ծանուցումների տվյալ խումբը հնարավոր չէ կարգավորել այստեղ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Ծանուցումն ուղարկվել է պրոքսի սերվերի միջոցով"</string>
@@ -972,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Տեղափոխել ներքև՝ ձախ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Տեղափոխել ներքև՝ աջ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Փակել"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Ցուցադրել զրույցները առջևում"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի նոր զրույցները կհայտնվեն ամպիկների տեսքով։ Հպեք ամպիկին՝ այն բացելու համար։ Քաշեք՝ այն տեղափոխելու համար։\n\nՀպեք ամպիկին"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Հպեք «Կառավարել» կոճակին՝ այս հավելվածի ամպիկներն անջատելու համար։"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Համակարգի նավիգացիան թարմացվեց: Փոփոխություններ անելու համար անցեք կարգավորումներ:"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Թարմացրեք համակարգի նավիգացիան կարգավորումներում"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Սպասման ռեժիմ"</string>
@@ -981,13 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Արագ կառավարման տարրեր"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Ավելացրեք կառավարման տարրեր"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Ընտրեք հավելված, որից կավելացվեն կառավարման տարրերը։"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">Ընտրանու <xliff:g id="NUMBER_1">%s</xliff:g> տարր։</item>
-      <item quantity="other">Ընտրանու <xliff:g id="NUMBER_1">%s</xliff:g> տարր։</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Ավելացվեց կառավարման <xliff:g id="NUMBER_1">%s</xliff:g> տարր։</item>
+      <item quantity="other">Ավելացվեց կառավարման <xliff:g id="NUMBER_1">%s</xliff:g> տարր։</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Կառավարման տարրեր"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Ընտրեք կառավարման տարրեր՝ արագ մուտքի համար"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Ընտրանի"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"Բոլորը"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Չհաջողվեց բեռնել բոլոր կառավարների ցանկը։"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Այլ"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 801b70c..012a16e 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Izinkan"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Debug USB tidak diizinkan"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Pengguna yang sedang login ke perangkat ini tidak dapat mengaktifkan proses debug USB. Beralihlah ke pengguna utama untuk menggunakan fitur ini."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Izinkan proses debug nirkabel di perangkat ini?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nama Jaringan (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAlamat Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Selalu izinkan di jaringan ini"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Izinkan"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Proses debug nirkabel tidak diizinkan"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Pengguna yang sedang login ke perangkat ini tidak dapat mengaktifkan proses debug nirkabel. Beralihlah ke pengguna utama untuk menggunakan fitur ini."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Port USB dinonaktifkan"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Untuk melindungi perangkat dari cairan atau kotoran, port USB dinonaktifkan dan tidak akan mendeteksi aksesori apa pun.\n\nAnda akan diberi tahu jika port USB sudah dapat digunakan kembali."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Port USB diaktifkan untuk mendeteksi pengisi daya dan aksesori"</string>
@@ -83,7 +89,7 @@
     <string name="screenrecord_name" msgid="2596401223859996572">"Perekam Layar"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notifikasi yang sedang berjalan untuk sesi rekaman layar"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Mulai Merekam?"</string>
-    <string name="screenrecord_description" msgid="1123231719680353736">"Saat merekam, Sistem Android dapat mengambil informasi sensitif yang terlihat di layar atau diputar di perangkat Anda. Informasi ini mencakup sandi, info pembayaran, foto, pesan, dan audio."</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"Saat merekam, Sistem Android dapat ikut merekam informasi sensitif yang terlihat di layar atau diputar di perangkat Anda. Informasi ini mencakup sandi, info pembayaran, foto, pesan, dan audio."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Rekam audio"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Audio perangkat"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Suara dari perangkat Anda, seperti musik, panggilan, dan nada dering"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Kelola"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Histori"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notifikasi senyap"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notifikasi aktif"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Percakapan"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Hapus semua notifikasi senyap"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifikasi dijeda oleh mode Jangan Ganggu"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Menarik perhatian Anda dengan suara atau getaran."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Menjaga perhatian dengan pintasan floating ke konten ini."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Tidak ada balon baru-baru ini"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Balon yang baru-baru ini ditutup akan muncul di sini agar mudah diambil."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Balon baru-baru ini dan balon yang ditutup akan muncul di sini."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Notifikasi ini tidak dapat diubah."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Grup notifikasi ini tidak dapat dikonfigurasi di sini"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notifikasi proxy"</string>
@@ -972,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Pindahkan ke kiri bawah"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Pindahkan ke kanan bawah"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Tutup"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Tampilkan chat di depan"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Chat baru dari <xliff:g id="APP_NAME">%1$s</xliff:g> akan muncul sebagai balon. Ketuk balon untuk membukanya. Tarik untuk memindahkannya.\n\nKetuk balon"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Ketuk Kelola untuk menonaktifkan balon dari aplikasi ini"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigasi sistem diupdate. Untuk melakukan perubahan, buka Setelan."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Buka Setelan untuk mengupdate navigasi sistem"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Siaga"</string>
@@ -981,13 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Kontrol Cepat"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Tambahkan Kontrol"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Pilih aplikasi yang digunakan untuk menambahkan kontrol"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favorit saat ini.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> favorit saat ini.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontrol ditambahkan.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kontrol ditambahkan.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrol"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pilih kontrol untuk akses cepat"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favorit"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"Semua"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Daftar semua kontrol tidak dapat dimuat."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Lainnya"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index 4ec778e..7542e3e 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Leyfa"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-villuleit ekki leyfð"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Notandinn sem er skráður inn í þetta tæki núna getur ekki kveikt á USB-villuleit. Til þess að nota þennan eiginleika skaltu skipta yfir í aðalnotandann."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Viltu leyfa þráðlausa villuleit á þessu neti?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Heiti netkerfis (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi vistfang (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Leyfa alltaf á þessu neti"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Leyfa"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Þráðlaus villuleit er ekki leyfð"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Notandinn sem er skráður inn í þetta tæki núna getur ekki kveikt á þráðlausri villuleit. Til að nota þennan eiginleika þarf að skipta yfir í aðalnotanda."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-tengi gert óvirkt"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Til að vernda tækið fyrir vökva og óhreinindum er USB-tengið óvirkt og mun ekki greina aukabúnað.\n\nÞú færð tilkynningu þegar öruggt er að nota USB-tengið aftur."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Kveikt var á USB-tengi til að greina hleðslutæki og aukabúnað"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Stjórna"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Ferill"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Þöglar tilkynningar"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Viðvörunartilkynningar"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Samtöl"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Hreinsa allar þöglar tilkynningar"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Hlé gert á tilkynningum þar sem stillt er á „Ónáðið ekki“"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Auðveldar þér að einbeita þér án hljóðs eða titrings."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Fangar athygli þína með hljóði eða titringi."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Fangar athygli þína með fljótandi flýtileið á þetta efni."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Engar nýlegar blöðrur"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nýlegar blöðrur og blöðrur sem þú hefur hunsað birtast hér."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ekki er hægt að breyta þessum tilkynningum."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ekki er hægt að stilla þessar tilkynningar hér"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Staðgengilstilkynning"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Færa neðst til vinstri"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Færðu neðst til hægri"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Hunsa"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Kerfisstjórnun uppfærð. Þú getur breytt þessu í stillingunum."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Farðu í stillingar til að uppfæra kerfisstjórnun"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Biðstaða"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Flýtistýringar"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Bæta við stýringum"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Veldu forrit sem bæta á við stýringum frá"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> núverandi eftirlæti.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> núverandi eftirlæti.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> stýringu bætt við.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> stýringum bætt við.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Stýringar"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Veldu stýringar fyrir skjótan aðgang"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Uppáhald"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Allt"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Ekki tókst að hlaða lista yfir allar stýringar."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Annað"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 4d1db3a..65dc514 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Consenti"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Debug USB non consentito"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"L\'utente che ha eseguito l\'accesso a questo dispositivo non può attivare il debug USB. Per utilizzare questa funzione, passa all\'utente principale."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Consentire debug wireless su questa rete?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nome della rete (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nIndirizzo Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Consenti sempre su questa rete"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Consenti"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Debug wireless non consentito"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"L\'utente che ha eseguito l\'accesso a questo dispositivo non può attivare il debug wireless. Per utilizzare questa funzionalità, passa all\'utente principale."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Porta USB disattivata"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Per proteggere il dispositivo da liquidi o detriti, la porta USB è stata disattivata e non rileverà gli accessori.\n\nTi avviseremo quando sarà di nuovo possibile utilizzarla."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Porta USB attivata per rilevare caricabatterie e accessori"</string>
@@ -83,13 +89,13 @@
     <string name="screenrecord_name" msgid="2596401223859996572">"Screen Recorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notifica costante per una sessione di registrazione dello schermo"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Avviare la registrazione?"</string>
-    <string name="screenrecord_description" msgid="1123231719680353736">"Durante la registrazione, il sistema Android può catturare dati sensibili visibili sul tuo schermo o riprodotti durante la riproduzione sul tuo dispositivo. Sono incluse password, dettagli sui pagamenti, foto, messaggi e audio."</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"Durante la registrazione, il sistema Android può catturare dati sensibili visibili sullo schermo o riprodotti sul tuo dispositivo. Sono incluse password, dati di pagamento, foto, messaggi e audio."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Registra audio"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Audio del dispositivo"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Suoni del dispositivo, come musica, chiamate e suonerie"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"Microfono"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Audio del dispositivo e microfono"</string>
-    <string name="screenrecord_start" msgid="330991441575775004">"Inizia"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"Avvia"</string>
     <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Registrazione schermo"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"Registrazione schermo e audio"</string>
     <string name="screenrecord_taps_label" msgid="1595690528298857649">"Mostra tocchi sullo schermo"</string>
@@ -486,8 +492,9 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"Non mostrare più"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"Cancella tutto"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gestisci"</string>
-    <string name="manage_notifications_history_text" msgid="57055985396576230">"Storia"</string>
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"Cronologia"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notifiche silenziose"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notifiche di avviso"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversazioni"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Cancella tutte le notifiche silenziose"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifiche messe in pausa in base alla modalità Non disturbare"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Favorisce la tua concentrazione grazie all\'assenza di suono o vibrazione."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Richiama la tua attenzione con suono o vibrazione."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantiene la tua attenzione con una scorciatoia mobile a questi contenuti."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nessuna bolla recente"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Le bolle recenti e ignorate verranno visualizzate qui."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossibile modificare queste notifiche."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Qui non è possibile configurare questo gruppo di notifiche"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notifica inviata al proxy"</string>
@@ -714,7 +719,7 @@
     <string name="demote" msgid="6225813324237153980">"Contrassegna questa notifica come \"non è una conversazione\""</string>
     <string name="notification_conversation_favorite" msgid="1905240206975921907">"Conversazione importante"</string>
     <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Non è una conversazione importante"</string>
-    <string name="notification_conversation_mute" msgid="268951550222925548">"Senza audio"</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"Silenziata"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"Avvisi"</string>
     <string name="notification_conversation_bubble" msgid="2242180995373949022">"Mostra fumetto"</string>
     <string name="notification_conversation_unbubble" msgid="6908427185031099868">"Rimuovi fumetti"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Sposta in basso a sinistra"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Sposta in basso a destra"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignora"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigazione del sistema aggiornata. Per apportare modifiche, usa le Impostazioni."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Usa le Impostazioni per aggiornare la navigazione del sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controlli rapidi"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Aggiungi controlli"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Scegli un\'app da cui aggiungere controlli"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> preferiti attuali.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> preferito attuale.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controlli aggiunti.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> controllo aggiunto.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controlli"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Scegli i controlli per l\'accesso rapido"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Preferiti"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tutti"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Impossibile caricare l\'elenco di tutti i controlli."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Altro"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 5d48af3..2a9d596 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"יש אישור"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"‏לא ניתן לבצע ניפוי באגים ב-USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"‏למשתמש המחובר לחשבון במכשיר הזה אין אפשרות להפעיל ניפוי באגים ב-USB. כדי להשתמש בתכונה הזו יש לעבור אל המשתמש הראשי."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"לאשר ניפוי באגים אלחוטי ברשת הזו?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"‏שם הרשת (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nכתובת Wi‑Fi‏ (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"אפשר תמיד ברשת זו"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"אישור"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"אין הרשאה לניפוי באגים אלחוטי"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"למשתמש המחובר לחשבון במכשיר הזה אין אפשרות להפעיל ניפוי באגים אלחוטי. כדי להשתמש בתכונה הזו, יש לעבור אל המשתמש הראשי."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"‏יציאת ה-USB מושבתת"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"‏כדי להגן על המכשיר שלך מנוזלים או חלקיקים, יציאת ה-USB מושבתת ולא מזהה אביזרים כלל.\n\nתתקבל התראה כשניתן יהיה להשתמש ביציאת ה-USB."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"‏יציאת USB הופעלה לזיהוי מטענים ואביזרים"</string>
@@ -80,19 +86,19 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"יש לנסות שוב לבצע צילום מסך"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"לא היה מספיק מקום לשמור את צילום המסך"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"האפליקציה או הארגון שלך אינם מתירים ליצור צילומי מסך"</string>
-    <string name="screenrecord_name" msgid="2596401223859996572">"מכשיר הקלטה של המסך"</string>
+    <string name="screenrecord_name" msgid="2596401223859996572">"מקליט מסך"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"התראה מתמשכת לסשן הקלטת מסך"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"להתחיל את ההקלטה?"</string>
-    <string name="screenrecord_description" msgid="1123231719680353736">"‏בזמן ההקלטה, מערכת Android יכולה לתעד מידע רגיש שגלוי במסך או מופעל במכשיר שלך. זה כולל סיסמאות, פרטי תשלום, תמונות, הודעות ואודיו."</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"‏בזמן ההקלטה, מערכת Android יכולה לתעד מידע רגיש שגלוי במסך או מופעל במכשיר שלך. מידע זה כולל סיסמאות, פרטי תשלום, תמונות, הודעות ואודיו."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"הקלטת אודיו"</string>
-    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"אודיו של המכשיר"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"אודיו מהמכשיר"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"צלילים מהמכשיר, כמו מוזיקה, שיחות ורינגטונים"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"מיקרופון"</string>
-    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"מיקרופון ואודיו של המכשיר"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"מיקרופון ואודיו מהמכשיר"</string>
     <string name="screenrecord_start" msgid="330991441575775004">"התחלה"</string>
     <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"מתבצעת הקלטה של המסך"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"מתבצעת הקלטה של המסך והאודיו"</string>
-    <string name="screenrecord_taps_label" msgid="1595690528298857649">"הצגת המיקומים של מגע במסך"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"הצגת מיקומים של נגיעות במסך"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"אפשר להקיש כדי להפסיק"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"עצירה"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"השהיה"</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"ניהול"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"היסטוריה"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"התראות שקטות"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"התראות עם צלילים או רטט"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"שיחות"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ניקוי כל ההתראות השקטות"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"התראות הושהו על ידי מצב \'נא לא להפריע\'"</string>
@@ -692,10 +699,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"עוזרת להתרכז ללא צלילים או רטט."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"מעוררת תשומת לב באמצעות צלילים או רטט."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"מעוררת תשומת לב באמצעות קיצור דרך צף לתוכן הזה."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"אין בועות מהזמן האחרון"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"בועות אחרונות ובועות שנסגרו יופיעו כאן."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"לא ניתן לשנות את ההתראות האלה."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"לא ניתן להגדיר כאן את קבוצת ההתראות הזו"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"‏התראה דרך שרת proxy"</string>
@@ -984,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"העברה לפינה השמאלית התחתונה"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"העברה לפינה הימנית התחתונה"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"סגירה"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"הניווט במערכת עודכן. אפשר לערוך שינויים דרך ההגדרות."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"יש לעבור להגדרות כדי לעדכן את הניווט במערכת"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"המתנה"</string>
@@ -993,18 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"פקדים מהירים"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"הוספת פקדים"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"יש לבחור אפליקציות שמהן יתווספו פקדים"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="two"><xliff:g id="NUMBER_1">%s</xliff:g> מועדפים בשלב זה.</item>
-      <item quantity="many"><xliff:g id="NUMBER_1">%s</xliff:g> מועדפים בשלב זה.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> מועדפים בשלב זה.</item>
-      <item quantity="one">מועדף אחד (<xliff:g id="NUMBER_0">%s</xliff:g>) בשלב זה.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="two">נוספו <xliff:g id="NUMBER_1">%s</xliff:g> פקדים.</item>
+      <item quantity="many">נוספו <xliff:g id="NUMBER_1">%s</xliff:g> פקדים.</item>
+      <item quantity="other">נוספו <xliff:g id="NUMBER_1">%s</xliff:g> פקדים.</item>
+      <item quantity="one">נוסף פקד אחד (<xliff:g id="NUMBER_0">%s</xliff:g>).</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"פקדים"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"יש לבחור פקדים לגישה מהירה"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"מועדפים"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"הכול"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"לא ניתן היה לטעון את הרשימה של כל הפקדים."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"אחר"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index b2059ef..b4952ff 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"許可"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USBデバッグは許可されていません"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"このデバイスに現在ログインしているユーザーでは、USB デバッグを ON にすることはできません。この機能を使用するには、メインユーザーに切り替えてください。"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"このネットワークでワイヤレス デバッグを許可しますか?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ネットワーク名(SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi アドレス(BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"このネットワークで常に許可する"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"許可"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ワイヤレス デバッグは許可されていません"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"このデバイスに現在ログインしているユーザーでは、ワイヤレス デバッグを ON にすることはできません。この機能を使用するには、メインユーザーに切り替えてください。"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB ポート無効"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"液体やゴミからデバイスを保護するため、USB ポートは無効になっています。アクセサリの検出は行われません。\n\nUSB ポートを再び安全に使用できるようになりましたらお知らせします。"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB ポートが有効になり、充電器やアクセサリを検出できるようになりました"</string>
@@ -82,7 +88,7 @@
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"スクリーンショットの作成はアプリまたは組織で許可されていません"</string>
     <string name="screenrecord_name" msgid="2596401223859996572">"画面レコーダー"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"画面の録画セッション中の通知"</string>
-    <string name="screenrecord_start_label" msgid="1750350278888217473">"記録を開始しますか?"</string>
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"録画を開始しますか?"</string>
     <string name="screenrecord_description" msgid="1123231719680353736">"録画中に機密情報が画面に表示されたりデバイスで再生されたりした場合、Android システムでキャプチャされることがあります。これには、パスワード、お支払い情報、写真、メッセージ、音声などが含まれます。"</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"録音"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"デバイスの音声"</string>
@@ -90,9 +96,9 @@
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"マイク"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"デバイスの音声とマイク"</string>
     <string name="screenrecord_start" msgid="330991441575775004">"開始"</string>
-    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"画面を記録しています"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"画面を録画しています"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"画面と音声を記録しています"</string>
-    <string name="screenrecord_taps_label" msgid="1595690528298857649">"画面上のタップを表示する"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"画面上のタップも記録する"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"タップして停止"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"停止"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"一時停止"</string>
@@ -105,7 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"画面の録画を削除しました"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"画面の録画の削除中にエラーが発生しました"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"権限を取得できませんでした"</string>
-    <string name="screenrecord_start_error" msgid="2200660692479682368">"画面の記録中にエラーが発生しました"</string>
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"画面の録画中にエラーが発生しました"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USBファイル転送オプション"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"メディアプレーヤー(MTP)としてマウント"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"カメラ(PTP)としてマウント"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"管理"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"履歴"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"サイレント通知"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"バイブレーションまたは音を伴う通知"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"会話"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"サイレント通知がすべて消去されます"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"サイレント モードにより通知は一時停止中です"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"音やバイブレーションで通知をお知らせします。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"このコンテンツのフローティング ショートカットで通知をお知らせします。"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"最近閉じたふきだしはありません"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"最近閉じたふきだしがここに表示され、簡単に確認できます。"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"最近表示されたふきだしや閉じたふきだしが、ここに表示されます。"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"これらの通知は変更できません。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"このグループの通知はここでは設定できません"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"代理通知"</string>
@@ -711,7 +718,7 @@
     <string name="inline_undo" msgid="9026953267645116526">"元に戻す"</string>
     <string name="demote" msgid="6225813324237153980">"この通知を会話ではないとマーク"</string>
     <string name="notification_conversation_favorite" msgid="1905240206975921907">"重要な会話"</string>
-    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"重要な会話ではない"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"重要でない会話"</string>
     <string name="notification_conversation_mute" msgid="268951550222925548">"マナーモード"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"アラートを受け取る"</string>
     <string name="notification_conversation_bubble" msgid="2242180995373949022">"ふきだしを表示"</string>
@@ -972,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"左下に移動"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"右下に移動"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"閉じる"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"システム ナビゲーションを更新しました。変更するには [設定] に移動してください。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"システム ナビゲーションを更新するには [設定] に移動してください"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"スタンバイ"</string>
@@ -981,13 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"クイック コントロール"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"コントロールの追加"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"コントロールを追加するアプリの選択"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">現在のお気に入りは <xliff:g id="NUMBER_1">%s</xliff:g> 個です。</item>
-      <item quantity="one">現在のお気に入りは <xliff:g id="NUMBER_0">%s</xliff:g> 個です。</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> 件のコントロールを追加しました。</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> 件のコントロールを追加しました。</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"コントロール"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"クイック アクセスのコントロールの選択"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"お気に入り"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"すべて"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"全コントロールの一覧を読み込めませんでした。"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"その他"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index e05f244..07b9e2a 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"დაშვება"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB ხარვეზების გამართვა ნებადართული არაა"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ამ მოწყობილობაზე ამჟამად შესულ მომხმარებელს არ შეუძლია USB ხარვეზების გამართვის ფუნქციის ჩართვა. ამ ფუნქციის გამოსაყენებლად, მიუერთდით მთავარ მომხმარებელს."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"დაუშვებთ ამ ქსელში შეცდომების უსადენო გამართვას?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ქსელის სახელი (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi მისამართი (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ყოველთვის დაშვება ამ ქსელში"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"დაშვება"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"შეცდომების უსადენო გამართვა არ არის დაშვებული"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ამ მოწყობილობაზე ამჟამად შესულ მომხმარებელს არ შეუძლია შეცდომების უსადენო გამართვის ჩართვა. ამ ფუნქციის გამოსაყენებლად, გადაერთეთ მთავარ მომხმარებელზე."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB პორტი გათიშულია"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"თქვენი მოწყობილობის სითხის ან ნადებისგან დასაცავად, USB პორტი გათიშულია და ვერცერთი აქსესუარის აღმოჩენას ვერ შეძლებს.\n\nთქვენ მიიღებთ შეტყობინებას, როდესაც USB პორტის გამოყენება კვლავ შესაძლებელი იქნება."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB პორტი ჩართულია დამტენებისა და აქსესუარების აღმოსაჩენად"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"მართვა"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ისტორია"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ჩუმი შეტყობინებები"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"გამაფრთხილებელი შეტყობინებები"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"მიმოწერები"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ყველა ჩუმი შეტყობინების გასუფთავება"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"შეტყობინებები დაპაუზდა „არ შემაწუხოთ“ რეჟიმის მეშვეობით"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"გეხმარებათ ფოკუსირებაში ხმის ან ვიბრაციის უქონლობის გამო."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"იპყრობს თქვენს ყურადღებას ხმით ან ვიბრაციით."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"იპყრობს თქვენს ყურადღებას ამ კონტენტის მოლივლივე მალსახმობით."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ბოლო დროს გამოყენებული ბუშტები არ არის"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"აქ გამოჩნდება ბოლოდროინდელი ბუშტები და უარყოფილი ბუშტები."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ამ შეტყობინებების შეცვლა შეუძლებელია."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"შეტყობინებების ამ ჯგუფის კონფიგურირება აქ შეუძლებელია"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"პროქსირებული შეტყობინება"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ქვევით და მარცხნივ გადატანა"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"გადაანაცვ. ქვემოთ და მარჯვნივ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"დახურვა"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"სისტემური ნავიგაცია განახლდა. ცვლილებების შესატანად გადადით პარამეტრებზე."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"სისტემური ნავიგაციის გასაახლებლად გადადით პარამეტრებზე"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"მოლოდინის რეჟიმი"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"სწრაფი მართვის ელემენტები"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"მართვის საშუალებების დამატება"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"აირჩიეთ აპი, რომლიდანაც მართვის საშუალებები დაემატება"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ამჟამინდელი ფავორიტი.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> ამჟამინდელი ფავორიტი.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">დაემატა <xliff:g id="NUMBER_1">%s</xliff:g> მართვის საშუალება.</item>
+      <item quantity="one">დაემატა <xliff:g id="NUMBER_0">%s</xliff:g> მართვის საშუალება.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"მართვის საშუალებები"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"აირჩიეთ სწრაფი წვდომის მართვის საშუალებები"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ფავორიტები"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ყველა"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"მართვის ყველა საშუალების სია ვერ ჩაიტვირთა."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"სხვა"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index f3462a0..d6391891 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Рұқсат беру"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB жөндеу рұқсат етілмеген"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Бұл құрылғыға жаңа кірген пайдаланушы USB түзетуін іске қосылмайды. Бұл мүмкіндікті пайдалану үшін негізгі пайдаланушыға ауысыңыз."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Бұл желіде сымсыз түзетуге рұқсат етілсін бе?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Желі атауы (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi мекенжайы (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Осы желіде үнемі рұқсат ету"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Рұқсат ету"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Сымсыз түзетуге рұқсат етілмейді"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Бұл құрылғыға жаңа кірген пайдаланушы сымсыз түзетуді іске қоса алмайды. Бұл мүмкіндікті пайдалану үшін негізгі пайдаланушыға ауысыңыз."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB порты өшірілді"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Құрылғыңызға сұйықтық немесе қоқыс кіріп кетпеуі үшін, USB порты өшірілген және ешқандай керек-жарақты анықтамайды.\n\nUSB портын қайта пайдалануға болатын кезде хабарландыру аласыз."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Зарядтағыштар мен аксессуарларды анықтау үшін USB порты қосылды."</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Басқару"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Тарих"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Дыбыссыз хабарландырулар"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Ескертуші хабарландлырулар"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Сөйлесулер"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Барлық дыбыссыз хабарландыруларды өшіру"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Хабарландырулар \"Мазаламау\" режимінде кідіртілді"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Хабарландырулар келгенде, дыбыс шықпайды не дірілдемейді"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Хабарландырулар келгенде, дыбыс шығады не дірілдейді"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Осы мазмұнға бекітілген қалқымалы таңбашамен назарыңызды өзіне тартады."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Жақындағы қалқымалы анықтамалар жоқ"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Жақында ашылған және жабылған қалқымалы анықтамалар осы жерде пайда болады."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бұл хабарландыруларды өзгерту мүмкін емес."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Мұндай хабарландырулар бұл жерде конфигурацияланбайды."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Прокси-сервер арқылы жіберілген хабарландыру"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Төменгі сол жаққа жылжыту"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Төменгі оң жаққа жылжыту"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Жабу"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Жүйе навигациясы жаңартылды. Өзгерту енгізу үшін \"Параметрлер\" бөліміне өтіңіз."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Жүйе навигациясын жаңарту үшін \"Параметрлер\" бөліміне өтіңіз."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Күту режимі"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Жылдам басқару элементтері"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Басқару элементтерін енгізу"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Ішінен басқару элементтері енгізілетін қолданбаны таңдаңыз."</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Ағымдағы таңдаулылар саны: <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
-      <item quantity="one">Ағымдағы таңдаулылар саны: <xliff:g id="NUMBER_0">%s</xliff:g>.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> басқару элементі енгізілді.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> басқару элементі енгізілді.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Басқару элементтері"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Жылдам кіру үшін басқару элементтерін таңдау"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Таңдаулылар"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Барлығы"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Барлық басқару элементі тізімі жүктелмеді."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Басқа"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index ddfe5cb..8306dff 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"អនុញ្ញាត"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"មិនអនុញ្ញាតការកែកំហុសតាម USB ទេ"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"អ្នកប្រើ​ដែលបច្ចុប្បន្ន​បានចូលគណនី​នៅលើឧបករណ៍នេះ​មិនអាចបើកការកែកំហុស USB បានទេ។ ដើម្បីប្រើមុខងារនេះ សូមប្តូរទៅអ្នកប្រើចម្បង។"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"អនុញ្ញាត​ការជួសជុល​ដោយឥតខ្សែ​នៅលើ​បណ្ដាញ​នេះ​ឬ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ឈ្មោះបណ្ដាញ (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nអាសយដ្ឋាន Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"អនុញ្ញាត​នៅលើ​បណ្ដាញ​នេះ​ជានិច្ច"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"អនុញ្ញាត"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"មិន​អនុញ្ញាត​ការជួសជុល​ដោយឥតខ្សែ​ទេ"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"អ្នក​ប្រើប្រាស់​ដែលបច្ចុប្បន្ន​បាន​ចូលគណនី​នៅលើ​ឧបករណ៍​នេះ​មិនអាច​បើក​ការជួសជុល​ដោយឥតខ្សែ​បានទេ។ ដើម្បី​ប្រើ​មុខងារ​នេះ សូម​ប្ដូរ​ទៅ​អ្នក​ប្រើប្រាស់​ចម្បង។"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"បានបិទរន្ធ USB"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"ដើម្បី​ការពារ​ឧបករណ៍​របស់អ្នកកុំឱ្យ​ចូលទឹក ឬ​កម្ទេចផ្សេងៗ រន្ធ USB ត្រូវបានបិទ ហើយ​នឹង​មិនស្គាល់​គ្រឿង​បរិក្ខារ​នោះទេ។\n\nអ្នកនឹង​ទទួលបាន​ការជូនដំណឺង នៅពេល​អ្នកអាច​ប្រើប្រាស់​រន្ធ USB ម្ដងទៀត។"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"បាន​បើក​រន្ធ USB ដើម្បី​សម្គាល់​ឆ្នាំងសាក និងគ្រឿងផ្សេងៗ"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"គ្រប់គ្រង"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ប្រវត្តិ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ការជូនដំណឹង​ស្ងាត់"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"ការជូនដំណឹង​ញ័រ ឬរោទ៍"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"ការសន្ទនា"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"សម្អាត​ការជូនដំណឹង​ស្ងាត់ទាំងអស់"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"ការជូនដំណឹង​បានផ្អាក​ដោយ​មុខងារកុំរំខាន"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ជួយឱ្យ​អ្នក​ផ្តោតអារម្មណ៍ ដោយមិនឮសំឡេង ឬ​ការញ័រ។"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ធ្វើឱ្យ​អ្នក​ចាប់អារម្មណ៍​តាមរយៈ​សំឡេង ឬ​ការញ័រ។"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ធ្វើឱ្យអ្នក​ចាប់អារម្មណ៍​ដោយប្រើ​ផ្លូវកាត់​អណ្ដែត​សម្រាប់ខ្លឹមសារនេះ។"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"មិនមាន​សារលេចឡើង​ថ្មីៗ​ទេ"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"សារលេចឡើង​ដែលបានច្រានចោល និងសារលេចឡើង​ថ្មីៗ​នឹង​បង្ហាញ​នៅទីនេះ។"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"មិនអាច​កែប្រែ​ការជូនដំណឹង​ទាំងនេះ​បានទេ។"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"មិនអាច​កំណត់​រចនាសម្ព័ន្ធ​ក្រុមការជូនដំណឹងនេះ​នៅទីនេះ​បានទេ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ការជូនដំណឹង​ជា​ប្រូកស៊ី"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ផ្លាស់ទីទៅផ្នែកខាងក្រោមខាងឆ្វេង​"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ផ្លាស់ទីទៅផ្នែកខាងក្រោម​ខាងស្ដាំ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ច្រានចោល"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"បានធ្វើ​បច្ចុប្បន្នភាព​ការរុករកក្នុង​ប្រព័ន្ធ។ ដើម្បីធ្វើការផ្លាស់ប្ដូរ សូមចូលទៅ​កាន់ការកំណត់។"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ចូល​ទៅកាន់​ការកំណត់ ដើម្បី​ធ្វើបច្ចុប្បន្នភាព​ការរុករក​ក្នុង​ប្រព័ន្ធ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ផ្អាក​ដំណើរការ"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ការគ្រប់គ្រង​រហ័ស"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"បញ្ចូល​ការគ្រប់គ្រង"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"ជ្រើសរើសកម្មវិធី​ដើម្បីបញ្ចូល​ការគ្រប់គ្រង"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">សំណព្វបច្ចុប្បន្ន <xliff:g id="NUMBER_1">%s</xliff:g>។</item>
-      <item quantity="one">សំណព្វបច្ចុប្បន្ន <xliff:g id="NUMBER_0">%s</xliff:g>។</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">បានបញ្ចូល​ការគ្រប់គ្រង <xliff:g id="NUMBER_1">%s</xliff:g>។</item>
+      <item quantity="one">បានបញ្ចូល​ការគ្រប់គ្រង <xliff:g id="NUMBER_0">%s</xliff:g>។</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ការគ្រប់គ្រង"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ជ្រើសរើស​ការគ្រប់គ្រង​សម្រាប់ការចូលប្រើ​ប្រាស់រហ័ស"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"សំណព្វ"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ទាំងអស់"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"មិនអាច​ផ្ទុក​បញ្ជី​នៃការគ្រប់គ្រង​ទាំងអស់​បានទេ។"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ផ្សេងៗ"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 7d2c6cb..880e083 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"ಅನುಮತಿಸಿ"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿಲ್ಲ"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ಬಳಕೆದಾರರು ಪ್ರಸ್ತುತ ಈ ಸಾಧನಕ್ಕೆ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ USB ಡೀಬಗ್ ಮಾಡುವುದನ್ನು ಆನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು, ಪ್ರಾಥಮಿಕ ಬಳಕೆದಾರರಿಗೆ ಬದಲಾಯಿಸಿ."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"ಈ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ವೈರ್‌ಲೆಸ್ ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಅನುಮತಿಸಬೇಕೆ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ನೆಟ್‌ವರ್ಕ್ ಹೆಸರು (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nವೈ-ಫೈ ವಿಳಾಸ (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ಈ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಅನುಮತಿಸಿ"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"ಅನುಮತಿಸಿ"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ವೈರ್‌ಲೆಸ್ ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿಲ್ಲ"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ಬಳಕೆದಾರರು ಪ್ರಸ್ತುತ ಈ ಸಾಧನಕ್ಕೆ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ ವೈರ್‌ಲೆಸ್ ಡೀಬಗ್ ಮಾಡುವುದನ್ನು ಆನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು, ಪ್ರಾಥಮಿಕ ಬಳಕೆದಾರರಿಗೆ ಬದಲಾಯಿಸಿ."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB ಪೋರ್ಟ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"ದ್ರವ ಅಥವಾ ಧೂಳಿನ ಕಣಗಳಿಂದ ನಿಮ್ಮ ಸಾಧನವನ್ನು ರಕ್ಷಿಸಲು, USB ಪೋರ್ಟ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಹಾಗಾಗಿ ಅದು ಯಾವುದೇ ಪರಿಕರಗಳನ್ನು ಪತ್ತೆ ಮಾಡುವುದಿಲ್ಲ. \n\n USB ಪೋರ್ಟ್ ಬಳಸಲು ಸುರಕ್ಷಿತವಾಗಿದ್ದಾಗ ಮತ್ತೆ ನಿಮಗೆ ಸೂಚಿಸಲಾಗುವುದು."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ಚಾರ್ಜರ್‌ಗಳು ಮತ್ತು ಪರಿಕರಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು USB ಪೋರ್ಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"ನಿರ್ವಹಿಸಿ"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ಇತಿಹಾಸ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ನಿಶ್ಶಬ್ಧ ಅಧಿಸೂಚನೆಗಳು"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"ಎಚ್ಚರಿಸುವ ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"ಸಂವಾದಗಳು"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ಎಲ್ಲಾ ನಿಶ್ಶಬ್ಧ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಎನ್ನುವ ಮೂಲಕ ಅಧಿಸೂಚನೆಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ಶಬ್ದ ಅಥವಾ ವೈಬ್ರೇಷನ್ ಇರದಂತೆ ನಿಮಗೆ ಗಮನಹರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ಧ್ವನಿ ಅಥವಾ ವೈಬ್ರೇಷನ್ ಮೂಲಕ ನಿಮ್ಮ ಗಮನವನ್ನು ಸೆಳೆಯುತ್ತದೆ."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ಈ ವಿಷಯಕ್ಕೆ ಲಿಂಕ್ ಮಾಡಿ ಕೊಂಡೊಯ್ಯುವ ಶಾರ್ಟ್‌ಕಟ್‌ ಕಡೆಗೆ ಗಮನ ಇರಿಸಿ."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಬಬಲ್‌ಗಳಿಲ್ಲ"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ಇತ್ತೀಚಿನ ಬಬಲ್‌ಗಳು ಮತ್ತು ವಜಾಗೊಳಿಸಿದ ಬಬಲ್‌ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ಈ ಗುಂಪಿನ ಅಧಿಸೂಚನೆಗಳನ್ನು ಇಲ್ಲಿ ಕಾನ್ಫಿಗರ್‌ ಮಾಡಲಾಗಿರುವುದಿಲ್ಲ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ಪ್ರಾಕ್ಸಿ ಮಾಡಿದ ಅಧಿಸೂಚನೆಗಳು"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ಸ್ಕ್ರೀನ್‌ನ ಎಡ ಕೆಳಭಾಗಕ್ಕೆ ಸರಿಸಿ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ಕೆಳಗಿನ ಬಲಭಾಗಕ್ಕೆ ಸರಿಸಿ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ವಜಾಗೊಳಿಸಿ"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ಸಿಸ್ಟಂ ನ್ಯಾವಿಗೇಷನ ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿದೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ಸಿಸ್ಟಂ ನ್ಯಾವಿಗೇಷನ್ ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ಸ್ಟ್ಯಾಂಡ್‌ಬೈ"</string>
@@ -983,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ತ್ವರಿತ ನಿಯಂತ್ರಣಗಳು"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"ನಿಯಂತ್ರಣಗಳನ್ನು ಸೇರಿಸಿ"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"ನಿಯಂತ್ರಣಗಳನ್ನು ಸೇರಿಸಲು ಆ್ಯಪ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> ಪ್ರಸ್ತುತ ಮೆಚ್ಚಿನವುಗಳು.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ಪ್ರಸ್ತುತ ಮೆಚ್ಚಿನವುಗಳು.</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ನಿಯಂತ್ರಣಗಳು"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ತ್ವರಿತ ಪ್ರವೇಶಕ್ಕಾಗಿ ನಿಯಂತ್ರಣಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ಮೆಚ್ಚಿನವುಗಳು"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ಎಲ್ಲಾ"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"ಎಲ್ಲಾ ನಿಯಂತ್ರಣಗಳ ಪಟ್ಟಿಯನ್ನು ಲೋಡ್ ಮಾಡಲು ಆಗಲಿಲ್ಲ."</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 0c90b4a..ca8cdb0 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"허용"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB 디버깅이 허용되지 않음"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"현재 이 기기에 로그인한 사용자는 USB 디버깅을 사용 설정할 수 없습니다. 이 기능을 사용하려면 기본 사용자로 전환하세요."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"이 네트워크에서 무선 디버깅을 허용하시겠습니까?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"네트워크 이름(SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi 주소(BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"이 네트워크에서 항상 허용"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"허용"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"무선 디버깅이 허용되지 않음"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"현재 이 기기에 로그인한 사용자는 무선 디버깅을 사용 설정할 수 없습니다. 이 기능을 사용하려면 기본 사용자로 전환하세요."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB 포트 비활성화됨"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"기기를 액체나 이물질로부터 보호하기 위해 USB 포트가 사용 중지되었으며 액세서리를 연결할 수 없습니다.\n\nUSB 포트를 다시 안전하게 사용할 수 있게 되면 알려 드리겠습니다."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"충전기와 액세서리를 감지할 수 있도록 USB 포트가 사용 설정됨"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"관리"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"기록"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"무음 알림"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"주의를 끄는 알림"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"대화"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"무음 알림 모두 삭제"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"방해 금지 모드로 일시중지된 알림"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"소리나 진동 없이 집중할 수 있도록 도와줍니다"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"소리나 진동으로 알립니다."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"이 콘텐츠로 연결되는 플로팅 바로가기로 사용자의 주의를 끕니다."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"최근에 닫은 도움말 풍선 없음"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"최근 버블과 내가 닫은 버블이 여기 표시됩니다."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"이 알림은 수정할 수 없습니다."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"이 알림 그룹은 여기에서 설정할 수 없습니다."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"프록시를 통한 알림"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"왼쪽 하단으로 이동"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"오른쪽 하단으로 이동"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"닫기"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"시스템 탐색이 업데이트되었습니다. 변경하려면 설정으로 이동하세요."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"설정으로 이동하여 시스템 탐색을 업데이트하세요."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"대기"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"빠른 컨트롤"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"컨트롤 추가"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"컨트롤을 추가할 앱을 선택하세요."</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">현재 즐겨찾는 항목 <xliff:g id="NUMBER_1">%s</xliff:g>개 있음</item>
-      <item quantity="one">현재 즐겨찾는 항목 <xliff:g id="NUMBER_0">%s</xliff:g>개 있음</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">제어 기능 <xliff:g id="NUMBER_1">%s</xliff:g>개가 추가되었습니다.</item>
+      <item quantity="one">제어 기능 <xliff:g id="NUMBER_0">%s</xliff:g>개가 추가되었습니다.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"제어"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"빠른 액세스를 위한 컨트롤을 선택하세요."</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"즐겨찾기"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"전체"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"전체 컨트롤 목록을 로드할 수 없습니다."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"기타"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index 3565389..719380e 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Уруксат берүү"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB мүчүлүштүктөрүн оңдоого уруксат жок"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Учурда бул аккаунтта USB аркылуу мүчүлүштүктөрдү оңдоо функциясын иштетүүгө болбойт. Негизги колдонуучунун аккаунтуна кириңиз."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Бул тармакта мүчүлүштүктөрдү зымсыз оңдоого уруксат берилсинби?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Тармактын аталышы (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi дареги (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Бул тармакта ар дайым уруксат берилсин"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Уруксат берүү"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Мүчүлүштүктөрдү зымсыз оңдоого уруксат берилген жок"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Учурда бул түзмөккө кирген колдонуучу мүчүлүштүктөрдү зымсыз оңдоо функциясын күйгүзө албайт. Бул функцияны колдонуу үчүн негизги колдонуучунун аккаунтуна которулуңуз."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB порту өчүрүлдү"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Түзмөгүңүздүн ичине суюктук же булганч нерселер кирип кетпеши үчүн USB порту өчүрүлдү. Азырынча ал аркылуу башка түзмөктөргө туташууга болбойт.\n\nUSB портун кайра колдонуу мүмкүн болгондо, билдирме аласыз."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Кубаттагычтарды жана аксессуарларды аныктоо үчүн USB оюкчасы иштетилди"</string>
@@ -78,33 +84,21 @@
     <string name="screenshot_saved_text" msgid="7778833104901642442">"Скриншотуңузду көрүү үчүн таптап коюңуз"</string>
     <string name="screenshot_failed_title" msgid="3259148215671936891">"Скриншот сакталган жок"</string>
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Скриншотту кайра тартып көрүңүз"</string>
-    <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Сактагычта бош орун аз болгондуктан скриншот сакталбай жатат"</string>
+    <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Сактагычта бош орун аз болгондуктан, скриншот сакталбай жатат"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Скриншот тартууга колдонмо же ишканаңыз тыюу салган."</string>
-    <!-- no translation found for screenrecord_name (2596401223859996572) -->
-    <skip />
+    <string name="screenrecord_name" msgid="2596401223859996572">"Экранды жаздыргыч"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Экранды жаздыруу сеансы боюнча учурдагы билдирме"</string>
-    <!-- no translation found for screenrecord_start_label (1750350278888217473) -->
-    <skip />
-    <!-- no translation found for screenrecord_description (1123231719680353736) -->
-    <skip />
-    <!-- no translation found for screenrecord_audio_label (6183558856175159629) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_label (9016927171280567791) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_description (4922694220572186193) -->
-    <skip />
-    <!-- no translation found for screenrecord_mic_label (2111264835791332350) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_and_mic_label (1831323771978646841) -->
-    <skip />
-    <!-- no translation found for screenrecord_start (330991441575775004) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_only (4459670242451527727) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_and_audio (5351133763125180920) -->
-    <skip />
-    <!-- no translation found for screenrecord_taps_label (1595690528298857649) -->
-    <skip />
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"Жаздырып башталсынбы?"</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"Жаздыруу учурунда Android тутуму экраныңызда көрүнүп турган жана түзмөктө ойнотулуп жаткан бардык купуя маалыматты жаздырып алат. Буга сырсөздөр, төлөм маалыматы, сүрөттөр, билдирүүлөр жана аудио файлдар кирет."</string>
+    <string name="screenrecord_audio_label" msgid="6183558856175159629">"Аудио жаздыруу"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Түзмөктүн аудиосу"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Музыка, чалуулар жана рингтондор сыяктуу түзмөгүңүздөгү добуштар"</string>
+    <string name="screenrecord_mic_label" msgid="2111264835791332350">"Микрофон"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Түзмөктүн аудиосу жана микрофон"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"Старт"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Экран жаздырылууда"</string>
+    <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"Экран жана аудио жаздырылууда"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"Экранды басууларды көрсөтүү"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"Токтотуш үчүн басыңыз"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"Токтотуу"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"Тындыруу"</string>
@@ -117,8 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"Экранды жаздыруу өчүрүлдү"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"Экранды жаздырууну өчүрүүдө ката кетти"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"Уруксаттар алынбай калды"</string>
-    <!-- no translation found for screenrecord_start_error (2200660692479682368) -->
-    <skip />
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"Экранды жаздырууну баштоодо ката кетти"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USB менен файл өткөрүү мүмкүнчүлүктөрү"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"Медиа ойноткуч катары кошуу (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"Камера катары кошуу (PTP)"</string>
@@ -311,7 +304,7 @@
     <string name="gps_notification_found_text" msgid="3145873880174658526">"GPS боюнча аныкталган жайгашуу"</string>
     <string name="accessibility_location_active" msgid="2845747916764660369">"Жайгаштыруу талаптары иштелүүдө"</string>
     <string name="accessibility_sensors_off_active" msgid="2619725434618911551">"\"Сенсорлорду өчүрүүнү\" активдештирүү"</string>
-    <string name="accessibility_clear_all" msgid="970525598287244592">"Бардык билдирмелерди тазалоо."</string>
+    <string name="accessibility_clear_all" msgid="970525598287244592">"Бардык билдирмелерди өчүрүү."</string>
     <string name="notification_group_overflow_indicator" msgid="7605120293801012648">"+ <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <plurals name="notification_group_overflow_description" formatted="false" msgid="91483442850649192">
       <item quantity="other">Дагы <xliff:g id="NUMBER_1">%s</xliff:g> эскертме бар.</item>
@@ -499,9 +492,9 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"Экинчи көрсөтүлбөсүн"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"Баарын тазалап салуу"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"Башкаруу"</string>
-    <!-- no translation found for manage_notifications_history_text (57055985396576230) -->
-    <skip />
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"Таржымал"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Үнсүз билдирмелер"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Эскертүүлөр"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Жазышуулар"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Маанилүү эмес билдирмелердин баарын өчүрүү"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\"Тынчымды алба\" режиминде билдирмелер тындырылды"</string>
@@ -673,9 +666,9 @@
     <string name="tuner_full_importance_settings" msgid="1388025816553459059">"Эскертмелерди башкаруу каражаттары"</string>
     <string name="tuner_full_importance_settings_on" msgid="917981436602311547">"Күйүк"</string>
     <string name="tuner_full_importance_settings_off" msgid="5580102038749680829">"Өчүк"</string>
-    <string name="power_notification_controls_description" msgid="1334963837572708952">"Бул функциянын жардамы менен ар бир колдонмо үчүн билдирменин маанилүүлүгүн 0дон 5ке чейин бааласаңыз болот. \n\n"<b>"5-деңгээл"</b>" \n- Билдирмелер тизмесинин өйдө жагында көрсөтүлөт \n- Билдирмелер толук экранда көрсөтүлөт \n- Калкып чыгуучу билдирмелерге уруксат берилет \n\n"<b>"4-деңгээл"</b>" \n- Билдирмелер толук экранда көрсөтүлбөйт \n- Калкып чыгуучу билдирмелерге уруксат берилет \n\n"<b>"3-деңгээл"</b>" \n- Билдирмелер толук экранда көрсөтүлбөйт \n- Калкып чыгуучу билдирмелерге тыюу салынат \n\n"<b>"2-деңгээл"</b>" \n- Билдирмелер толук экранда көрсөтүлбөйт \n- Калкып чыгуучу билдирмелерге тыюу салынат \n- Эч качан үн чыкпайт же дирилдебейт \n\n"<b>"1-деңгээл"</b>" \n- Билдирмелер толук экранда көрсөтүлбөйт \n- Калкып чыгуучу билдирмелерге тыюу салынат \n- Эч качан үн чыкпайт же дирилдебейт \n- Кулпуланган экрандан жана абал тилкесинен жашырылат \n- Билдирмелер тизмесинин ылдый жагында көрсөтүлөт \n\n"<b>"0-деңгээл"</b>" \n- Колдонмодон алынган бардык билдирмелер бөгөттөлөт"</string>
+    <string name="power_notification_controls_description" msgid="1334963837572708952">"Бул функциянын жардамы менен, ар бир колдонмо үчүн билдирменин маанилүүлүгүн 0дон 5ке чейин бааласаңыз болот. \n\n"<b>"5-деңгээл"</b>" \n- Билдирмелер тизмесинин өйдө жагында көрсөтүлөт \n- Билдирмелер толук экранда көрсөтүлөт \n- Калкып чыгуучу билдирмелерге уруксат берилет \n\n"<b>"4-деңгээл"</b>" \n- Билдирмелер толук экранда көрүнбөйт \n- Калкып чыгуучу билдирмелерге уруксат берилет \n\n"<b>"3-деңгээл"</b>" \n- Билдирмелер толук экранда көрүнбөйт \n- Калкып чыгуучу билдирмелерге тыюу салынат \n\n"<b>"2-деңгээл"</b>" \n- Билдирмелер толук экранда көрүнбөйт \n- Калкып чыгуучу билдирмелерге тыюу салынат \n- Эч качан үн чыкпайт же дирилдебейт \n\n"<b>"1-деңгээл"</b>" \n- Билдирмелер толук экранда көрүнбөйт \n- Калкып чыгуучу билдирмелерге тыюу салынат \n- Эч качан үн чыкпайт же дирилдебейт \n- Кулпуланган экрандан жана абал тилкесинен жашырылат \n- Билдирмелер тизмесинин ылдый жагында көрсөтүлөт \n\n"<b>"0-деңгээл"</b>" \n- Колдонмодон алынган бардык билдирмелер бөгөттөлөт"</string>
     <string name="notification_header_default_channel" msgid="225454696914642444">"Билдирмелер"</string>
-    <string name="notification_channel_disabled" msgid="928065923928416337">"Мындан ары бул билдирмелер сизге көрсөтүлбөйт"</string>
+    <string name="notification_channel_disabled" msgid="928065923928416337">"Мындан ары бул билдирмелер сизге көрүнбөйт"</string>
     <string name="notification_channel_minimized" msgid="6892672757877552959">"Бул билдирмелер кичирейтилет"</string>
     <string name="notification_channel_silenced" msgid="1995937493874511359">"Бул билдирмелер үнсүз көрсөтүлөт"</string>
     <string name="notification_channel_unsilenced" msgid="94878840742161152">"Бул билдирмелер тууралуу кабарлап турабыз"</string>
@@ -700,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Үн же дирилдөөсүз ой топтоого жардам берет."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Билдирүүдөн үн чыгат же дирилдейт."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Калкыма ыкчам баскыч менен көңүлүңүздү бул мазмунга буруп турат."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Акыркы калкып чыкма билдирмелер жок"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Кайра жөнөтүлгөн жана жабылган калкып чыкма билдирмелер ушул жерде көрүнөт."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бул билдирмелерди өзгөртүүгө болбойт."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Бул билдирмелердин тобун бул жерде конфигурациялоого болбойт"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Прокси билдирмеси"</string>
@@ -726,25 +717,18 @@
     <string name="notification_done" msgid="6215117625922713976">"Бүттү"</string>
     <string name="inline_undo" msgid="9026953267645116526">"Кайтаруу"</string>
     <string name="demote" msgid="6225813324237153980">"Бул билдирме \"жазышуу эмес\" катары белгиленсин"</string>
-    <!-- no translation found for notification_conversation_favorite (1905240206975921907) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unfavorite (181383708304763807) -->
-    <skip />
-    <!-- no translation found for notification_conversation_mute (268951550222925548) -->
-    <skip />
+    <string name="notification_conversation_favorite" msgid="1905240206975921907">"Маанилүү жазышуу"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Маанилүү жазышуу эмес"</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"Үнү өчүрүлгөн"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"Билдирүү"</string>
-    <!-- no translation found for notification_conversation_bubble (2242180995373949022) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unbubble (6908427185031099868) -->
-    <skip />
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"Калкып чыкма билдирмени көрсөтүү"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"Калкып чыкма билдирмелерди алып салуу"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"Башкы экранга кошуу"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"билдирмелерди башкаруу каражаттары"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"эскертмени тындыруу опциялары"</string>
-    <!-- no translation found for notification_menu_snooze_action (5415729610393475019) -->
-    <skip />
-    <!-- no translation found for notification_menu_settings_action (7085494017202764285) -->
-    <skip />
+    <string name="notification_menu_snooze_action" msgid="5415729610393475019">"Эскертилсин"</string>
+    <string name="notification_menu_settings_action" msgid="7085494017202764285">"Жөндөөлөр"</string>
     <string name="snooze_undo" msgid="60890935148417175">"КАЙТАРУУ"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"<xliff:g id="TIME_AMOUNT">%1$s</xliff:g> тындырылды"</string>
     <plurals name="snoozeHourOptions" formatted="false" msgid="2066838694120718170">
@@ -816,8 +800,7 @@
     <string name="accessibility_data_saver_off" msgid="58339669022107171">"Трафикти үнөмдөө режими өчүрүлгөн"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"Күйүк"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"Өчүк"</string>
-    <!-- no translation found for tile_unavailable (3095879009136616920) -->
-    <skip />
+    <string name="tile_unavailable" msgid="3095879009136616920">"Жеткиликсиз"</string>
     <string name="nav_bar" msgid="4642708685386136807">"Чабыттоо тилкеси"</string>
     <string name="nav_bar_layout" msgid="4716392484772899544">"Калып"</string>
     <string name="left_nav_bar_button_type" msgid="2634852842345192790">"Сол жактагы кошумча баскычтын түрү"</string>
@@ -996,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Төмөнкү сол жакка жылдыруу"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Төмөнкү оң жакка жылдырыңыз"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Жабуу"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Тутум чабыттоосу жаңырды. Өзгөртүү үчүн, Жөндөөлөргө өтүңүз."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Тутум чабыттоосун жаңыртуу үчүн Жөндөөлөргө өтүңүз"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Көшүү режими"</string>
@@ -1005,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Ыкчам көзөмөл"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Көзөмөлдөө функцияларын кошуу"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Көзөмөлдөө функцияларын кошуу үчүн колдонмо тандоо"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Учурда <xliff:g id="NUMBER_1">%s</xliff:g> сүйүктүү бар.</item>
-      <item quantity="one">Учурда <xliff:g id="NUMBER_0">%s</xliff:g> сүйүктүү бар.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> көзөмөл кошулду.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> көзөмөл кошулду.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Башкаруу элементтери"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Тез табуу мүмкүнчүлүгү үчүн көзөмөлдөө функцияларын тандоо"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Сүйүктүүлөр"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Баары"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Бардык көзөмөлдөрдүн тизмеси жүктөлгөн жок."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Башка"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index c9fa791..1737e0c 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"ອະນຸຍາດ"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"ບໍ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ມີ​ການ​ແກ້​ໄຂ​ບັນ​ຫາ USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ຜູ້ໃຊ້ທີ່ກຳລັງເຂົ້າສູ່ລະບົບອຸປະກອນຢູ່ໃນຕອນນີ້ບໍ່ສາມາດເປີດໃຊ້ການດີບັກ USB ໄດ້. ເພື່ອໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ສະຫຼັບໄປໃຊ້ຜູ້ໃຊ້ຫຼັກ."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"ອະນຸຍາດການດີບັກໄຮ້ສາຍຢູ່ເຄືອຂ່າຍນີ້ບໍ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ຊື່ເຄືອຂ່າຍ (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nທີ່ຢູ່ Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ອະນຸຍາດຕະຫຼອດຢູ່ເຄືອຂ່າຍນີ້"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"ອະນຸຍາດ"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ການດີບັກໄຮ້ສາຍ"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ຜູ້ໃຊ້ທີ່ກຳລັງເຂົ້າສູ່ລະບົບອຸປະກອນຢູ່ໃນຕອນນີ້ບໍ່ສາມາດເປີດໃຊ້ການດີບັກໄຮ້ສາຍໄດ້. ເພື່ອໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ສະຫຼັບໄປໃຊ້ຜູ້ໃຊ້ຫຼັກ."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"ປິດການນຳໃຊ້ຜອດ USB ແລ້ວ"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"ເພື່ອປົກປ້ອງອຸປະກອນຂອງທ່ານຈາກຂອງແຫລວ ຫຼື ເສດດິນຕ່າງໆ, ຜອດ USB ຈຶ່ງຖືກປິດການນຳໃຊ້ ແລະ ຈະບໍ່ກວດຫາອຸປະກອນເສີມໃດໆ.\n\nທ່ານຈະໄດ້ຮັບການແຈ້ງເຕືອນເມື່ອສາມາດໃຊ້ຜອດ USB ໄດ້ອີກເທື່ອໜຶ່ງ."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ເປີດນຳໃຊ້ USB ແລ້ວເພື່ອກວດຫາສາຍສາກ ແລະ ອຸປະກອນເສີມ"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"ຈັດການ"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ປະຫວັດ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ການແຈ້ງເຕືອນແບບງຽບ"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"ການແຈ້ງເຕືອນການເຕືອນ"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"ການສົນທະນາ"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ລຶບລ້າງການແຈ້ງເຕືອນແບບງຽບທັງໝົດ"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"ຢຸດການແຈ້ງເຕືອນໂດຍໂໝດຫ້າມລົບກວນແລ້ວ"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ດຶງຄວາມສົນໃຈຂອງທ່ານດ້ວຍສຽງ ຫຼື ການສັ່ນເຕືອນ."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ເອົາໃຈໃສ່ທາງລັດແບບລອຍໄປຫາເນື້ອຫານີ້."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ບໍ່ມີ bubble ຫຼ້າສຸດ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Bubble ທີ່ຫາກໍປິດໄປຈະປາກົດຢູ່ບ່ອນນີ້ເພື່ອໃຫ້ດຶງໄດ້ງ່າຍ."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Bubbles ຫຼ້າສຸດ ແລະ Bubbles ທີ່ປິດໄປຈະປາກົດຢູ່ບ່ອນນີ້."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ບໍ່ສາມາດແກ້ໄຂການແຈ້ງເຕືອນເຫຼົ່ານີ້ໄດ້."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ບໍ່ສາມາດຕັ້ງຄ່າກຸ່ມການແຈ້ງເຕືອນນີ້ຢູ່ບ່ອນນີ້ໄດ້"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ການແຈ້ງເຕືອນແບບພຣັອກຊີ"</string>
@@ -972,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ຍ້າຍຊ້າຍລຸ່ມ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ຍ້າຍຂວາລຸ່ມ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ປິດໄວ້"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ອັບເດດການນຳທາງລະບົບແລ້ວ. ເພື່ອປ່ຽນແປງ, ກະລຸນາໄປທີ່ການຕັ້ງຄ່າ."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ໄປທີ່ການຕັ້ງຄ່າເພື່ອອັບເດດການນຳທາງລະບົບ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ສະແຕນບາຍ"</string>
@@ -981,13 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ການຄວບຄຸມດ່ວນ"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"ເພີ່ມການຄວບຄຸມ"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"ເລືອກແອັບໃດໜຶ່ງທີ່ຈະເພີ່ມການຄວບຄຸມ"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ລາຍການທີ່ມັກປັດຈຸບັນ.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> ລາຍການທີ່ມັກປັດຈຸບັນ.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">ເພີ່ມ <xliff:g id="NUMBER_1">%s</xliff:g> ການຄວບຄຸມແລ້ວ.</item>
+      <item quantity="one">ເພີ່ມ <xliff:g id="NUMBER_0">%s</xliff:g> ການຄວບຄຸມແລ້ວ.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ການຄວບຄຸມ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ເລືອກການຄວບຄຸມສຳລັບການເຂົ້າເຖິງດ່ວນ"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ລາຍການທີ່ມັກ"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"ທັງໝົດ"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"ບໍ່ສາມາດໂຫຼດລາຍຊື່ການຄວບຄຸມທັງໝົດໄດ້."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ອື່ນໆ"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 3132439..31fd57f 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Leisti"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB derinimas neleidžiamas"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Šiuo metu prie įrenginio prisijungęs naudotojas negali įjungti USB derinimo. Kad galėtumėte naudoti šią funkciją, perjunkite į pagrindinį naudotoją."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Leisti belaidžio ryšio derinimą prisijungus prie šio tinklo?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Tinklo pavadinimas (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\n„Wi‑Fi“ adresas (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Visada leisti naudojant šį tinklą"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Leisti"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Belaidžio ryšio derinimas neleidžiamas"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Šiuo metu prie įrenginio prisijungęs naudotojas negali įjungti belaidžio ryšio derinimo. Kad galėtumėte naudoti šią funkciją, perjunkite į pagrindinį naudotoją."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB prievadas išjungtas"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Siekiant apsaugoti įrenginį nuo skysčių ar smulkių dalelių, USB prievadas buvo išjungtas ir neaptiks jokių priedų.\n\nJums bus pranešta, kai galėsite vėl saugiai naudoti USB prievadą."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB prievadas įgalintas aptikti kroviklius ir priedus"</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Tvarkyti"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Istorija"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Tylieji pranešimai"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Įspėjamieji pranešimai"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Pokalbiai"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Išvalyti visus tylius pranešimus"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Pranešimai pristabdyti naudojant netrukdymo režimą"</string>
@@ -693,7 +700,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Atkreipia dėmesį garsu arba vibravimu."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Naudojant slankųjį spartųjį klavišą lengviau sutelkti dėmesį į šį turinį."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nėra naujausių debesėlių"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Neseniai atmesti debesėliai bus rodomi čia, kad galėtumėte lengvai vėl juos pasiekti."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Naujausi ir atmesti debesėliai bus rodomi čia."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šių pranešimų keisti negalima."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Šios grupės pranešimai čia nekonfigūruojami"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Per tarpinį serverį gautas pranešimas"</string>
@@ -982,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Perkelti į apačią kairėje"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Perkelti į apačią dešinėje"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Atmesti"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistemos naršymo funkcijos atnaujintos. Jei norite pakeisti, eikite į skiltį „Nustatymai“."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Eikite į skiltį „Nustatymai“, kad atnaujintumėte sistemos naršymo funkcijas"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Budėjimo laikas"</string>
@@ -991,15 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Spartieji valdikliai"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Valdiklių pridėjimas"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Pasirinkite programą, iš kurios norėsite pridėti valdiklių"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> dabartinis mėgstamiausias elementas.</item>
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> dabartiniai mėgstamiausi elementai.</item>
-      <item quantity="many"><xliff:g id="NUMBER_1">%s</xliff:g> dabartinio mėgstamiausio elemento.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> dabartinių mėgstamiausių elementų.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Pridėtas <xliff:g id="NUMBER_1">%s</xliff:g> valdiklis.</item>
+      <item quantity="few">Pridėti <xliff:g id="NUMBER_1">%s</xliff:g> valdikliai.</item>
+      <item quantity="many">Pridėta <xliff:g id="NUMBER_1">%s</xliff:g> valdiklio.</item>
+      <item quantity="other">Pridėta <xliff:g id="NUMBER_1">%s</xliff:g> valdiklių.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Valdikliai"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pasirinkite sparčiosios prieigos valdiklius"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Mėgstamiausi"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"Visi"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nepavyko įkelti visų valdiklių sąrašo."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Kita"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 3d10ba1..44e15cc 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Atļaut"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB atkļūdošana nav atļauta"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Lietotājs, kurš pašlaik ir pierakstījies šajā ierīcē, nevar iespējot USB atkļūdošanu. Lai izmantotu šo funkciju, pārslēdzieties uz galveno lietotāju."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Vai atļaut bezvadu atkļūdošanu šajā tīklā?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Tīkla nosaukums (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi adrese (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Vienmēr atļaut šajā tīklā"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Atļaut"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Bezvadu atkļūdošana nav atļauta"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Lietotājs, kurš pašlaik ir pierakstījies šajā ierīcē, nevar iespējot bezvadu atkļūdošanu. Lai izmantotu šo funkciju, pārslēdzieties uz galveno lietotāju."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB pieslēgvieta atspējota"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Lai aizsargātu ierīci no šķidruma un gružiem, USB pieslēgvieta ir atspējota un tajā nevarēs noteikt pieslēgtus piederumus.\n\nKad USB pieslēgvietu atkal drīkstēs izmantot, saņemsiet paziņojumu."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB portam ir iespējota uzlādes ierīču un piederumu noteikšana"</string>
@@ -491,6 +497,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Pārvaldīt"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Vēsture"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Klusie paziņojumi"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Paziņojumi ar skaņu vai vibrāciju"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Sarunas"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Notīrīt visus klusos paziņojumus"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Paziņojumi pārtraukti, izmantojot iestatījumu “Netraucēt”"</string>
@@ -689,10 +696,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Palīdz jums koncentrēties, nenovēršot uzmanību ar skaņu vai vibrāciju."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Jūsu uzmanība tiek piesaistīta ar skaņas vai vibrācijas signālu."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Piesaista jūsu uzmanību, rādot peldošu saīsni uz šo saturu."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nav nesen aizvērtu burbuļu"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Šeit būs redzami nesen rādītie burbuļi un aizvērtie burbuļi."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šos paziņojumus nevar modificēt."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Šeit nevar konfigurēt šo paziņojumu grupu."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Starpniekservera paziņojums"</string>
@@ -979,6 +984,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Pārvietot apakšpusē pa kreisi"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Pārvietot apakšpusē pa labi"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Nerādīt"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistēmas navigācija ir atjaunināta. Lai veiktu izmaiņas, atveriet iestatījumus."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Atveriet iestatījumus, lai atjauninātu sistēmas navigāciju"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gaidstāve"</string>
@@ -988,17 +999,15 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Ātrās vadīklas"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Vadīklu pievienošana"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Izvēlieties lietotni, no kuras pievienot vadīklas."</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="zero">Šobrīd izlasē ir <xliff:g id="NUMBER_1">%s</xliff:g> vienumi.</item>
-      <item quantity="one">Šobrīd izlasē ir <xliff:g id="NUMBER_1">%s</xliff:g> vienums.</item>
-      <item quantity="other">Šobrīd izlasē ir <xliff:g id="NUMBER_1">%s</xliff:g> vienumi.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="zero">Pievienotas <xliff:g id="NUMBER_1">%s</xliff:g> vadīklas.</item>
+      <item quantity="one">Pievienota <xliff:g id="NUMBER_1">%s</xliff:g> vadīkla.</item>
+      <item quantity="other">Pievienotas <xliff:g id="NUMBER_1">%s</xliff:g> vadīklas.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Vadīklas"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Izvēlieties vadīklas ātrajai piekļuvei."</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Izlase"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Visas"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nevarēja ielādēt sarakstu ar visām vadīklām."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Cita"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index e1e6365..f0896e6 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Дозволи"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Отстранувањето грешки на USB не е дозволено"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Корисникот што моментално е најавен на уредов не може да вклучи отстранување грешки на USB. За да ја користите функцијава, префрлете се на примарниот корисник."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Да се дозволи безжично отстранување грешки на мрежава?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Име на мрежа (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi-адреса (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Секогаш дозволувај на оваа мрежа"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Дозволи"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Безжичното отстранување грешки не е дозволено"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Корисникот што моментално е најавен на уредов не може да вклучи безжично отстранување грешки. За да ја користите функцијава, префрлете се на примарниот корисник."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-портата е оневозможена"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"За да го заштитиме уредот од течност или нечистотија, USB-портата е оневозможена и нема да ги открива додатоците.\n\nЌе ве известиме кога ќе биде во ред да ја користите USB-портата повторно."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-портата е овозможена за откривање полначи и додатоци"</string>
@@ -298,7 +304,7 @@
     <string name="gps_notification_found_text" msgid="3145873880174658526">"Локацијата е поставена со GPS"</string>
     <string name="accessibility_location_active" msgid="2845747916764660369">"Активни барања за локација"</string>
     <string name="accessibility_sensors_off_active" msgid="2619725434618911551">"Исклучувањето на сензорите е активно"</string>
-    <string name="accessibility_clear_all" msgid="970525598287244592">"Исчисти ги сите известувања."</string>
+    <string name="accessibility_clear_all" msgid="970525598287244592">"Избриши ги сите известувања."</string>
     <string name="notification_group_overflow_indicator" msgid="7605120293801012648">"+ <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <plurals name="notification_group_overflow_description" formatted="false" msgid="91483442850649192">
       <item quantity="one">Уште <xliff:g id="NUMBER_1">%s</xliff:g> известување внатре.</item>
@@ -488,8 +494,9 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Управувајте"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Историја"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Тивки известувања"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Известувања за предупредување"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Разговори"</string>
-    <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Исчисти ги сите тивки известувања"</string>
+    <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Избриши ги сите тивки известувања"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Известувањата се паузирани од „Не вознемирувај“"</string>
     <string name="media_projection_action_text" msgid="3634906766918186440">"Започни сега"</string>
     <string name="empty_shade_text" msgid="8935967157319717412">"Нема известувања"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ви помага да се концентрирате без звук или вибрации."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ви го привлекува вниманието со звук или вибрации."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Ви го задржува вниманието со лебдечка кратенка на содржинава."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Нема неодамнешни балончиња"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Неодамнешните и отфрлените балончиња ќе се појавуваат тука."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Овие известувања не може да се изменат"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Оваа група известувања не може да се конфигурира тука"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Известување преку прокси"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Премести долу лево"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Премести долу десно"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Отфрли"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навигацијата на системот е ажурирана. За да извршите промени, одете во „Поставки“."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Одете во „Поставки“ за да ја ажурирате навигацијата на системот"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Подготвеност"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Брзи контроли"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Додајте контроли"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Изберете апликација од која ќе додавате контроли"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> моментална омилена.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> моментални омилени.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Додадена е <xliff:g id="NUMBER_1">%s</xliff:g> контрола.</item>
+      <item quantity="other">Додадени се <xliff:g id="NUMBER_1">%s</xliff:g> контроли.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Контроли"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Изберете контроли за брз пристап"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Омилени"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Сите"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не можеше да се вчита списокот со сите контроли."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Друга"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index ba78113..2e6f6f5 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"അനുവദിക്കുക"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB ഡീബഗ്ഗിംഗ് അനുവദനീയമല്ല"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ഉപകരണത്തിൽ ഇപ്പോൾ സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്ന ഉപയോക്താവിന് USB ഡീബഗ്ഗിംഗ് ഓണാക്കാനാകില്ല. ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ പ്രാഥമിക ഉപയോക്താവിലേക്ക് മാറുക."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"ഈ നെറ്റ്‌വർക്കിൽ വയർലെസ് ഡീബഗ്ഗ് ചെയ്യൽ അനുവദിക്കണോ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"നെറ്റ്‌വർക്കിന്റെ പേര് (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nവൈഫൈ വിലാസം (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ഈ നെറ്റ്‌വർക്കിൽ എപ്പോഴും അനുവദിക്കുക"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"അനുവദിക്കൂ"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"വയർലെസ് ഡീബഗ്ഗ് ചെയ്യൽ അനുവദനീയമല്ല"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ഉപകരണത്തിൽ ഇപ്പോൾ സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്ന ഉപയോക്താവിന് വയർലെസ് ഡീബഗ്ഗ് ചെയ്യൽ ഓണാക്കാനാകില്ല. ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ പ്രാഥമിക ഉപയോക്താവിലേക്ക് മാറുക."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB പോർട്ട് പ്രവർത്തനരഹിതമാക്കി"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"ദ്രാവകത്തിൽ നിന്നോ പൊടിയിൽ നിന്നോ നിങ്ങളുടെ ഉപകരണത്തെ പരിരക്ഷിക്കാനായി USB പോർട്ട് പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ അത് ആക്‌സസറികളൊന്നും തിരിച്ചറിയില്ല.\n\n USB പോർട്ട് വീണ്ടും ഉപയോഗിക്കാനാകുമ്പോൾ നിങ്ങളെ അറിയിക്കും."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ആക്‌സസറികളും ചാർജറുകളും കണ്ടെത്താൻ USB പോർട്ട് പ്രവർത്തനക്ഷമമാക്കുക"</string>
@@ -80,31 +86,19 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"സ്‌ക്രീൻഷോട്ട് എടുക്കാൻ വീണ്ടും ശ്രമിക്കുക"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"സ്‌റ്റോറേജ് ഇടം പരിമിതമായതിനാൽ സ്‌ക്രീൻഷോട്ട് സംരക്ഷിക്കാനാകുന്നില്ല"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"സ്ക്രീൻഷോട്ടുകൾ എടുക്കുന്നത് ആപ്പോ നിങ്ങളുടെ സ്ഥാപനമോ അനുവദിക്കുന്നില്ല"</string>
-    <!-- no translation found for screenrecord_name (2596401223859996572) -->
-    <skip />
+    <string name="screenrecord_name" msgid="2596401223859996572">"സ്ക്രീൻ റെക്കോർഡർ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ഒരു സ്ക്രീൻ റെക്കോർഡിംഗ് സെഷനായി നിലവിലുള്ള അറിയിപ്പ്"</string>
-    <!-- no translation found for screenrecord_start_label (1750350278888217473) -->
-    <skip />
-    <!-- no translation found for screenrecord_description (1123231719680353736) -->
-    <skip />
-    <!-- no translation found for screenrecord_audio_label (6183558856175159629) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_label (9016927171280567791) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_description (4922694220572186193) -->
-    <skip />
-    <!-- no translation found for screenrecord_mic_label (2111264835791332350) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_and_mic_label (1831323771978646841) -->
-    <skip />
-    <!-- no translation found for screenrecord_start (330991441575775004) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_only (4459670242451527727) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_and_audio (5351133763125180920) -->
-    <skip />
-    <!-- no translation found for screenrecord_taps_label (1595690528298857649) -->
-    <skip />
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"റെക്കോർഡിംഗ് ആരംഭിക്കണോ?"</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"റെക്കോർഡ് ചെയ്യുമ്പോൾ, നിങ്ങളുടെ സ്‌ക്രീനിൽ ദൃശ്യമാകുന്നതോ ഉപകരണത്തിൽ പ്ലേ ചെയ്യുന്നതോ ആയ ഏത് തന്ത്രപ്രധാന വിവരങ്ങളും Android സിസ്റ്റത്തിന് പകർത്താനാവും. പാസ്‍വേഡുകൾ, പേയ്‌മെന്റ് വിവരം, ഫോട്ടോകൾ, സന്ദേശങ്ങൾ, ഓഡിയോ എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു."</string>
+    <string name="screenrecord_audio_label" msgid="6183558856175159629">"ഓഡിയോ റെക്കോർഡ് ചെയ്യുക"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"ഉപകരണത്തിന്റെ ഓഡിയോ"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"സംഗീതം, കോളുകൾ, റിംഗ്‌ടോണുകൾ എന്നിവപോലെ നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്നുള്ള ശബ്ദം"</string>
+    <string name="screenrecord_mic_label" msgid="2111264835791332350">"മൈക്രോഫോൺ"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"ഉപകരണത്തിന്റെ ഓഡിയോയും മൈക്രോഫോണും"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"ആരംഭിക്കുക"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"സ്ക്രീൻ റെക്കോർഡ് ചെയ്യുന്നു"</string>
+    <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"സ്ക്രീനും ഓഡിയോയും റെക്കോർഡ് ചെയ്യുന്നു"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"സ്‌ക്രീനിൽ തൊടുന്ന ഭാഗങ്ങൾ കാണിക്കുക"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"നിർത്താൻ ടാപ്പ് ചെയ്യുക"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"നിർത്തുക"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"താൽക്കാലികമായി നിർത്തുക"</string>
@@ -117,8 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"സ്ക്രീൻ റെക്കോർഡിംഗ് ഇല്ലാതാക്കി"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"സ്ക്രീൻ റെക്കോർഡിംഗ് ഇല്ലാതാക്കുന്നതിൽ പിശക്"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"അനുമതികൾ ലഭിച്ചില്ല"</string>
-    <!-- no translation found for screenrecord_start_error (2200660692479682368) -->
-    <skip />
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"സ്ക്രീൻ റെക്കോർഡിംഗ് ആരംഭിക്കുന്നതിൽ പിശക്"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USB ഫയൽ കൈമാറൽ ഓപ്‌ഷനുകൾ"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"ഒരു മീഡിയ പ്ലേയറായി (MTP) മൗണ്ടുചെയ്യുക"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"ഒരു ക്യാമറയായി (PTP) മൗണ്ടുചെയ്യുക"</string>
@@ -499,9 +492,9 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"വീണ്ടും കാണിക്കരുത്"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"എല്ലാം മായ്‌ക്കുക"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"മാനേജ് ചെയ്യുക"</string>
-    <!-- no translation found for manage_notifications_history_text (57055985396576230) -->
-    <skip />
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"ചരിത്രം"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"നിശബ്‌ദ അറിയിപ്പുകൾ"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"മുന്നറിയിപ്പ് നൽകുന്ന അറിയിപ്പുകൾ"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"സംഭാഷണങ്ങൾ"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"എല്ലാ നിശബ്‌ദ അറിയിപ്പുകളും മായ്ക്കുക"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\'ശല്യപ്പെടുത്തരുത്\' വഴി അറിയിപ്പുകൾ താൽക്കാലികമായി നിർത്തി"</string>
@@ -700,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ശബ്‌ദമോ വൈബ്രേഷനോ ഇല്ലാതെ ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ശബ്‌ദമോ വെെബ്രേഷനോ ഉപയോഗിച്ച് നിങ്ങളുടെ ശ്രദ്ധ ക്ഷണിക്കുന്നു."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ഈ ഉള്ളടക്കത്തിലേക്ക് ഒരു ഫ്ലോട്ടിംഗ് കുറുക്കുവഴി ഉപയോഗിച്ച് നിങ്ങളുടെ ശ്രദ്ധ നിലനിർത്തുന്നു."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"അടുത്തിടെയുള്ള ബബിളുകൾ ഒന്നുമില്ല"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"അടുത്തിടെയുള്ള Bubbles-ഉം ഡിസ്മിസ് ചെയ്ത Bubbles-ഉം ഇവിടെ ദൃശ്യമാവും."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ഈ അറിയിപ്പുകൾ പരിഷ്ക്കരിക്കാനാവില്ല."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"അറിയിപ്പുകളുടെ ഈ ഗ്രൂപ്പ് ഇവിടെ കോണ്‍ഫിഗര്‍ ചെയ്യാൻ കഴിയില്ല"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"പ്രോക്‌സി അറിയിപ്പ്"</string>
@@ -726,25 +717,18 @@
     <string name="notification_done" msgid="6215117625922713976">"പൂർത്തിയായി"</string>
     <string name="inline_undo" msgid="9026953267645116526">"പഴയപടിയാക്കുക"</string>
     <string name="demote" msgid="6225813324237153980">"ഈ അറിയിപ്പ് സംഭാഷണമല്ലെന്ന് അടയാളപ്പെടുത്തുക"</string>
-    <!-- no translation found for notification_conversation_favorite (1905240206975921907) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unfavorite (181383708304763807) -->
-    <skip />
-    <!-- no translation found for notification_conversation_mute (268951550222925548) -->
-    <skip />
+    <string name="notification_conversation_favorite" msgid="1905240206975921907">"പ്രധാനപ്പെട്ട സംഭാഷണം"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"പ്രധാനപ്പെട്ട സംഭാഷണമല്ല"</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"നിശബ്ദമാക്കി"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"മുന്നറിയിപ്പ് നൽകൽ"</string>
-    <!-- no translation found for notification_conversation_bubble (2242180995373949022) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unbubble (6908427185031099868) -->
-    <skip />
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"ബബ്ൾ ആയി കാണിക്കുക"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"ബബിളുകൾ നീക്കം ചെയ്യുക"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"ഹോം സ്‌ക്രീനിലേക്ക് ചേർക്കുക"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"അറിയിപ്പ് നിയന്ത്രണങ്ങൾ"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"അറിയിപ്പ് സ്‌നൂസ് ഓപ്ഷനുകൾ"</string>
-    <!-- no translation found for notification_menu_snooze_action (5415729610393475019) -->
-    <skip />
-    <!-- no translation found for notification_menu_settings_action (7085494017202764285) -->
-    <skip />
+    <string name="notification_menu_snooze_action" msgid="5415729610393475019">"എന്നെ ഓർമ്മിപ്പിക്കുക"</string>
+    <string name="notification_menu_settings_action" msgid="7085494017202764285">"ക്രമീകരണം"</string>
     <string name="snooze_undo" msgid="60890935148417175">"പഴയപടിയാക്കുക"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"<xliff:g id="TIME_AMOUNT">%1$s</xliff:g> സമയത്തേക്ക് സ്‌നൂസ് ‌ചെയ്‌തു"</string>
     <plurals name="snoozeHourOptions" formatted="false" msgid="2066838694120718170">
@@ -816,8 +800,7 @@
     <string name="accessibility_data_saver_off" msgid="58339669022107171">"ഡാറ്റാ സേവർ ഓഫാണ്"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"ഓൺ"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"ഓഫ്"</string>
-    <!-- no translation found for tile_unavailable (3095879009136616920) -->
-    <skip />
+    <string name="tile_unavailable" msgid="3095879009136616920">"ലഭ്യമല്ല"</string>
     <string name="nav_bar" msgid="4642708685386136807">"നാവിഗേഷൻ ബാർ"</string>
     <string name="nav_bar_layout" msgid="4716392484772899544">"ലേ‌ഔട്ട്"</string>
     <string name="left_nav_bar_button_type" msgid="2634852842345192790">"അധിക ഇടത് ബട്ടൺ തരം"</string>
@@ -996,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ചുവടെ ഇടതുഭാഗത്തേക്ക് നീക്കുക"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ചുവടെ വലതുഭാഗത്തേക്ക് നീക്കുക"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ഡിസ്‌മിസ് ചെയ്യുക"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"സിസ്‌റ്റം നാവിഗേഷൻ അപ്‌ഡേറ്റ് ചെയ്‌തു. മാറ്റങ്ങൾ വരുത്താൻ ക്രമീകരണത്തിലേക്ക് പോവുക."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"സിസ്‌റ്റം നാവിഗേഷൻ അപ്‌ഡേറ്റ് ചെയ്യാൻ ക്രമീകരണത്തിലേക്ക് പോവുക"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"സ്‌റ്റാൻഡ്‌ബൈ"</string>
@@ -1005,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ദ്രുത നിയന്ത്രണങ്ങൾ"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"നിയന്ത്രണങ്ങൾ ചേർക്കുക"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"നിയന്ത്രണങ്ങൾ ചേർക്കാൻ ഒരു ആപ്പ് തിരഞ്ഞെടുക്കുക"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">നിലവിലെ <xliff:g id="NUMBER_1">%s</xliff:g> പ്രിയപ്പെട്ടവ.</item>
-      <item quantity="one">നിലവിലെ <xliff:g id="NUMBER_0">%s</xliff:g> പ്രിയപ്പെട്ടത്.</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"നിയന്ത്രണങ്ങൾ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"അതിവേഗ ആക്‌സസിനുള്ള നിയന്ത്രണങ്ങൾ തിരഞ്ഞെടുക്കുക"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"പ്രിയപ്പെട്ടവ"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"എല്ലാം"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"എല്ലാ നിയന്ത്രണങ്ങളുടെയും ലിസ്റ്റ് ലോഡ് ചെയ്യാനായില്ല."</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index cdb3995..ea93816 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Зөвшөөрөх"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB алдаа засалт хийх боломжгүй"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Энэ төхөөрөмжид нэвтэрсэн хэрэглэгч USB дебаг хийх онцлогийг асаах боломжгүй байна. Энэ онцлогийг ашиглахын тулд үндсэн хэрэглэгч рүү сэлгэнэ үү."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Энэ сүлжээн дээр утасгүй дебагийг зөвшөөрөх үү?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Сүлжээний нэр (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi хаяг (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Энэ сүлжээн дээр үргэлж зөвшөөрөх"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Зөвшөөрөх"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Утасгүй дебагийг зөвшөөрөөгүй байна"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Энэ төхөөрөмжид одоогоор нэвтэрсэн байгаа хэрэглэгч утасгүй дебагийг асаах боломжгүй. Энэ онцлогийг ашиглахын тулд үндсэн хэрэглэгч рүү сэлгэнэ үү."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB портыг идэвхгүй болгосон"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Таны төхөөрөмжийг шингэн зүйл эсвэл бохирдлоос хамгаалахын тулд USB портыг идэвхгүй болгосон бөгөөд энэ нь ямар ч дагалдах хэрэгслийг илрүүлэхгүй.\n\nТанд USB портыг дахин ашиглахад аюулгүй болох үед мэдэгдэх болно."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Цэнэглэгч болон нэмэлт хэрэгслийг илрүүлэхийн тулд USB портыг идэвхжүүлсэн"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Удирдах"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Түүх"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Чимээгүй мэдэгдэл"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Сэрэмжлүүлэх мэдэгдэл"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Харилцан яриа"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Бүх чимээгүй мэдэгдлийг арилгах"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Бүү саад бол горимын түр зогсоосон мэдэгдэл"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Дуу эсвэл чичиргээгүйгээр танд төвлөрөхөд тусална."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Дуу эсвэл чичиргээгүйгээр таны анхаарлыг татна."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Энэ контентын хөвөн гарч ирэх товчлолтойгоор таны анхаарлыг татдаг."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Саяхны бөмбөлөг алга байна"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Саяхны бөмбөлгүүд болон үл хэрэгссэн бөмбөлгүүд энд харагдана."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эдгээр мэдэгдлийг өөрчлөх боломжгүй."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Энэ бүлэг мэдэгдлийг энд тохируулах боломжгүй байна"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Прокси хийсэн мэдэгдэл"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Зүүн доош зөөх"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Баруун доош зөөх"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Үл хэрэгсэх"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Системийн навигацыг шинэчиллээ. Өөрчлөхийн тулд Тохиргоо руу очно уу."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Системийн навигацыг шинэчлэхийн тулд Тохиргоо руу очно уу"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Зогсолтын горим"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Шуурхай хяналтууд"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Хяналт нэмэх"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Хяналт нэмэх апп сонгох"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Одоогоор <xliff:g id="NUMBER_1">%s</xliff:g> дуртай зүйл байна.</item>
-      <item quantity="one">Одоогоор <xliff:g id="NUMBER_0">%s</xliff:g> дуртай зүйл байна.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> хяналтыг нэмлээ.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> хяналтыг нэмлээ.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Хяналт"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Шуурхай хандалтын хяналт сонгох"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Дуртай"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Бүх"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Бүх хяналтын жагсаалтыг ачаалж чадсангүй."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Бусад"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 9012e88..3c7e18e 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"अनुमती द्या"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB डीबग करण्‍यास अनुमती नाही"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"सध्‍या या डीव्हाइसमध्‍ये साइन इन केलेला वापरकर्ता USB डीबग करणे चालू करू शकत नाही. हे वैशिष्‍ट्य वापरण्‍यासाठी, प्राथमिक वापरकर्त्‍यावर स्विच करा."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"या नेटवर्कवर वायरलेस डीबगिंग करण्याला अनुमती द्यायची का?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"नेटवर्कचे नाव (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nवाय-फाय ॲड्रेस (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"या नेटवर्कवर नेहमी अनुमती द्या"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"अनुमती द्या"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"वायरलेस डीबगिंग करण्याला अनुमती नाही"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"सध्‍या या डिव्हाइसमध्‍ये साइन इन केलेला वापरकर्ता वायरलेस डीबगिंग सुरू करू शकत नाही. हे वैशिष्‍ट्य वापरण्‍यासाठी प्राथमिक वापरकर्त्‍यावर स्विच करा."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB पोर्ट बंद करा"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"तुमच्या डिव्हाइसला ओलावा किंवा धूळीपासून संरक्षित करण्यासाठी, USB पोर्ट बंद आहे आणि अ‍ॅक्सेसरी डिटेक्ट करणार नाही. \n\n तुम्हाला USB पोर्ट पुन्हा वापरणे ठीक आहे तेव्हा सूचित केले जाईल."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"चार्जर आणि अ‍ॅक्सेसरी शोधण्यासाठी USB पोर्ट सुरू केलेले आहे"</string>
@@ -82,11 +88,11 @@
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"अ‍ॅप किंवा आपल्या संस्थेद्वारे स्क्रीनशॉट घेण्याची अनुमती नाही"</string>
     <string name="screenrecord_name" msgid="2596401223859996572">"स्क्रीन रेकॉर्डर"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"स्क्रीन रेकॉर्ड सत्रासाठी सुरू असलेली सूचना"</string>
-    <string name="screenrecord_start_label" msgid="1750350278888217473">"रेकॉर्डिंग सुरू करायची आहे का?"</string>
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"रेकॉर्डिंग सुरू करायचे आहे का?"</string>
     <string name="screenrecord_description" msgid="1123231719680353736">"रेकॉर्डिंग करताना, Android सिस्टम तुमच्या स्क्रीनवर दिसणारी किंवा तुमच्या डिव्हाइसवर प्ले केलेली कोणतीही संवेदनशील माहिती कॅप्चर करू शकते. यात पासवर्ड, पेमेंट माहिती, फोटो, मेसेज आणि ऑडिओचा समावेश आहे."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"ऑडिओ रेकॉर्ड करा"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"डिव्हाइस ऑडिओ"</string>
-    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"तुमच्या डिव्हाइसवरील आवाज जसे संगीत, कॉल आणि रिंगटोन"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"तुमच्या डिव्हाइसवरील आवाज जसे की, संगीत, कॉल आणि रिंगटोन"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"मायक्रोफोन"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"डिव्हाइस ऑडिओ आणि मायक्रोफोन"</string>
     <string name="screenrecord_start" msgid="330991441575775004">"सुरू"</string>
@@ -105,7 +111,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"स्क्रीन रेकॉर्डिंग हटवले"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"स्क्रीन रेकॉर्डिंग हटवताना एरर आली"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"परवानग्या मिळवता आल्या नाहीत"</string>
-    <string name="screenrecord_start_error" msgid="2200660692479682368">"स्क्रीन रेकॉर्डिंग सुरू एरर आली"</string>
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"स्क्रीन रेकॉर्डिंग सुरू करताना एरर आली"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USB फाईल स्थानांतरण पर्याय"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"मीडिया प्लेअर म्हणून माउंट करा (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"कॅमेरा म्हणून माउंट करा (PTP)"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"व्यवस्थापित करा"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"इतिहास"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"सायलंट सूचना"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"लक्ष वेधून घेणाऱ्या सूचना"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"संभाषणे"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"सर्व सायलंट सूचना साफ करा"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"व्यत्यय आणून नकाद्वारे सूचना थांबवल्या"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"आवाज किंवा व्हायब्रेशनशिवाय तुम्हाला लक्ष केंद्रित करण्यास मदत करते."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"आवाज किंवा व्हायब्रेशनने तुमचे लक्ष वेधून घेते."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"या आशयाच्या फ्लोटिंग शॉर्टकटसह तुमचे लक्ष केंद्रित करते."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"अलीकडील कोणतेही बबल नाहीत"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"अलीकडील बबल आणि डिसमिस केलेले बबल येथे दिसतील."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"या सूचनांमध्ये सुधारणा केली जाऊ शकत नाही."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"या सूचनांचा संच येथे कॉन्फिगर केला जाऊ शकत नाही"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"प्रॉक्सी केलेल्या सूचना"</string>
@@ -713,7 +718,7 @@
     <string name="inline_undo" msgid="9026953267645116526">"पहिल्यासारखे करा"</string>
     <string name="demote" msgid="6225813324237153980">"ही सूचना संभाषण नाही म्हणून खूण करा"</string>
     <string name="notification_conversation_favorite" msgid="1905240206975921907">"महत्त्वाचे संभाषण"</string>
-    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"महत्वाचे संभाषण नाही"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"महत्त्वाचे संभाषण नाही"</string>
     <string name="notification_conversation_mute" msgid="268951550222925548">"शांत केले"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"सूचना देत आहे"</string>
     <string name="notification_conversation_bubble" msgid="2242180995373949022">"बबल दाखवा"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"तळाशी डावीकडे हलवा"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"तळाशी उजवीकडे हलवा"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"डिसमिस करा"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"सिस्टम नेव्हिगेशन अपडेट केले. बदल करण्यासाठी, सेटिंग्जवर जा."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"सिस्टम नेव्हिगेशन अपडेट करण्यासाठी सेटिंग्जवर जा"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टँडबाय"</string>
@@ -983,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"क्विक नियंत्रणे"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"नियंत्रणे जोडा"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"ज्यामधून नियंत्रणे जोडायची आहेत ते ॲप निवडा"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> सध्याचे आवडते.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> सध्याचे आवडते.</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"नियंत्रणे"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"झटपट अ‍ॅक्सेससाठी नियंत्रणे निवडा"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"आवडते"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"सर्व"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"सर्व नियंत्रणांची सूची लोड करता आली नाही."</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 7b05493..6d266737 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Benarkan"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Penyahpepijatan USB tidak dibenarkan"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Pengguna yang log masuk ke peranti ini pada masa ini tidak boleh menghidupkan penyahpepijatan USB. Untuk menggunakan ciri ini, tukar kepada pengguna utama."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Benarkan penyahpepijatan wayarles pada rangkaian ini?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nama Rangkaian (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAlamat Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Sentiasa benarkan pada rangkaian ini"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Benarkan"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Penyahpepijatan wayarles tidak dibenarkan"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Pengguna yang telah log masuk ke peranti ini pada masa ini tidak boleh menghidupkan penyahpepijatan wayarles. Untuk menggunakan ciri ini, tukar kepada pengguna utama."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Port USB dilumpuhkan"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Untuk melindungi peranti anda daripada cecair atau serpihan, port USB dilumpuhkan dan tidak akan mengesan sebarang aksesori.\n\nAnda akan dimaklumi apabila selamat untuk menggunakan port USB lagi."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Port USB didayakan untuk mengesan pengecas dan aksesori"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Urus"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Sejarah"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Pemberitahuan senyap"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Pemberitahuan memaklumi"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Perbualan"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Kosongkan semua pemberitahuan senyap"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Pemberitahuan dijeda oleh Jangan Ganggu"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Membantu anda fokus tanpa bunyi atau getaran."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Menarik perhatian anda dengan bunyi atau getaran."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Memastikan anda memberikan perhatian dengan pintasan terapung ke kandungan ini."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Tiada gelembung terbaharu"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Gelembung baharu dan gelembung yang diketepikan akan dipaparkan di sini."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Pemberitahuan ini tidak boleh diubah suai."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Kumpulan pemberitahuan ini tidak boleh dikonfigurasikan di sini"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Pemberitahuan berproksi"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Alihkan ke bawah sebelah kiri"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Alihkan ke bawah sebelah kanan"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ketepikan"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigasi sistem dikemas kini. Untuk membuat perubahan, pergi ke Tetapan."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Pergi ke Tetapan untuk mengemas kini navigasi sistem"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tunggu sedia"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Kawalan Pantas"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Tambah Kawalan"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Pilih apl untuk digunakan bagi menambah kawalan"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kegemaran semasa.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kegemaran semasa.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kawalan ditambah.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kawalan ditambah.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kawalan"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pilih kawalan untuk akses pantas"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Kegemaran"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Semua"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Senarai semua kawalan tidak dapat dimuatkan."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Lain-lain"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index d3b2941..dd3e6c1 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"ခွင့်ပြုရန်"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB အမှားပြင်ဆင်ခြင်း ခွင့်မပြုပါ"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ဤစက်ပစ္စည်းသို့ လက်ရှိဝင်ရောက်ထားသည့် အသုံးပြုသူသည် USB အမှားပြင်ဆင်ခြင်းကို ဖွင့်၍မရပါ။ ဤဝန်ဆောင်မှုကို အသုံးပြုရန် အဓိကအသုံးပြုသူအဖြစ်သို့ ပြောင်းပါ။"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"ဤကွန်ရက်တွင် ကြိုးမဲ့ အမှားရှာပြင်ခြင်းကို ခွင့်ပြုမလား။"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ကွန်ရက်အမည် (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi လိပ်စာ (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ဤကွန်ရက်ကို အမြဲခွင့်ပြုပါ"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"ခွင့်ပြုရန်"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ကြိုးမဲ့ အမှားပြင်ဆင်ခြင်းကို ခွင့်မပြုပါ"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ဤစက်ပစ္စည်းသို့ လက်ရှိဝင်ရောက်ထားသည့် အသုံးပြုသူသည် ကြိုးမဲ့ အမှားပြင်ဆင်ခြင်းကို ဖွင့်၍မရပါ။ ဤဝန်ဆောင်မှုကို အသုံးပြုရန် အဓိကအသုံးပြုသူအဖြစ်သို့ ပြောင်းပါ။"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB ပို့တ် ပိတ်ပြီးပြီ"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"USB ပို့တ်ကို ပိတ်၍ သင့်ကိရိယာသို့ အရည် သို့မဟုတ် အမှိုက်စများ မဝင်စေရန် ကာကွယ်ပါ၊ မည်သည့် အပိုပစ္စည်းကိုမျှ အာရုံခံသိရှိနိုင်တော့မည် မဟုတ်ပါ။\n\nUSB ပို့တ်ကို ပြန်အသုံးပြုနိုင်သည့်အခါ သင့်ကိုအကြောင်းကြားပါမည်။"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"အားသွင်းကိရိယာနှင့် ဆက်စပ်ပစ္စည်းများ သိရှိရန် USB ပို့တ် ဖွင့်ထားသည်"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"စီမံရန်"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"မှတ်တမ်း"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"အကြောင်းကြားချက်များကို အသံတိတ်ခြင်း"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"အကြောင်းကြားချက်များကို သတိပေးခြင်း"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"စကားဝိုင်းများ"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"အသံတိတ် အကြောင်းကြားချက်များအားလုံးကို ရှင်းလင်းရန်"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"အကြောင်းကြားချက်များကို \'မနှောင့်ယှက်ရ\' က ခေတ္တရပ်ထားသည်"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"အသံ သို့မဟုတ် တုန်ခါမှု မပါဘဲ အာရုံစိုက်နိုင်စေရန် ကူညီပေးသည်။"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"အသံ သို့မဟုတ် တုန်ခါမှုဖြင့် အာရုံစိုက်လာအောင် ပြုလုပ်သည်။"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"အကြောင်းအရာကို floating shortcut ကိုသုံး၍ အာရုံစိုက်လာအောင်လုပ်ပါ။"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"မကြာမီက ပူဖောင်းကွက်များ မရှိပါ"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"လတ်တလော ပူဖောင်းကွက်များနှင့် ပိတ်လိုက်သော ပူဖောင်းကွက်များသည် ဤနေရာတွင် ပေါ်ပါမည်။"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ဤအကြောင်းကြားချက်များကို ပြုပြင်၍ မရပါ။"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ဤအကြောင်းကြားချက်အုပ်စုကို ဤနေရာတွင် စီစဉ်သတ်မှတ်၍ မရပါ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ပရောက်စီထည့်ထားသော အကြောင်းကြားချက်"</string>
@@ -974,6 +979,9 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ဘယ်အောက်ခြေသို့ ရွှေ့ရန်"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ညာအောက်ခြေသို့ ရွှေ့ပါ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ပယ်ရန်"</string>
+    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ချတ်များကို ‌အရှေ့တွင်ထားခြင်း"</string>
+    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> မှ ချတ်အသစ်များသည် ပူဖောင်းများအဖြစ် ပေါ်လာပါမည်။ ဖွင့်ရန် ပူဖောင်းကို တို့ပါ။ ၎င်းကို ဖိဆွဲ၍ ရွှေ့ပါ။\n\nပူဖောင်းကို တို့ပါ"</string>
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ဤအက်ပ်မှနေ၍ ပူဖောင်းများကို ပိတ်ရန်အတွက် \'စီမံရန်\' ကို တို့ပါ"</string>
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"စနစ်လမ်းညွှန်ခြင်း အပ်ဒိတ်လုပ်ပြီးပါပြီ။ အပြောင်းအလဲများ ပြုလုပ်ရန် \'ဆက်တင်များ\' သို့သွားပါ။"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"စနစ်လမ်းညွှန်ခြင်း အပ်ဒိတ်လုပ်ရန် \'ဆက်တင်များ\' သို့သွားပါ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"အသင့်အနေအထား"</string>
@@ -983,16 +991,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"အမြန်ထိန်းချုပ်မှုများ"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"ထိန်းချုပ်မှုများကို ထည့်ပါ"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"ထိန်းချုပ်မှုများ ထည့်လိုသည့် အက်ပ်တစ်ခုကို ရွေးချယ်ပါ"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">လက်ရှိ အနှစ်သက်ဆုံး <xliff:g id="NUMBER_1">%s</xliff:g> ခု</item>
-      <item quantity="one">လက်ရှိ အနှစ်သက်ဆုံး <xliff:g id="NUMBER_0">%s</xliff:g> ခု</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">ခလုတ် <xliff:g id="NUMBER_1">%s</xliff:g> ခု ထည့်လိုက်သည်။</item>
+      <item quantity="one">ခလုတ် <xliff:g id="NUMBER_0">%s</xliff:g> ခု ထည့်လိုက်သည်။</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ထိန်းချုပ်မှုများ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"အမြန်သုံးခွင့်အတွက် ထိန်းချုပ်မှုများကို ရွေးချယ်ပါ"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"အကြိုက်ဆုံး"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"အားလုံး"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"ထိန်းချုပ်မှုအားလုံး၏ စာရင်းကို ဖွင့်၍မရပါ။"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"အခြား"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index efccd2b..5743215 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Tillat"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-feilsøking er ikke tillatt"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Brukeren som for øyeblikket er logget på denne enheten, kan ikke slå på USB-feilsøking. For å bruke denne funksjonen, bytt til hovedbrukeren."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Vil du tillate trådløs feilsøking på dette nettverket?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nettverksnavn (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi-adresse (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Tillat alltid på dette nettverket"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Tillat"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Trådløs feilsøking er ikke tillatt"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Brukeren som for øyeblikket er logget på denne enheten, kan ikke slå på trådløs feilsøking. For å bruke denne funksjonen, bytt til primærbrukeren."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-porten er deaktivert"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"For å beskytte enheten din mot væsker eller rusk er USB-porten deaktivert og kan ikke oppdage tilbehør.\n\nDu blir varslet når det er trygt å bruke USB-porten igjen."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Registrering av ladere og tilbehør er slått på for USB-porten"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Administrer"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Logg"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Lydløse varsler"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Varsler med varsling"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Samtaler"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Fjern alle lydløse varsler"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Varsler er satt på pause av «Ikke forstyrr»"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Hjelper deg med å fokusere uten lyd eller vibrering."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Får oppmerksomheten din med lyd eller vibrering."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Holder deg oppmerksom med en svevende snarvei til dette innholdet."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ingen nylige bobler"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nylige bobler og avviste bobler vises her."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse varslene kan ikke endres."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Denne varselgruppen kan ikke konfigureres her"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Omdirigert varsel"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Flytt til nederst til venstre"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Flytt til nederst til høyre"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Avvis"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigeringen er oppdatert. For å gjøre endringer, gå til Innstillinger."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gå til Innstillinger for å oppdatere systemnavigeringen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ventemodus"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Hurtigkontroller"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Legg til kontroller"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Velg en app du vil legge til kontroller for"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> nåværende favoritter.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> nåværende favoritt.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontroller er lagt til.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kontroll er lagt til.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroller"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Velg kontroller for rask tilgang"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritter"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Listen over alle kontroller kunne ikke lastes inn."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Annet"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index def2320..ef80cdc 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"अनुमति दिनुहोस्"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB डिबग गर्न अनुमति छैन"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"हाल यस यन्त्रमा साइन इन हुनुभएको प्रयोगकर्ताले USB डिबग सक्रिय गर्न सक्नुहुन्न। यो सुविधाको प्रयोग गर्न प्राथमिक प्रयोगकर्तामा बदल्नुहोस्‌।"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"यस नेटवर्कमा वायरलेस डिबग गर्न दिने हो?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"नेटवर्कको नाम (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi ठेगाना (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"यस नेटवर्कमा सधैँ अनुमति दिनुहोस्"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"अनुमति दिनुहोस्"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"वायरलेस डिबग प्रक्रियाका लागि अनुमति छैन"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"हाल यस यन्त्रमा साइन इन हुनुभएका प्रयोगकर्ता वायरलेस डिबग प्रक्रिया सक्रिय गर्न सक्नुहुन्न। यो सुविधाको प्रयोग गर्न प्राथमिक प्रयोगकर्ताको खातामार्फत साइन इन गर्नुहोस्।"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB पोर्ट असक्षम पारियो"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"तपाईंको यन्त्रलाई तरल पदार्थ वा धुलोबाट जोगाउन यसको USB पोर्ट असक्षम पारिएको छ र यसले कुनै पनि सहायक उपकरणहरू पहिचान गर्ने छैन।\n\nउक्त USB पोर्ट फेरि प्रयोग गर्दा हुन्छ भने तपाईंलाई यसबारे सूचित गरिने छ।"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"चार्जर तथा सामानहरू पत्ता लगाउन सक्षम पारिएको USB पोर्ट"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"व्यवस्थित गर्नुहोस्"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"इतिहास"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"मौन सूचनाहरू"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"कम्पन वा आवाजसहितका सूचनाहरू"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"वार्तालापहरू"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"सबै मौन सूचनाहरू हटाउनुहोस्"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"बाधा नपुऱ्याउनुहोस् नामक मोडमार्फत पज पारिएका सूचनाहरू"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"तपाईंलाई आवाज वा कम्पनविना ध्यान केन्द्रित गर्न मद्दत गर्छ।"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ध्वनि वा कम्पनमार्फत तपाईंको ध्यान आकर्षित गर्छ।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"फ्लोटिङ सर्टकटमार्फत यो सामग्रीतर्फ तपाईंको ध्यान आकर्षित गर्दछ।"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"हालसालै खारेज गरिएको कुनै पनि बबल छैन"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"हालैका बबल र खारेज गरिएका बबलहरू यहाँ देखिने छन्।"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"यी सूचनाहरू परिमार्जन गर्न मिल्दैन।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"यहाँबाट सूचनाहरूको यो समूह कन्फिगर गर्न सकिँदैन"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"प्रोक्सीमार्फत आउने सूचना"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"पुछारमा बायाँतिर सार्नुहोस्"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"पुछारमा दायाँतिर सार्नुहोस्"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"हटाउनुहोस्"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"प्रणालीको नेभिगेसन अद्यावधिक गरियो। परिवर्तन गर्न सेटिङमा जानुहोस्।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"प्रणालीको नेभिगेसन अद्यावधिक गर्न सेटिङमा जानुहोस्"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्ट्यान्डबाई"</string>
@@ -983,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"द्रुत नियन्त्रणहरू"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"नियन्त्रणहरू थप्नुहोस्"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"नियन्त्रणहरू जुन अनुप्रयोगबाट थप्ने हो त्यो अनुप्रयोग छनौट गर्नुहोस्"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">हालका मन पर्ने <xliff:g id="NUMBER_1">%s</xliff:g> कुराहरू।</item>
-      <item quantity="one">हालको मन पर्ने <xliff:g id="NUMBER_0">%s</xliff:g> कुरा।</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"नियन्त्रणहरू"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"द्रुत पहुँचका लागि नियन्त्रणहरू छनौट गर्नुहोस्"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"मन पर्ने कुराहरू"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"सबै"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"सबै नियन्त्रणहरूको सूची लोड गर्न सकिएन।"</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 35dd6f5..ae9b829 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Toestaan"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-foutopsporing niet toegestaan"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"De gebruiker die momenteel is ingelogd op dit apparaat, kan USB-foutopsporing niet inschakelen. Als je deze functie wilt gebruiken, schakel je naar de primaire gebruiker."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Draadloze foutopsporing toestaan in dit netwerk?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Netwerknaam (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWifi-adres (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Altijd toestaan in dit netwerk"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Toestaan"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Draadloze foutopsporing niet toegestaan"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"De gebruiker die momenteel is ingelogd op dit apparaat, kan draadloze foutopsporing niet inschakelen. Als je deze functie wilt gebruiken, schakel je over naar de primaire gebruiker."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-poort uitgeschakeld"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"De USB-poort is uitgeschakeld en detecteert geen accessoires, zodat je apparaat wordt beschermd tegen vloeistof en vuil.\n\nJe ontvangt een melding wanneer je de USB-poort weer kunt gebruiken."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-poort kan opladers en accessoires detecteren"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Beheren"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Geschiedenis"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Stille meldingen"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Meldingen met waarschuwing"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Gesprekken"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Alle stille meldingen wissen"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Meldingen onderbroken door \'Niet storen\'"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Trekt je aandacht met geluid of trillingen."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Trekt de aandacht met een zwevende snelkoppeling naar deze content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Geen recente ballonnen"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Onlangs gesloten ballonnen worden hier weergegeven zodat je ze gemakkelijk kunt terughalen."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recente bubbels en gesloten bubbels worden hier weergegeven."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Deze meldingen kunnen niet worden aangepast."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Deze groep meldingen kan hier niet worden geconfigureerd"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Melding via proxy"</string>
@@ -972,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Naar linksonder verplaatsen"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Naar rechtsonder verplaatsen"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Sluiten"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systeemnavigatie geüpdatet. Als je wijzigingen wilt aanbrengen, ga je naar Instellingen."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ga naar Instellingen om de systeemnavigatie te updaten"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stand-by"</string>
@@ -981,13 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Snelle bedieningselementen"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Bedieningselementen toevoegen"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Kies een app waaruit je bedieningselementen wilt toevoegen"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> huidige favorieten.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> huidige favoriet.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> bedieningselementen toegevoegd.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> bedieningselement toegevoegd.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Bedieningselementen"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Kies bedieningselementen voor snelle toegang"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favorieten"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Kan lijst met alle bedieningselementen niet laden."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Overig"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index 6a59071..9aad495 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USBରେ ଡିବଗ୍‍ କରାଯାଇପାରିବ ନାହିଁ"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ସମ୍ପ୍ରତି ସାଇନ୍‍-ଇନ୍‍ କରିଥିବା ୟୁଜର୍‍ ଜଣକ ଏହି ଡିଭାଇସରେ USB ଡିବଗିଙ୍ଗ ଅନ୍‍ କରିପାରିବେ ନାହିଁ। ଏହି ବୈଶିଷ୍ଟ୍ୟ ବ୍ୟବହାର କରିବାକୁ, ପ୍ରାଥମିକ ୟୁଜର୍‍ରେ ସାଇନ୍‍-ଇନ୍‍ କରନ୍ତୁ।"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"ଏହି ନେଟୱାର୍କରେ ୱାୟାରଲେସ୍ ଡିବଗିଂ ପାଇଁ ଅନୁମତି ଦେବେ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ନେଟୱାର୍କ ନାମ (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nୱାଇଫାଇ ଠିକଣା (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ସର୍ବଦା ଏହି ନେଟୱାର୍କରେ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ୱାୟାରଲେସ୍ ଡିବଗିଂ ପାଇଁ ଅନୁମତି ନାହିଁ"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ଉପଯୋଗକର୍ତ୍ତା ବର୍ତ୍ତମାନ ସାଇନ୍-ଇନ୍ କରିଥିବା ଏହି ଡିଭାଇସରେ ୱାୟାରଲେସ୍ ଡିବଗିଂ ଚାଲୁ କରିପାରିବେ ନାହିଁ। ଏହି ଫିଚର୍ ବ୍ୟବହାର କରିବା ପାଇଁ ପ୍ରାଥମିକ ଉପଯୋଗକର୍ତ୍ତାରେ ସ୍ୱିଚ୍ କରନ୍ତୁ।"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB ପୋର୍ଟକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"ଆପଣଙ୍କ ଡିଭାଇସ୍‌କୁ ତରଳ ପଦାର୍ଥ ଏବଂ ଧୂଳିରୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ, USB ପୋର୍ଟକୁ ଅକ୍ଷମ କରାଯାଇଛି ଏବଂ ଏହା କୌଣସି ଉପକରଣ ଚିହ୍ନଟ କରିବ ନାହିଁ। \n\n ଯେତେବେଳେ USB ପୋର୍ଟ ପୁଣିି ବ୍ୟବହାର କରିବାକୁ ସୁରକ୍ଷିତ ହେବ, ସେତେବେଳେ ଆପଣଙ୍କୁ ସୂଚିତ କରାଯିବ।"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ଚାର୍ଜର୍‍ ଏବଂ ଆକ୍ସେସରିଗୁଡ଼ିକୁ ଚିହ୍ନଟ କରିବାକୁ USB ପୋର୍ଟ ସକ୍ଷମ କରାଯାଇଛି"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"ପରିଚାଳନା କରନ୍ତୁ"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ଇତିହାସ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ନୀରବ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"ଆଲର୍ଟ କରିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ସମସ୍ତ ନୀରବ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଖାଲି କରନ୍ତୁ"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\" ବିକଳ୍ପ ଦ୍ୱାରା ବିଜ୍ଞପ୍ତି ପଜ୍‍ ହୋଇଛି"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ବିନା ସାଉଣ୍ଡ କିମ୍ବା ଭାଇବ୍ରେସନ୍‌ରେ ଆପଣଙ୍କୁ ଫୋକସ୍ କରିବାରେ ସାହାଯ୍ୟ କରେ।"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ସାଉଣ୍ଡ କିମ୍ବା ଭାଇବ୍ରେସନ୍ ମାଧ୍ୟମରେ ଆପଣଙ୍କର ଧ୍ୟାନ ଆକର୍ଷିତ କରିଥାଏ।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ଏହି ବିଷୟବସ୍ତୁ ପାଇଁ ଏକ ଭାସମାନ ସର୍ଟକଟ୍ ସହ ଆପଣଙ୍କର ଧ୍ୟାନ ଦିଅନ୍ତୁ।"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ବର୍ତ୍ତମାନ କୌଣସି ବବଲ୍ ନାହିଁ"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ବର୍ତ୍ତମାନର ବୁଦବୁଦଗୁଡ଼ିକ ଏବଂ ଖାରଜ କରାଯାଇଥିବା ବୁଦବୁଦଗୁଡ଼ିକ ଏଠାରେ ଦେଖାଯିବ।"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ କରିହେବ ନାହିଁ।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ଏଠାରେ ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଗ୍ରୁପ୍ କନଫ୍ୟୁଗର୍ କରାଯାଇପାରିବ ନାହିଁ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ବିଜ୍ଞପ୍ତି ପ୍ରକ୍ସୀ ହୋଇଛି"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ତଳ ବାମକୁ ନିଅନ୍ତୁ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ତଳ ଡାହାଣକୁ ନିଅନ୍ତୁ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ଖାରଜ କରନ୍ତୁ"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍ ଅପ୍‌ଡେଟ୍ ହୋଇଛି। ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ, ସେଟିଂସ୍‌କୁ ଯାଆନ୍ତୁ।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍ ଅପ୍‌ଡେଟ୍ କରିବା ପାଇଁ ସେଟିଂସ୍‍କୁ ଯାଆନ୍ତୁ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ଷ୍ଟାଣ୍ଡବାଏ"</string>
@@ -983,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ଦ୍ରୁତ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"କେଉଁ ଆପରୁ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ଯୋଗ କରିବେ ତାହା ଚୟନ କରନ୍ତୁ"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g>ଟି ବର୍ତ୍ତମାନର ପସନ୍ଦ।</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g>ଟି ବର୍ତ୍ତମାନର ପସନ୍ଦ।</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ଶୀଘ୍ର ଆକ୍ସେସ୍ ପାଇଁ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକୁ ଚୟନ କରନ୍ତୁ"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ପସନ୍ଦଗୁଡ଼ିକ"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ସବୁ"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"ସବୁ ନିୟନ୍ତ୍ରଣର ତାଲିକା ଲୋଡ୍ କରିପାରିଲା ନାହିଁ।"</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index 3fe56fd..cbd278e 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"ਕਰਨ ਦਿਓ"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB ਡਿਬੱਗਿੰਗ ਦੀ ਆਗਿਆ ਨਹੀਂ"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"ਕੀ ਇਸ ਨੈੱਟਵਰਕ \'ਤੇ ਵਾਇਰਲੈੱਸ ਡੀਬੱਗਿੰਗ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੈ?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ਨੈੱਟਵਰਕ ਨਾਮ (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nਵਾਈ-ਫਾਈ ਪਤਾ (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ਇਸ ਨੈੱਟਵਰਕ \'ਤੇ ਹਮੇਸ਼ਾਂ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"ਆਗਿਆ ਦਿਓ"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ਵਾਇਰਲੈੱਸ ਡੀਬੱਗਿੰਗ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ਵਰਤਮਾਨ ਵਿੱਚ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਸਾਈਨ-ਇਨ ਕੀਤਾ ਵਰਤੋਂਕਾਰ ਵਾਇਰਲੈੱਸ ਡੀਬੱਗਿੰਗ ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, ਮੁੱਖ ਵਰਤੋਂਕਾਰ \'ਤੇ ਬਦਲੋ।"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB ਪੋਰਟ ਬੰਦ ਕੀਤਾ ਗਿਆ"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਪਾਣੀ ਅਤੇ ਧੂੜ-ਮਿੱਟੀ ਤੋਂ ਬਚਾਉਣ ਲਈ, USB ਪੋਰਟ ਨੂੰ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਕੋਈ ਵੀ ਐਕਸੈਸਰੀ ਪਛਾਣੀ ਨਹੀਂ ਜਾਵੇਗੀ।\n\nUSB ਪੋਰਟ ਨੂੰ ਦੁਬਾਰਾ ਵਰਤਣਾ ਠੀਕ ਹੋਣ \'ਤੇ ਤੁਹਾਨੂੰ ਸੂਚਿਤ ਕੀਤਾ ਜਾਵੇਗਾ।"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ਚਾਰਜਰਾਂ ਅਤੇ ਉਪਸਾਧਨਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ USB ਪੋਰਟ ਚਾਲੂ ਹੈ"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ਇਤਿਹਾਸ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ਸ਼ਾਂਤ ਸੂਚਨਾਵਾਂ"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"ਸੁਚੇਤ ਕਰਨ ਵਾਲੀਆਂ ਸੂਚਨਾਵਾਂ"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"ਗੱਲਾਂਬਾਤਾਂ"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ਸਾਰੀਆਂ ਖਾਮੋਸ਼ ਸੂਚਨਾਵਾਂ ਕਲੀਅਰ ਕਰੋ"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਵੱਲੋਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਰੋਕਿਆ ਗਿਆ"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ਤੁਹਾਨੂੰ ਬਿਨਾਂ ਧੁਨੀ ਅਤੇ ਥਰਥਰਾਹਟ ਦੇ ਫੋਕਸ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ਧੁਨੀ ਅਤੇ ਥਰਥਰਾਹਟ ਨਾਲ ਤੁਹਾਡਾ ਧਿਆਨ ਖਿੱਚਦੀ ਹੈ।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ਇਸ ਸਮੱਗਰੀ ਦੇ ਅਸਥਿਰ ਸ਼ਾਰਟਕੱਟ ਨਾਲ ਆਪਣਾ ਧਿਆਨ ਕੇਂਦਰਿਤ ਰੱਖੋ।"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ਕੋਈ ਹਾਲੀਆ ਬੁਲਬੁਲਾ ਨਹੀਂ"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ਹਾਲੀਆ ਬੁਲਬੁਲੇ ਅਤੇ ਖਾਰਜ ਕੀਤੇ ਬੁਲਬੁਲੇ ਇੱਥੇ ਦਿਸਣਗੇ।"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ਇਹ ਸੂਚਨਾਵਾਂ ਦਾ ਗਰੁੱਪ ਇੱਥੇ ਸੰਰੂਪਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ਇੱਕ ਐਪ ਦੀ ਥਾਂ \'ਤੇ ਦੂਜੀ ਐਪ ਰਾਹੀਂ ਦਿੱਤੀ ਗਈ ਸੂਚਨਾ"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ਹੇਠਾਂ ਵੱਲ ਖੱਬੇ ਲਿਜਾਓ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ਹੇਠਾਂ ਵੱਲ ਸੱਜੇ ਲਿਜਾਓ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ਖਾਰਜ ਕਰੋ"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ਸਿਸਟਮ ਨੈਵੀਗੇਸ਼ਨ ਅੱਪਡੇਟ ਹੋ ਗਿਆ। ਤਬਦੀਲੀਆਂ ਕਰਨ ਲਈ, ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ਸਿਸਟਮ ਨੈਵੀਗੇਸ਼ਨ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ਸਟੈਂਡਬਾਈ"</string>
@@ -983,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ਤਤਕਾਲ ਕੰਟਰੋਲ"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"ਕੰਟਰੋਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"ਉਹ ਐਪ ਚੁਣੋ ਜਿੱਥੋਂ ਕੰਟਰੋਲ ਸ਼ਾਮਲ ਕਰਨੇ ਹਨ"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> ਮੌਜੂਦਾ ਮਨਪਸੰਦ।</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ਮੌਜੂਦਾ ਮਨਪਸੰਦ।</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ਕੰਟਰੋਲ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ਤਤਕਾਲ ਪਹੁੰਚ ਲਈ ਕੰਟਰੋਲ ਚੁਣੋ"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ਮਨਪਸੰਦ"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ਸਭ"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"ਸਾਰੇ ਕੰਟਰੋਲਾਂ ਦੀ ਸੂਚੀ ਨੂੰ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index dd2d31c..ad54bc9 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Zezwalaj"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Debugowanie USB jest niedozwolone"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Użytkownik obecnie zalogowany na tym urządzeniu nie może włączyć debugowania USB. Aby użyć tej funkcji, przełącz się na użytkownika głównego."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Zezwolić na debugowanie bezprzewodowe w tej sieci?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nazwa sieci (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdres Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Zawsze zezwalaj w tej sieci"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Zezwól"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Debugowanie bezprzewodowe jest niedozwolone"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Użytkownik obecnie zalogowany na tym urządzeniu nie może włączyć debugowania bezprzewodowego. Aby użyć tej funkcji, przełącz się na głównego użytkownika."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Port USB wyłączony"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Aby chronić urządzenie przed wilgocią i zanieczyszczeniami, port USB został wyłączony i nie wykryje żadnych akcesoriów.\n\nOtrzymasz powiadomienie, gdy będzie można znów używać portu."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Port USB włączony, by wykrywać ładowarki i akcesoria"</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Zarządzaj"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historia"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Ciche powiadomienia"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Alerty"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Rozmowy"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Usuń wszystkie ciche powiadomienia"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Powiadomienia wstrzymane przez tryb Nie przeszkadzać"</string>
@@ -692,10 +699,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Pomaga Ci się skupić, nie sygnalizując niczego dźwiękiem ani wibracjami."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Przyciąga uwagę dźwiękiem lub wibracjami."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Przyciąga uwagę dzięki pływającym skrótom do treści."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Brak ostatnich dymków"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Tutaj będą pojawiać się ostatnie i odrzucone dymki."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tych powiadomień nie można zmodyfikować."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tej grupy powiadomień nie można tu skonfigurować"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Powiadomienie w zastępstwie"</string>
@@ -984,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Przenieś w lewy dolny róg"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Przenieś w prawy dolny róg"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Zamknij"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Nawigacja w systemie została zaktualizowana. Aby wprowadzić zmiany, otwórz Ustawienia."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Otwórz Ustawienia, by zaktualizować nawigację w systemie"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tryb gotowości"</string>
@@ -993,18 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Szybkie sterowanie"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Dodaj elementy sterujące"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Wybierz, z której chcesz wybrać elementy sterujące"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> aktualnie ulubione.</item>
-      <item quantity="many"><xliff:g id="NUMBER_1">%s</xliff:g> aktualnie ulubionych.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> aktualnie ulubionych.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> aktualnie ulubiony.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="few">Dodano <xliff:g id="NUMBER_1">%s</xliff:g> elementy sterujące</item>
+      <item quantity="many">Dodano <xliff:g id="NUMBER_1">%s</xliff:g> elementów sterujących</item>
+      <item quantity="other">Dodano <xliff:g id="NUMBER_1">%s</xliff:g> elementu sterującego</item>
+      <item quantity="one">Dodano <xliff:g id="NUMBER_0">%s</xliff:g> element sterujący</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Elementy sterujące"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Wybierz elementy sterujące dla szybszego dostępu"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Ulubione"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Wszystko"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nie udało się wczytać listy elementów sterujących."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Inne"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 2d5e011..300461d 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permitir"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Depuração USB não permitida"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"O usuário conectado a este dispositivo não pode ativar a depuração USB. Para usar esse recurso, mude para o usuário principal \"NAME\"."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Permitir a depuração sem fio nesta rede?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nome da rede (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nEndereço do Wi-Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Sempre permitir nesta rede"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permitir"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Depuração sem fio não permitida"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"O usuário conectado a este dispositivo não pode ativar a depuração sem fio. Para usar esse recurso, conecte-se como o usuário principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Porta USB desativada"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Para proteger seu dispositivo de líquidos e detritos, a porta USB está desativada e não detectará nenhum acessório.\n\nVocê receberá uma notificação quando for seguro usar a porta USB novamente."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Porta USB ativada para detectar carregadores e acessórios"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gerenciar"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Histórico"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificações silenciosas"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificações com alerta"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversas"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Apagar todas as notificações silenciosas"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notificações pausadas pelo modo \"Não perturbe\""</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ajuda você a manter o foco sem som ou vibração."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama sua atenção com som ou vibração."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantém sua atenção com um atalho flutuante para esse conteúdo."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nenhum balão recente"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Os balões recentes e dispensados aparecerão aqui."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificação salva no proxy"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover para canto inferior esquerdo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover para canto inferior direito"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dispensar"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navegação no sistema atualizada. Se quiser alterá-la, acesse as configurações."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Acesse as configurações para atualizar a navegação no sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Adicionar controles"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Escolher um app para adicionar controles"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> favorito atual.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoritos atuais.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> controle adicionado.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controles adicionados.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolher controles do acesso rápido"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todos"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Não foi possível carregar a lista de controles."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outro"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 855d339..9d7fb35 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permitir"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Depuração USB não permitida"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"O utilizador com sessão iniciada atualmente neste dispositivo não pode ativar a depuração USB. Para utilizar esta funcionalidade, mude para o utilizador principal."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Pretende permitir a depuração sem fios nesta rede?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nome da rede (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nEndereço Wi-Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Permitir sempre nesta rede"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permitir"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Depuração sem fios não permitida"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"O utilizador com sessão iniciada atualmente neste dispositivo não pode ativar a depuração sem fios. Para utilizar esta funcionalidade, mude para o utilizador principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Porta USB desativada"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Para proteger o dispositivo contra líquidos ou resíduos, a porta USB está desativada e não irá detetar quaisquer acessórios.\n\nSerá notificado quando for seguro utilizar a porta USB novamente."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Porta USB ativada para detetar carregadores e acessórios"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gerir"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Histórico"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificações silenciosas"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificações de alerta"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversas"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Limpar todas as notificações silenciosas"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notificações colocadas em pausa pelo modo Não incomodar."</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ajuda-o a focar-se sem som ou vibração."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama a sua atenção com som ou vibração."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantém a sua atenção com um atalho flutuante para este conteúdo."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nenhum balão recente"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Os balões recentes e os balões ignorados vão aparecer aqui."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar estas notificações."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar este grupo de notificações aqui."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificação de aplicação proxy"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover p/ parte infer. esquerda"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover parte inferior direita"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorar"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"A navegação no sistema foi atualizada. Para efetuar alterações, aceda às Definições."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Aceda às Definições para atualizar a navegação no sistema."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controlos rápidos"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Adicione controlos"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Escolha uma app a partir da qual pretende adicionar controlos."</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoritos atuais.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> favorito atual.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controlos adicionados.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> controlo adicionado.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controlos"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolha os controlos para um acesso rápido."</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tudo"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Não foi possível carregar a lista dos controlos."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outro"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 2d5e011..300461d 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permitir"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Depuração USB não permitida"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"O usuário conectado a este dispositivo não pode ativar a depuração USB. Para usar esse recurso, mude para o usuário principal \"NAME\"."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Permitir a depuração sem fio nesta rede?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nome da rede (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nEndereço do Wi-Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Sempre permitir nesta rede"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permitir"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Depuração sem fio não permitida"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"O usuário conectado a este dispositivo não pode ativar a depuração sem fio. Para usar esse recurso, conecte-se como o usuário principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Porta USB desativada"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Para proteger seu dispositivo de líquidos e detritos, a porta USB está desativada e não detectará nenhum acessório.\n\nVocê receberá uma notificação quando for seguro usar a porta USB novamente."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Porta USB ativada para detectar carregadores e acessórios"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gerenciar"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Histórico"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificações silenciosas"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificações com alerta"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversas"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Apagar todas as notificações silenciosas"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notificações pausadas pelo modo \"Não perturbe\""</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ajuda você a manter o foco sem som ou vibração."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama sua atenção com som ou vibração."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantém sua atenção com um atalho flutuante para esse conteúdo."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nenhum balão recente"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Os balões recentes e dispensados aparecerão aqui."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificação salva no proxy"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover para canto inferior esquerdo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover para canto inferior direito"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dispensar"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navegação no sistema atualizada. Se quiser alterá-la, acesse as configurações."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Acesse as configurações para atualizar a navegação no sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Adicionar controles"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Escolher um app para adicionar controles"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> favorito atual.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> favoritos atuais.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> controle adicionado.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> controles adicionados.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolher controles do acesso rápido"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todos"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Não foi possível carregar a lista de controles."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outro"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 9860d93..845714e 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Permiteți"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Remedierea erorilor prin USB nu este permisă"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Utilizatorul conectat momentan pe acest dispozitiv nu poate activa remedierea erorilor prin USB. Pentru a folosi această funcție, comutați la utilizatorul principal."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Permiteți remedierea erorilor prin wireless în această rețea?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Numele rețelei (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresa Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Permiteți întotdeauna în această rețea"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Permiteți"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Remedierea erorilor prin wireless nu este permisă"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Utilizatorul conectat momentan pe acest dispozitiv nu poate activa remedierea erorilor prin wireless. Pentru a folosi această funcție, comutați la utilizatorul principal."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Portul USB a fost dezactivat"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Pentru a vă proteja dispozitivul de lichide sau reziduuri, portul USB este dezactivat și nu va detecta niciun accesoriu.\n\nVeți primi o notificare când puteți folosi din nou portul USB."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Portul USB a fost activat pentru a detecta încărcătoarele și accesoriile"</string>
@@ -491,6 +497,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Gestionați"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Istoric"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Notificări silențioase"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Notificări de alertare"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversații"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Ștergeți toate notificările silențioase"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notificări întrerupte prin „Nu deranja”"</string>
@@ -689,10 +696,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Vă ajută să vă concentrați fără sunet sau vibrare."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Vă atrage atenția fără sunet sau vibrare."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Vă atrage atenția printr-o comandă rapidă flotantă la acest conținut."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nu există baloane recente"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Baloanele recente și baloanele respinse vor apărea aici."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aceste notificări nu pot fi modificate."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Acest grup de notificări nu poate fi configurat aici"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificare prin proxy"</string>
@@ -979,6 +984,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mutați în stânga jos"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mutați în dreapta jos"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Închideți"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigarea în sistem a fost actualizată. Pentru a face modificări, accesați Setările."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accesați Setările pentru a actualiza navigarea în sistem"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -988,17 +999,15 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Comenzi rapide"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Adăugați comenzi"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Alegeți o aplicație din care să adăugați comenzi"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> favorite actuale.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> de favorite actuale.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> favorit actual.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="few">S-au adăugat <xliff:g id="NUMBER_1">%s</xliff:g> comenzi.</item>
+      <item quantity="other">S-au adăugat <xliff:g id="NUMBER_1">%s</xliff:g> de comenzi.</item>
+      <item quantity="one">S-a adăugat <xliff:g id="NUMBER_0">%s</xliff:g> comandă.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Comenzi"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Alegeți comenzile pentru acces rapid"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favorite"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Toate"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Lista cu toate comenzile nu a putut fi încărcată."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Altul"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 38db1fa..c32627d 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Разрешить"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Отладка по USB запрещена"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"В этом аккаунте нельзя включить отладку по USB. Перейдите в аккаунт основного пользователя."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Разрешить отладку по Wi-Fi в этой сети?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Название сети (SSID):\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nMAC-адрес точки доступа (BSSID):\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Всегда разрешать отладку в этой сети"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Разрешить"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Отладка по Wi-Fi запрещена"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"В этом аккаунте нельзя включить отладку по Wi-Fi. Перейдите в аккаунт основного пользователя."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-порт отключен"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Чтобы внутрь устройства не попала вода или грязь, USB-порт был отключен. Сейчас через него нельзя подсоединять другие устройства.\n\nКогда USB-порт снова можно будет использовать, вы получите уведомление."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-порт активен и может распознавать аксессуары и зарядные устройства."</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Настроить"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"История"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Беззвучные уведомления"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Уведомления со звуком или вибрацией"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Чаты"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Отклонить все беззвучные уведомления"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"В режиме \"Не беспокоить\" уведомления заблокированы"</string>
@@ -692,10 +699,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Уведомления приходят без звука и вибрации"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Уведомления приходят со звуком или вибрацией"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Привлекает ваше внимание к контенту с помощью плавающего ярлыка"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Нет недавних подсказок"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Здесь будут появляться недавние и закрытые всплывающие уведомления."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эти уведомления нельзя изменить."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Эту группу уведомлений нельзя настроить здесь."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Уведомление отправлено через прокси-сервер."</string>
@@ -984,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Перенести в левый нижний угол"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Перенести в правый нижний угол"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Закрыть"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Параметры навигации в системе обновлены. Чтобы изменить их, перейдите в настройки."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Чтобы обновить параметры навигации в системе, перейдите в настройки."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Переход в режим ожидания"</string>
@@ -993,18 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Управление умным домом"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Добавление элементов"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Выберите приложение, из которого нужно добавить элементы управления."</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">В избранном <xliff:g id="NUMBER_1">%s</xliff:g> элемент.</item>
-      <item quantity="few">В избранном <xliff:g id="NUMBER_1">%s</xliff:g> элемента.</item>
-      <item quantity="many">В избранном <xliff:g id="NUMBER_1">%s</xliff:g> элементов.</item>
-      <item quantity="other">В избранном <xliff:g id="NUMBER_1">%s</xliff:g> элемента.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Добавлен <xliff:g id="NUMBER_1">%s</xliff:g> элемент управления.</item>
+      <item quantity="few">Добавлено <xliff:g id="NUMBER_1">%s</xliff:g> элемента управления.</item>
+      <item quantity="many">Добавлено <xliff:g id="NUMBER_1">%s</xliff:g> элементов управления.</item>
+      <item quantity="other">Добавлено <xliff:g id="NUMBER_1">%s</xliff:g> элемента управления.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Элементы управления"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Выберите элементы управления для быстрого доступа."</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Избранные"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Все"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не удалось загрузить список элементов управления."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Другое"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index 7c10938..ec78baa 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"ඉඩ දෙන්න"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB නිදොස්කරණය වෙත අවසර නැහැ"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"දැනට මෙම උපාංගයට පුරා ඇති පරිශීලකයාට USB නිදොස්කරණය ක්‍රියාත්මක කළ නොහැක. මෙම විශේෂාංගය භාවිතා කිරීම සඳහා, මූලික පරිශීලකයා වෙත මාරු වෙන්න."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"මෙම ජාලයේ නොරැහැන් නිදොස්කරණය ඉඩ දෙන්නද?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ජාල නම (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi ලිපිනය (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"මෙම ජාලයේ සැමවිට ඉඩ දෙන්න"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"ඉඩ දෙන්න"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"නොරැහැන් නිදොස්කරණය ඉඩ දී නැත"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"මෙම උපාංගයට දැනට පුරා ඇති පරිශීලකට නොරැහැන් නිදොස්කරණය ක්‍රියාත්මක කළ නොහැකිය. මෙම විශේෂාංගය භාවිතට, මූලික පරිශීලක වෙත මාරු වෙන්න."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB තොට අබලයි"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"ඔබේ උපාංගය ද්‍රවවලින් හෝ කුණුවලින් ආරක්‍ෂා කිරීමට, USB තොට අබල කර තිබෙන අතර, එය කිසිම අමතරාංගයක් අනාවරණ නොකරයි.\n\nනැවතත් USB තොට භාවිත කිරීම හරි නම් ඔබව දැනුම් දෙනු ලැබේ."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ආරෝපක සහ උපකාරක අංග අනාවරණ කිරීමට USB තොට සබල කර ඇත"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"කළමනාකරණය කරන්න"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ඉතිහාසය"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"නිහඬ දැනුම්දීම්"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"ඇඟවීමේ දැනුම් දීම්"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"සංවාද"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"සියලු නිහඬ දැනුම්දීම් හිස් කරන්න"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"බාධා නොකරන්න මගින් විරාම කරන ලද දැනුම්දීම්"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ඔබට ශබ්දය හෝ කම්පනය නොමැතිව අවධානය යොමු කිරීමට උදවු කරයි."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ශබ්දය හෝ කම්පනය සමඟ ඔබේ අවධානය ලබා ගනී."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"පාවෙන කෙටිමගක් සමග ඔබේ අවධානය මෙම අන්තර්ගතය වෙත තබා ගන්න."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"මෑත බුබුලු නැත"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"මෑත බුබුලු සහ ඉවත ලූ බුබුලු මෙහි දිස් වනු ඇත."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"මෙම දැනුම්දීම් වෙනස් කළ නොහැක."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"මෙම දැනුම්දීම් සමූහය මෙහි වින්‍යාස කළ නොහැක"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ප්‍රොක්සි කළ දැනුම්දීම"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"පහළ වමට ගෙන යන්න"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"පහළ දකුණට ගෙන යන්න"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ඉවතලන්න"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"පද්ධති සංචලනය යාවත්කාලීන කළා. වෙනස්කම් සිදු කිරීමට, සැකසීම් වෙත යන්න."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"පද්ධති සංචලනය යාවත්කාලීන කිරීමට සැකසීම් වෙත යන්න"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"පොරොත්තු"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"ඉක්මන් පාලන"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"පාලන එක් කරන්න"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"පාලන එක් කිරීමට යෙදුමක් තෝරා ගන්න"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">දැනට ප්‍රියතම <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
-      <item quantity="other">දැනට ප්‍රියතම <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">පාලන <xliff:g id="NUMBER_1">%s</xliff:g>ක් එක් කරන ලදී.</item>
+      <item quantity="other">පාලන <xliff:g id="NUMBER_1">%s</xliff:g>ක් එක් කරන ලදී.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"පාලන"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ඉක්මන් ප්‍රවේශය සඳහා පාලන තෝරා ගන්න"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ප්‍රියතම"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"සියලු"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"සියලු පාලනවල ලැයිස්තුව පූරණය කළ නොහැකි විය."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"වෙනත්"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index b420761..bb6ac46 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Povoliť"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Ladenie cez USB nie je povolené"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Používateľ, ktorý je práve prihlásený v tomto zariadení, nemôže zapnúť ladenie USB. Ak chcete použiť túto funkciu, prepnite na hlavného používateľa."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Chcete povoliť bezdrôtové ladenie v tejto sieti?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Názov siete (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresa Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Vždy povoliť v tejto sieti"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Povoliť"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Bezdrôtové ladenie nie je povolené"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Používateľ, ktorý je práve prihlásený v tomto zariadení, nemôže zapnúť bezdrôtové ladenie. Ak chcete použiť túto funkciu, prepnite na hlavného používateľa."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Port USB je deaktivovaný"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Port USB je deaktivovaný na zaistenie ochrany zariadenia pred tekutinami alebo nečistotami a nerozpoznáva príslušenstvo.\n\nKeď ho budete môcť znova použiť, upozorníme vás."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Bol povolený port USB na zisťovanie nabíjačiek a príslušenstva"</string>
@@ -86,7 +92,7 @@
     <string name="screenrecord_description" msgid="1123231719680353736">"Počas nahrávania zaznamená systém Android všetky citlivé údaje, ktoré sa zobrazia na obrazovke alebo prehrajú v zariadení. Zahrnuje to heslá, platobné údaje, fotky, správy a zvuky."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Nahrávať zvuk"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Zvuk zariadenia"</string>
-    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Zvuk zo zariadenia, ako napríklad hudba, hovory a tóny zvonenia"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Zvuk zo zariadenia, napríklad hudba, hovory a tóny zvonenia"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"Mikrofón"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Zvuk a mikrofón zariadenia"</string>
     <string name="screenrecord_start" msgid="330991441575775004">"Spustiť"</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Spravovať"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"História"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Tiché upozornenia"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Varovné upozornenia"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Konverzácie"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Vymazať všetky tiché upozornenia"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Upozornenia sú pozastavené režimom bez vyrušení"</string>
@@ -692,10 +699,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Pomáha vám sústrediť sa bez zvukov či vibrácií."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Upúta vás zvukom alebo vibráciami."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Upúta vás plávajúcim odkazom na tento obsah."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Žiadne nedávne bubliny"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Tu sa budú zobrazovať nedávne a zavreté bubliny."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tieto upozornenia sa nedajú upraviť."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Túto skupinu upozornení nejde na tomto mieste konfigurovať"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Približné upozornenie"</string>
@@ -719,7 +724,7 @@
     <string name="inline_undo" msgid="9026953267645116526">"Späť"</string>
     <string name="demote" msgid="6225813324237153980">"Označiť, že toto upozornenie nie je konverzácia"</string>
     <string name="notification_conversation_favorite" msgid="1905240206975921907">"Dôležitá konverzácia"</string>
-    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Nejde o dôležitú konverzáciu"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Nedôležitá konverzácia"</string>
     <string name="notification_conversation_mute" msgid="268951550222925548">"Stlmené"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"Upozorňujúce"</string>
     <string name="notification_conversation_bubble" msgid="2242180995373949022">"Zobraziť bublinu"</string>
@@ -984,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Presunúť doľava nadol"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Presunúť doprava nadol"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Zavrieť"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigácia v systéme bola aktualizovaná. Ak chcete vykonať zmeny, prejdite do Nastavení."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Prejdite do Nastavení a aktualizujte navigáciu v systéme"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostný režim"</string>
@@ -993,18 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Rýchle ovládacie prvky"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Pridanie ovládacích prvkov"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Vyberte aplikáciu, z ktorej chcete pridať ovládacie prvky"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> aktuálne obľúbené.</item>
-      <item quantity="many"><xliff:g id="NUMBER_1">%s</xliff:g> current favorites.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> aktuálne obľúbených.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> aktuálne obľúbený.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="few">Boli pridané <xliff:g id="NUMBER_1">%s</xliff:g> ovládacie prvky.</item>
+      <item quantity="many"><xliff:g id="NUMBER_1">%s</xliff:g> controls added.</item>
+      <item quantity="other">Bolo pridaných <xliff:g id="NUMBER_1">%s</xliff:g> ovládacích prvkov.</item>
+      <item quantity="one">Bol pridaný <xliff:g id="NUMBER_0">%s</xliff:g> ovládací prvok.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Ovládacie prvky"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vyberte ovládacie prvky na rýchly prístup"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Obľúbené"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Všetko"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Zoznam všetkých ovl. prvkov sa nepodarilo načítať."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Iné"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index b0201b4..5280f6e 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Dovoli"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Odpravljanje napak s povezavo USB ni dovoljeno"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Uporabnik, trenutno prijavljen v napravo, ne more vklopiti odpravljanja napak s povezavo USB. Če želite uporabljati to funkcijo, preklopite na primarnega uporabnika."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Ali dovolite brezžično odpravljanje napak v tem omrežju?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Ime omrežja (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nNaslov omrežja Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Vedno dovoli v tem omrežju"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Dovoli"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Brezžično odpravljanje napak ni dovoljeno"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Uporabnik, trenutno prijavljen v napravo, ne more vklopiti brezžičnega odpravljanja napak. Če želite uporabljati to funkcijo, preklopite na primarnega uporabnika."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Vrata USB so onemogočena"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Zaradi zaščite naprave pred tekočino ali umazanijo so vrata USB onemogočena in ne bodo zaznala nobene dodatne opreme.\n\nKo bo znova varno uporabljati vrata USB, boste obveščeni."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Vrata USB so omogočena za zaznavanje polnilnikov in dodatne opreme"</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Upravljanje"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Zgodovina"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Tiha obvestila"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Obvestila z opozorilom"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Pogovori"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Brisanje vseh tihih obvestil"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Prikazovanje obvestil je začasno zaustavljeno z načinom »ne moti«"</string>
@@ -692,10 +699,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Nemoteč prikaz brez zvoka ali vibriranja"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Pritegne vašo pozornost z zvokom ali vibriranjem"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Zadrži vašo pozornost z lebdečo bližnjico do te vsebine."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ni nedavnih oblačkov"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Tukaj bodo prikazani tako nedavni kot opuščeni oblački."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Za ta obvestila ni mogoče spremeniti nastavitev."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Te skupine obvestil ni mogoče konfigurirati tukaj"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Posredovano obvestilo"</string>
@@ -984,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Premakni spodaj levo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Premakni spodaj desno"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Opusti"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Krmarjenje po sistemu je posodobljeno. Če želite opraviti spremembe, odprite nastavitve."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Če želite posodobiti krmarjenje po sistemu, odprite nastavitve"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravljenosti"</string>
@@ -993,18 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Hitro upravljanje"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Dodajanje kontrolnikov"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Izberite aplikacijo, katere kontrolnike želite dodati"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> trenutni priljubljen.</item>
-      <item quantity="two"><xliff:g id="NUMBER_1">%s</xliff:g> trenutna priljubljena.</item>
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> trenutni priljubljeni.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> trenutnih priljubljenih.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> kontrolnik dodan.</item>
+      <item quantity="two"><xliff:g id="NUMBER_1">%s</xliff:g> kontrolnika dodana.</item>
+      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> kontrolniki dodani.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontrolnikov dodanih.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrolniki"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Izberite kontrolnike za hiter dostop"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Priljubljene"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Vse"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Seznama vseh kontrolnikov ni bilo mogoče naložiti."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index 4f0c4e7..c1a32c5 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Lejo"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Korrigjimi i USB-së nuk lejohet"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Përdoruesi i identifikuar aktualisht në këtë pajisje nuk mund ta aktivizojë korrigjimin e USB-së. Për ta përdorur këtë funksion, kalo te përdoruesi parësor."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Do ta lejosh korrigjimin me lidhjen pa tel në këtë rrjet?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Emri i rrjetit (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAdresa Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Shfaq gjithmonë në këtë rrjet"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Lejo"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Korrigjimi me lidhjen pa tel nuk lejohet"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Përdoruesi i identifikuar aktualisht në këtë pajisje nuk mund ta aktivizojë korrigjimin me lidhjen pa tel. Për ta përdorur këtë veçori, kalo te përdoruesi parësor."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Porta e USB-së është çaktivizuar"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Për të mbrojtur pajisjen tënde nga lëngjet apo papastërtitë, porta e USB-së është çaktivizuar dhe nuk do t\'i dallojë aksesorët.\n\nDo të njoftohesh kur të mos jetë problem përdorimi përsëri i portës USB."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Porta USB është aktivizuar për të zbuluar karikuesit dhe aksesorët"</string>
@@ -367,7 +373,7 @@
     <string name="quick_settings_inversion_label" msgid="5078769633069667698">"Shkëmbe ngjyrat"</string>
     <string name="quick_settings_color_space_label" msgid="537528291083575559">"Modaliteti i korrigjimit të ngjyrës"</string>
     <string name="quick_settings_more_settings" msgid="2878235926753776694">"Cilësime të tjera"</string>
-    <string name="quick_settings_done" msgid="2163641301648855793">"U krye!"</string>
+    <string name="quick_settings_done" msgid="2163641301648855793">"U krye"</string>
     <string name="quick_settings_connected" msgid="3873605509184830379">"I lidhur"</string>
     <string name="quick_settings_connected_battery_level" msgid="1322075669498906959">"E lidhur, bateria <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="quick_settings_connecting" msgid="2381969772953268809">"Po lidhet..."</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Menaxho"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historiku"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Njoftimet në heshtje"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Njoftimet sinjalizuese"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Bisedat"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Pastro të gjitha njoftimet në heshtje"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Njoftimet janë vendosur në pauzë nga modaliteti \"Mos shqetëso\""</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Të ndihmon të fokusohesh pa tinguj ose dridhje."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Të tërheq vëmendjen me tinguj ose dridhje."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mban vëmendjen tënde me një shkurtore pluskuese te kjo përmbajtje."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nuk ka flluska të fundit"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Flluskat e fundit dhe flluskat e hequra do të shfaqen këtu."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Këto njoftime nuk mund të modifikohen."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ky grup njoftimesh nuk mund të konfigurohet këtu"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Njoftim i dërguar me përfaqësues"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Zhvendos poshtë majtas"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Lëvize poshtë djathtas"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Hiq"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigimi i sistemit u përditësua. Për të bërë ndryshime, shko te \"Cilësimet\"."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Shko te \"Cilësimet\" për të përditësuar navigimin e sistemit"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Në gatishmëri"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Kontrollet e shpejta"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Shto kontrollet"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Zgjidh një aplikacion nga i cili do të shtosh kontrollet"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> të preferuara aktuale.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> e preferuar aktuale.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">U shtuan <xliff:g id="NUMBER_1">%s</xliff:g> kontrolle.</item>
+      <item quantity="one">U shtua <xliff:g id="NUMBER_0">%s</xliff:g> kontroll.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrollet"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Zgjidh kontrollet për qasjen e shpejtë"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Të preferuarit"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Të gjitha"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Lista e të gjitha kontrolleve nuk mund të ngarkohej."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Tjetër"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index fe8c436..87c9d3f 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Дозволи"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Отклањање грешака на USB-у није дозвољено"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Корисник који је тренутно пријављен на овај уређај не може да укључи отклањање грешака на USB-у. Да бисте користили ову функцију, пребаците на примарног корисника."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Желите ли да омогућите бежично отклањање грешака на овој мрежи?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Назив мреже (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi адреса (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Увек дозволи на овој мрежи"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Дозволи"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Бежично отклањање грешака није дозвољено"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Корисник који је тренутно пријављен на овај уређај не може да укључи бежично отклањање грешака. Да бисте користили ову функцију, пређите на примарног корисника."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB порт је онемогућен"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Да би се уређај заштитио од течности или нечистоће, USB порт је онемогућен и неће откривати додатну опрему.\n\nОбавестићемо вас када поново будете могли да користите USB порт."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB порт је омогућен ради откривања пуњача и додатне опреме"</string>
@@ -491,6 +497,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Управљајте"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Историја"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Нечујна обавештења"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Обавештења која привлаче пажњу"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Конверзације"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Обришите сва нечујна обавештења"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Обавештења су паузирана режимом Не узнемиравај"</string>
@@ -689,10 +696,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Помаже вам да се концентришете без звука или вибрације."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Привлачи вам пажњу помоћу звука или вибрације."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Привлачи вам пажњу помоћу плутајуће пречице до овог садржаја."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Нема недавних облачића"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Овде се приказују недавни и одбачени облачићи."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ова обавештења не могу да се мењају."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ова група обавештења не може да се конфигурише овде"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Обавештење преко проксија"</string>
@@ -979,6 +984,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Премести доле лево"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Премести доле десно"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Одбаци"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навигација система је ажурирана. Да бисте унели измене, идите у Подешавања."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Идите у Подешавања да бисте ажурирали навигацију система"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Стање приправности"</string>
@@ -988,17 +999,15 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Брзе контроле"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Додајте контроле"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Одаберите апликацију из које ћете додавати контроле"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> актуелни фаворит.</item>
-      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> актуелна фаворита.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> актуелних фаворита.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> контрола је додата.</item>
+      <item quantity="few"><xliff:g id="NUMBER_1">%s</xliff:g> контроле су додате.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> контрола је додато.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Контроле"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Одаберите контроле за брз приступ"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Омиљено"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Све"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Учитавање листе свих контрола није успело."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Друго"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 8f7d12c..c497574 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Tillåt"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB-felsökning är inte tillåtet"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Användaren som är inloggad på enheten för närvarande kan inte aktivera USB-felsökning. Byt till den primära användaren om du vill använda den här funktionen."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Vill du tillåta trådlös felsökning i det här nätverket?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Nätverksnamn (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi-adress (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Tillåt alltid i det här nätverket"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Tillåt"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Trådlös felsökning är inte tillåtet"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Användaren som är inloggad på enheten för närvarande kan inte aktivera trådlös felsökning. Byt till den primära användaren om du vill använda den här funktionen."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-porten har inaktiverats"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"USB-porten har inaktiverats för att skydda enheten mot vätska eller smuts. Inga tillbehör kommer att hittas.\n\nDu meddelas när det går att använda USB-porten igen."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB-porten har aktiverats för identifiering av laddare och tillbehör"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Hantera"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historik"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Ljudlösa aviseringar"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Aviseringar med vibration eller ljud"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Konversationer"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Rensa alla ljudlösa aviseringar"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Aviseringar har pausats via Stör ej"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Inga ljud eller vibrationer som stör koncentrationen."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Påkallar uppmärksamhet med ljud eller vibrationer."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Behåller din uppmärksamhet med en flytande genväg till innehållet."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Inga senaste bubblor"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"De senaste bubblorna och ignorerade bubblor visas här."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Det går inte att ändra de här aviseringarna."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Den här aviseringsgruppen kan inte konfigureras här"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Avisering via proxy"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Flytta längst ned till vänster"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Flytta längst ned till höger"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Stäng"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigeringen har uppdaterats. Öppna inställningarna om du vill ändra något."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Öppna inställningarna och uppdatera systemnavigeringen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Viloläge"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Snabbinställningar"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Lägg till kontroller"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Välj den app du vill lägga till kontroller från"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> nuvarande favoriter.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> nuvarande favorit.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontroller har lagts till.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kontroll har lagts till.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroller"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Välj kontroller för snabb åtkomst"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriter"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alla"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Listan med alla kontroller kunde inte läsas in."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Övrigt"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 4fa7d92..8d2b137 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Ruhusu"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Utatuzi wa USB hauruhusiwi"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Mtumiaji aliyeingia katika akaunti kwa kutumia kifaa hiki kwa sasa hawezi kuwasha utatuzi wa USB. Ili utumie kipengele hiki, tumia akaunti ya mtumiaji wa msingi."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Ungependa kuruhusu utatuzi usiotumia waya kwenye mtandao huu?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Jina la Mtandao (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAnwani ya Wi-Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Ruhusu kila wakati kwenye mtandao huu"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Ruhusu"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Utatuzi usiotumia waya hauruhusiwi"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Mtumiaji aliyeingia katika akaunti kwenye kifaa hiki kwa sasa hawezi kuwasha utatuzi usiotumia waya. Ili utumie kipengele hiki, badilisha utumie akaunti ya mtumiaji wa msingi."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Mlango wa USB umezimwa"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Ili ulinde kifaa chako dhidi ya vitu vyenye unyevu au uchafu, mlango wa USB umezimwa na hautatambua vifaa vyovyote.\n\nUtaarifiwa itapokuwa sawa kutumia mlango wa USB tena."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Mlango wa USB umewezeshwa ili utambue chaja na vifuasi"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Dhibiti"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Historia"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Arifa zisizo na sauti"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Arifa za ilani"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Mazungumzo"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Futa arifa zote zisizo na sauti"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Kipengele cha Usinisumbue kimesitisha arifa"</string>
@@ -553,7 +560,7 @@
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"Kifaa kitaendelea kuwa katika hali ya kufungwa hadi utakapokifungua mwenyewe"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"Pata arifa kwa haraka"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"Zitazame kabla hujafungua"</string>
-    <string name="hidden_notifications_cancel" msgid="4805370226181001278">"Hapana, asante"</string>
+    <string name="hidden_notifications_cancel" msgid="4805370226181001278">"Hapana"</string>
     <string name="hidden_notifications_setup" msgid="2064795578526982467">"Sanidi"</string>
     <string name="zen_mode_and_condition" msgid="5043165189511223718">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
     <string name="volume_zen_end_now" msgid="5901885672973736563">"Izime sasa"</string>
@@ -576,7 +583,7 @@
     <string name="screen_pinning_toast_recents_invisible" msgid="6343770487795352573">"Ili ubandue skrini hii, gusa na ushikilie vitufe vya Nyuma na Mwanzo"</string>
     <string name="screen_pinning_toast_gesture_nav" msgid="2884536903398445645">"Ili ubandue skrini hii, telezesha kidole juu na ushikilie"</string>
     <string name="screen_pinning_positive" msgid="3285785989665266984">"Nimeelewa"</string>
-    <string name="screen_pinning_negative" msgid="6882816864569211666">"Hapana, asante"</string>
+    <string name="screen_pinning_negative" msgid="6882816864569211666">"Hapana"</string>
     <string name="screen_pinning_start" msgid="5695091877402422575">"Skrini imebandikwa"</string>
     <string name="screen_pinning_exit" msgid="5114993350662745840">"Skrini imebanduliwa"</string>
     <string name="quick_settings_reset_confirmation_title" msgid="463533331480997595">"Ungependa kuficha <xliff:g id="TILE_LABEL">%1$s</xliff:g>?"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Hupata umakinifu wako kwa sauti na mtetemo."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Huweka umakinifu wako kwenye maudhui haya kwa kutumia njia ya mkato ya kuelea."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Hakuna viputo vya hivi majuzi"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Viputo vilivyoondolewa hivi majuzi vitaonekana hapa ili virejeshwe kwa urahisi."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Viputo vya hivi karibuni na viputo vilivyoondolewa vitaonekana hapa."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Arifa hizi haziwezi kubadilishwa."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Kikundi hiki cha arifa hakiwezi kuwekewa mipangilio hapa"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Arifa wakilishi"</string>
@@ -947,7 +954,7 @@
     <string name="slice_permission_deny" msgid="6870256451658176895">"Kataa"</string>
     <string name="auto_saver_title" msgid="6873691178754086596">"Gusa ili uratibu wakati wa kuwasha Kiokoa Betri"</string>
     <string name="auto_saver_text" msgid="3214960308353838764">"Washa wakati betri inakaribia kuisha"</string>
-    <string name="no_auto_saver_action" msgid="7467924389609773835">"Hapana, asante"</string>
+    <string name="no_auto_saver_action" msgid="7467924389609773835">"Hapana"</string>
     <string name="auto_saver_enabled_title" msgid="4294726198280286333">"Ratiba ya Kiokoa Betri imewashwa"</string>
     <string name="auto_saver_enabled_text" msgid="7889491183116752719">"Kiokoa Betri kitawaka kiotomatiki baada ya chaji ya betri kufika chini ya <xliff:g id="PERCENTAGE">%d</xliff:g>%%."</string>
     <string name="open_saver_setting_action" msgid="2111461909782935190">"Mipangilio"</string>
@@ -972,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Sogeza chini kushoto"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Sogeza chini kulia"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ondoa"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Umesasisha usogezaji kwenye mfumo. Ili ubadilishe, nenda kwenye Mipangilio."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Nenda kwenye mipangilio ili usasishe usogezaji kwenye mfumo"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Hali tuli"</string>
@@ -981,13 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Vidhibiti vya Haraka"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Weka Vidhibiti"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Chagua programu utakayotumia kuweka vidhibiti"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Vipendwa <xliff:g id="NUMBER_1">%s</xliff:g> vya sasa.</item>
-      <item quantity="one">Kipendwa <xliff:g id="NUMBER_0">%s</xliff:g> cha sasa.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Umeweka vidhibiti <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
+      <item quantity="one">Umeweka kidhibiti <xliff:g id="NUMBER_0">%s</xliff:g>.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Vidhibiti"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Chagua vidhibiti vya kufikia kwa haraka"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Vipendwa"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"Vyote"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Imeshindwa kupakia orodha ya vidhibiti vyote."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Nyingine"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index 26af750..3f1ddbd 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -63,6 +63,18 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"அனுமதி"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB பிழைதிருத்தம் அனுமதிக்கப்படவில்லை"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"தற்போது இந்தச் சாதனத்தில் உள்நுழைந்துள்ள பயனரால் USB பிழைதிருத்தத்தை இயக்க முடியாது. இந்த அம்சத்தை இயக்க, முதன்மைப் பயனருக்கு மாறவும்."</string>
+    <!-- no translation found for wifi_debugging_title (7300007687492186076) -->
+    <skip />
+    <!-- no translation found for wifi_debugging_message (5461204211731802995) -->
+    <skip />
+    <!-- no translation found for wifi_debugging_always (2968383799517975155) -->
+    <skip />
+    <!-- no translation found for wifi_debugging_allow (4573224609684957886) -->
+    <skip />
+    <!-- no translation found for wifi_debugging_secondary_user_title (2493201475880517725) -->
+    <skip />
+    <!-- no translation found for wifi_debugging_secondary_user_message (4492383073970079751) -->
+    <skip />
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB போர்ட் முடக்கப்பட்டது"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"தேவையற்றவையில் இருந்து உங்கள் சாதனத்தைப் பாதுகாக்க USB போர்ட் முடக்கப்பட்டுள்ளது. மேலும் எந்தத் துணைக் கருவிகளையும் அது கண்டறியாது.\n\nUSB போர்ட்டை மீண்டும் எப்போது பயன்படுத்தலாம் என்பதைப் பற்றி உங்களுக்குத் தெரிவிக்கப்படும்."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"சார்ஜர்களையும் துணைக்கருவிகளையும் கண்டறிவதற்காக USB போர்ட் இயக்கப்பட்டுள்ளது"</string>
@@ -80,31 +92,19 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ஸ்கிரீன் ஷாட்டை மீண்டும் எடுக்க முயலவும்"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"போதுமான சேமிப்பிடம் இல்லாததால் ஸ்கிரீன்ஷாட்டைச் சேமிக்க முடியவில்லை"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ஸ்கிரீன் ஷாட்டுகளை எடுப்பதை, ஆப்ஸ் அல்லது உங்கள் நிறுவனம் அனுமதிக்கவில்லை"</string>
-    <!-- no translation found for screenrecord_name (2596401223859996572) -->
-    <skip />
+    <string name="screenrecord_name" msgid="2596401223859996572">"ஸ்கிரீன் ரெக்கார்டர்"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"திரை ரெக்கார்டிங் அமர்விற்கான தொடர் அறிவிப்பு"</string>
-    <!-- no translation found for screenrecord_start_label (1750350278888217473) -->
-    <skip />
-    <!-- no translation found for screenrecord_description (1123231719680353736) -->
-    <skip />
-    <!-- no translation found for screenrecord_audio_label (6183558856175159629) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_label (9016927171280567791) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_description (4922694220572186193) -->
-    <skip />
-    <!-- no translation found for screenrecord_mic_label (2111264835791332350) -->
-    <skip />
-    <!-- no translation found for screenrecord_device_audio_and_mic_label (1831323771978646841) -->
-    <skip />
-    <!-- no translation found for screenrecord_start (330991441575775004) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_only (4459670242451527727) -->
-    <skip />
-    <!-- no translation found for screenrecord_ongoing_screen_and_audio (5351133763125180920) -->
-    <skip />
-    <!-- no translation found for screenrecord_taps_label (1595690528298857649) -->
-    <skip />
+    <string name="screenrecord_start_label" msgid="1750350278888217473">"ரெக்கார்டிங்கைத் தொடங்கவா?"</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"ரெக்கார்டு செய்யும்போது, உங்கள் திரையில் தோன்றக்கூடிய அல்லது சாதனத்தில் பிளே ஆகக்கூடிய ஏதேனும் அதிமுக்கியத் தகவலை Android சிஸ்டம் படமெடுக்க முடியும். கடவுச்சொற்கள், பேமெண்ட் தகவல், படங்கள், மெசேஜ்கள், ஆடியோ ஆகியவை இதில் அடங்கும்."</string>
+    <string name="screenrecord_audio_label" msgid="6183558856175159629">"ஆடியோவை ரெக்கார்டு செய்"</string>
+    <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"சாதன ஆடியோ"</string>
+    <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"இசை, அழைப்புகள், ரிங்டோன்கள் போன்ற உங்கள் சாதனத்திலிருந்து வரும் ஒலி"</string>
+    <string name="screenrecord_mic_label" msgid="2111264835791332350">"மைக்ரோஃபோன்"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"சாதன ஆடியோ மற்றும் மைக்ரோஃபோன்"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"தொடங்கு"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"ஸ்கிரீன் ரெக்கார்ட் செய்யப்படுகிறது"</string>
+    <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"ஸ்கிரீன் மற்றும் ஆடியோ ரெக்கார்ட் செய்யப்படுகிறது"</string>
+    <string name="screenrecord_taps_label" msgid="1595690528298857649">"திரையில் உள்ள தொடுதல்களைக் காட்டு"</string>
     <string name="screenrecord_stop_text" msgid="6549288689506057686">"நிறுத்த, தட்டவும்"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"நிறுத்து"</string>
     <string name="screenrecord_pause_label" msgid="6004054907104549857">"இடைநிறுத்து"</string>
@@ -117,8 +117,7 @@
     <string name="screenrecord_delete_description" msgid="1604522770162810570">"திரை ரெக்கார்டிங் நீக்கப்பட்டது"</string>
     <string name="screenrecord_delete_error" msgid="2870506119743013588">"திரை ரெக்கார்டிங்கை நீக்குவதில் பிழை"</string>
     <string name="screenrecord_permission_error" msgid="7856841237023137686">"அனுமதிகளைப் பெற இயலவில்லை"</string>
-    <!-- no translation found for screenrecord_start_error (2200660692479682368) -->
-    <skip />
+    <string name="screenrecord_start_error" msgid="2200660692479682368">"ஸ்கிரீன் ரெக்கார்டிங்கைத் தொடங்குவதில் பிழை"</string>
     <string name="usb_preference_title" msgid="1439924437558480718">"USB கோப்பு இடமாற்ற விருப்பங்கள்"</string>
     <string name="use_mtp_button_title" msgid="5036082897886518086">"(MTP) மீடியா பிளேயராக ஏற்று"</string>
     <string name="use_ptp_button_title" msgid="7676427598943446826">"(PTP) கேமராவாக ஏற்று"</string>
@@ -433,7 +432,7 @@
     <string name="description_direction_left" msgid="4762708739096907741">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> க்கு இடதுபக்கமாக இழுக்கவும்."</string>
     <string name="zen_priority_introduction" msgid="3159291973383796646">"அலாரங்கள், நினைவூட்டல்கள், நிகழ்வுகள் மற்றும் குறிப்பிட்ட அழைப்பாளர்களைத் தவிர்த்து, பிற ஒலிகள் மற்றும் அதிர்வுகளின் தொந்தரவு இருக்காது. எனினும், நீங்கள் எதையேனும் (இசை, வீடியோக்கள், கேம்ஸ் போன்றவை) ஒலிக்கும்படி தேர்ந்தெடுத்திருந்தால், அவை வழக்கம் போல் ஒலிக்கும்."</string>
     <string name="zen_alarms_introduction" msgid="3987266042682300470">"அலாரங்களைத் தவிர்த்து, பிற ஒலிகள் மற்றும் அதிர்வுகளின் தொந்தரவு இருக்காது. எனினும், நீங்கள் எதையேனும் (இசை, வீடியோக்கள், கேம்ஸ் போன்றவை) ஒலிக்கும்படி தேர்ந்தெடுத்திருந்தால், அவை வழக்கம் போல் ஒலிக்கும்."</string>
-    <string name="zen_priority_customize_button" msgid="4119213187257195047">"தனிப்பயனாக்கு"</string>
+    <string name="zen_priority_customize_button" msgid="4119213187257195047">"பிரத்தியேகமாக்கு"</string>
     <string name="zen_silence_introduction_voice" msgid="853573681302712348">"இது அலாரங்கள், இசை, வீடியோக்கள் மற்றும் கேம்ஸ் உட்பட எல்லா ஒலிகளையும் அதிர்வுகளையும் தடுக்கும். எனினும், உங்களால் ஃபோன் அழைப்புகளைச் செய்ய முடியும்."</string>
     <string name="zen_silence_introduction" msgid="6117517737057344014">"இது அலாரங்கள், இசை, வீடியோக்கள் மற்றும் கேம்ஸ் உட்பட எல்லா ஒலிகளையும் அதிர்வுகளையும் தடுக்கும்."</string>
     <string name="keyguard_more_overflow_text" msgid="5819512373606638727">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
@@ -499,9 +498,10 @@
     <string name="media_projection_remember_text" msgid="6896767327140422951">"மீண்டும் காட்டாதே"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"எல்லாவற்றையும் அழி"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"அறிவிப்புகளை நிர்வகி"</string>
-    <!-- no translation found for manage_notifications_history_text (57055985396576230) -->
-    <skip />
+    <string name="manage_notifications_history_text" msgid="57055985396576230">"வரலாறு"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"ஒலியில்லாத அறிவிப்புகள்"</string>
+    <!-- no translation found for notification_section_header_alerting (3168140660646863240) -->
+    <skip />
     <string name="notification_section_header_conversations" msgid="821834744538345661">"உரையாடல்கள்"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ஒலியில்லாத அழைப்புகள் அனைத்தையும் அழிக்கும்"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\'தொந்தரவு செய்ய வேண்டாம்\' அம்சத்தின் மூலம் அறிவிப்புகள் இடைநிறுத்தப்பட்டுள்ளன"</string>
@@ -662,7 +662,7 @@
     <string name="clock_seconds_desc" msgid="2415312788902144817">"நிலைப் பட்டியில் கடிகார வினாடிகளைக் காட்டும். பேட்டரியின் ஆயுளைக் குறைக்கலாம்."</string>
     <string name="qs_rearrange" msgid="484816665478662911">"விரைவு அமைப்புகளை மறுவரிசைப்படுத்து"</string>
     <string name="show_brightness" msgid="6700267491672470007">"விரைவு அமைப்புகளில் ஒளிர்வுப் பட்டியைக் காட்டு"</string>
-    <string name="experimental" msgid="3549865454812314826">"சோதனை முயற்சி"</string>
+    <string name="experimental" msgid="3549865454812314826">"பரிசோதனை முயற்சி"</string>
     <string name="enable_bluetooth_title" msgid="866883307336662596">"புளூடூத்தை இயக்கவா?"</string>
     <string name="enable_bluetooth_message" msgid="6740938333772779717">"உங்கள் டேப்லெட்டுடன் விசைப்பலகையை இணைக்க, முதலில் புளூடூத்தை இயக்க வேண்டும்."</string>
     <string name="enable_bluetooth_confirmation_ok" msgid="2866408183324184876">"இயக்கு"</string>
@@ -702,7 +702,7 @@
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"இந்த உள்ளடக்கத்திற்கான மிதக்கும் ஷார்ட்கட் மூலம் உங்கள் கவனத்தைப் பெற்றிருக்கும்."</string>
     <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
     <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
+    <!-- no translation found for bubble_overflow_empty_subtitle (198257239740933131) -->
     <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"இந்த அறிவிப்புகளை மாற்ற இயலாது."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"இந்த அறிவுப்புக் குழுக்களை இங்கே உள்ளமைக்க இயலாது"</string>
@@ -722,29 +722,22 @@
     <string name="notification_channel_controls_closed_accessibility" msgid="1561909368876911701">"<xliff:g id="APP_NAME">%1$s</xliff:g>க்கான அறிவிப்புக் கட்டுப்பாடுகள் மூடப்பட்டன"</string>
     <string name="notification_channel_switch_accessibility" msgid="8979885820432540252">"இந்தச் சேனலிலிருந்து அறிவிப்புகளைப் பெறுவதை அனுமதிக்கும்"</string>
     <string name="notification_more_settings" msgid="4936228656989201793">"மேலும் அமைப்புகள்"</string>
-    <string name="notification_app_settings" msgid="8963648463858039377">"தனிப்பயனாக்கு"</string>
+    <string name="notification_app_settings" msgid="8963648463858039377">"பிரத்தியேகமாக்கு"</string>
     <string name="notification_done" msgid="6215117625922713976">"முடிந்தது"</string>
     <string name="inline_undo" msgid="9026953267645116526">"செயல்தவிர்"</string>
     <string name="demote" msgid="6225813324237153980">"இந்த அறிவிப்பை உரையாடல் அல்லாததாகக் குறிக்கவும்"</string>
-    <!-- no translation found for notification_conversation_favorite (1905240206975921907) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unfavorite (181383708304763807) -->
-    <skip />
-    <!-- no translation found for notification_conversation_mute (268951550222925548) -->
-    <skip />
+    <string name="notification_conversation_favorite" msgid="1905240206975921907">"முக்கியமான உரையாடல்"</string>
+    <string name="notification_conversation_unfavorite" msgid="181383708304763807">"முக்கியமான உரையாடல் அல்ல"</string>
+    <string name="notification_conversation_mute" msgid="268951550222925548">"ஒலியோ அதிர்வோ இருக்காது"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"விழிப்பூட்டுகிறது"</string>
-    <!-- no translation found for notification_conversation_bubble (2242180995373949022) -->
-    <skip />
-    <!-- no translation found for notification_conversation_unbubble (6908427185031099868) -->
-    <skip />
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"குமிழைக் காட்டு"</string>
+    <string name="notification_conversation_unbubble" msgid="6908427185031099868">"குமிழ்களை அகற்று"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"முகப்புத் திரையில் சேர்"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"அறிவிப்புக் கட்டுப்பாடுகள்"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"அறிவிப்பை உறக்கநிலையாக்கும் விருப்பங்கள்"</string>
-    <!-- no translation found for notification_menu_snooze_action (5415729610393475019) -->
-    <skip />
-    <!-- no translation found for notification_menu_settings_action (7085494017202764285) -->
-    <skip />
+    <string name="notification_menu_snooze_action" msgid="5415729610393475019">"எனக்கு நினைவூட்டு"</string>
+    <string name="notification_menu_settings_action" msgid="7085494017202764285">"அமைப்புகள்"</string>
     <string name="snooze_undo" msgid="60890935148417175">"செயல்தவிர்"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"உறக்கநிலையில் வைத்திருந்த நேரம்: <xliff:g id="TIME_AMOUNT">%1$s</xliff:g>"</string>
     <plurals name="snoozeHourOptions" formatted="false" msgid="2066838694120718170">
@@ -816,8 +809,7 @@
     <string name="accessibility_data_saver_off" msgid="58339669022107171">"டேட்டா சேமிப்பான் முடக்கப்பட்டது"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"ஆன்"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"ஆஃப்"</string>
-    <!-- no translation found for tile_unavailable (3095879009136616920) -->
-    <skip />
+    <string name="tile_unavailable" msgid="3095879009136616920">"இல்லை"</string>
     <string name="nav_bar" msgid="4642708685386136807">"வழிசெலுத்தல் பட்டி"</string>
     <string name="nav_bar_layout" msgid="4716392484772899544">"தளவமைப்பு"</string>
     <string name="left_nav_bar_button_type" msgid="2634852842345192790">"கூடுதல் இடப்புற பட்டன் வகை"</string>
@@ -840,7 +832,7 @@
     <string name="reset" msgid="8715144064608810383">"மீட்டமை"</string>
     <string name="adjust_button_width" msgid="8313444823666482197">"பட்டனின் அகலத்தை மாற்று"</string>
     <string name="clipboard" msgid="8517342737534284617">"கிளிப்போர்டு"</string>
-    <string name="accessibility_key" msgid="3471162841552818281">"தனிப்பயன் வழிசெலுத்தல் பட்டன்"</string>
+    <string name="accessibility_key" msgid="3471162841552818281">"பிரத்தியேக வழிசெலுத்தல் பட்டன்"</string>
     <string name="left_keycode" msgid="8211040899126637342">"இடப்புற விசைக்குறியீடு"</string>
     <string name="right_keycode" msgid="2480715509844798438">"வலப்புற விசைக்குறியீடு"</string>
     <string name="left_icon" msgid="5036278531966897006">"இடப்புற ஐகான்"</string>
@@ -996,6 +988,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"கீழே இடப்புறமாக நகர்த்து"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"கீழே வலதுபுறமாக நகர்த்து"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"மூடுக"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"சிஸ்டம் நேவிகேஷன் மாற்றப்பட்டது. மாற்றங்களைச் செய்ய ‘அமைப்புகளுக்குச்’ செல்லவும்."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"சிஸ்டம் நேவிகேஷனை மாற்ற ’அமைப்புகளுக்குச்’ செல்லவும்"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"இயக்க நேரம்"</string>
@@ -1005,10 +1003,7 @@
     <string name="quick_controls_title" msgid="525285759614231333">"விரைவுக் கட்டுப்பாடுகள்"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"கட்டுப்பாடுகளைச் சேர்த்தல்"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"எந்த ஆப்ஸிலிருந்து கட்டுப்பாடுகளைச் சேர்க்க வேண்டும் என்பதைத் தேர்ந்தெடுங்கள்"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">தற்போது பிடித்தவை: <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
-      <item quantity="one">தற்போது பிடித்தது: <xliff:g id="NUMBER_0">%s</xliff:g>.</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"கட்டுப்பாடுகள்"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"விரைவு அணுகலுக்கான கட்டுப்பாடுகளைத் தேர்ந்தெடுங்கள்"</string>
     <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
@@ -1017,4 +1012,6 @@
     <skip />
     <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
     <skip />
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 7c94117..dd8dcdf 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"అనుమతించు"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB డీబగ్గింగ్‌కి అనుమతి లేదు"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ఈ పరికరానికి ప్రస్తుతం సైన్ ఇన్ చేసిన వినియోగదారు USB డీబగ్గింగ్ ఆన్ చేయలేరు. ఈ ఫీచర్ ఉపయోగించడానికి, ప్రాథమిక వినియోగదారుకి మారాలి."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"ఈ నెట్‌వర్క్ పై వైర్‌లెస్ డీబగ్గింగ్‌ను అనుమతిస్తారా?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"నెట్‌వర్క్ పేరు (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi చిరునామా (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"ఈ నెట్‌వర్క్ నుండి ఎల్లప్పుడూ అనుమతించు"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"అనుమతించు"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"వైర్‌లెస్ డీబగ్గింగ్‌కి అనుమతి లేదు"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ఈ పరికరానికి ప్రస్తుతం సైన్ ఇన్ చేసిన యూజర్, వైర్‌లెస్ డీబగ్గింగ్ ఆన్ చేయలేరు. ఈ ఫీచర్ ఉపయోగించడానికి, ప్రాథమిక యూజర్ కి స్విచ్ అవ్వండి."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB పోర్ట్‌ నిలిపివేయబడింది"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"మీ పరికరంలోకి నీరు లేదా చెత్తాచెదారం చేరిపోకుండా కాపాడటానికి, USB పోర్ట్ నిలిపివేయబడుతుంది, అలాగే యాక్సెసరీలు వేటిని గుర్తించదు.\n\nUSB పోర్ట్‌ను ఉపయోగించడం సురక్షితమేనని నిర్ధారించుకున్న తర్వాత, మళ్లీ మీకో నోటిఫికేషన్‌ రూపంలో తెలియజేయబడుతుంది."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"ఛార్జర్‌లు, యాక్సెసరీలను గుర్తించే విధంగా USB పోర్ట్ ప్రారంభించబడింది"</string>
@@ -88,7 +94,7 @@
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"పరికరం ఆడియో"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"మీ పరికరం నుండి వచ్చే సంగీతం, కాల్‌లు, రింగ్‌టోన్‌ల వంటి ధ్వనులు"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"మైక్రోఫోన్"</string>
-    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"పరికరం ఆడియో, మైక్రో ఫోన్"</string>
+    <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"పరికరం ఆడియో, మైక్రోఫోన్"</string>
     <string name="screenrecord_start" msgid="330991441575775004">"ప్రారంభం"</string>
     <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"స్క్రీన్ రికార్డింగ్ చేయబడుతోంది"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"స్క్రీన్, ఆడియో రికార్డింగ్ చేయబడుతున్నాయి"</string>
@@ -115,7 +121,7 @@
     <string name="accessibility_menu" msgid="2701163794470513040">"మెను"</string>
     <string name="accessibility_accessibility_button" msgid="4089042473497107709">"యాక్సెస్ సామర్థ్యం"</string>
     <string name="accessibility_rotate_button" msgid="1238584767612362586">"స్క్రీన్‌ను తిప్పండి"</string>
-    <string name="accessibility_recent" msgid="901641734769533575">"అవలోకనం"</string>
+    <string name="accessibility_recent" msgid="901641734769533575">"ఓవర్‌వ్యూ"</string>
     <string name="accessibility_search_light" msgid="524741790416076988">"వెతుకు"</string>
     <string name="accessibility_camera_button" msgid="2938898391716647247">"కెమెరా"</string>
     <string name="accessibility_phone_button" msgid="4256353121703100427">"ఫోన్"</string>
@@ -236,7 +242,7 @@
     <string name="accessibility_desc_quick_settings" msgid="4374766941484719179">"శీఘ్ర సెట్టింగ్‌లు."</string>
     <string name="accessibility_desc_lock_screen" msgid="5983125095181194887">"లాక్ స్క్రీన్."</string>
     <string name="accessibility_desc_settings" msgid="6728577365389151969">"సెట్టింగ్‌లు"</string>
-    <string name="accessibility_desc_recent_apps" msgid="1748675199348914194">"అవలోకనం."</string>
+    <string name="accessibility_desc_recent_apps" msgid="1748675199348914194">"ఓవర్‌వ్యూ."</string>
     <string name="accessibility_desc_work_lock" msgid="4355620395354680575">"కార్యాలయ లాక్ స్క్రీన్"</string>
     <string name="accessibility_desc_close" msgid="8293708213442107755">"మూసివేస్తుంది"</string>
     <string name="accessibility_quick_settings_wifi" msgid="167707325133803052">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"నిర్వహించండి"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"చరిత్ర"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"నిశ్శబ్ద నోటిఫికేషన్‌లు"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"అలర్ట్ చేసే నోటిఫికేషన్‌లు"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"సంభాషణలు"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"అన్ని నిశ్శబ్ద నోటిఫికేషన్‌లను క్లియర్ చేస్తుంది"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"అంతరాయం కలిగించవద్దు ద్వారా నోటిఫికేషన్‌లు పాజ్ చేయబడ్డాయి"</string>
@@ -619,7 +626,7 @@
     <string name="show_battery_percentage_summary" msgid="9053024758304102915">"ఛార్జింగ్‌లో లేనప్పుడు స్థితి పట్టీ చిహ్నం లోపల బ్యాటరీ స్థాయి శాతం చూపుతుంది"</string>
     <string name="quick_settings" msgid="6211774484997470203">"శీఘ్ర సెట్టింగ్‌లు"</string>
     <string name="status_bar" msgid="4357390266055077437">"స్థితి పట్టీ"</string>
-    <string name="overview" msgid="3522318590458536816">"స్థూలదృష్టి"</string>
+    <string name="overview" msgid="3522318590458536816">"ఓవర్‌వ్యూ"</string>
     <string name="demo_mode" msgid="263484519766901593">"సిస్టమ్ UI డెమో మోడ్"</string>
     <string name="enable_demo_mode" msgid="3180345364745966431">"డెమో మోడ్ ప్రారంభించండి"</string>
     <string name="show_demo_mode" msgid="3677956462273059726">"డెమో మోడ్ చూపు"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"శబ్దం లేదా వైబ్రేషన్ లేకుండా దృష్టి కేంద్రీకరించడానికి మీకు సహాయపడుతుంది."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"శబ్దం లేదా వైబ్రేషన్‌తో మీరు దృష్టి సారించేలా చేస్తుంది."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ఫ్లోటింగ్ షార్ట్‌కట్‌తో మీ దృష్టిని ఈ కంటెంట్‌పై నిలిపి ఉంచుతుంది."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ఇటీవల బబుల్‌లు ఏవీ లేవు"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ఇటీవలి బబుల్‌లు, తీసివేసిన బబుల్‌లు ఇక్కడ కనిపిస్తాయి."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ఈ నోటిఫికేషన్‌లను సవరించడం వీలుపడదు."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ఈ నోటిఫికేషన్‌ల సమూహాన్ని ఇక్కడ కాన్ఫిగర్ చేయలేము"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ప్రాక్సీ చేయబడిన నోటిఫికేషన్"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"దిగువ ఎడమవైపునకు తరలించు"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"దిగవు కుడివైపునకు జరుపు"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"విస్మరించు"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"సిస్టమ్ నావిగేషన్ అప్‌డేట్ చేయబడింది. మార్పులు చేయడానికి, సెట్టింగ్‌లకు వెళ్లండి."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"సిస్టమ్ నావిగేషన్‌ను అప్‌డేట్ చేయడానికి సెట్టింగ్‌లకు వెళ్లండి"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"స్టాండ్‌బై"</string>
@@ -983,16 +994,12 @@
     <string name="quick_controls_title" msgid="525285759614231333">"త్వరిత నియంత్రణలు"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"నియంత్రణలను జోడించండి"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"దాని నుండి నియంత్రణలను జోడించేలా ఒక యాప్‌ను ఎంచుకోండి"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ప్రస్తుత ఇష్టాలు.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> ప్రస్తుత ఇష్టం.</item>
-    </plurals>
+    <!-- no translation found for controls_number_of_favorites (1057347832073807380) -->
     <string name="controls_favorite_default_title" msgid="967742178688938137">"నియంత్రణలు"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"త్వరిత యాక్సెస్ కోసం నియంత్రణలను ఎంచుకోండి"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ఇష్టమైనవి"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"అన్ని"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"అన్ని నియంత్రణలు గల జాబితాను లోడ్ చేయలేకపోయాము."</string>
+    <!-- no translation found for controls_favorite_other_zone_header (9089613266575525252) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index fa22de8..d45b7dc 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"อนุญาต"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"ไม่อนุญาตให้แก้ไขข้อบกพร่องผ่าน USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"ผู้ใช้ที่ลงชื่อเข้าใช้อุปกรณ์อยู่ในขณะนี้ไม่สามารถเปิดการแก้ไขข้อบกพร่องผ่าน USB ได้ หากต้องการใช้ฟีเจอร์นี้ ให้เปลี่ยนไปเป็นผู้ใช้หลัก"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"อนุญาตให้แก้ไขข้อบกพร่องผ่าน Wi-Fi ในเครือข่ายนี้ใช่ไหม"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"ชื่อเครือข่าย (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nที่อยู่ Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"อนุญาตเสมอในเครือข่ายนี้"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"อนุญาต"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"ไม่อนุญาตให้แก้ไขข้อบกพร่องผ่าน Wi-Fi"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"ผู้ใช้ที่ลงชื่อเข้าใช้อุปกรณ์อยู่ในขณะนี้เปิดการแก้ไขข้อบกพร่องผ่าน Wi-Fi ไม่ได้ โปรดเปลี่ยนไปเป็นผู้ใช้หลักเพื่อใช้ฟีเจอร์นี้"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"พอร์ต USB ถูกปิดใช้"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"พอร์ต USB ปิดใช้อยู่และจะไม่ตรวจหาอุปกรณ์เสริมใดๆ เพื่อปกป้องอุปกรณ์จากของเหลวและฝุ่นละออง \n\nคุณจะได้รับแจ้งเมื่อใช้พอร์ต USB ได้อีกครั้ง"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"เปิดใช้พอร์ต USB แล้วเพื่อตรวจหาที่ชาร์จและอุปกรณ์เสริม"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"จัดการ"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"ประวัติ"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"การแจ้งเตือนแบบไม่มีเสียง"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"มีการแจ้งเตือน"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"การสนทนา"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"ล้างการแจ้งเตือนแบบไม่มีเสียงทั้งหมด"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"หยุดการแจ้งเตือนชั่วคราวโดย \"ห้ามรบกวน\""</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"ช่วยรักษาสมาธิของคุณด้วยการไม่ส่งเสียงหรือสั่น"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ดึงความสนใจของคุณด้วยเสียงและการสั่น"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ดึงดูดความสนใจของคุณไว้เสมอด้วยทางลัดแบบลอยที่มายังเนื้อหานี้"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ไม่มีบับเบิลเมื่อเร็วๆ นี้"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"บับเบิลที่แสดงและที่ปิดไปเมื่อเร็วๆ นี้จะปรากฏที่นี่"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"แก้ไขการแจ้งเตือนเหล่านี้ไม่ได้"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"การแจ้งเตือนกลุ่มนี้กำหนดค่าที่นี่ไม่ได้"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"การแจ้งเตือนที่ผ่านพร็อกซี"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ย้ายไปด้านซ้ายล่าง"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ย้ายไปด้านขาวล่าง"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ปิด"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"อัปเดตการไปยังส่วนต่างๆ ของระบบแล้ว หากต้องการเปลี่ยนแปลง ให้ไปที่การตั้งค่า"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ไปที่การตั้งค่าเพื่ออัปเดตการไปยังส่วนต่างๆ ของระบบ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"สแตนด์บาย"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"การควบคุมอย่างรวดเร็ว"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"เพิ่มการควบคุม"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"เลือกแอปเพื่อเพิ่มการควบคุม"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">รายการโปรดในปัจจุบัน <xliff:g id="NUMBER_1">%s</xliff:g> รายการ</item>
-      <item quantity="one">รายการโปรดในปัจจุบัน <xliff:g id="NUMBER_0">%s</xliff:g> รายการ</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">เพิ่มตัวควบคุม <xliff:g id="NUMBER_1">%s</xliff:g> ตัวแล้ว</item>
+      <item quantity="one">เพิ่มตัวควบคุม <xliff:g id="NUMBER_0">%s</xliff:g> ตัวแล้ว</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"การควบคุม"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"เลือกการควบคุมสำหรับการเข้าถึงด่วน"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"รายการโปรด"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ทั้งหมด"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"โหลดรายการตัวควบคุมทั้งหมดไม่ได้"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"อื่นๆ"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 016c4be..7cecf13 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Payagan"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Hindi pinapayagan ang pagde-debug sa pamamagitan ng USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Hindi mao-on ng user na kasalukuyang naka-sign in sa device na ito ang pag-debug ng USB. Upang magamit ang feature na ito, lumipat sa pangunahing user."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Payagan ang wireless na pag-debug sa network na ito?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Pangalan ng Network (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nAddress ng Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Palaging payagan sa network na ito"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Payagan"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Hindi pinapayagan ang wireless na pag-debug"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Hindi mao-on ng user na kasalukuyang naka-sign in sa device na ito ang wireless na pag-debug. Para magamit ang feature na ito, lumipat sa pangunahing user."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Na-disable ang USB port"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Para protektahan ang iyong device sa likido o dumi, na-disable ang USB port at hindi ito makaka-detect ng anumang accessory.\n\nAabisuhan ka kapag ayos nang gamitin ulit ang USB port."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Na-enable ang USB port para ma-detect ang mga charger at accessory"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Pamahalaan"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"History"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Mga silent na notification"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Mga nag-aalertong notification"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Mga Pag-uusap"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"I-clear ang lahat ng silent na notification"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Mga notification na na-pause ng Huwag Istorbohin"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Nakakatulong sa iyong tumuon nang walang tunog o pag-vibrate."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Kinukuha ang iyong atensyon sa pamamagitan ng tunog o pag-vibrate."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Pinapanatili ang iyong atensyon sa pamamagitan ng lumulutang na shortcut sa content na ito."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Walang kamakailang bubble"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Lalabas dito ang kamakailang bubbles at na-dismiss na bubbles."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hindi puwedeng baguhin ang mga notification na ito."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Hindi mako-configure dito ang pangkat na ito ng mga notification"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Na-proxy na notification"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Ilipat sa kaliwa sa ibaba"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Ilipat sa kanan sa ibaba"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"I-dismiss"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Na-update na ang pag-navigate ng system. Para gumawa ng mga pagbabago, pumunta sa Mga Setting."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Pumunta sa Mga Setting para i-update ang pag-navigate sa system"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Naka-standby"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Mga Mabilisang Kontrol"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Magdagdag ng Mga Kontrol"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Pumili ng app kung saan magdaragdag ng mga kontrol"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> kasalukuyang paborito.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> na kasalukuyang paborito.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> kontrol ang naidagdag.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> na kontrol ang naidagdag.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Mga Kontrol"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pumili ng mga kontrol para sa mabilis na pag-access"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Paborito"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Lahat"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Hindi ma-load ang listahan ng lahat ng control."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Iba pa"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index de79fc4..150363e 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"İzin ver"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB hata ayıklama işlevine izin verilmiyor"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Bu cihazda geçerli olarak oturum açmış olan kullanıcı, USB hata ayıklama özelliğini açamaz. Bu özelliği kullanmak için birincil kullanıcıya geçin."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Bu ağda kablosuz hata ayıklamaya izin verilsin mi?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Ağ Adı (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nKablosuz Adresi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Bu ağda her zaman izin ver"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"İzin ver"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Kablosuz hata ayıklamaya izin verilmiyor"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Bu cihazda geçerli olarak oturum açmış olan kullanıcı, kablosuz hata ayıklama özelliğini açamaz. Bu özelliği kullanmak için birincil kullanıcıya geçin."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB bağlantı noktası devre dışı bırakıldı"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Cihazınızı sıvılardan veya tozlardan korumak için USB bağlantı noktası devre dışı bırakıldı ve aksesuarları algılamayacak.\n\nUSB bağlantı noktasını tekrar sorunsuz kullanabileceğiniz zaman bilgilendirileceksiniz."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB bağlantı noktası, şarj cihazlarını ve aksesuarları algılamak üzere etkinleştirildi"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Yönet"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Geçmiş"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Sessiz bildirimler"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Uyaran bildirimler"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Görüşmeler"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Sessiz bildirimlerin tümünü temizle"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Bildirimler, Rahatsız Etmeyin özelliği tarafından duraklatıldı"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ses veya titreşim olmadan odaklanmanıza yardımcı olur."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ses veya titreşimle dikkatinizi çeker."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Kayan kısayolla dikkatinizi bu içerik üzerinde tutar."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Son kapatılan baloncuk yok"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Son baloncuklar ve kapattığınız baloncuklar burada görünür."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirimler değiştirilemez."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildirim grubu burada yapılandırılamaz"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxy uygulanan bildirim"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Sol alta taşı"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Sağ alta taşı"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Kapat"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistemde gezinme yöntemi güncellendi. Değişiklik yapmak için Ayarlar\'a gidin."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistemde gezinme yöntemini güncellemek için Ayarlar\'a gidin"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Beklemeye alınıyor"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Hızlı Kontroller"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Kontrol Ekle"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Hangi uygulamadan kontrol ekleneceğini seçin"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> mevcut favori.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> mevcut favori.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> kontrol eklendi.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> kontrol eklendi.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroller"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Hızlı erişim için kontrolleri seçin"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriler"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tümü"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Tüm kontrollerin listesi yüklenemedi."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Diğer"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 0d73da3..347532d 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Дозволити"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Ви не можете вмикати налагодження USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Користувач поточного облікового запису не може вмикати налагодження USB. Щоб увімкнути цю функцію, увійдіть в обліковий запис основного користувача."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Дозволити бездротове налагодження в цій мережі?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Ім\'я мережі (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nАдреса Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Завжди дозволяти в цій мережі"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Дозволити"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Бездротове налагодження заборонено"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Користувач поточного облікового запису не може вмикати бездротове налагодження. Щоб активувати цю функцію, увійдіть в обліковий запис основного користувача."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB-порт вимкнено"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Щоб захистити ваш пристрій від рідини та сміття, USB-порт вимкнено. Він не виявлятиме жодних аксесуарів.\n\nКоли USB-порт можна буде використовувати, ви отримаєте сповіщення."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Порт USB виявлятиме зарядні пристрої та аксесуари"</string>
@@ -494,6 +500,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Керувати"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Історія"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Беззвучні сповіщення"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Сповіщення зі звуком чи вібрацією"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Чати"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Очистити всі беззвучні сповіщення"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Режим \"Не турбувати\" призупинив сповіщення"</string>
@@ -692,10 +699,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Не відволікає увагу звуковим сигналом або вібрацією."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Привертає увагу звуковим сигналом або вібрацією."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Привертає увагу до контенту плаваючим ярликом."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Немає нещодавніх спливаючих сповіщень"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Тут з\'являтимуться нещодавні й відхилені спливаючі сповіщення."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ці сповіщення не можна змінити."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Цю групу сповіщень не можна налаштувати тут"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Проксі-сповіщення"</string>
@@ -984,6 +989,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Перемістити ліворуч униз"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Перемістити праворуч униз"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Закрити"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навігацію в системі оновлено. Щоб внести зміни, перейдіть у налаштування."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Перейдіть у налаштування, щоб оновити навігацію в системі"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим очікування"</string>
@@ -993,18 +1004,16 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Елементи швидкого керування"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Додайте елементи керування"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"З якого додатка потрібно вибрати елементи керування?"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one">Вибрано <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
-      <item quantity="few">Вибрано <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
-      <item quantity="many">Вибрано <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
-      <item quantity="other">Вибрано <xliff:g id="NUMBER_1">%s</xliff:g>.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one">Додано <xliff:g id="NUMBER_1">%s</xliff:g> елемент керування.</item>
+      <item quantity="few">Додано <xliff:g id="NUMBER_1">%s</xliff:g> елементи керування.</item>
+      <item quantity="many">Додано <xliff:g id="NUMBER_1">%s</xliff:g> елементів керування.</item>
+      <item quantity="other">Додано <xliff:g id="NUMBER_1">%s</xliff:g> елемента керування.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Елементи керування"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Виберіть елементи керування для швидкого доступу"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Вибране"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Усі"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не вдалося завантажити список усіх елементів керування."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Інше"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index 99be4bf..a1523bf 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"اجازت دیں"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"‏USB ڈیبگ کرنے کی اجازت نہیں ہے"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"‏اس آلہ پر فی الحال سائن ان کردہ صارف USB ڈیبگنگ آن نہیں کر سکتا۔ اس خصوصیت کا استعمال کرنے کیلئے، ابتدائی صارف پر سوئچ کریں۔"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"اس نیٹ ورک پر وائرلیس ڈیبگنگ کرنے کی اجازت دیں؟"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"‏نیٹ ورک کا نام (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\n‏ Wi-Fi کا پتہ (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"اس نیٹ ورک پر ہمیشہ اجازت دیں"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"اجازت دیں"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"وائرلیس ڈیبگنگ کرنے کی اجازت نہیں ہے"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"اس آلہ پر فی الحال سائن ان کردہ صارف وائرلیس ڈیبگنگ آن نہیں کر سکتا۔ اس خصوصیت کا استعمال کرنے کے ليے، ابتدائی صارف پر سوئچ کریں۔"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"‏USB پورٹ غیر فعال ہو گیا"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"‏آپ کے آلے کی سیال یا دھول سے حفاظت کرنے کے لیے، USB پورٹ کو غیر فعال کر دیا گیا ہے اور یہ کسی لوازم کا پتہ نہیں لگا پائے گا۔\n\nUSB پورٹ کا دوبارہ استعمال کرنا ٹھیک ہونے پر آپ کو مطلع کیا جائے گا۔"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"‏چارجرز اور لوازمات کا پتا لگانے کے لیے USB پورٹ فعال ہے"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"نظم کریں"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"سرگزشت"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"اطلاعات خاموش کریں"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"متنبہ کرنے کی اطلاعات"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"گفتگوئیں"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"سبھی خاموش اطلاعات کو صاف کریں"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"\'ڈسٹرب نہ کریں\' کے ذریعے اطلاعات کو موقوف کیا گیا"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"بغیر آواز یا وائبریشن کے آپ کو فوکس کرنے میں مدد کرتا ہے۔"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"آواز اور وائبریشن کے ذریعے آپ کی توجہ حاصل کرتا ہے۔"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"اس مواد کے فلوٹنگ شارٹ کٹ کے ساتھ آپ کی توجہ دیتی ہے۔"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"کوئی حالیہ بلبلہ نہیں"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"حالیہ بلبلے اور برخاست بلبلے یہاں ظاہر ہوں گے۔"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ان اطلاعات کی ترمیم نہیں کی جا سکتی۔"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"اطلاعات کے اس گروپ کو یہاں کنفیگر نہیں کیا جا سکتا"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"پراکسی اطلاع"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"نیچے بائیں جانب لے جائیں"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"نیچے دائیں جانب لے جائیں"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"برخاست کریں"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"سسٹم نیویگیشن اپ ڈیٹ کیا گیا۔ تبدیلیاں کرنے کے لیے، ترتیبات پر جائیں۔"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"سسٹم نیویگیشن اپ ڈیٹ کرنے کے لیے ترتیبات پر جائیں"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"اسٹینڈ بائی"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"فوری کنٹرولز"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"کنٹرولز شامل کریں"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"ایک ایسی ایپ کا انتخاب جس سے کنٹرول شامل کرنا چاہتے ہیں"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> موجودہ پسندیدہ ہیں۔</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> موجودہ پسندیدہ ہے۔</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> کنٹرولز شامل کر دیے گئے۔</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> کنٹرول شامل کر دیا گیا۔</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"کنٹرولز"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"فوری رسائی کیلئے کنٹرولز کا انتخاب کریں"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"پسندیدگیاں"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"تمام"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"تمام کنٹرولز کی فہرست لوڈ نہیں کی جا سکی۔"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"دیگر"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 27a3f08..7192a8e 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Ruxsat berish"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"USB orqali nosozliklarni tuzatishga ruxsat berilmagan"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Ayni paytda ushbu qurilmaga o‘z hisobi bilan kirgan foydalanuvchi USB orqali nosozliklarni aniqlash funksiyasini yoqa olmaydi. Bu funksiyadan foydalanish uchun asosiy foydalanuvchi profiliga o‘ting."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Bu tarmoqdagi nosozliklar aniqlanishiga ruxsat berilsinmi?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Tarmoq nomi (SSID):\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi Manzil (BSSID):\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Bu tarmoqda doim ruxsat etilsin"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Ruxsat"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Simsiz tarmoqdagi nosozliklar aniqlanishiga ruxsat berilmagan"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Ayni paytda ushbu qurilmaga oʻz hisobi bilan kirgan foydalanuvchi simsiz tarmoqdagi nosozliklarni aniqlanish funksiyasini yoqa olmaydi. Bu funksiyadan foydalanish uchun asosiy foydalanuvchi profiliga oʻting."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB port faolsizlashtirildi"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Qurilmangizni suyuqlik va turli parchalardan himoya qilish uchun USB port faolsizlashtiriladi va hech qanday aksessuarni aniqlay olmaydi.\n\nUSB portdan xavfsiz foydalanish mumkin boʻlganda, sizga xabar beriladi."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Quvvatlash moslamalari va aksessuarlarni aniqlash uchun USB port yoqildi"</string>
@@ -83,7 +89,7 @@
     <string name="screenrecord_name" msgid="2596401223859996572">"Ekranni yozib olish vositasi"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ekrandan yozib olish seansi uchun joriy bildirishnoma"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Yozib olish boshlansinmi?"</string>
-    <string name="screenrecord_description" msgid="1123231719680353736">"Yozib olishda Android tizimi ekraningizda koʻringan yoki qurilmangizda ijro etilgan maxfiy maʼlumotlari ham yozib olinishi mumkin. Bunga parollar, toʻlovga oid axborot, suratlar, xabarlar va audio kiradi."</string>
+    <string name="screenrecord_description" msgid="1123231719680353736">"Yozib olishda Android tizimi ekraningizda koʻringan yoki qurilmangizda ijro etilgan maxfiy axborotni ham yozib olishi mumkin. Bunga parollar, toʻlovga oid axborot, suratlar, xabarlar va audio kiradi."</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Audio yozib olish"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Qurilmadagi audio"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Qurilmangizdagi musiqa, chaqiruvlar va ringtonlar kabi ovozlar"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Boshqarish"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Tarix"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Sokin bildirishnomalar"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Bildirishnomalar bildirilishi"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Suhbatlar"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Barcha sokin bildirishnomalarni tozalash"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Bezovta qilinmasin rejimida bildirishnomalar pauza qilingan"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Bildirishnomalar tovush va tebranish bilan keladi."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Bu kontentni ochuvchi erkin yorliq diqqatingizda boʻladi."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Avvalgi pufakchalar topilmadi"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"Avval yopilgan pufakchalar shu yerda chiqadi."</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Bu yerda oxirgi va yopilgan qalqib chiquvchi bildirishnomalar chiqadi."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirishnomalarni tahrirlash imkonsiz."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ushbu bildirishnomalar guruhi bu yerda sozlanmaydi"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Ishonchli bildirishnoma"</string>
@@ -972,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Quyi chapga surish"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Quyi oʻngga surish"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Yopish"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Tizim navigatsiyasi yangilandi. Buni Sozlamalar orqali oʻzgartirishingiz mumkin."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Tizim navigatsiyasini yangilash uchun Sozlamalarni oching"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Kutib turing"</string>
@@ -981,13 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Tezkor sozlamalar"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Elementlar kiritish"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Boshqaruv elementlariga kiritish uchun ilovani tanlang"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">Saralanganlarda <xliff:g id="NUMBER_1">%s</xliff:g> ta element bor.</item>
-      <item quantity="one">Saralanganlarda <xliff:g id="NUMBER_0">%s</xliff:g> ta element bor.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ta nazorat kiritilgan.</item>
+      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> ta nazorat kiritilgan.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Boshqaruv elementlari"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Tezkor kirish uchun boshqaruv elementlarini tanlang"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Saralanganlar"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"Hammasi"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Boshqaruv elementlarining barchasi yuklanmadi."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Boshqa"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 46775ef..a9dd01d 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Cho phép"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Không cho phép chế độ gỡ lỗi qua USB"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Người dùng hiện đã đăng nhập vào thiết bị này không thể bật tính năng gỡ lỗi USB. Để sử dụng tính năng này, hãy chuyển sang người dùng chính."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Cho phép gỡ lỗi không dây trên mạng này?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Tên mạng (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nĐịa chỉ Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Luôn cho phép trên mạng này"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Cho phép"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Không cho phép gỡ lỗi không dây"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Người dùng hiện đã đăng nhập vào thiết bị này không thể bật tính năng gỡ lỗi không dây. Để sử dụng tính năng này, hãy chuyển sang người dùng chính."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Đã tắt cổng USB"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Để bảo vệ thiết bị của bạn khỏi chất lỏng hay mảnh vỡ, cổng USB sẽ tắt và không phát hiện được bất kỳ phụ kiện nào.\n\nBạn sẽ nhận được thông báo khi có thể sử dụng lại cổng USB."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Đã bật cổng USB để phát hiện bộ sạc và phụ kiện"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Quản lý"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Lịch sử"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Thông báo im lặng"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Thông báo bằng chế độ rung hoặc âm thanh"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Cuộc trò chuyện"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Xóa tất cả thông báo im lặng"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Chế độ Không làm phiền đã tạm dừng thông báo"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Giúp bạn tập trung bằng cách tắt tiếng hoặc không rung."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Thu hút sự chú ý của bạn bằng cách bật tiếng hoặc rung."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Luôn chú ý vào nội dung này bằng phím tắt nổi."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Không có bong bóng nào gần đây"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Bong bóng đã tắt và bong bóng gần đây sẽ xuất hiện ở đây."</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_multichannel_desc" msgid="7414593090056236179">"Không thể định cấu hình nhóm thông báo này tại đây"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Thông báo đã xử lý qua máy chủ proxy"</string>
@@ -716,7 +721,7 @@
     <string name="notification_conversation_unfavorite" msgid="181383708304763807">"Không phải là cuộc trò chuyện quan trọng"</string>
     <string name="notification_conversation_mute" msgid="268951550222925548">"Bị tắt tiếng"</string>
     <string name="notification_conversation_unmute" msgid="2692255619510896710">"Thông báo"</string>
-    <string name="notification_conversation_bubble" msgid="2242180995373949022">"Hiển thị dưới dạng bong bóng"</string>
+    <string name="notification_conversation_bubble" msgid="2242180995373949022">"Hiển thị bong bóng"</string>
     <string name="notification_conversation_unbubble" msgid="6908427185031099868">"Xóa bong bóng"</string>
     <string name="notification_conversation_home_screen" msgid="8347136037958438935">"Thêm vào màn hình chính"</string>
     <string name="notification_menu_accessibility" msgid="8984166825879886773">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Chuyển tới dưới cùng bên trái"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Chuyển tới dưới cùng bên phải"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Loại bỏ"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Đã cập nhật chế độ di chuyển trên hệ thống. Để thay đổi, hãy chuyển đến phần Cài đặt."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Chuyển đến phần Cài đặt để cập nhật chế độ di chuyển trên hệ thống"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Chế độ chờ"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Điều khiển nhanh"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Thêm các tùy chọn điều khiển"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Chọn một ứng dụng để thêm các tùy chọn điều khiển"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> tùy chọn điều khiển yêu thích hiện tại.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%s</xliff:g> tùy chọn điều khiển yêu thích hiện tại.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">Đã thêm <xliff:g id="NUMBER_1">%s</xliff:g> tùy chọn điều khiển.</item>
+      <item quantity="one">Đã thêm <xliff:g id="NUMBER_0">%s</xliff:g> tùy chọn điều khiển.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Các tùy chọn điều khiển"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Chọn các tùy chọn điều khiển để truy cập nhanh"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Tiêu đề yêu thích"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tất cả"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Không thể tải danh sách tất cả tùy chọn điều khiển."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Khác"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index ff6ecfd..e80a624 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"允许"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"不允许使用 USB 调试功能"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"目前已登录此设备的用户无法开启 USB 调试功能。要使用此功能,请切换为主要用户的帐号。"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"要在此网络上允许无线调试吗?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"网络名称 (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWLAN 地址 (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"在此网络上始终允许"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"允许"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"不允许使用无线调试功能"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"目前已登录此设备的用户无法开启无线调试功能。要使用此功能,请切换为主要用户的帐号。"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB 端口已停用"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"为避免液体或碎屑导致您的设备受损,系统已停用 USB 端口,因此目前无法检测任何配件。\n\n系统会在重新允许使用 USB 端口时通知您。"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB 端口已启用,可检测充电器和配件"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"管理"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"历史记录"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"无声通知"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"提醒通知"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"对话"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"清除所有无声通知"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"勿扰模式暂停的通知"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"不会发出提示音或振动,可帮助您保持专注。"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"通过提示音或振动吸引您的注意。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"通过可链接到这项内容的浮动快捷方式吸引您的注意。"</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"最近没有气泡"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"此处会显示最近的气泡和已关闭的气泡。"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"无法修改这些通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"您无法在此处配置这组通知"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"代理通知"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"移至左下角"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"移至右下角"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"关闭"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系统导航已更新。要进行更改,请转到“设置”。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"转到“设置”即可更新系统导航"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待机"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"快速控制"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"添加控件"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"选择要添加的控件来自哪个应用"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">当前有 <xliff:g id="NUMBER_1">%s</xliff:g> 项收藏。</item>
-      <item quantity="one">当前有 <xliff:g id="NUMBER_0">%s</xliff:g> 项收藏。</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">已添加 <xliff:g id="NUMBER_1">%s</xliff:g> 个控件。</item>
+      <item quantity="one">已添加 <xliff:g id="NUMBER_0">%s</xliff:g> 个控件。</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"控件"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"选择用于快速访问的控件"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"收藏"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"全部"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"无法加载所有控件的列表。"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"其他"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 3a8c9fd..4787b9b 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"允許"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"不允許 USB 偵錯"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"目前登入此裝置的使用者無法啟用 USB 偵錯功能。如要使用此功能,請切換至主要使用者。"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"要在此網絡上允許無線偵錯功能嗎?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"網絡名稱 (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi 地址 (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"在此網絡上永遠允許"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"允許"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"不允許無線偵錯功能"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"目前登入此裝置的使用者無法啟用無線偵錯功能。如要使用此功能,請切換至主要使用者。"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"已停用 USB 連接埠"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"為了保護您的裝置免受液體或碎片損害,USB 連接埠已停用,因此不會偵測到任何配件。\n\nUSB 連接埠可安全使用時,您會收到通知。"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"已啟用 USB 連接埠以偵測充電器和配件"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"管理"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"記錄"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"靜音通知"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"提醒通知"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"對話"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"清除所有靜音通知"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"「請勿騷擾」模式已將通知暫停"</string>
@@ -686,8 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"助您保持專注,不會發出聲音或震動。"</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"發出聲音或震動來吸引您的注意。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"為此內容建立浮動捷徑以保持注意力。"</string>
-    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"最近沒有任何泡泡"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"最近關閉的泡泡會顯示在這裡,方便你輕鬆存取。"</string>
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"沒有最近曾使用的小視窗"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"最近曾使用和關閉的小視窗會在這裡顯示。"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在此設定這組通知"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"代理通知"</string>
@@ -972,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"移去左下角"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"移去右下角"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"關閉"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系統導覽已更新。如需變更,請前往「設定」。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"前往「設定」更新系統導覽"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
@@ -981,13 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"快速控制介面"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"新增控制項"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"選擇要新增控制項的應用程式"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">目前有 <xliff:g id="NUMBER_1">%s</xliff:g> 個收藏。</item>
-      <item quantity="one">目前有 <xliff:g id="NUMBER_0">%s</xliff:g> 個收藏。</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">已新增 <xliff:g id="NUMBER_1">%s</xliff:g> 個控制項。</item>
+      <item quantity="one">已新增 <xliff:g id="NUMBER_0">%s</xliff:g> 個控制項。</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"控制項"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"選擇控制項以快速存取"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"常用控制項"</string>
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"常用"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"全部"</string>
-    <string name="controls_favorite_load_error" msgid="2533215155804455348">"無法載入完整的控制項清單。"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"無法載入完整控制項清單。"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"其他"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 1974b1d..3158a30 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"允許"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"無權使用 USB 偵錯功能"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"目前登入這個裝置的使用者無法啟用 USB 偵錯功能。如要使用這項功能,請切換到主要使用者。"</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"要允許透過這個網路執行無線偵錯嗎?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"網路名稱 (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nWi‑Fi 位址 (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"一律允許透過這個網路執行"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"允許"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"不允許使用無線偵錯功能"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"目前登入這部裝置的使用者無法開啟無線偵錯功能。如要使用這項功能,請切換到主要使用者。"</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"USB 連接埠已停用"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"為了避免液體或灰塵導致你的裝置受損,系統已停用 USB 連接埠,因此目前無法偵測任何配件。\n\n系統會在可繼續使用 USB 連接埠時通知你。"</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"USB 通訊埠已啟用,可偵測充電器和配件"</string>
@@ -89,7 +95,7 @@
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"裝置播放的音效,例如音樂、通話和鈴聲"</string>
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"麥克風"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"裝置音訊和麥克風"</string>
-    <string name="screenrecord_start" msgid="330991441575775004">"開始錄製"</string>
+    <string name="screenrecord_start" msgid="330991441575775004">"開始"</string>
     <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"正在錄製螢幕畫面"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"錄製螢幕畫面和音訊"</string>
     <string name="screenrecord_taps_label" msgid="1595690528298857649">"顯示輕觸螢幕的位置"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"管理"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"記錄"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"靜音通知"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"快訊通知"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"對話"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"清除所有靜音通知"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"「零打擾」模式已將通知設為暫停"</string>
@@ -687,7 +694,7 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"發出音效或震動吸引你的注意力。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"利用浮動式捷徑快速存取這項內容。"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"最近沒有任何泡泡"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="3106801169793396894">"最近關閉的泡泡會顯示在這裡,方便你輕鬆存取。"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"最近的泡泡和已關閉的泡泡會顯示在這裡。"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在這裡設定這個通知群組"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"經過 Proxy 處理的通知"</string>
@@ -972,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"移至左下方"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"移至右下方"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"關閉"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系統操作機制已更新。如要進行變更,請前往「設定」。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"請前往「設定」更新系統操作機制"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
@@ -981,13 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"快速控制項"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"新增控制項"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"選擇要新增控制項的來源應用程式"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="other">目前有 <xliff:g id="NUMBER_1">%s</xliff:g> 個常用控制項。</item>
-      <item quantity="one">目前有 <xliff:g id="NUMBER_0">%s</xliff:g> 個常用控制項。</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="other">已新增 <xliff:g id="NUMBER_1">%s</xliff:g> 個控制項。</item>
+      <item quantity="one">已新增 <xliff:g id="NUMBER_0">%s</xliff:g> 個控制項。</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"控制項"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"選擇要快速存取的控制項"</string>
     <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"常用控制項"</string>
     <string name="controls_favorite_header_all" msgid="7507855973418969992">"全部"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"無法載入完整的控制項清單。"</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"其他"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 9782aa2..e94a8ab 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -63,6 +63,12 @@
     <string name="usb_debugging_allow" msgid="1722643858015321328">"Vumela"</string>
     <string name="usb_debugging_secondary_user_title" msgid="7843050591380107998">"Ukususa iphutha kwe-USB akuvunyelwe"</string>
     <string name="usb_debugging_secondary_user_message" msgid="3740347841470403244">"Umsebenzisi manje ongene ngemvume kule divayisi entsha akakwazi ukuvula ukulungisa amaphutha ku-USB. Ukuze usebenzise lesi sici, shintshela kumsebenzisi oyinhloko."</string>
+    <string name="wifi_debugging_title" msgid="7300007687492186076">"Vumela ukulungisa amaphutha okungenantambo kule nethiwekhi?"</string>
+    <string name="wifi_debugging_message" msgid="5461204211731802995">"Igama Lenethiwekhi (SSID)\n<xliff:g id="SSID_0">%1$s</xliff:g>\n\nIkheli le-Wi‑Fi (BSSID)\n<xliff:g id="BSSID_1">%2$s</xliff:g>"</string>
+    <string name="wifi_debugging_always" msgid="2968383799517975155">"Njalo nje vumela le nethiwekhi"</string>
+    <string name="wifi_debugging_allow" msgid="4573224609684957886">"Vumela"</string>
+    <string name="wifi_debugging_secondary_user_title" msgid="2493201475880517725">"Ukulungisa amaphutha okungenantambo akuvunyelwe"</string>
+    <string name="wifi_debugging_secondary_user_message" msgid="4492383073970079751">"Umsebenzisi manje ongene ngemvume kule divayisi entsha akakwazi ukuvula ukulungisa amaphutha okungenantambo. Ukuze usebenzise lesi sici, shintshela kumsebenzisi oyinhloko."</string>
     <string name="usb_contaminant_title" msgid="894052515034594113">"Imbobo ye-USB ikhutshaziwe"</string>
     <string name="usb_contaminant_message" msgid="7730476585174719805">"Ukuze kuvikelwe idivayisi yakho kusukela kuketshezi noma ama-debris, imbobo ye-USB iyakhutshazwa futhi ngeke ize ithole noma iziphi izisetshenziswa.\n\nUzokwaziswa uma sekulungile ukusebenzisa imbobo ye-USB futhi."</string>
     <string name="usb_port_enabled" msgid="531823867664717018">"Imbobo ye-USB inikwe amandla ukuze ithole amashaja nezisetshenziswa"</string>
@@ -488,6 +494,7 @@
     <string name="manage_notifications_text" msgid="6885645344647733116">"Phatha"</string>
     <string name="manage_notifications_history_text" msgid="57055985396576230">"Umlando"</string>
     <string name="notification_section_header_gentle" msgid="3044910806569985386">"Thulisa izaziso"</string>
+    <string name="notification_section_header_alerting" msgid="3168140660646863240">"Izaziso zokuxwayisa"</string>
     <string name="notification_section_header_conversations" msgid="821834744538345661">"Izingxoxo"</string>
     <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Sula zonke izaziso ezithulile"</string>
     <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Izaziso zimiswe okwesikhashana ukungaphazamisi"</string>
@@ -686,10 +693,8 @@
     <string name="notification_channel_summary_low" msgid="7300447764759926720">"Ikusiza ukuthi ugxile ngaphandle komsindo noma ukudlidliza."</string>
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ithola ukunaka kwakho ngomsindo noma ukudlidliza."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Igcina ukunaka kwakho ngesinqamuleli esintantayo kulokhu okuqukethwe."</string>
-    <!-- no translation found for bubble_overflow_empty_title (3120029421991510842) -->
-    <skip />
-    <!-- no translation found for bubble_overflow_empty_subtitle (3106801169793396894) -->
-    <skip />
+    <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Awekho amabhamuza akamuva"</string>
+    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Amabhamuza akamuva namabhamuza asusiwe azobonakala lapha."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Lezi zaziso azikwazi ukushintshwa."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Leli qembu lezaziso alikwazi ukulungiselelwa lapha"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Isaziso sommeli"</string>
@@ -974,6 +979,12 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Hambisa inkinobho ngakwesokunxele"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Hambisa inkinobho ngakwesokudla"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Cashisa"</string>
+    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Ukuzulazula kwesistimu kubuyekeziwe. Ukuze wenze ushintsho, hamba kokuthi Izilungiselelo."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Hamba kuzilungiselelo ukuze ubuyekeze ukuzulazula kwesistimu"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ilindile"</string>
@@ -983,16 +994,14 @@
     <string name="quick_controls_title" msgid="525285759614231333">"Izilawuli Ezisheshayo"</string>
     <string name="controls_providers_title" msgid="8844124515157926071">"Engeza Izilawuli"</string>
     <string name="controls_providers_subtitle" msgid="8187768950110836569">"Khetha uhlelo lokusebenza ozongeza kulo izilawuli"</string>
-    <plurals name="controls_number_of_favorites" formatted="false" msgid="5867139290551373147">
-      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> izintandokazi zamanje.</item>
-      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> izintandokazi zamanje.</item>
+    <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380">
+      <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> ukulawulwa okwengeziwe.</item>
+      <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> ukulawulwa okwengeziwe.</item>
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Izilawuli"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Khetha izilawuli mayelana nokufinyelela okusheshayo"</string>
-    <!-- no translation found for controls_favorite_header_favorites (3118600046217493471) -->
-    <skip />
-    <!-- no translation found for controls_favorite_header_all (7507855973418969992) -->
-    <skip />
-    <!-- no translation found for controls_favorite_load_error (2533215155804455348) -->
-    <skip />
+    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Izintandokazi"</string>
+    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Konke"</string>
+    <string name="controls_favorite_load_error" msgid="2533215155804455348">"Uhlu lwazo zonke izilawuli alilayishekanga."</string>
+    <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Okunye"</string>
 </resources>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 73e49ce..80c1ac8 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -219,8 +219,10 @@
     <color name="magnification_border_color">#FF9900</color>
 
     <!-- controls -->
-    <color name="control_primary_text">@*android:color/foreground_material_dark</color>
-    <color name="control_secondary_text">@*android:color/dim_foreground_dark</color>
-    <color name="control_default_foreground">@*android:color/foreground_material_dark</color>
-    <color name="control_default_background">@*android:color/background_floating_material_dark</color>
+    <color name="control_primary_text">@color/GM2_grey_100</color>
+    <color name="control_secondary_text">@color/GM2_grey_500</color>
+    <color name="control_default_foreground">@color/GM2_grey_500</color>
+    <color name="control_default_background">@color/GM2_grey_900</color>
+    <color name="control_list_popup_background">@*android:color/background_floating_material_dark</color>
+    <color name="control_spinner_dropdown">@*android:color/foreground_material_dark</color>
 </resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 27ffcee..d160829 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -506,4 +506,21 @@
         <item>@*android:string/status_bar_headset</item>
     </string-array>
 
+    <!-- A path similar to frameworks/base/core/res/res/values/config.xml
+      config_mainBuiltInDisplayCutout that describes a path larger than the exact path of a display
+      cutout. If present as well as config_enableDisplayCutoutProtection is set to true, then
+      SystemUI will draw this "protection path" instead of the display cutout path that is normally
+      used for anti-aliasing.
+
+      This path will only be drawn when the front-facing camera turns on, otherwise the main
+      DisplayCutout path will be rendered
+       -->
+    <string translatable="false" name="config_frontBuiltInDisplayCutoutProtection"></string>
+
+    <!--  ID for the camera that needs extra protection -->
+    <string translatable="false" name="config_protectedCameraId"></string>
+
+    <!--  Flag to turn on the rendering of the above path or not  -->
+    <bool name="config_enableDisplayCutoutProtection">false</bool>
+
 </resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 12b9254..2dc0f5f 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -184,8 +184,8 @@
     <!-- Vertical translation of pulsing notification animations -->
     <dimen name="pulsing_notification_appear_translation">10dp</dimen>
 
-    <!-- The amount the content shifts upwards when transforming into the icon -->
-    <dimen name="notification_icon_transform_content_shift">32dp</dimen>
+    <!-- The amount the content shifts upwards when transforming into the shelf -->
+    <dimen name="shelf_transform_content_shift">32dp</dimen>
 
     <!-- The padding on the bottom of the notifications on the keyguard -->
     <dimen name="keyguard_indication_bottom_padding">12sp</dimen>
@@ -1159,7 +1159,7 @@
     <!-- Extra padding around the dismiss target for bubbles -->
     <dimen name="bubble_dismiss_slop">16dp</dimen>
     <!-- Height of button allowing users to adjust settings for bubbles. -->
-    <dimen name="bubble_settings_size">48dp</dimen>
+    <dimen name="bubble_manage_button_height">48dp</dimen>
     <!-- How far, horizontally, to animate the expanded view over when animating in/out. -->
     <dimen name="bubble_expanded_animate_x_distance">100dp</dimen>
     <!-- How far, vertically, to animate the expanded view over when animating in/out. -->
@@ -1175,16 +1175,22 @@
     <!-- How far offscreen the bubble stack rests. Cuts off padding and part of icon bitmap. -->
     <dimen name="bubble_stack_offscreen">9dp</dimen>
     <!-- How far down the screen the stack starts. -->
-    <dimen name="bubble_stack_starting_offset_y">96dp</dimen>
+    <dimen name="bubble_stack_starting_offset_y">120dp</dimen>
     <!-- Space between the pointer triangle and the bubble expanded view -->
     <dimen name="bubble_pointer_margin">8dp</dimen>
-    <!-- Height of the permission prompt shown with bubbles -->
-    <dimen name="bubble_permission_height">120dp</dimen>
     <!-- Padding applied to the bubble dismiss target. Touches in this padding cause the bubbles to
          snap to the dismiss target. -->
     <dimen name="bubble_dismiss_target_padding_x">40dp</dimen>
     <dimen name="bubble_dismiss_target_padding_y">20dp</dimen>
 
+    <!-- Bubbles user education views -->
+    <dimen name="bubbles_manage_education_width">160dp</dimen>
+    <!-- The inset from the top bound of the manage button to place the user education. -->
+    <dimen name="bubbles_manage_education_top_inset">10dp</dimen>
+    <!-- Size of padding for the user education cling, this should at minimum be larger than
+        individual_bubble_size + some padding. -->
+    <dimen name="bubble_stack_user_education_side_inset">72dp</dimen>
+
     <!-- Size of the RAT type for CellularTile -->
     <dimen name="celltile_rat_type_size">10sp</dimen>
 
@@ -1210,10 +1216,18 @@
     <dimen name="magnifier_up_down_controls_height">40dp</dimen>
 
     <!-- Home Controls -->
+    <dimen name="controls_header_side_margin">32dp</dimen>
+    <dimen name="controls_header_app_icon_size">40dp</dimen>
+    <dimen name="controls_list_side_margin">16dp</dimen>
+    <dimen name="controls_top_margin">44dp</dimen>
+    <dimen name="control_header_text_size">22sp</dimen>
+    <dimen name="control_text_size">14sp</dimen>
     <dimen name="control_spacing">4dp</dimen>
-    <dimen name="control_corner_radius">15dp</dimen>
-    <dimen name="control_height">100dp</dimen>
-    <dimen name="control_padding">15dp</dimen>
+    <dimen name="control_list_divider">1dp</dimen>
+    <dimen name="control_corner_radius">12dp</dimen>
+    <dimen name="control_height">106dp</dimen>
+    <dimen name="control_padding">12dp</dimen>
+    <dimen name="control_padding_adjustment">4dp</dimen>
     <dimen name="control_status_normal">12sp</dimen>
     <dimen name="control_status_expanded">18sp</dimen>
     <dimen name="control_base_item_margin">2dp</dimen>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index ff28b4d..bcf3a26 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -1425,6 +1425,9 @@
     <!-- Indication on the keyguard that appears when the user disables trust agents until the next time they unlock manually. [CHAR LIMIT=NONE] -->
     <string name="keyguard_indication_trust_disabled">Device will stay locked until you manually unlock</string>
 
+    <!-- Indication on the keyguard that appears when trust agents unlocks the device and device is plugged in. [CHAR LIMIT=NONE] -->
+    <string name="keyguard_indication_trust_unlocked_plugged_in"><xliff:g id="keyguard_indication" example="Kept unlocked by TrustAgent">%1$s</xliff:g>\n<xliff:g id="power_indication" example="Charging Slowly">%2$s</xliff:g></string>
+
     <!-- Title of notification educating the user about enabling notifications on the lockscreen. [CHAR LIMIT=40] -->
     <string name="hidden_notifications_title">Get notifications faster</string>
 
@@ -2586,6 +2589,12 @@
     <string name="bubble_accessibility_action_move_bottom_right">Move bottom right</string>
     <!-- Text used for the bubble dismiss area. Bubbles dragged to, or flung towards, this area will go away. [CHAR LIMIT=20] -->
     <string name="bubble_dismiss_text">Dismiss</string>
+    <!-- Title text for the bubbles feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=60]-->
+    <string name="bubbles_user_education_title">Keep chats up front</string>
+    <!-- Descriptive text for the bubble feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=NONE] -->
+    <string name="bubbles_user_education_description">New chats from <xliff:g id="app_name" example="YouTube">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble</string>
+    <!-- Text for the bubble "manage" button feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=80]-->
+    <string name="bubbles_user_education_manage">Tap Manage to turn off bubbles from this app</string>
 
     <!-- Notification content text when the system navigation mode changes as a result of changing the default launcher [CHAR LIMIT=NONE] -->
     <string name="notification_content_system_nav_changed">System navigation updated. To make changes, go to Settings.</string>
@@ -2630,6 +2639,4 @@
     <string name="controls_favorite_load_error">The list of all controls could not be loaded.</string>
     <!-- Controls management controls screen header for Other zone [CHAR LIMIT=60] -->
     <string name="controls_favorite_other_zone_header">Other</string>
-
-
 </resources>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index d9b1452..2eccf58 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -656,18 +656,45 @@
         <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
     </style>
 
+    <style name="Control" />
+
+    <style name="Control.Spinner">
+        <item name="android:textSize">@dimen/control_header_text_size</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:ellipsize">end</item>
+    </style>
+
+    <style name="Control.Spinner.Header">
+        <item name="android:background">@drawable/control_spinner_background</item>
+        <item name="android:textColor">@color/control_primary_text</item>
+    </style>
+
+    <style name="Control.Spinner.Item">
+        <item name="android:textColor">@color/control_secondary_text</item>
+    </style>
+
     <style name="TextAppearance.Control.Status">
-        <item name="android:textSize">12sp</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
+        <item name="android:textSize">@dimen/control_text_size</item>
         <item name="android:textColor">@color/control_primary_text</item>
     </style>
 
     <style name="TextAppearance.Control.Title">
-        <item name="android:textSize">14sp</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
+        <item name="android:textSize">@dimen/control_text_size</item>
+        <item name="android:lineSpacingExtra">6sp</item>
         <item name="android:textColor">@color/control_primary_text</item>
     </style>
     <style name="TextAppearance.Control.Subtitle">
-        <item name="android:textSize">12sp</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
+        <item name="android:textSize">@dimen/control_text_size</item>
         <item name="android:textColor">@color/control_secondary_text</item>
     </style>
-    
+    <style name="Control.ListPopupWindow" parent="@*android:style/Widget.DeviceDefault.ListPopupWindow">
+        <item name="android:overlapAnchor">true</item>
+
+        <!-- used to override dark/light theming -->
+        <item name="*android:colorPopupBackground">@color/control_list_popup_background</item>
+    </style>
 </resources>
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
index 386fe53..4885ade 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
@@ -49,15 +49,6 @@
     public static final String NAV_BAR_MODE_GESTURAL_OVERLAY =
             WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY;
 
-    // Action sent by a system app to switch to gesture nav
-    public static final String ACTION_ENABLE_GESTURE_NAV =
-            "com.android.systemui.ENABLE_GESTURE_NAV";
-    // Action for the intent to receive the result
-    public static final String ACTION_ENABLE_GESTURE_NAV_RESULT =
-            "com.android.systemui.action.ENABLE_GESTURE_NAV_RESULT";
-    // Extra containing the pending intent to receive the result
-    public static final String EXTRA_RESULT_INTENT = "com.android.systemui.EXTRA_RESULT_INTENT";
-
     // Overview is disabled, either because the device is in lock task mode, or because the device
     // policy has disabled the feature
     public static final int SYSUI_STATE_SCREEN_PINNING = 1 << 0;
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceControlCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceControlCompat.java
index cd12141..c2a4af9 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceControlCompat.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceControlCompat.java
@@ -17,11 +17,24 @@
 package com.android.systemui.shared.system;
 
 import android.view.SurfaceControl;
+import android.view.View;
+import android.view.ViewRootImpl;
 
 public class SurfaceControlCompat {
-    SurfaceControl mSurfaceControl;
+    final SurfaceControl mSurfaceControl;
 
     public SurfaceControlCompat(SurfaceControl surfaceControl) {
         mSurfaceControl = surfaceControl;
     }
+
+    public SurfaceControlCompat(View v) {
+        ViewRootImpl viewRootImpl = v.getViewRootImpl();
+        mSurfaceControl = viewRootImpl != null
+                ? viewRootImpl.getSurfaceControl()
+                : null;
+    }
+
+    public boolean isValid() {
+        return mSurfaceControl != null && mSurfaceControl.isValid();
+    }
 }
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestReceiver.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestReceiver.java
new file mode 100644
index 0000000..8809d83
--- /dev/null
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestReceiver.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2020 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.system;
+
+import android.content.Context;
+import android.graphics.PixelFormat;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.WindowlessWindowManager;
+
+/**
+ * A generic receiver that specifically handles SurfaceView request created by {@link
+ * com.android.systemui.shared.system.SurfaceViewRequestUtils}.
+ */
+public class SurfaceViewRequestReceiver {
+
+    private final int mOpacity;
+    private SurfaceControlViewHost mSurfaceControlViewHost;
+
+    public SurfaceViewRequestReceiver() {
+        this(PixelFormat.TRANSPARENT);
+    }
+
+    public SurfaceViewRequestReceiver(int opacity) {
+        mOpacity = opacity;
+    }
+
+    /** Called whenever a surface view request is received. */
+    public void onReceive(Context context, Bundle bundle, View view) {
+        if (mSurfaceControlViewHost != null) {
+            mSurfaceControlViewHost.die();
+        }
+        SurfaceControl surfaceControl = SurfaceViewRequestUtils.getSurfaceControl(bundle);
+        if (surfaceControl != null) {
+            IBinder hostToken = SurfaceViewRequestUtils.getHostToken(bundle);
+
+            WindowlessWindowManager windowlessWindowManager =
+                    new WindowlessWindowManager(context.getResources().getConfiguration(),
+                            surfaceControl, hostToken);
+            mSurfaceControlViewHost = new SurfaceControlViewHost(context,
+                    context.getDisplayNoVerify(), windowlessWindowManager);
+            WindowManager.LayoutParams layoutParams =
+                    new WindowManager.LayoutParams(
+                            surfaceControl.getWidth(),
+                            surfaceControl.getHeight(),
+                            WindowManager.LayoutParams.TYPE_APPLICATION,
+                            0,
+                            mOpacity);
+
+            mSurfaceControlViewHost.addView(view, layoutParams);
+        }
+    }
+}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestUtils.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestUtils.java
new file mode 100644
index 0000000..0cbd541
--- /dev/null
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestUtils.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2020 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.system;
+
+import android.annotation.Nullable;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.view.SurfaceControl;
+import android.view.SurfaceView;
+
+/** Util class that wraps a SurfaceView request into a bundle. */
+public class SurfaceViewRequestUtils {
+    private static final String KEY_HOST_TOKEN = "host_token";
+    private static final String KEY_SURFACE_CONTROL = "surface_control";
+
+    /** Creates a SurfaceView based bundle that stores the input host token and surface control. */
+    public static Bundle createSurfaceBundle(SurfaceView surfaceView) {
+        Bundle bundle = new Bundle();
+        bundle.putBinder(KEY_HOST_TOKEN, surfaceView.getHostToken());
+        bundle.putParcelable(KEY_SURFACE_CONTROL, surfaceView.getSurfaceControl());
+        return bundle;
+    }
+
+    /**
+     * Retrieves the SurfaceControl from an Intent created by
+     * {@link #createSurfaceBundle(SurfaceView)}.
+     **/
+    public static SurfaceControl getSurfaceControl(Bundle bundle) {
+        return bundle.getParcelable(KEY_SURFACE_CONTROL);
+    }
+
+    /**
+     * Retrieves the input token from an Intent created by
+     * {@link #createSurfaceBundle(SurfaceView)}.
+     **/
+    public static @Nullable IBinder getHostToken(Bundle bundle) {
+        return bundle.getBinder(KEY_HOST_TOKEN);
+    }
+
+    private SurfaceViewRequestUtils() {}
+}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java
index 7dcf4b0..2e6b195 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java
@@ -38,6 +38,15 @@
  */
 public class SyncRtSurfaceTransactionApplierCompat {
 
+    public static final int FLAG_ALL = 0xffffffff;
+    public static final int FLAG_ALPHA = 1;
+    public static final int FLAG_MATRIX = 1 << 1;
+    public static final int FLAG_WINDOW_CROP = 1 << 2;
+    public static final int FLAG_LAYER = 1 << 3;
+    public static final int FLAG_CORNER_RADIUS = 1 << 4;
+    public static final int FLAG_BACKGROUND_BLUR_RADIUS = 1 << 5;
+    public static final int FLAG_VISIBILITY = 1 << 6;
+
     private static final int MSG_UPDATE_SEQUENCE_NUMBER = 0;
 
     private final SurfaceControl mBarrierSurfaceControl;
@@ -143,14 +152,31 @@
 
     public static void applyParams(TransactionCompat t,
             SyncRtSurfaceTransactionApplierCompat.SurfaceParams params) {
-        t.setMatrix(params.surface, params.matrix);
-        if (params.windowCrop != null) {
+        if ((params.flags & FLAG_MATRIX) != 0) {
+            t.setMatrix(params.surface, params.matrix);
+        }
+        if ((params.flags & FLAG_WINDOW_CROP) != 0) {
             t.setWindowCrop(params.surface, params.windowCrop);
         }
-        t.setAlpha(params.surface, params.alpha);
-        t.setLayer(params.surface, params.layer);
-        t.setCornerRadius(params.surface, params.cornerRadius);
-        t.show(params.surface);
+        if ((params.flags & FLAG_ALPHA) != 0) {
+            t.setAlpha(params.surface, params.alpha);
+        }
+        if ((params.flags & FLAG_LAYER) != 0) {
+            t.setLayer(params.surface, params.layer);
+        }
+        if ((params.flags & FLAG_CORNER_RADIUS) != 0) {
+            t.setCornerRadius(params.surface, params.cornerRadius);
+        }
+        if ((params.flags & FLAG_BACKGROUND_BLUR_RADIUS) != 0) {
+            t.setBackgroundBlurRadius(params.surface, params.backgroundBlurRadius);
+        }
+        if ((params.flags & FLAG_VISIBILITY) != 0) {
+            if (params.visible) {
+                t.show(params.surface);
+            } else {
+                t.hide(params.surface);
+            }
+        }
     }
 
     /**
@@ -183,6 +209,102 @@
     }
 
     public static class SurfaceParams {
+        public static class Builder {
+            final SurfaceControlCompat surface;
+            int flags;
+            float alpha;
+            float cornerRadius;
+            int backgroundBlurRadius;
+            Matrix matrix;
+            Rect windowCrop;
+            int layer;
+            boolean visible;
+
+            /**
+             * @param surface The surface to modify.
+             */
+            public Builder(SurfaceControlCompat surface) {
+                this.surface = surface;
+            }
+
+            /**
+             * @param alpha The alpha value to apply to the surface.
+             * @return this Builder
+             */
+            public Builder withAlpha(float alpha) {
+                this.alpha = alpha;
+                flags |= FLAG_ALPHA;
+                return this;
+            }
+
+            /**
+             * @param matrix The matrix to apply to the surface.
+             * @return this Builder
+             */
+            public Builder withMatrix(Matrix matrix) {
+                this.matrix = matrix;
+                flags |= FLAG_MATRIX;
+                return this;
+            }
+
+            /**
+             * @param windowCrop The window crop to apply to the surface.
+             * @return this Builder
+             */
+            public Builder withWindowCrop(Rect windowCrop) {
+                this.windowCrop = windowCrop;
+                flags |= FLAG_WINDOW_CROP;
+                return this;
+            }
+
+            /**
+             * @param layer The layer to assign the surface.
+             * @return this Builder
+             */
+            public Builder withLayer(int layer) {
+                this.layer = layer;
+                flags |= FLAG_LAYER;
+                return this;
+            }
+
+            /**
+             * @param radius the Radius for rounded corners to apply to the surface.
+             * @return this Builder
+             */
+            public Builder withCornerRadius(float radius) {
+                this.cornerRadius = radius;
+                flags |= FLAG_CORNER_RADIUS;
+                return this;
+            }
+
+            /**
+             * @param radius the Radius for blur to apply to the background surfaces.
+             * @return this Builder
+             */
+            public Builder withBackgroundBlur(int radius) {
+                this.backgroundBlurRadius = radius;
+                flags |= FLAG_BACKGROUND_BLUR_RADIUS;
+                return this;
+            }
+
+            /**
+             * @param visible The visibility to apply to the surface.
+             * @return this Builder
+             */
+            public Builder withVisibility(boolean visible) {
+                this.visible = visible;
+                flags |= FLAG_VISIBILITY;
+                return this;
+            }
+
+            /**
+             * @return a new SurfaceParams instance
+             */
+            public SurfaceParams build() {
+                return new SurfaceParams(surface, flags, alpha, matrix, windowCrop, layer,
+                        cornerRadius, backgroundBlurRadius, visible);
+            }
+        }
 
         /**
          * Constructs surface parameters to be applied when the current view state gets pushed to
@@ -195,19 +317,33 @@
          */
         public SurfaceParams(SurfaceControlCompat surface, float alpha, Matrix matrix,
                 Rect windowCrop, int layer, float cornerRadius) {
+            this(surface, FLAG_ALL & ~(FLAG_VISIBILITY | FLAG_BACKGROUND_BLUR_RADIUS), alpha,
+                    matrix, windowCrop, layer, cornerRadius, 0 /* backgroundBlurRadius */, true);
+        }
+
+        private SurfaceParams(SurfaceControlCompat surface, int flags, float alpha, Matrix matrix,
+                Rect windowCrop, int layer, float cornerRadius, int backgroundBlurRadius,
+                boolean visible) {
+            this.flags = flags;
             this.surface = surface;
             this.alpha = alpha;
             this.matrix = new Matrix(matrix);
             this.windowCrop = windowCrop != null ? new Rect(windowCrop) : null;
             this.layer = layer;
             this.cornerRadius = cornerRadius;
+            this.backgroundBlurRadius = backgroundBlurRadius;
+            this.visible = visible;
         }
 
+        private final int flags;
+
         public final SurfaceControlCompat surface;
         public final float alpha;
-        final float cornerRadius;
+        public final float cornerRadius;
+        public final int backgroundBlurRadius;
         public final Matrix matrix;
         public final Rect windowCrop;
         public final int layer;
+        public final boolean visible;
     }
 }
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java
index 8f4926f..c1c91f7 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java
@@ -87,6 +87,12 @@
         return this;
     }
 
+    public TransactionCompat setBackgroundBlurRadius(SurfaceControlCompat surfaceControl,
+            int radius) {
+        mTransaction.setBackgroundBlurRadius(surfaceControl.mSurfaceControl, radius);
+        return this;
+    }
+
     public TransactionCompat deferTransactionUntil(SurfaceControlCompat surfaceControl,
             SurfaceControl barrier, long frameNumber) {
         mTransaction.deferTransactionUntil(surfaceControl.mSurfaceControl, barrier,
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/UniversalSmartspaceUtils.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/UniversalSmartspaceUtils.java
index 871cae3..359d369 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/UniversalSmartspaceUtils.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/UniversalSmartspaceUtils.java
@@ -18,50 +18,27 @@
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.os.IBinder;
-import android.view.SurfaceControl;
 import android.view.SurfaceView;
 
 /** Utility class that is shared between SysUI and Launcher for Universal Smartspace features. */
 public final class UniversalSmartspaceUtils {
     public static final String ACTION_REQUEST_SMARTSPACE_VIEW =
             "com.android.systemui.REQUEST_SMARTSPACE_VIEW";
+    public static final String INTENT_BUNDLE_KEY = "bundle_key";
 
     private static final String SYSUI_PACKAGE = "com.android.systemui";
-    private static final String INTENT_KEY_INPUT_BUNDLE = "input_bundle";
-    private static final String BUNDLE_KEY_INPUT_TOKEN = "input_token";
-    private static final String INTENT_KEY_SURFACE_CONTROL = "surface_control";
 
     /** Creates an intent to request that sysui draws the Smartspace to the SurfaceView. */
     public static Intent createRequestSmartspaceIntent(SurfaceView surfaceView) {
         Intent intent = new Intent(ACTION_REQUEST_SMARTSPACE_VIEW);
 
-        Bundle inputBundle = new Bundle();
-        inputBundle.putBinder(BUNDLE_KEY_INPUT_TOKEN, surfaceView.getHostToken());
+        Bundle bundle = SurfaceViewRequestUtils.createSurfaceBundle(surfaceView);
         return intent
-                .putExtra(INTENT_KEY_SURFACE_CONTROL, surfaceView.getSurfaceControl())
-                .putExtra(INTENT_KEY_INPUT_BUNDLE, inputBundle)
+                .putExtra(INTENT_BUNDLE_KEY, bundle)
                 .setPackage(SYSUI_PACKAGE)
                 .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY
                         | Intent.FLAG_RECEIVER_FOREGROUND);
     }
 
-    /**
-     * Retrieves the SurfaceControl from an Intent created by
-     * {@link #createRequestSmartspaceIntent(SurfaceView)}.
-     **/
-    public static SurfaceControl getSurfaceControl(Intent intent) {
-        return intent.getParcelableExtra(INTENT_KEY_SURFACE_CONTROL);
-    }
-
-    /**
-     * Retrieves the input token from an Intent created by
-     * {@link #createRequestSmartspaceIntent(SurfaceView)}.
-     **/
-    public static IBinder getInputToken(Intent intent) {
-        Bundle inputBundle = intent.getBundleExtra(INTENT_KEY_INPUT_BUNDLE);
-        return inputBundle == null ? null : inputBundle.getBinder(BUNDLE_KEY_INPUT_TOKEN);
-    }
-
     private UniversalSmartspaceUtils() {}
 }
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index ba8a1a9..3cf07d1 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -19,7 +19,9 @@
 import static android.view.ViewRootImpl.sNewInsetsMode;
 import static android.view.WindowInsets.Type.ime;
 import static android.view.WindowInsets.Type.systemBars;
+
 import static com.android.systemui.DejankUtils.whitelistIpcs;
+
 import static java.lang.Integer.max;
 
 import android.app.Activity;
@@ -28,7 +30,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.ColorStateList;
-import android.graphics.Rect;
 import android.metrics.LogMaker;
 import android.os.Handler;
 import android.os.Looper;
@@ -511,6 +512,8 @@
         boolean finish = false;
         boolean strongAuth = false;
         int eventSubtype = -1;
+        mCurrentSecuritySelection = whitelistIpcs(() ->
+                mSecurityModel.getSecurityMode(targetUserId));
         if (mUpdateMonitor.getUserHasTrust(targetUserId)) {
             finish = true;
             eventSubtype = BOUNCER_DISMISS_EXTENDED_ACCESS;
@@ -518,13 +521,8 @@
             finish = true;
             eventSubtype = BOUNCER_DISMISS_BIOMETRIC;
         } else if (SecurityMode.None == mCurrentSecuritySelection) {
-            SecurityMode securityMode = mSecurityModel.getSecurityMode(targetUserId);
-            if (SecurityMode.None == securityMode) {
-                finish = true; // no security required
-                eventSubtype = BOUNCER_DISMISS_NONE_SECURITY;
-            } else {
-                showSecurityScreen(securityMode); // switch to the alternate security view
-            }
+            finish = true; // no security required
+            eventSubtype = BOUNCER_DISMISS_NONE_SECURITY;
         } else if (authenticated) {
             switch (mCurrentSecuritySelection) {
                 case Pattern:
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
index f48210c..95e9c20 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
@@ -29,6 +29,7 @@
 import android.annotation.StyleRes;
 import android.app.PendingIntent;
 import android.content.Context;
+import android.content.res.Resources;
 import android.graphics.Color;
 import android.graphics.drawable.Drawable;
 import android.graphics.text.LineBreaker;
@@ -40,6 +41,7 @@
 import android.util.AttributeSet;
 import android.util.Log;
 import android.util.TypedValue;
+import android.view.Display;
 import android.view.View;
 import android.view.animation.Animation;
 import android.widget.LinearLayout;
@@ -62,6 +64,7 @@
 import com.android.systemui.Dependency;
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
+import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.keyguard.KeyguardSliceProvider;
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -90,6 +93,7 @@
     private final ActivityStarter mActivityStarter;
     private final ConfigurationController mConfigurationController;
     private final LayoutTransition mLayoutTransition;
+    private final TunerService mTunerService;
     private Uri mKeyguardSliceUri;
     @VisibleForTesting
     TextView mTitle;
@@ -114,16 +118,14 @@
 
     @Inject
     public KeyguardSliceView(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
-            ActivityStarter activityStarter, ConfigurationController configurationController) {
+            ActivityStarter activityStarter, ConfigurationController configurationController,
+            TunerService tunerService, @Main Resources resources) {
         super(context, attrs);
 
-        TunerService tunerService = Dependency.get(TunerService.class);
-        tunerService.addTunable(this, Settings.Secure.KEYGUARD_SLICE_URI);
-
+        mTunerService = tunerService;
         mClickActions = new HashMap<>();
-        mRowPadding = context.getResources().getDimensionPixelSize(R.dimen.subtitle_clock_padding);
-        mRowWithHeaderPadding = context.getResources()
-                .getDimensionPixelSize(R.dimen.header_subtitle_padding);
+        mRowPadding = resources.getDimensionPixelSize(R.dimen.subtitle_clock_padding);
+        mRowWithHeaderPadding = resources.getDimensionPixelSize(R.dimen.header_subtitle_padding);
         mActivityStarter = activityStarter;
         mConfigurationController = configurationController;
 
@@ -143,7 +145,8 @@
     // Eventually the existing copy will be reparented instead, and we won't need this.
     public KeyguardSliceView(Context context, AttributeSet attributeSet) {
         this(context, attributeSet, Dependency.get(ActivityStarter.class),
-                Dependency.get(ConfigurationController.class));
+                Dependency.get(ConfigurationController.class), Dependency.get(TunerService.class),
+                context.getResources());
     }
 
     @Override
@@ -166,9 +169,15 @@
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
 
-        mDisplayId = getDisplay().getDisplayId();
+        Display display = getDisplay();
+        if (display != null) {
+            mDisplayId = display.getDisplayId();
+        }
+        mTunerService.addTunable(this, Settings.Secure.KEYGUARD_SLICE_URI);
         // Make sure we always have the most current slice
-        mLiveData.observeForever(this);
+        if (mDisplayId == DEFAULT_DISPLAY) {
+            mLiveData.observeForever(this);
+        }
         mConfigurationController.addCallback(this);
     }
 
@@ -180,6 +189,7 @@
         if (mDisplayId == DEFAULT_DISPLAY) {
             mLiveData.removeObserver(this);
         }
+        mTunerService.removeTunable(this);
         mConfigurationController.removeCallback(this);
     }
 
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index 241f96e..a181ce4 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -24,9 +24,7 @@
 import android.content.IntentFilter;
 import android.content.res.Resources;
 import android.graphics.Color;
-import android.graphics.PixelFormat;
 import android.os.Handler;
-import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.text.TextUtils;
@@ -35,11 +33,7 @@
 import android.util.Log;
 import android.util.Slog;
 import android.util.TypedValue;
-import android.view.SurfaceControl;
-import android.view.SurfaceControlViewHost;
 import android.view.View;
-import android.view.WindowManager;
-import android.view.WindowlessWindowManager;
 import android.widget.GridLayout;
 import android.widget.LinearLayout;
 import android.widget.TextView;
@@ -49,6 +43,7 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
+import com.android.systemui.shared.system.SurfaceViewRequestReceiver;
 import com.android.systemui.shared.system.UniversalSmartspaceUtils;
 import com.android.systemui.statusbar.policy.ConfigurationController;
 
@@ -86,7 +81,6 @@
     private int mIconTopMargin;
     private int mIconTopMarginWithHeader;
     private boolean mShowingHeader;
-    private SurfaceControlViewHost mUniversalSmartspaceViewHost;
 
     private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
 
@@ -133,37 +127,20 @@
         }
     };
 
-    private BroadcastReceiver mUniversalSmartspaceBroadcastReceiver = new BroadcastReceiver() {
+    private final BroadcastReceiver mUniversalSmartspaceBroadcastReceiver =
+            new BroadcastReceiver() {
+        private final SurfaceViewRequestReceiver mReceiver = new SurfaceViewRequestReceiver();
+
         @Override
         public void onReceive(Context context, Intent i) {
             // TODO(b/148159743): Restrict to Pixel Launcher.
             if (UniversalSmartspaceUtils.ACTION_REQUEST_SMARTSPACE_VIEW.equals(i.getAction())) {
-                if (mUniversalSmartspaceViewHost != null) {
-                    mUniversalSmartspaceViewHost.die();
-                }
-                SurfaceControl surfaceControl = UniversalSmartspaceUtils.getSurfaceControl(i);
-                if (surfaceControl != null) {
-                    IBinder input = UniversalSmartspaceUtils.getInputToken(i);
-
-                    WindowlessWindowManager windowlessWindowManager =
-                            new WindowlessWindowManager(context.getResources().getConfiguration(),
-                                    surfaceControl, input);
-                    mUniversalSmartspaceViewHost = new SurfaceControlViewHost(context,
-                            context.getDisplayNoVerify(), windowlessWindowManager);
-                    WindowManager.LayoutParams layoutParams =
-                            new WindowManager.LayoutParams(
-                                    surfaceControl.getWidth(),
-                                    surfaceControl.getHeight(),
-                                    WindowManager.LayoutParams.TYPE_APPLICATION,
-                                    0,
-                                    PixelFormat.TRANSPARENT);
-
-                    mUniversalSmartspaceViewHost.addView(
-                            inflate(context, R.layout.keyguard_status_area, null), layoutParams);
-                }
+                mReceiver.onReceive(context,
+                        i.getBundleExtra(UniversalSmartspaceUtils.INTENT_BUNDLE_KEY),
+                        inflate(mContext, R.layout.keyguard_status_area, null));
             }
         }
-    };;
+    };
 
     public KeyguardStatusView(Context context) {
         this(context, null, 0);
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 97b2113..6a6255f 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -263,6 +263,7 @@
     private final IDreamManager mDreamManager;
     private boolean mIsDreaming;
     private final DevicePolicyManager mDevicePolicyManager;
+    private final BroadcastDispatcher mBroadcastDispatcher;
     private boolean mLogoutEnabled;
     // If the user long pressed the lock icon, disabling face auth for the current session.
     private boolean mLockIconPressed;
@@ -1482,6 +1483,7 @@
         mDeviceProvisioned = isDeviceProvisionedInSettingsDb();
         mStrongAuthTracker = new StrongAuthTracker(context, this::notifyStrongAuthStateChanged);
         mBackgroundExecutor = backgroundExecutor;
+        mBroadcastDispatcher = broadcastDispatcher;
         dumpManager.registerDumpable(getClass().getName(), this);
 
         mHandler = new Handler(mainLooper) {
@@ -1617,7 +1619,7 @@
         filter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED);
         filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
         filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
-        broadcastDispatcher.registerReceiverWithHandler(mBroadcastReceiver, filter, mHandler);
+        mBroadcastDispatcher.registerReceiverWithHandler(mBroadcastReceiver, filter, mHandler);
 
         final IntentFilter allUserFilter = new IntentFilter();
         allUserFilter.addAction(Intent.ACTION_USER_INFO_CHANGED);
@@ -1628,25 +1630,12 @@
         allUserFilter.addAction(ACTION_USER_UNLOCKED);
         allUserFilter.addAction(ACTION_USER_STOPPED);
         allUserFilter.addAction(ACTION_USER_REMOVED);
-        broadcastDispatcher.registerReceiverWithHandler(mBroadcastAllReceiver, allUserFilter,
+        mBroadcastDispatcher.registerReceiverWithHandler(mBroadcastAllReceiver, allUserFilter,
                 mHandler, UserHandle.ALL);
 
         mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionListener);
         try {
-            ActivityManager.getService().registerUserSwitchObserver(
-                    new UserSwitchObserver() {
-                        @Override
-                        public void onUserSwitching(int newUserId, IRemoteCallback reply) {
-                            mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHING,
-                                    newUserId, 0, reply));
-                        }
-
-                        @Override
-                        public void onUserSwitchComplete(int newUserId) throws RemoteException {
-                            mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCH_COMPLETE,
-                                    newUserId, 0));
-                        }
-                    }, TAG);
+            ActivityManager.getService().registerUserSwitchObserver(mUserSwitchObserver, TAG);
         } catch (RemoteException e) {
             e.rethrowAsRuntimeException();
         }
@@ -1701,6 +1690,20 @@
         }
     }
 
+    private final UserSwitchObserver mUserSwitchObserver = new UserSwitchObserver() {
+        @Override
+        public void onUserSwitching(int newUserId, IRemoteCallback reply) {
+            mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHING,
+                    newUserId, 0, reply));
+        }
+
+        @Override
+        public void onUserSwitchComplete(int newUserId) throws RemoteException {
+            mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCH_COMPLETE,
+                    newUserId, 0));
+        }
+    };
+
     private void updateAirplaneModeState() {
         // ACTION_AIRPLANE_MODE_CHANGED do not broadcast if device set AirplaneMode ON and boot
         if (!WirelessUtils.isAirplaneModeOn(mContext)
@@ -2711,6 +2714,35 @@
         }
     }
 
+    /**
+     * Unregister all listeners.
+     */
+    public void destroy() {
+        // TODO: inject these dependencies:
+        TelephonyManager telephony =
+                (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+        if (telephony != null) {
+            telephony.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+        }
+
+        mSubscriptionManager.removeOnSubscriptionsChangedListener(mSubscriptionListener);
+
+        if (mDeviceProvisionedObserver != null) {
+            mContext.getContentResolver().unregisterContentObserver(mDeviceProvisionedObserver);
+        }
+
+        try {
+            ActivityManager.getService().unregisterUserSwitchObserver(mUserSwitchObserver);
+        } catch (RemoteException e) {
+            Log.d(TAG, "RemoteException onDestroy. cannot unregister userSwitchObserver");
+        }
+
+        ActivityManagerWrapper.getInstance().unregisterTaskStackListener(mTaskStackListener);
+
+        mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver);
+        mBroadcastDispatcher.unregisterReceiver(mBroadcastAllReceiver);
+    }
+
     @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         pw.println("KeyguardUpdateMonitor state:");
diff --git a/packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt b/packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt
new file mode 100644
index 0000000..24fa91b
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2020 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
+
+import android.content.Context
+import android.graphics.Path
+import android.graphics.Rect
+import android.graphics.RectF
+import android.hardware.camera2.CameraManager
+import android.util.PathParser
+import java.util.concurrent.Executor
+
+import kotlin.math.roundToInt
+
+const val TAG = "CameraOpTransitionController"
+
+/**
+ * Listens for usage of the Camera and controls the ScreenDecorations transition to show extra
+ * protection around a display cutout based on config_frontBuiltInDisplayCutoutProtection and
+ * config_enableDisplayCutoutProtection
+ */
+class CameraAvailabilityListener(
+    private val cameraManager: CameraManager,
+    private val cutoutProtectionPath: Path,
+    private val targetCameraId: String,
+    private val executor: Executor
+) {
+    private var cutoutBounds = Rect()
+    private val listeners = mutableListOf<CameraTransitionCallback>()
+    private val availabilityCallback: CameraManager.AvailabilityCallback =
+            object : CameraManager.AvailabilityCallback() {
+                override fun onCameraAvailable(cameraId: String) {
+                    if (targetCameraId == cameraId) {
+                        notifyCameraInactive()
+                    }
+                }
+
+                override fun onCameraUnavailable(cameraId: String) {
+                    if (targetCameraId == cameraId) {
+                        notifyCameraActive()
+                    }
+                }
+    }
+
+    init {
+        val computed = RectF()
+        cutoutProtectionPath.computeBounds(computed, false /* unused */)
+        cutoutBounds.set(
+                computed.left.roundToInt(),
+                computed.top.roundToInt(),
+                computed.right.roundToInt(),
+                computed.bottom.roundToInt())
+    }
+
+    /**
+     * Start listening for availability events, and maybe notify listeners
+     *
+     * @return true if we started listening
+     */
+    fun startListening() {
+        registerCameraListener()
+    }
+
+    fun stop() {
+        unregisterCameraListener()
+    }
+
+    fun addTransitionCallback(callback: CameraTransitionCallback) {
+        listeners.add(callback)
+    }
+
+    fun removeTransitionCallback(callback: CameraTransitionCallback) {
+        listeners.remove(callback)
+    }
+
+    private fun registerCameraListener() {
+        cameraManager.registerAvailabilityCallback(executor, availabilityCallback)
+    }
+
+    private fun unregisterCameraListener() {
+        cameraManager.unregisterAvailabilityCallback(availabilityCallback)
+    }
+
+    private fun notifyCameraActive() {
+        listeners.forEach { it.onApplyCameraProtection(cutoutProtectionPath, cutoutBounds) }
+    }
+
+    private fun notifyCameraInactive() {
+        listeners.forEach { it.onHideCameraProtection() }
+    }
+
+    /**
+     * Callbacks to tell a listener that a relevant camera turned on and off.
+     */
+    interface CameraTransitionCallback {
+        fun onApplyCameraProtection(protectionPath: Path, bounds: Rect)
+        fun onHideCameraProtection()
+    }
+
+    companion object Factory {
+        fun build(context: Context, executor: Executor): CameraAvailabilityListener {
+            val manager = context
+                    .getSystemService(Context.CAMERA_SERVICE) as CameraManager
+            val res = context.resources
+            val pathString = res.getString(R.string.config_frontBuiltInDisplayCutoutProtection)
+            val cameraId = res.getString(R.string.config_protectedCameraId)
+
+            return CameraAvailabilityListener(
+                    manager, pathFromString(pathString), cameraId, executor)
+        }
+
+        private fun pathFromString(pathString: String): Path {
+            val spec = pathString.trim()
+            val p: Path
+            try {
+                p = PathParser.createPathFromPathData(spec)
+            } catch (e: Throwable) {
+                throw IllegalArgumentException("Invalid protection path", e)
+            }
+
+            return p
+        }
+    }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java b/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java
index 924d16d..f01fa81 100644
--- a/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java
+++ b/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java
@@ -71,7 +71,8 @@
             public void onEntryRemoved(
                     NotificationEntry entry,
                     NotificationVisibility visibility,
-                    boolean removedByUser) {
+                    boolean removedByUser,
+                    int reason) {
                 removeNotification(entry.getSbn());
             }
         });
diff --git a/packages/SystemUI/src/com/android/systemui/Prefs.java b/packages/SystemUI/src/com/android/systemui/Prefs.java
index f0a82c5..5e6589f 100644
--- a/packages/SystemUI/src/com/android/systemui/Prefs.java
+++ b/packages/SystemUI/src/com/android/systemui/Prefs.java
@@ -57,7 +57,9 @@
             Key.SEEN_RINGER_GUIDANCE_COUNT,
             Key.QS_HAS_TURNED_OFF_MOBILE_DATA,
             Key.TOUCHED_RINGER_TOGGLE,
-            Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP
+            Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP,
+            Key.HAS_SEEN_BUBBLES_EDUCATION,
+            Key.HAS_SEEN_BUBBLES_MANAGE_EDUCATION
     })
     public @interface Key {
         @Deprecated
@@ -103,6 +105,8 @@
         String QS_HAS_TURNED_OFF_MOBILE_DATA = "QsHasTurnedOffMobileData";
         String TOUCHED_RINGER_TOGGLE = "TouchedRingerToggle";
         String HAS_SEEN_ODI_CAPTIONS_TOOLTIP = "HasSeenODICaptionsTooltip";
+        String HAS_SEEN_BUBBLES_EDUCATION = "HasSeenBubblesOnboarding";
+        String HAS_SEEN_BUBBLES_MANAGE_EDUCATION = "HasSeenBubblesManageOnboarding";
     }
 
     public static boolean getBoolean(Context context, @Key String key, boolean defaultValue) {
diff --git a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
index 0f896c4..1324524 100644
--- a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
+++ b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
@@ -29,6 +29,7 @@
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
 
 import android.annotation.Dimension;
+import android.annotation.NonNull;
 import android.app.ActivityManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -36,6 +37,7 @@
 import android.content.IntentFilter;
 import android.content.res.ColorStateList;
 import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Matrix;
@@ -105,6 +107,7 @@
     private final Handler mMainHandler;
     private final TunerService mTunerService;
     private DisplayManager.DisplayListener mDisplayListener;
+    private CameraAvailabilityListener mCameraListener;
 
     @VisibleForTesting
     protected int mRoundedDefault;
@@ -122,6 +125,26 @@
     private boolean mPendingRotationChange;
     private Handler mHandler;
 
+    private CameraAvailabilityListener.CameraTransitionCallback mCameraTransitionCallback =
+            new CameraAvailabilityListener.CameraTransitionCallback() {
+        @Override
+        public void onApplyCameraProtection(@NonNull Path protectionPath, @NonNull Rect bounds) {
+            // Show the extra protection around the front facing camera if necessary
+            for (DisplayCutoutView dcv : mCutoutViews) {
+                dcv.setProtection(protectionPath, bounds);
+                dcv.setShowProtection(true);
+            }
+        }
+
+        @Override
+        public void onHideCameraProtection() {
+            // Go back to the regular anti-aliasing
+            for (DisplayCutoutView dcv : mCutoutViews) {
+                dcv.setShowProtection(false);
+            }
+        }
+    };
+
     /**
      * Converts a set of {@link Rect}s into a {@link Region}
      *
@@ -169,6 +192,8 @@
         mDisplayManager = mContext.getSystemService(DisplayManager.class);
         updateRoundedCornerRadii();
         setupDecorations();
+        setupCameraListener();
+
         mDisplayListener = new DisplayManager.DisplayListener() {
             @Override
             public void onDisplayAdded(int displayId) {
@@ -443,6 +468,16 @@
                 : pos - rotation;
     }
 
+    private void setupCameraListener() {
+        Resources res = mContext.getResources();
+        boolean enabled = res.getBoolean(R.bool.config_enableDisplayCutoutProtection);
+        if (enabled) {
+            mCameraListener = CameraAvailabilityListener.Factory.build(mContext, mHandler::post);
+            mCameraListener.addTransitionCallback(mCameraTransitionCallback);
+            mCameraListener.startListening();
+        }
+    }
+
     private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -684,6 +719,13 @@
         private final List<Rect> mBounds = new ArrayList();
         private final Rect mBoundingRect = new Rect();
         private final Path mBoundingPath = new Path();
+        // Don't initialize these because they are cached elsewhere and may not exist
+        private Rect mProtectionRect;
+        private Path mProtectionPath;
+        private Rect mTotalBounds = new Rect();
+        // Whether or not to show the cutout protection path
+        private boolean mShowProtection = false;
+
         private final int[] mLocation = new int[2];
         private final ScreenDecorations mDecorations;
         private int mColor = Color.BLACK;
@@ -727,7 +769,13 @@
             super.onDraw(canvas);
             getLocationOnScreen(mLocation);
             canvas.translate(-mLocation[0], -mLocation[1]);
-            if (!mBoundingPath.isEmpty()) {
+
+            if (mShowProtection && !mProtectionRect.isEmpty()) {
+                mPaint.setColor(mColor);
+                mPaint.setStyle(Paint.Style.FILL);
+                mPaint.setAntiAlias(true);
+                canvas.drawPath(mProtectionPath, mPaint);
+            } else if (!mBoundingPath.isEmpty()) {
                 mPaint.setColor(mColor);
                 mPaint.setStyle(Paint.Style.FILL);
                 mPaint.setAntiAlias(true);
@@ -755,6 +803,22 @@
             update();
         }
 
+        void setProtection(Path protectionPath, Rect pathBounds) {
+            mProtectionPath = protectionPath;
+            mProtectionRect = pathBounds;
+        }
+
+        void setShowProtection(boolean shouldShow) {
+            if (mShowProtection == shouldShow) {
+                return;
+            }
+
+            mShowProtection = shouldShow;
+            updateBoundingPath();
+            requestLayout();
+            invalidate();
+        }
+
         private void update() {
             if (!isAttachedToWindow() || mDecorations.mPendingRotationChange) {
                 return;
@@ -794,6 +858,9 @@
             Matrix m = new Matrix();
             transformPhysicalToLogicalCoordinates(mInfo.rotation, dw, dh, m);
             mBoundingPath.transform(m);
+            if (mProtectionPath != null) {
+                mProtectionPath.transform(m);
+            }
         }
 
         private static void transformPhysicalToLogicalCoordinates(@Surface.Rotation int rotation,
@@ -855,9 +922,19 @@
                 super.onMeasure(widthMeasureSpec, heightMeasureSpec);
                 return;
             }
-            setMeasuredDimension(
-                    resolveSizeAndState(mBoundingRect.width(), widthMeasureSpec, 0),
-                    resolveSizeAndState(mBoundingRect.height(), heightMeasureSpec, 0));
+
+            if (mShowProtection) {
+                // Make sure that our measured height encompases the protection
+                mTotalBounds.union(mBoundingRect);
+                mTotalBounds.union(mProtectionRect);
+                setMeasuredDimension(
+                        resolveSizeAndState(mTotalBounds.width(), widthMeasureSpec, 0),
+                        resolveSizeAndState(mTotalBounds.height(), heightMeasureSpec, 0));
+            } else {
+                setMeasuredDimension(
+                        resolveSizeAndState(mBoundingRect.width(), widthMeasureSpec, 0),
+                        resolveSizeAndState(mBoundingRect.height(), heightMeasureSpec, 0));
+            }
         }
 
         public static void boundsFromDirection(DisplayCutout displayCutout, int gravity,
diff --git a/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java b/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java
index 4749add..73295a3 100644
--- a/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java
+++ b/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java
@@ -229,6 +229,9 @@
         }
 
         void remove() {
+            if (mShowingHint != null) {
+                mShowingHint.dismiss();
+            }
             getContext().getSystemService(WindowManager.class).removeViewImmediate(this);
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
index 7b0bd9c..fb40774 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
@@ -34,14 +34,12 @@
 import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.screenshot.ScreenshotNotificationSmartActionsProvider;
-import com.android.systemui.statusbar.KeyguardIndicationController;
 import com.android.systemui.statusbar.NotificationListener;
 import com.android.systemui.statusbar.NotificationMediaManager;
 import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
 import com.android.systemui.statusbar.phone.DozeParameters;
 import com.android.systemui.statusbar.phone.KeyguardBouncer;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
-import com.android.systemui.statusbar.phone.LockIcon;
 import com.android.systemui.statusbar.phone.NotificationIconAreaController;
 import com.android.systemui.statusbar.phone.StatusBar;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -158,11 +156,6 @@
                 Dependency.get(DozeParameters.class));
     }
 
-    public KeyguardIndicationController createKeyguardIndicationController(Context context,
-            ViewGroup indicationArea, LockIcon lockIcon) {
-        return new KeyguardIndicationController(context, indicationArea, lockIcon);
-    }
-
     @Module
     public static class ContextHolder {
         private Context mContext;
diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java
index 256c5d5..5077e18 100644
--- a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java
+++ b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java
@@ -81,11 +81,6 @@
         void onGestureCompletion(float velocity);
 
         /**
-         * Called with the Bundle from VoiceInteractionSessionListener.onSetUiHints.
-         */
-        void processBundle(Bundle hints);
-
-        /**
          * Hides any SysUI for the assistant, but _does not_ close the assistant itself.
          */
         void hide();
diff --git a/packages/SystemUI/src/com/android/systemui/assist/ui/DefaultUiController.java b/packages/SystemUI/src/com/android/systemui/assist/ui/DefaultUiController.java
index f201a6f..68242f0 100644
--- a/packages/SystemUI/src/com/android/systemui/assist/ui/DefaultUiController.java
+++ b/packages/SystemUI/src/com/android/systemui/assist/ui/DefaultUiController.java
@@ -26,7 +26,6 @@
 import android.graphics.PixelFormat;
 import android.metrics.LogMaker;
 import android.os.Build;
-import android.os.Bundle;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -94,11 +93,6 @@
     }
 
     @Override // AssistManager.UiController
-    public void processBundle(Bundle bundle) {
-        Log.e(TAG, "Bundle received but handling is not implemented; ignoring");
-    }
-
-    @Override // AssistManager.UiController
     public void onInvocationProgress(int type, float progress) {
         boolean invocationWasInProgress = mInvocationInProgress;
 
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
index 12216eb..cbb1982 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
@@ -595,7 +595,7 @@
         final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT,
                 ViewGroup.LayoutParams.MATCH_PARENT,
-                WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL,
+                WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL,
                 windowFlags,
                 PixelFormat.TRANSLUCENT);
         lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index a220dac..48457f6 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -425,7 +425,8 @@
                     public void onEntryRemoved(
                             NotificationEntry entry,
                             @android.annotation.Nullable NotificationVisibility visibility,
-                            boolean removedByUser) {
+                            boolean removedByUser,
+                            int reason) {
                         BubbleController.this.onEntryRemoved(entry);
                     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDebugConfig.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDebugConfig.java
index 3190662..e800011 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDebugConfig.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDebugConfig.java
@@ -16,6 +16,9 @@
 
 package com.android.systemui.bubbles;
 
+import android.content.Context;
+import android.provider.Settings;
+
 import java.util.List;
 
 /**
@@ -41,6 +44,20 @@
     static final boolean DEBUG_BUBBLE_EXPANDED_VIEW = false;
     static final boolean DEBUG_EXPERIMENTS = true;
     static final boolean DEBUG_OVERFLOW = false;
+    static final boolean DEBUG_USER_EDUCATION = false;
+
+    private static final boolean FORCE_SHOW_USER_EDUCATION = false;
+    private static final String FORCE_SHOW_USER_EDUCATION_SETTING =
+            "force_show_bubbles_user_education";
+
+    /**
+     * @return whether we should force show user education for bubbles. Used for debugging & demos.
+     */
+    static boolean forceShowUserEducation(Context context) {
+        boolean forceShow = Settings.Secure.getInt(context.getContentResolver(),
+                FORCE_SHOW_USER_EDUCATION_SETTING, 0) != 0;
+        return FORCE_SHOW_USER_EDUCATION || forceShow;
+    }
 
     static String formatBubblesString(List<Bubble> bubbles, Bubble selected) {
         StringBuilder sb = new StringBuilder();
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
index e3983c5..5c66462 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
@@ -243,7 +243,7 @@
         mPointerView.setVisibility(INVISIBLE);
 
         mSettingsIconHeight = getContext().getResources().getDimensionPixelSize(
-                R.dimen.bubble_settings_size);
+                R.dimen.bubble_manage_button_height);
         mSettingsIcon = findViewById(R.id.settings_button);
         mSettingsIcon.setOnClickListener(this);
 
@@ -308,7 +308,14 @@
         mKeyboardVisible = false;
         mNeedsNewHeight = false;
         if (mActivityView != null) {
-            mActivityView.setForwardedInsets(Insets.of(0, 0, 0, 0));
+            // TODO: Temporary hack to offset the view until we can properly inset Bubbles again.
+            if (sNewInsetsMode == NEW_INSETS_MODE_FULL) {
+                mStackView.animate()
+                        .setDuration(100)
+                        .translationY(0);
+            } else {
+                mActivityView.setForwardedInsets(Insets.of(0, 0, 0, 0));
+            }
         }
         if (DEBUG_BUBBLE_EXPANDED_VIEW) {
             Log.d(TAG, "onDetachedFromWindow: bubble=" + getBubbleKey());
@@ -351,7 +358,10 @@
 
             // TODO: Temporary hack to offset the view until we can properly inset Bubbles again.
             if (sNewInsetsMode == NEW_INSETS_MODE_FULL) {
-                mStackView.animate().translationY(-insetsBottom);
+                mStackView.animate()
+                        .setDuration(100)
+                        .translationY(-insetsBottom)
+                        .withEndAction(() -> mActivityView.onLocationChanged());
             } else {
                 mActivityView.setForwardedInsets(Insets.of(0, 0, 0, insetsBottom));
             }
@@ -531,6 +541,16 @@
     }
 
     /**
+     * Position of the manage button displayed in the expanded view. Used for placing user
+     * education about the manage button.
+     */
+    public Rect getManageButtonLocationOnScreen() {
+        mTempLoc = mSettingsIcon.getLocationOnScreen();
+        return new Rect(mTempLoc[0], mTempLoc[1], mTempLoc[0] + mSettingsIcon.getWidth(),
+                mTempLoc[1] + mSettingsIcon.getHeight());
+    }
+
+    /**
      * Removes and releases an ActivityView if one was previously created for this bubble.
      */
     public void cleanUpExpandedState() {
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleManageEducationView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleManageEducationView.java
new file mode 100644
index 0000000..f4d6432
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleManageEducationView.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2020 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.bubbles;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.Color;
+import android.graphics.drawable.ShapeDrawable;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.internal.util.ContrastColorUtil;
+import com.android.systemui.R;
+import com.android.systemui.recents.TriangleShape;
+
+/**
+ * Educational view to highlight the manage button that allows a user to configure the settings
+ * for the bubble. Shown only the first time a user expands a bubble.
+ */
+public class BubbleManageEducationView extends LinearLayout {
+
+    private View mPointerView;
+    private View mManageView;
+
+    public BubbleManageEducationView(Context context) {
+        this(context, null);
+    }
+
+    public BubbleManageEducationView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public BubbleManageEducationView(Context context, AttributeSet attrs, int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public BubbleManageEducationView(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+
+        mManageView = findViewById(R.id.manage_education_view);
+
+        final TypedArray ta = mContext.obtainStyledAttributes(
+                new int[] {android.R.attr.colorAccent,
+                        android.R.attr.textColorPrimaryInverse});
+        final int bgColor = ta.getColor(0, Color.BLACK);
+        int textColor = ta.getColor(1, Color.WHITE);
+        ta.recycle();
+
+        textColor = ContrastColorUtil.ensureTextContrast(textColor, bgColor, true);
+        ((TextView) findViewById(R.id.user_education_description)).setTextColor(textColor);
+
+        final Resources res = getResources();
+        final int pointerWidth = res.getDimensionPixelSize(R.dimen.bubble_pointer_width);
+        final int pointerHeight = res.getDimensionPixelSize(R.dimen.bubble_pointer_height);
+
+        ShapeDrawable triangleShape =
+                new ShapeDrawable(TriangleShape.create(
+                        pointerWidth, pointerHeight, false /* isPointingUp */));
+        triangleShape.setTint(bgColor);
+
+        mPointerView = findViewById(R.id.user_education_pointer);
+        mPointerView.setBackground(triangleShape);
+    }
+
+    /**
+     * Specifies the x value this pointer should point to.
+     */
+    public void setPointerPosition(int x) {
+        mPointerView.setTranslationX(x - (mPointerView.getWidth() / 2));
+    }
+
+    /**
+     * Specifies the position for the manage view.
+     */
+    public void setManageViewPosition(int x, int y) {
+        mManageView.setTranslationX(x);
+        mManageView.setTranslationY(y);
+    }
+
+    /**
+     * @return the height of the view that shows the educational text and pointer.
+     */
+    public int getManageViewHeight() {
+        return mManageView.getHeight();
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java
index a0e7449..313bb42 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java
@@ -62,11 +62,12 @@
                 R.dimen.bubble_overflow_icon_bitmap_size);
     }
 
-    public void setUpOverflow(ViewGroup parentViewGroup) {
+    void setUpOverflow(ViewGroup parentViewGroup, BubbleStackView stackView) {
         mOverflowExpandedView = (BubbleExpandedView) mInflater.inflate(
                 R.layout.bubble_expanded_view, parentViewGroup /* root */,
                 false /* attachToRoot */);
         mOverflowExpandedView.setOverflow(true);
+        mOverflowExpandedView.setStackView(stackView);
 
         updateIcon(mContext, parentViewGroup);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
index df8e394..6647069 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
@@ -19,9 +19,13 @@
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
 import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
 
+import static com.android.systemui.Interpolators.FAST_OUT_SLOW_IN;
+import static com.android.systemui.Prefs.Key.HAS_SEEN_BUBBLES_EDUCATION;
+import static com.android.systemui.Prefs.Key.HAS_SEEN_BUBBLES_MANAGE_EDUCATION;
 import static com.android.systemui.bubbles.BadgedImageView.DOT_STATE_DEFAULT;
 import static com.android.systemui.bubbles.BadgedImageView.DOT_STATE_SUPPRESSED_FOR_FLYOUT;
 import static com.android.systemui.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_STACK_VIEW;
+import static com.android.systemui.bubbles.BubbleDebugConfig.DEBUG_USER_EDUCATION;
 import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_BUBBLES;
 import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME;
 
@@ -33,6 +37,8 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.Color;
 import android.graphics.ColorMatrix;
 import android.graphics.ColorMatrixColorFilter;
 import android.graphics.Paint;
@@ -57,6 +63,7 @@
 import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
 import android.view.animation.AccelerateDecelerateInterpolator;
 import android.widget.FrameLayout;
+import android.widget.TextView;
 
 import androidx.annotation.MainThread;
 import androidx.annotation.Nullable;
@@ -66,7 +73,9 @@
 import androidx.dynamicanimation.animation.SpringForce;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.ContrastColorUtil;
 import com.android.internal.widget.ViewClippingUtil;
+import com.android.systemui.Prefs;
 import com.android.systemui.R;
 import com.android.systemui.bubbles.animation.ExpandedAnimationController;
 import com.android.systemui.bubbles.animation.PhysicsAnimationLayout;
@@ -88,6 +97,10 @@
 public class BubbleStackView extends FrameLayout {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "BubbleStackView" : TAG_BUBBLES;
 
+    /** Animation durations for bubble stack user education views. **/
+    private static final int ANIMATE_STACK_USER_EDUCATION_DURATION = 200;
+    private static final int ANIMATE_STACK_USER_EDUCATION_DURATION_SHORT = 40;
+
     /** How far the flyout needs to be dragged before it's dismissed regardless of velocity. */
     static final float FLYOUT_DRAG_PERCENT_DISMISS = 0.25f;
 
@@ -171,6 +184,12 @@
      * previous one animates out.
      */
     private Runnable mAfterFlyoutHidden;
+    /**
+     * Set when the flyout is tapped, so that we can expand the bubble associated with the flyout
+     * once it collapses.
+     */
+    @Nullable
+    private Bubble mBubbleToExpandAfterFlyoutCollapse = null;
 
     /** Layout change listener that moves the stack to the nearest valid position on rotation. */
     private OnLayoutChangeListener mOrientationChangedListener;
@@ -319,6 +338,14 @@
 
     private BubbleOverflow mBubbleOverflow;
 
+    private boolean mShouldShowUserEducation;
+    private boolean mAnimatingEducationAway;
+    private View mUserEducationView;
+
+    private boolean mShouldShowManageEducation;
+    private BubbleManageEducationView mManageEducationView;
+    private boolean mAnimatingManageEducationAway;
+
     public BubbleStackView(Context context, BubbleData data,
             @Nullable SurfaceSynchronizer synchronizer,
             FloatingContentCoordinator floatingContentCoordinator) {
@@ -361,6 +388,8 @@
                 mDisplaySize, mExpandedViewPadding, res.getConfiguration().orientation);
         mSurfaceSynchronizer = synchronizer != null ? synchronizer : DEFAULT_SURFACE_SYNCHRONIZER;
 
+        setUpUserEducation();
+
         mBubbleContainer = new PhysicsAnimationLayout(context);
         mBubbleContainer.setActiveController(mStackAnimationController);
         mBubbleContainer.setElevation(elevation);
@@ -500,10 +529,50 @@
         });
     }
 
-    void showExpandedViewContents(int displayId) {
-        if (mExpandedBubble != null
-                && mExpandedBubble.getExpandedView().getVirtualDisplayId() == displayId) {
-            mExpandedBubble.setContentVisibility(true);
+    private void setUpUserEducation() {
+        if (mUserEducationView != null) {
+            removeView(mUserEducationView);
+        }
+        mShouldShowUserEducation = shouldShowBubblesEducation();
+        if (DEBUG_USER_EDUCATION) {
+            Log.d(TAG, "shouldShowUserEducation: " + mShouldShowUserEducation);
+        }
+        if (mShouldShowUserEducation) {
+            mUserEducationView = mInflater.inflate(R.layout.bubble_stack_user_education, this,
+                    false /* attachToRoot */);
+            mUserEducationView.setVisibility(GONE);
+
+            final TypedArray ta = mContext.obtainStyledAttributes(
+                    new int[] {android.R.attr.colorAccent,
+                            android.R.attr.textColorPrimaryInverse});
+            final int bgColor = ta.getColor(0, Color.BLACK);
+            int textColor = ta.getColor(1, Color.WHITE);
+            ta.recycle();
+            textColor = ContrastColorUtil.ensureTextContrast(textColor, bgColor, true);
+
+            TextView title = mUserEducationView.findViewById(R.id.user_education_title);
+            TextView description = mUserEducationView.findViewById(R.id.user_education_description);
+            title.setTextColor(textColor);
+            description.setTextColor(textColor);
+
+            addView(mUserEducationView);
+        }
+
+        if (mManageEducationView != null) {
+            removeView(mManageEducationView);
+        }
+        mShouldShowManageEducation = shouldShowManageEducation();
+        if (DEBUG_USER_EDUCATION) {
+            Log.d(TAG, "shouldShowManageEducation: " + mShouldShowManageEducation);
+        }
+        if (mShouldShowManageEducation) {
+            mManageEducationView = (BubbleManageEducationView)
+                    mInflater.inflate(R.layout.bubbles_manage_button_education, this,
+                            false /* attachToRoot */);
+            mManageEducationView.setVisibility(GONE);
+            mManageEducationView.setElevation(mBubbleElevation);
+
+            addView(mManageEducationView);
         }
     }
 
@@ -522,8 +591,8 @@
     private void setUpOverflow() {
         int overflowBtnIndex = 0;
         if (mBubbleOverflow == null) {
-            mBubbleOverflow = new BubbleOverflow(mContext);
-            mBubbleOverflow.setUpOverflow(this);
+            mBubbleOverflow = new BubbleOverflow(getContext());
+            mBubbleOverflow.setUpOverflow(mBubbleContainer, this);
         } else {
             mBubbleContainer.removeView(mBubbleOverflow.getBtn());
             mBubbleOverflow.updateIcon(mContext, this);
@@ -539,6 +608,7 @@
     public void onThemeChanged() {
         setUpFlyout();
         setUpOverflow();
+        setUpUserEducation();
     }
 
     /** Respond to the phone being rotated by repositioning the stack and hiding any flyouts. */
@@ -731,7 +801,7 @@
     Bubble getExpandedBubble() {
         if (mExpandedBubble == null
                 || (mExpandedBubble.getIconView() == mBubbleOverflow.getBtn()
-                    && mExpandedBubble.getKey() == BubbleOverflow.KEY)) {
+                    && BubbleOverflow.KEY.equals(mExpandedBubble.getKey()))) {
             return null;
         }
         return (Bubble) mExpandedBubble;
@@ -743,6 +813,12 @@
             Log.d(TAG, "addBubble: " + bubble);
         }
 
+        if (getBubbleCount() == 0 && mShouldShowUserEducation) {
+            // Override the default stack position if we're showing user education.
+            mStackAnimationController.setStackPosition(
+                    mStackAnimationController.getDefaultStartPosition());
+        }
+
         if (getBubbleCount() == 0) {
             mStackOnLeftOrWillBe = mStackAnimationController.isStackOnLeftSide();
         }
@@ -881,6 +957,109 @@
     }
 
     /**
+     * If necessary, shows the user education view for the bubble stack. This appears the first
+     * time a user taps on a bubble.
+     *
+     * @return true if user education was shown, false otherwise.
+     */
+    private boolean maybeShowStackUserEducation() {
+        if (mShouldShowUserEducation && mUserEducationView.getVisibility() != VISIBLE) {
+            Bubble b = mBubbleData.getSelectedBubble();
+            TextView description = mUserEducationView.findViewById(R.id.user_education_description);
+            description.setText(mContext.getString(
+                    R.string.bubbles_user_education_description, b.getAppName()));
+
+            mUserEducationView.setAlpha(0);
+            mUserEducationView.setVisibility(VISIBLE);
+            // Post so we have height of mUserEducationView
+            mUserEducationView.post(() -> {
+                final int viewHeight = mUserEducationView.getHeight();
+                PointF stackPosition = mStackAnimationController.getDefaultStartPosition();
+                final float translationY = stackPosition.y + (mBubbleSize / 2) - (viewHeight / 2);
+                mUserEducationView.setTranslationY(translationY);
+                mUserEducationView.animate()
+                        .setDuration(ANIMATE_STACK_USER_EDUCATION_DURATION)
+                        .setInterpolator(FAST_OUT_SLOW_IN)
+                        .alpha(1);
+            });
+            Prefs.putBoolean(getContext(), HAS_SEEN_BUBBLES_EDUCATION, true);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * If necessary, hides the user education view for the bubble stack.
+     *
+     * @param fromExpansion if true this indicates the hide is happening due to the bubble being
+     *                      expanded, false if due to a touch outside of the bubble stack.
+     */
+    void hideStackUserEducation(boolean fromExpansion) {
+        if (mShouldShowUserEducation
+                && mUserEducationView.getVisibility() == VISIBLE
+                && !mAnimatingEducationAway) {
+            mAnimatingEducationAway = true;
+            mUserEducationView.animate()
+                    .alpha(0)
+                    .setDuration(fromExpansion
+                            ? ANIMATE_STACK_USER_EDUCATION_DURATION_SHORT
+                            : ANIMATE_STACK_USER_EDUCATION_DURATION)
+                    .withEndAction(() -> {
+                        mAnimatingEducationAway = false;
+                        mShouldShowUserEducation = shouldShowBubblesEducation();
+                        mUserEducationView.setVisibility(GONE);
+                    });
+        }
+    }
+
+    /**
+     * If necessary, toggles the user education view for the manage button. This is shown when the
+     * bubble stack is expanded for the first time.
+     *
+     * @param show whether the user education view should show or not.
+     */
+    void maybeShowManageEducation(boolean show) {
+        if (mManageEducationView == null) {
+            return;
+        }
+        if (show
+                && mShouldShowManageEducation
+                && mManageEducationView.getVisibility() != VISIBLE
+                && mIsExpanded) {
+            mManageEducationView.setAlpha(0);
+            mManageEducationView.setVisibility(VISIBLE);
+            mManageEducationView.post(() -> {
+                final Rect position =
+                        mExpandedBubble.getExpandedView().getManageButtonLocationOnScreen();
+                final int viewHeight = mManageEducationView.getManageViewHeight();
+                final int inset = getResources().getDimensionPixelSize(
+                        R.dimen.bubbles_manage_education_top_inset);
+                mManageEducationView.bringToFront();
+                mManageEducationView.setManageViewPosition(position.left,
+                        position.top - viewHeight + inset);
+                mManageEducationView.setPointerPosition(position.centerX() - position.left);
+                mManageEducationView.animate()
+                        .setDuration(ANIMATE_STACK_USER_EDUCATION_DURATION)
+                        .setInterpolator(FAST_OUT_SLOW_IN).alpha(1);
+            });
+            Prefs.putBoolean(getContext(), HAS_SEEN_BUBBLES_MANAGE_EDUCATION, true);
+        } else if (!show
+                && mManageEducationView.getVisibility() == VISIBLE
+                && !mAnimatingManageEducationAway) {
+            mManageEducationView.animate()
+                    .alpha(0)
+                    .setDuration(mIsExpansionAnimating
+                            ? ANIMATE_STACK_USER_EDUCATION_DURATION_SHORT
+                            : ANIMATE_STACK_USER_EDUCATION_DURATION)
+                    .withEndAction(() -> {
+                        mAnimatingManageEducationAway = false;
+                        mShouldShowManageEducation = shouldShowManageEducation();
+                        mManageEducationView.setVisibility(GONE);
+                    });
+        }
+    }
+
+    /**
      * Dismiss the stack of bubbles.
      *
      * @deprecated
@@ -923,7 +1102,17 @@
             return null;
         } else if (mFlyout.getVisibility() == VISIBLE && isIntersecting(mFlyout, x, y)) {
             return mFlyout;
+        } else if (mUserEducationView != null && mUserEducationView.getVisibility() == VISIBLE) {
+            View bubbleChild = mBubbleContainer.getChildAt(0);
+            if (isIntersecting(bubbleChild, x, y)) {
+                return this;
+            } else if (isIntersecting(mUserEducationView, x, y)) {
+                return mUserEducationView;
+            } else {
+                return null;
+            }
         }
+
         // If it wasn't an individual bubble in the expanded state, or the flyout, it's the stack.
         return this;
     }
@@ -933,22 +1122,6 @@
     }
 
     /**
-     * Collapses the stack of bubbles.
-     * <p>
-     * Must be called from the main thread.
-     *
-     * @deprecated use {@link #setExpanded(boolean)} and {@link #setSelectedBubble(Bubble)}
-     */
-    @Deprecated
-    @MainThread
-    void collapseStack() {
-        if (DEBUG_BUBBLE_STACK_VIEW) {
-            Log.d(TAG, "collapseStack()");
-        }
-        mBubbleData.setExpanded(false);
-    }
-
-    /**
      * @deprecated use {@link #setExpanded(boolean)} and {@link #setSelectedBubble(Bubble)}
      */
     @Deprecated
@@ -957,25 +1130,16 @@
         if (DEBUG_BUBBLE_STACK_VIEW) {
             Log.d(TAG, "collapseStack(endRunnable)");
         }
-        collapseStack();
+        mBubbleData.setExpanded(false);
         // TODO - use the runnable at end of animation
         endRunnable.run();
     }
 
-    /**
-     * Expands the stack of bubbles.
-     * <p>
-     * Must be called from the main thread.
-     *
-     * @deprecated use {@link #setExpanded(boolean)} and {@link #setSelectedBubble(Bubble)}
-     */
-    @Deprecated
-    @MainThread
-    void expandStack() {
-        if (DEBUG_BUBBLE_STACK_VIEW) {
-            Log.d(TAG, "expandStack()");
+    void showExpandedViewContents(int displayId) {
+        if (mExpandedBubble != null
+                && mExpandedBubble.getExpandedView().getVirtualDisplayId() == displayId) {
+            mExpandedBubble.setContentVisibility(true);
         }
-        mBubbleData.setExpanded(true);
     }
 
     private void beforeExpandedViewAnimation() {
@@ -995,11 +1159,12 @@
         mIsExpanded = false;
         final BubbleViewProvider previouslySelected = mExpandedBubble;
         beforeExpandedViewAnimation();
+        maybeShowManageEducation(false);
 
         if (DEBUG_BUBBLE_STACK_VIEW) {
             Log.d(TAG, "animateCollapse");
-            Log.d(TAG, BubbleDebugConfig.formatBubblesString(this.getBubblesOnScreen(),
-                    this.getExpandedBubble()));
+            Log.d(TAG, BubbleDebugConfig.formatBubblesString(getBubblesOnScreen(),
+                    getExpandedBubble()));
         }
         updateOverflowBtnVisibility(/* apply */ false);
         mBubbleContainer.cancelAllAnimations();
@@ -1021,6 +1186,7 @@
 
     private void animateExpansion() {
         mIsExpanded = true;
+        hideStackUserEducation(true /* fromExpansion */);
         beforeExpandedViewAnimation();
 
         mBubbleContainer.setActiveController(mExpandedAnimationController);
@@ -1028,6 +1194,7 @@
         mExpandedAnimationController.expandFromStack(() -> {
             updatePointerPosition();
             afterExpandedViewAnimation();
+            maybeShowManageEducation(true);
         } /* after */);
 
         mExpandedViewContainer.setTranslationX(getCollapsedX());
@@ -1074,11 +1241,19 @@
         }
     }
 
+    /** Called when the collapsed stack is tapped on. */
+    void onStackTapped() {
+        if (!maybeShowStackUserEducation()) {
+            mBubbleData.setExpanded(true);
+        }
+    }
+
     /** Called when a drag operation on an individual bubble has started. */
     public void onBubbleDragStart(View bubble) {
         if (DEBUG_BUBBLE_STACK_VIEW) {
             Log.d(TAG, "onBubbleDragStart: bubble=" + bubble);
         }
+        maybeShowManageEducation(false);
         mExpandedAnimationController.prepareForBubbleDrag(bubble);
     }
 
@@ -1129,6 +1304,7 @@
             return;
         }
 
+        hideStackUserEducation(false /* fromExpansion */);
         springInDismissTarget();
         mStackAnimationController.moveStackFromTouch(x, y);
     }
@@ -1191,14 +1367,13 @@
         mFlyout.setTranslationX(mFlyout.getRestingTranslationX() + overscrollTranslation);
     }
 
-    /**
-     * Set when the flyout is tapped, so that we can expand the bubble associated with the flyout
-     * once it collapses.
-     */
-    @Nullable private Bubble mBubbleToExpandAfterFlyoutCollapse = null;
-
     void onFlyoutTapped() {
-        mBubbleToExpandAfterFlyoutCollapse = mBubbleData.getSelectedBubble();
+        if (maybeShowStackUserEducation()) {
+            // If we're showing user education, don't open the bubble show the education first
+            mBubbleToExpandAfterFlyoutCollapse = null;
+        } else {
+            mBubbleToExpandAfterFlyoutCollapse = mBubbleData.getSelectedBubble();
+        }
 
         mFlyout.removeCallbacks(mHideFlyout);
         mHideFlyout.run();
@@ -1221,6 +1396,8 @@
 
         mFlyout.removeCallbacks(mHideFlyout);
         animateFlyoutCollapsed(shouldDismiss, velX);
+
+        maybeShowStackUserEducation();
     }
 
     /**
@@ -1432,6 +1609,7 @@
         if (flyoutMessage == null
                 || flyoutMessage.message == null
                 || !bubble.showFlyout()
+                || (mUserEducationView != null && mUserEducationView.getVisibility() == VISIBLE)
                 || isExpanded()
                 || mIsExpansionAnimating
                 || mIsGestureInProgress
@@ -1517,7 +1695,12 @@
 
     @Override
     public void getBoundsOnScreen(Rect outRect) {
-        // If the bubble menu is open, the entire screen should capture touch events.
+        if (mUserEducationView != null && mUserEducationView.getVisibility() == VISIBLE) {
+            // When user education shows then capture all touches
+            outRect.set(0, 0, getWidth(), getHeight());
+            return;
+        }
+
         if (!mIsExpanded) {
             if (getBubbleCount() > 0) {
                 mBubbleContainer.getChildAt(0).getBoundsOnScreen(outRect);
@@ -1704,6 +1887,18 @@
         return mExpandedBubble.getExpandedView().performBackPressIfNeeded();
     }
 
+    /** Whether the educational view should appear for bubbles. **/
+    private boolean shouldShowBubblesEducation() {
+        return BubbleDebugConfig.forceShowUserEducation(getContext())
+                || !Prefs.getBoolean(getContext(), HAS_SEEN_BUBBLES_EDUCATION, false);
+    }
+
+    /** Whether the educational view should appear for the expanded view "manage" button. **/
+    private boolean shouldShowManageEducation() {
+        return BubbleDebugConfig.forceShowUserEducation(getContext())
+                || !Prefs.getBoolean(getContext(), HAS_SEEN_BUBBLES_MANAGE_EDUCATION, false);
+    }
+
     /** For debugging only */
     List<Bubble> getBubblesOnScreen() {
         List<Bubble> bubbles = new ArrayList<>();
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java
index 5e3e747..46d1e0d 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java
@@ -24,7 +24,6 @@
 import android.view.ViewConfiguration;
 
 import com.android.systemui.Dependency;
-import com.android.systemui.R;
 
 /**
  * Handles interpreting touches on a {@link BubbleStackView}. This includes expanding, collapsing,
@@ -92,6 +91,7 @@
         // anything, collapse the stack.
         if (action == MotionEvent.ACTION_OUTSIDE || mTouchedView == null) {
             mBubbleData.setExpanded(false);
+            mStack.hideStackUserEducation(false /* fromExpansion */);
             resetForNextGesture();
             return false;
         }
@@ -102,6 +102,7 @@
 
             // Not touching anything touchable, but we shouldn't collapse (e.g. touching edge
             // of expanded view).
+            mStack.maybeShowManageEducation(false);
             resetForNextGesture();
             return false;
         }
@@ -217,9 +218,8 @@
                     }
                 } else if (mTouchedView == mStack.getExpandedBubbleView()) {
                     mBubbleData.setExpanded(false);
-                } else if (isStack || isFlyout) {
-                    // Toggle expansion
-                    mBubbleData.setExpanded(!mBubbleData.isExpanded());
+                } else if (isStack) {
+                    mStack.onStackTapped();
                 } else {
                     final String key = ((BadgedImageView) mTouchedView).getKey();
                     if (key == BubbleOverflow.KEY) {
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java b/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java
index 245d4af..f22c8fa 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java
@@ -879,9 +879,10 @@
     }
 
     /** Moves the stack to a position instantly, with no animation. */
-    private void setStackPosition(PointF pos) {
+    public void setStackPosition(PointF pos) {
         Log.d(TAG, String.format("Setting position to (%f, %f).", pos.x, pos.y));
         mStackPosition.set(pos.x, pos.y);
+        mRestingStackPosition = mStackPosition;
 
         // If we're not the active controller, we don't want to physically move the bubble views.
         if (isActiveController()) {
@@ -902,10 +903,10 @@
         }
     }
 
-    /** Returns the default stack position, which is on the top right. */
-    private PointF getDefaultStartPosition() {
+    /** Returns the default stack position, which is on the top left. */
+    public PointF getDefaultStartPosition() {
         return new PointF(
-                getAllowableStackPositionRegion().right,
+                getAllowableStackPositionRegion().left,
                 getAllowableStackPositionRegion().top + mStackStartingVerticalOffset);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java
index f719cc6..37c7a2e 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.classifier;
 
+import android.app.ActivityManager;
 import android.content.Context;
 import android.database.ContentObserver;
 import android.hardware.Sensor;
@@ -296,6 +297,10 @@
                 mHandler.postDelayed(mPendingWtf, 1000);
             }
         }
+        if (ActivityManager.isRunningInUserTestHarness()) {
+            // This is a test device running UiAutomator code.
+            return false;
+        }
         if (mAccessibilityManager.isTouchExplorationEnabled()) {
             // Touch exploration triggers false positives in the classifier and
             // already sufficiently prevents false unlocks.
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java
index ec81b9f..caab187 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java
@@ -19,6 +19,7 @@
 import static com.android.systemui.classifier.FalsingManagerImpl.FALSING_REMAIN_LOCKED;
 import static com.android.systemui.classifier.FalsingManagerImpl.FALSING_SUCCESS;
 
+import android.app.ActivityManager;
 import android.hardware.biometrics.BiometricSourceType;
 import android.net.Uri;
 import android.os.Build;
@@ -190,8 +191,8 @@
             return mPreviousResult;
         }
 
-        mPreviousResult = !mJustUnlockedWithFace && !mDockManager.isDocked()
-                && mClassifiers.stream().anyMatch(falsingClassifier -> {
+        mPreviousResult = !ActivityManager.isRunningInUserTestHarness() && !mJustUnlockedWithFace
+                && !mDockManager.isDocked() && mClassifiers.stream().anyMatch(falsingClassifier -> {
                     boolean result = falsingClassifier.isFalseTouch();
                     if (result) {
                         logInfo(String.format(
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt
index f624120..6f2af1b 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt
@@ -16,59 +16,27 @@
 
 package com.android.systemui.controls.controller
 
-import android.content.ComponentName
 import android.service.controls.DeviceTypes
-import android.util.Log
 
 /**
  * Stores basic information about a [Control] to persist and keep track of favorites.
  *
- * The identifier of this [Control] is the combination of [component] and [controlId]. The other
- * two fields are there for persistence. In this way, basic information can be shown to the user
+ * The identifier of this [Control] is the [controlId], and is only unique per app. The other
+ * fields are there for persistence. In this way, basic information can be shown to the user
  * before the service has to report on the status.
  *
- * @property component the name of the component that provides the [Control].
- * @property controlId unique (for the given [component]) identifier for this [Control].
+ * @property controlId unique identifier for this [Control].
  * @property controlTitle last title reported for this [Control].
  * @property deviceType last reported type for this [Control].
  */
 data class ControlInfo(
-    val component: ComponentName,
     val controlId: String,
     val controlTitle: CharSequence,
     @DeviceTypes.DeviceType val deviceType: Int
 ) {
 
     companion object {
-        private const val TAG = "ControlInfo"
         private const val SEPARATOR = ":"
-
-        /**
-         * Creates a [ControlInfo] from a [SEPARATOR] separated list of fields.
-         *
-         * @param separator fields of a [ControlInfo] separated by [SEPARATOR]
-         * @return a [ControlInfo] or `null` if there was an error.
-         * @see [ControlInfo.toString]
-         */
-        fun createFromString(string: String): ControlInfo? {
-            val parts = string.split(SEPARATOR)
-            val component = ComponentName.unflattenFromString(parts[0])
-            if (parts.size != 4 || component == null) {
-                Log.e(TAG, "Cannot parse ControlInfo from $string")
-                return null
-            }
-            val type = try {
-                parts[3].toInt()
-            } catch (e: Exception) {
-                Log.e(TAG, "Cannot parse deviceType from ${parts[3]}")
-                return null
-            }
-            return ControlInfo(
-                    component,
-                    parts[1],
-                    parts[2],
-                    if (DeviceTypes.validDeviceType(type)) type else DeviceTypes.TYPE_UNKNOWN)
-        }
     }
 
     /**
@@ -77,16 +45,14 @@
      * @return a [String] representation of `this`
      */
     override fun toString(): String {
-        return component.flattenToString() +
-                "$SEPARATOR$controlId$SEPARATOR$controlTitle$SEPARATOR$deviceType"
+        return "$SEPARATOR$controlId$SEPARATOR$controlTitle$SEPARATOR$deviceType"
     }
 
     class Builder {
-        lateinit var componentName: ComponentName
         lateinit var controlId: String
         lateinit var controlTitle: CharSequence
         var deviceType: Int = DeviceTypes.TYPE_UNKNOWN
 
-        fun build() = ControlInfo(componentName, controlId, controlTitle, deviceType)
+        fun build() = ControlInfo(controlId, controlTitle, deviceType)
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
index 7fae6a3..fd6e256 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
@@ -42,30 +42,27 @@
     fun bindAndLoad(component: ComponentName, callback: LoadCallback)
 
     /**
-     * Request to bind to the given services.
+     * Request to bind to the given service.
      *
-     * @param components a list of [ComponentName] of the services to bind
+     * @param component The [ComponentName] of the service to bind
      */
-    fun bindServices(components: List<ComponentName>)
+    fun bindService(component: ComponentName)
 
     /**
      * Send a subscribe message to retrieve status of a set of controls.
      *
-     * The controls passed do not have to belong to a single [ControlsProviderService]. The
-     * corresponding service [ComponentName] is associated with each control.
-     *
-     * @param controls a list of controls with corresponding [ComponentName] to request status
-     *                 update
+     * @param structureInfo structure containing the controls to update
      */
-    fun subscribe(controls: List<ControlInfo>)
+    fun subscribe(structureInfo: StructureInfo)
 
     /**
      * Send an action performed on a [Control].
      *
-     * @param controlInfo information about the actioned control, including the [ComponentName]
+     * @param componentName name of the component
+     * @param controlInfo information about the actioned control
      * @param action the action performed on the control
      */
-    fun action(controlInfo: ControlInfo, action: ControlAction)
+    fun action(componentName: ComponentName, controlInfo: ControlInfo, action: ControlAction)
 
     /**
      * Unsubscribe from all services to stop status updates.
@@ -73,6 +70,11 @@
     fun unsubscribe()
 
     /**
+     * Notify this controller that this component has been removed (uninstalled).
+     */
+    fun onComponentRemoved(componentName: ComponentName)
+
+    /**
      * Consumer for load calls.
      *
      * Supports also sending error messages.
@@ -86,4 +88,4 @@
          */
         fun error(message: String)
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
index a67f6bd..8f02c25 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
@@ -26,9 +26,7 @@
 import android.service.controls.IControlsSubscriber
 import android.service.controls.IControlsSubscription
 import android.service.controls.actions.ControlAction
-import android.util.ArrayMap
 import android.util.Log
-import com.android.internal.annotations.GuardedBy
 import com.android.internal.annotations.VisibleForTesting
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.util.concurrency.DelayableExecutor
@@ -56,12 +54,7 @@
     override val currentUserId: Int
         get() = currentUser.identifier
 
-    @GuardedBy("componentMap")
-    private val tokenMap: MutableMap<IBinder, ControlsProviderLifecycleManager> =
-            ArrayMap<IBinder, ControlsProviderLifecycleManager>()
-    @GuardedBy("componentMap")
-    private val componentMap: MutableMap<Key, ControlsProviderLifecycleManager> =
-            ArrayMap<Key, ControlsProviderLifecycleManager>()
+    private var currentProvider: ControlsProviderLifecycleManager? = null
 
     private val actionCallbackService = object : IControlsActionCallback.Stub() {
         override fun accept(
@@ -108,81 +101,71 @@
     }
 
     private fun retrieveLifecycleManager(component: ComponentName):
-            ControlsProviderLifecycleManager {
-        synchronized(componentMap) {
-            val provider = componentMap.getOrPut(Key(component, currentUser)) {
-                createProviderManager(component)
-            }
-            tokenMap.putIfAbsent(provider.token, provider)
-            return provider
+            ControlsProviderLifecycleManager? {
+        if (currentProvider != null && currentProvider?.componentName != component) {
+            unbind()
         }
+
+        if (currentProvider == null) {
+            currentProvider = createProviderManager(component)
+        }
+
+        return currentProvider
     }
 
     override fun bindAndLoad(
         component: ComponentName,
         callback: ControlsBindingController.LoadCallback
     ) {
-        val provider = retrieveLifecycleManager(component)
-        provider.maybeBindAndLoad(LoadSubscriber(callback))
+        retrieveLifecycleManager(component)?.maybeBindAndLoad(LoadSubscriber(callback))
     }
 
-    override fun subscribe(controls: List<ControlInfo>) {
-        val controlsByComponentName = controls.groupBy { it.component }
+    override fun subscribe(structureInfo: StructureInfo) {
         if (refreshing.compareAndSet(false, true)) {
-            controlsByComponentName.forEach {
-                val provider = retrieveLifecycleManager(it.key)
-                backgroundExecutor.execute {
-                    provider.maybeBindAndSubscribe(it.value.map { it.controlId })
-                }
-            }
-        }
-        // Unbind unneeded providers
-        val providersWithFavorites = controlsByComponentName.keys
-        synchronized(componentMap) {
-            componentMap.forEach {
-                if (it.key.component !in providersWithFavorites) {
-                    backgroundExecutor.execute { it.value.unbindService() }
-                }
-            }
+            val provider = retrieveLifecycleManager(structureInfo.componentName)
+            provider?.maybeBindAndSubscribe(structureInfo.controls.map { it.controlId })
         }
     }
 
     override fun unsubscribe() {
         if (refreshing.compareAndSet(true, false)) {
-            val providers = synchronized(componentMap) {
-                componentMap.values.toList()
-            }
-            providers.forEach {
-                backgroundExecutor.execute { it.unsubscribe() }
-            }
+            currentProvider?.unsubscribe()
         }
     }
 
-    override fun action(controlInfo: ControlInfo, action: ControlAction) {
-        val provider = retrieveLifecycleManager(controlInfo.component)
-        provider.maybeBindAndSendAction(controlInfo.controlId, action)
+    override fun action(
+        componentName: ComponentName,
+        controlInfo: ControlInfo,
+        action: ControlAction
+    ) {
+        retrieveLifecycleManager(componentName)
+            ?.maybeBindAndSendAction(controlInfo.controlId, action)
     }
 
-    override fun bindServices(components: List<ComponentName>) {
-        components.forEach {
-            val provider = retrieveLifecycleManager(it)
-            backgroundExecutor.execute { provider.bindService() }
-        }
+    override fun bindService(component: ComponentName) {
+        retrieveLifecycleManager(component)?.bindService()
     }
 
     override fun changeUser(newUser: UserHandle) {
         if (newUser == currentUser) return
-        synchronized(componentMap) {
-            unbindAllProvidersLocked() // unbind all providers from the old user
-        }
+
+        unbind()
+
         refreshing.set(false)
         currentUser = newUser
     }
 
-    private fun unbindAllProvidersLocked() {
-        componentMap.values.forEach {
-            if (it.user == currentUser) {
-                it.unbindService()
+    private fun unbind() {
+        currentProvider?.unbindService()
+        currentProvider = null
+    }
+
+    override fun onComponentRemoved(componentName: ComponentName) {
+        backgroundExecutor.execute {
+            currentProvider?.let {
+                if (it.componentName == componentName) {
+                    unbind()
+                }
             }
         }
     }
@@ -191,20 +174,31 @@
         return StringBuilder("  ControlsBindingController:\n").apply {
             append("    refreshing=${refreshing.get()}\n")
             append("    currentUser=$currentUser\n")
-            append("    Providers:\n")
-            synchronized(componentMap) {
-                componentMap.values.forEach {
-                    append("      $it\n")
-                }
-            }
+            append("    Providers=$currentProvider\n")
         }.toString()
     }
 
     private abstract inner class CallbackRunnable(val token: IBinder) : Runnable {
-        protected val provider: ControlsProviderLifecycleManager? =
-                synchronized(componentMap) {
-                    tokenMap.get(token)
-                }
+        protected val provider: ControlsProviderLifecycleManager? = currentProvider
+
+        override fun run() {
+            if (provider == null) {
+                Log.e(TAG, "No current provider set")
+                return
+            }
+            if (provider.user != currentUser) {
+                Log.e(TAG, "User ${provider.user} is not current user")
+                return
+            }
+            if (token != provider.token) {
+                Log.e(TAG, "Provider for token:$token does not exist anymore")
+                return
+            }
+
+            doRun()
+        }
+
+        abstract fun doRun()
     }
 
     private inner class OnLoadRunnable(
@@ -212,23 +206,9 @@
         val list: List<Control>,
         val callback: ControlsBindingController.LoadCallback
     ) : CallbackRunnable(token) {
-        override fun run() {
-            if (provider == null) {
-                Log.e(TAG, "No provider found for token:$token")
-                return
-            }
-            if (provider.user != currentUser) {
-                Log.e(TAG, "User ${provider.user} is not current user")
-                return
-            }
-            synchronized(componentMap) {
-                if (token !in tokenMap.keys) {
-                    Log.e(TAG, "Provider for token:$token does not exist anymore")
-                    return
-                }
-            }
+        override fun doRun() {
             callback.accept(list)
-            provider.unbindService()
+            provider?.unbindService()
         }
     }
 
@@ -236,14 +216,11 @@
         token: IBinder,
         val control: Control
     ) : CallbackRunnable(token) {
-        override fun run() {
+        override fun doRun() {
             if (!refreshing.get()) {
                 Log.d(TAG, "onRefresh outside of window from:${provider?.componentName}")
             }
-            if (provider?.user != currentUser) {
-                Log.e(TAG, "User ${provider?.user} is not current user")
-                return
-            }
+
             provider?.let {
                 lazyController.get().refreshStatus(it.componentName, control)
             }
@@ -254,7 +231,7 @@
         token: IBinder,
         val subscription: IControlsSubscription
     ) : CallbackRunnable(token) {
-        override fun run() {
+        override fun doRun() {
             if (!refreshing.get()) {
                 Log.d(TAG, "onRefresh outside of window from '${provider?.componentName}'")
             }
@@ -267,7 +244,7 @@
     private inner class OnCompleteRunnable(
         token: IBinder
     ) : CallbackRunnable(token) {
-        override fun run() {
+        override fun doRun() {
             provider?.let {
                 Log.i(TAG, "onComplete receive from '${it.componentName}'")
             }
@@ -278,7 +255,7 @@
         token: IBinder,
         val error: String
     ) : CallbackRunnable(token) {
-        override fun run() {
+        override fun doRun() {
             provider?.let {
                 Log.e(TAG, "onError receive from '${it.componentName}': $error")
             }
@@ -290,11 +267,7 @@
         val controlId: String,
         @ControlAction.ResponseResult val response: Int
     ) : CallbackRunnable(token) {
-        override fun run() {
-            if (provider?.user != currentUser) {
-                Log.e(TAG, "User ${provider?.user} is not current user")
-                return
-            }
+        override fun doRun() {
             provider?.let {
                 lazyController.get().onActionResponse(it.componentName, controlId, response)
             }
@@ -306,7 +279,7 @@
         val error: String,
         val callback: ControlsBindingController.LoadCallback
     ) : CallbackRunnable(token) {
-        override fun run() {
+        override fun doRun() {
             callback.error(error)
             provider?.let {
                 Log.e(TAG, "onError receive from '${it.componentName}': $error")
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
index 4b89fd4..f2881d4 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
@@ -59,14 +59,15 @@
     )
 
     /**
-     * Request to subscribe for all favorite controls.
+     * Request to subscribe for favorited controls per structure
      *
+     * @param structureInfo structure to limit the subscription to
      * @see [ControlsBindingController.subscribe]
      */
-    fun subscribeToFavorites()
+    fun subscribeToFavorites(structureInfo: StructureInfo)
 
     /**
-     * Request to unsubscribe to all providers.
+     * Request to unsubscribe to the current provider.
      *
      * @see [ControlsBindingController.unsubscribe]
      */
@@ -75,11 +76,12 @@
     /**
      * Notify a [ControlsProviderService] that an action has been performed on a [Control].
      *
+     * @param componentName the name of the service that provides the [Control]
      * @param controlInfo information of the [Control] receiving the action
      * @param action action performed on the [Control]
      * @see [ControlsBindingController.action]
      */
-    fun action(controlInfo: ControlInfo, action: ControlAction)
+    fun action(componentName: ComponentName, controlInfo: ControlInfo, action: ControlAction)
 
     /**
      * Refresh the status of a [Control] with information provided from the service.
@@ -107,48 +109,29 @@
     // FAVORITE MANAGEMENT
 
     /**
-     * Get a list of all favorite controls.
+     * Get all the favorites.
      *
-     * @return a list of [ControlInfo] with persistent information about the controls, including
-     *         their corresponding [ComponentName].
+     * @return a list of the structures that have at least one favorited control
      */
-    fun getFavoriteControls(): List<ControlInfo>
+    fun getFavorites(): List<StructureInfo>
 
     /**
      * Get all the favorites for a given component.
      *
-     * @param componentName the name of the component of the [ControlsProviderService] with
-     *                      which to filter the favorites.
-     * @return a list of the favorite controls for the given service. All the elements of the list
-     *         will have the same [ControlInfo.component] matching the one requested.
+     * @param componentName the name of the service that provides the [Control]
+     * @return a list of the structures that have at least one favorited control
      */
-    fun getFavoritesForComponent(componentName: ComponentName): List<ControlInfo>
+    fun getFavoritesForComponent(componentName: ComponentName): List<StructureInfo>
 
     /**
-     * Replaces the favorites for the given component.
+     * Replaces the favorites for the given structure.
      *
      * Calling this method will eliminate the previous selection of favorites and replace it with a
      * new one.
      *
-     * @param componentName The name of the component for the [ControlsProviderService]
-     * @param favorites a list of [ControlInfo] to replace the previous favorites.
+     * @param structureInfo common structure for all of the favorited controls
      */
-    fun replaceFavoritesForComponent(componentName: ComponentName, favorites: List<ControlInfo>)
-
-    /**
-     * Change the favorite status of a single [Control].
-     *
-     * If the control is added to favorites, it will be added to the end of the list for that
-     * particular component. Matching for removing the control will be done based on
-     * [ControlInfo.component] and [ControlInfo.controlId].
-     *
-     * Trying to add an already favorite control or trying to remove one that is not a favorite is
-     * a no-op.
-     *
-     * @param controlInfo persistent information about the [Control].
-     * @param state `true` to add to favorites and `false` to remove.
-     */
-    fun changeFavoriteStatus(controlInfo: ControlInfo, state: Boolean)
+    fun replaceFavoritesForStructure(structureInfo: StructureInfo)
 
     /**
      * Return the number of favorites for a given component.
@@ -161,14 +144,6 @@
     fun countFavoritesForComponent(componentName: ComponentName): Int
 
     /**
-     * Clears the list of all favorites.
-     *
-     * To clear the list of favorites for a given service, call [replaceFavoritesForComponent] with
-     * an empty list.
-     */
-    fun clearFavorites()
-
-    /**
      * Interface for structure to pass data to [ControlsFavoritingActivity].
      */
     interface LoadData {
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
index 3b06ebe..dedd341 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
@@ -31,13 +31,12 @@
 import android.provider.Settings
 import android.service.controls.Control
 import android.service.controls.actions.ControlAction
-import android.util.ArrayMap
 import android.util.Log
-import com.android.internal.annotations.GuardedBy
 import com.android.internal.annotations.VisibleForTesting
 import com.android.systemui.Dumpable
 import com.android.systemui.broadcast.BroadcastDispatcher
 import com.android.systemui.controls.ControlStatus
+import com.android.systemui.controls.ControlsServiceInfo
 import com.android.systemui.controls.management.ControlsListingController
 import com.android.systemui.controls.ui.ControlsUiController
 import com.android.systemui.dagger.qualifiers.Background
@@ -71,12 +70,6 @@
         private const val DEFAULT_ENABLED = 1
     }
 
-    // Map of map: ComponentName -> (String -> ControlInfo).
-    //
-    @GuardedBy("currentFavorites")
-    private val currentFavorites = ArrayMap<ComponentName, MutableList<ControlInfo>>()
-            .withDefault { mutableListOf() }
-
     private var userChanging: Boolean = true
 
     private var currentUser = UserHandle.of(ActivityManager.getCurrentUser())
@@ -108,12 +101,7 @@
         persistenceWrapper.changeFile(fileName)
         available = Settings.Secure.getIntForUser(contentResolver, CONTROLS_AVAILABLE,
                 DEFAULT_ENABLED, newUser.identifier) != 0
-        synchronized(currentFavorites) {
-            currentFavorites.clear()
-        }
-        if (available) {
-            loadFavorites()
-        }
+        resetFavorites(available)
         bindingController.changeUser(newUser)
         listingController.changeUser(newUser)
         userChanging = false
@@ -123,6 +111,7 @@
         override fun onReceive(context: Context, intent: Intent) {
             if (intent.action == Intent.ACTION_USER_SWITCHED) {
                 userChanging = true
+                listingController.removeCallback(listingCallback)
                 val newUser =
                         UserHandle.of(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, sendingUserId))
                 if (currentUser == newUser) {
@@ -144,20 +133,43 @@
             }
             available = Settings.Secure.getIntForUser(contentResolver, CONTROLS_AVAILABLE,
                     DEFAULT_ENABLED, currentUserId) != 0
-            synchronized(currentFavorites) {
-                currentFavorites.clear()
-            }
-            if (available) {
-                loadFavorites()
+            resetFavorites(available)
+        }
+    }
+
+    // Handling of removed components
+
+    /**
+     * Check if any component has been removed and if so, remove all its favorites.
+     *
+     * If some component has been removed, the new set of favorites will also be saved.
+     */
+    private val listingCallback = object : ControlsListingController.ControlsListingCallback {
+        override fun onServicesUpdated(serviceInfos: List<ControlsServiceInfo>) {
+            executor.execute {
+                val serviceInfoSet = serviceInfos.map(ControlsServiceInfo::componentName).toSet()
+                val favoriteComponentSet = Favorites.getAllStructures().map {
+                    it.componentName
+                }.toSet()
+
+                var changed = false
+                favoriteComponentSet.subtract(serviceInfoSet).forEach {
+                    changed = true
+                    Favorites.removeStructures(it)
+                    bindingController.onComponentRemoved(it)
+                }
+
+                // Check if something has been removed, if so, store the new list
+                if (changed) {
+                    persistenceWrapper.storeFavorites(Favorites.getAllStructures())
+                }
             }
         }
     }
 
     init {
         dumpManager.registerDumpable(javaClass.name, this)
-        if (available) {
-            loadFavorites()
-        }
+        resetFavorites(available)
         userChanging = false
         broadcastDispatcher.registerReceiver(
                 userSwitchReceiver,
@@ -168,6 +180,15 @@
         contentResolver.registerContentObserver(URI, false, settingObserver, UserHandle.USER_ALL)
     }
 
+    private fun resetFavorites(shouldLoad: Boolean) {
+        Favorites.clear()
+
+        if (shouldLoad) {
+            Favorites.load(persistenceWrapper.readFavorites())
+            listingController.addCallback(listingCallback)
+        }
+    }
+
     private fun confirmAvailability(): Boolean {
         if (userChanging) {
             Log.w(TAG, "Controls not available while user is changing")
@@ -180,15 +201,6 @@
         return true
     }
 
-    private fun loadFavorites() {
-        val infos = persistenceWrapper.readFavorites()
-        synchronized(currentFavorites) {
-            infos.forEach {
-                currentFavorites.getOrPut(it.component, { mutableListOf() }).add(it)
-            }
-        }
-    }
-
     override fun loadForComponent(
         componentName: ComponentName,
         dataCallback: Consumer<ControlsController.LoadData>
@@ -211,41 +223,41 @@
                 componentName,
                 object : ControlsBindingController.LoadCallback {
                     override fun accept(controls: List<Control>) {
-                        val loadData = synchronized(currentFavorites) {
-                            val favoritesForComponentKeys: List<String> =
-                                    currentFavorites.getValue(componentName).map { it.controlId }
-                            val changed = updateFavoritesLocked(componentName, controls,
-                                    favoritesForComponentKeys)
+                        executor.execute {
+                            val favoritesForComponentKeys = Favorites
+                                .getControlsForComponent(componentName).map { it.controlId }
+
+                            val changed = Favorites.updateControls(componentName, controls)
                             if (changed) {
-                                persistenceWrapper.storeFavorites(favoritesAsListLocked())
+                                persistenceWrapper.storeFavorites(Favorites.getAllStructures())
                             }
-                            val removed = findRemovedLocked(favoritesForComponentKeys.toSet(),
-                                    controls)
+                            val removed = findRemoved(favoritesForComponentKeys.toSet(), controls)
                             val controlsWithFavorite = controls.map {
                                 ControlStatus(it, it.controlId in favoritesForComponentKeys)
                             }
-                            createLoadDataObject(
-                                    currentFavorites.getValue(componentName)
-                                            .filter { it.controlId in removed }
-                                            .map { createRemovedStatus(it) } +
-                                            controlsWithFavorite,
-                                    favoritesForComponentKeys
+                            val loadData = createLoadDataObject(
+                                Favorites.getControlsForComponent(componentName)
+                                    .filter { it.controlId in removed }
+                                    .map { createRemovedStatus(componentName, it) } +
+                                controlsWithFavorite,
+                                favoritesForComponentKeys
                             )
+
+                            dataCallback.accept(loadData)
                         }
-                        dataCallback.accept(loadData)
                     }
 
                     override fun error(message: String) {
-                        val loadData = synchronized(currentFavorites) {
-                            val favoritesForComponent = currentFavorites.getValue(componentName)
-                            val favoritesForComponentKeys = favoritesForComponent
-                                    .map { it.controlId }
-                            createLoadDataObject(
-                                    favoritesForComponent.map { createRemovedStatus(it, false) },
-                                    favoritesForComponentKeys,
+                        val loadData = Favorites.getControlsForComponent(componentName).let {
+                            controls ->
+                                val keys = controls.map { it.controlId }
+                                createLoadDataObject(
+                                    controls.map { createRemovedStatus(componentName, it, false) },
+                                    keys,
                                     true
-                            )
+                                )
                         }
+
                         dataCallback.accept(loadData)
                     }
                 }
@@ -253,15 +265,16 @@
     }
 
     private fun createRemovedStatus(
+        componentName: ComponentName,
         controlInfo: ControlInfo,
         setRemoved: Boolean = true
     ): ControlStatus {
         val intent = Intent(Intent.ACTION_MAIN).apply {
             addCategory(Intent.CATEGORY_LAUNCHER)
-            this.`package` = controlInfo.component.packageName
+            this.`package` = componentName.packageName
         }
         val pendingIntent = PendingIntent.getActivity(context,
-                controlInfo.component.hashCode(),
+                componentName.hashCode(),
                 intent,
                 0)
         val control = Control.StatelessBuilder(controlInfo.controlId, pendingIntent)
@@ -271,50 +284,15 @@
         return ControlStatus(control, true, setRemoved)
     }
 
-    @GuardedBy("currentFavorites")
-    private fun findRemovedLocked(favoriteKeys: Set<String>, list: List<Control>): Set<String> {
+    private fun findRemoved(favoriteKeys: Set<String>, list: List<Control>): Set<String> {
         val controlsKeys = list.map { it.controlId }
         return favoriteKeys.minus(controlsKeys)
     }
 
-    @GuardedBy("currentFavorites")
-    private fun updateFavoritesLocked(
-        componentName: ComponentName,
-        list: List<Control>,
-        favoriteKeys: List<String>
-    ): Boolean {
-        val favorites = currentFavorites.get(componentName) ?: mutableListOf()
-        if (favoriteKeys.isEmpty()) return false // early return
-        var changed = false
-        list.forEach { control ->
-            if (control.controlId in favoriteKeys) {
-                val index = favorites.indexOfFirst { it.controlId == control.controlId }
-                val value = favorites[index]
-                if (value.controlTitle != control.title ||
-                        value.deviceType != control.deviceType) {
-                    favorites[index] = value.copy(
-                            controlTitle = control.title,
-                            deviceType = control.deviceType
-                    )
-                    changed = true
-                }
-            }
-        }
-        return changed
-    }
-
-    @GuardedBy("currentFavorites")
-    private fun favoritesAsListLocked(): List<ControlInfo> {
-        return currentFavorites.flatMap { it.value }
-    }
-
-    override fun subscribeToFavorites() {
+    override fun subscribeToFavorites(structureInfo: StructureInfo) {
         if (!confirmAvailability()) return
-        // Make a copy of the favorites list
-        val favorites = synchronized(currentFavorites) {
-            currentFavorites.flatMap { it.value }
-        }
-        bindingController.subscribe(favorites)
+
+        bindingController.subscribe(structureInfo)
     }
 
     override fun unsubscribe() {
@@ -322,44 +300,12 @@
         bindingController.unsubscribe()
     }
 
-    override fun changeFavoriteStatus(controlInfo: ControlInfo, state: Boolean) {
+    override fun replaceFavoritesForStructure(structureInfo: StructureInfo) {
         if (!confirmAvailability()) return
-        var changed = false
-        val listOfControls = synchronized(currentFavorites) {
-            if (state) {
-                if (controlInfo.component !in currentFavorites) {
-                    currentFavorites.put(controlInfo.component, mutableListOf())
-                    changed = true
-                }
-                val controlsForComponent = currentFavorites.getValue(controlInfo.component)
-                if (controlsForComponent.firstOrNull {
-                            it.controlId == controlInfo.controlId
-                        } == null) {
-                    controlsForComponent.add(controlInfo)
-                    changed = true
-                }
-            } else {
-                changed = currentFavorites.get(controlInfo.component)
-                        ?.remove(controlInfo) != null
-            }
-            favoritesAsListLocked()
+        executor.execute {
+            Favorites.replaceControls(structureInfo)
+            persistenceWrapper.storeFavorites(Favorites.getAllStructures())
         }
-        if (changed) {
-            persistenceWrapper.storeFavorites(listOfControls)
-        }
-    }
-
-    override fun replaceFavoritesForComponent(
-        componentName: ComponentName,
-        favorites: List<ControlInfo>
-    ) {
-        if (!confirmAvailability()) return
-        val filtered = favorites.filter { it.component == componentName }
-        val listOfControls = synchronized(currentFavorites) {
-            currentFavorites.put(componentName, filtered.toMutableList())
-            favoritesAsListLocked()
-        }
-        persistenceWrapper.storeFavorites(listOfControls)
     }
 
     override fun refreshStatus(componentName: ComponentName, control: Control) {
@@ -368,17 +314,12 @@
             return
         }
         executor.execute {
-            synchronized(currentFavorites) {
-                val favoriteKeysForComponent =
-                        currentFavorites.get(componentName)?.map { it.controlId } ?: emptyList()
-                val changed = updateFavoritesLocked(
-                        componentName,
-                        listOf(control),
-                        favoriteKeysForComponent
-                )
-                if (changed) {
-                    persistenceWrapper.storeFavorites(favoritesAsListLocked())
-                }
+            val changed = Favorites.updateControls(
+                componentName,
+                listOf(control)
+            )
+            if (changed) {
+                persistenceWrapper.storeFavorites(Favorites.getAllStructures())
             }
         }
         uiController.onRefreshState(componentName, listOf(control))
@@ -389,41 +330,22 @@
         uiController.onActionResponse(componentName, controlId, response)
     }
 
-    override fun getFavoriteControls(): List<ControlInfo> {
-        if (!confirmAvailability()) return emptyList()
-        synchronized(currentFavorites) {
-            return favoritesAsListLocked()
-        }
-    }
-
-    override fun action(controlInfo: ControlInfo, action: ControlAction) {
+    override fun action(
+        componentName: ComponentName,
+        controlInfo: ControlInfo,
+        action: ControlAction
+    ) {
         if (!confirmAvailability()) return
-        bindingController.action(controlInfo, action)
+        bindingController.action(componentName, controlInfo, action)
     }
 
-    override fun clearFavorites() {
-        if (!confirmAvailability()) return
-        val changed = synchronized(currentFavorites) {
-            currentFavorites.isNotEmpty().also {
-                currentFavorites.clear()
-            }
-        }
-        if (changed) {
-            persistenceWrapper.storeFavorites(emptyList())
-        }
-    }
+    override fun getFavorites(): List<StructureInfo> = Favorites.getAllStructures()
 
-    override fun countFavoritesForComponent(componentName: ComponentName): Int {
-        return synchronized(currentFavorites) {
-            currentFavorites.get(componentName)?.size ?: 0
-        }
-    }
+    override fun countFavoritesForComponent(componentName: ComponentName): Int =
+        Favorites.getControlsForComponent(componentName).size
 
-    override fun getFavoritesForComponent(componentName: ComponentName): List<ControlInfo> {
-        return synchronized(currentFavorites) {
-            currentFavorites.get(componentName) ?: emptyList()
-        }
-    }
+    override fun getFavoritesForComponent(componentName: ComponentName): List<StructureInfo> =
+        Favorites.getStructuresForComponent(componentName)
 
     override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
         pw.println("ControlsController state:")
@@ -431,11 +353,114 @@
         pw.println("  Changing users: $userChanging")
         pw.println("  Current user: ${currentUser.identifier}")
         pw.println("  Favorites:")
-        synchronized(currentFavorites) {
-            favoritesAsListLocked().forEach {
-                pw.println("    ${ it }")
+        Favorites.getAllStructures().forEach { s ->
+            pw.println("    ${ s }")
+            s.controls.forEach { c ->
+                pw.println("      ${ c }")
             }
         }
         pw.println(bindingController.toString())
     }
-}
\ No newline at end of file
+}
+
+/**
+ * Relies on immutable data for thread safety. When necessary to update favMap, use reassignment to
+ * replace it, which will not disrupt any ongoing map traversal.
+ *
+ * Update/replace calls should use thread isolation to avoid race conditions.
+ */
+private object Favorites {
+    private var favMap = mapOf<ComponentName, List<StructureInfo>>()
+
+    fun getAllStructures(): List<StructureInfo> = favMap.flatMap { it.value }
+
+    fun getStructuresForComponent(componentName: ComponentName): List<StructureInfo> =
+        favMap.get(componentName) ?: emptyList()
+
+    fun getControlsForStructure(structure: StructureInfo): List<ControlInfo> =
+        getStructuresForComponent(structure.componentName)
+            .firstOrNull { it.structure == structure.structure }
+            ?.controls ?: emptyList()
+
+    fun getControlsForComponent(componentName: ComponentName): List<ControlInfo> =
+        getStructuresForComponent(componentName).flatMap { it.controls }
+
+    fun load(structures: List<StructureInfo>) {
+        favMap = structures.groupBy { it.componentName }
+    }
+
+    fun updateControls(componentName: ComponentName, controls: List<Control>): Boolean {
+        val controlsById = controls.associateBy { it.controlId }
+
+        // utilize a new map to allow for changes to structure names
+        val structureToControls = mutableMapOf<CharSequence, MutableList<ControlInfo>>()
+
+        // Must retain the current control order within each structure
+        var changed = false
+        getStructuresForComponent(componentName).forEach { s ->
+            s.controls.forEach { c ->
+                val (sName, ci) = controlsById.get(c.controlId)?.let { updatedControl ->
+                    val controlInfo = if (updatedControl.title != c.controlTitle ||
+                        updatedControl.deviceType != c.deviceType) {
+                        changed = true
+                        c.copy(
+                            controlTitle = updatedControl.title,
+                            deviceType = updatedControl.deviceType
+                        )
+                    } else { c }
+
+                    val updatedStructure = updatedControl.structure ?: ""
+                    if (s.structure != updatedStructure) {
+                        changed = true
+                    }
+
+                    Pair(updatedStructure, controlInfo)
+                } ?: Pair(s.structure, c)
+
+                structureToControls.getOrPut(sName, { mutableListOf() }).add(ci)
+            }
+        }
+        if (!changed) return false
+
+        val structures = structureToControls.map { (s, cs) -> StructureInfo(componentName, s, cs) }
+
+        val newFavMap = favMap.toMutableMap()
+        newFavMap.put(componentName, structures)
+        favMap = newFavMap
+
+        return true
+    }
+
+    fun removeStructures(componentName: ComponentName) {
+        val newFavMap = favMap.toMutableMap()
+        newFavMap.remove(componentName)
+        favMap = newFavMap
+    }
+
+    fun replaceControls(updatedStructure: StructureInfo) {
+        val newFavMap = favMap.toMutableMap()
+        val structures = mutableListOf<StructureInfo>()
+        val componentName = updatedStructure.componentName
+
+        var replaced = false
+        getStructuresForComponent(componentName).forEach { s ->
+            val newStructure = if (s.structure == updatedStructure.structure) {
+                replaced = true
+                updatedStructure
+            } else { s }
+
+            structures.add(newStructure)
+        }
+
+        if (!replaced) {
+            structures.add(updatedStructure)
+        }
+
+        newFavMap.put(componentName, structures.toList())
+        favMap = newFavMap.toMap()
+    }
+
+    fun clear() {
+        favMap = mapOf<ComponentName, List<StructureInfo>>()
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
index 883f8a9..4bea6ef 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
@@ -45,11 +45,17 @@
         private const val TAG = "ControlsFavoritePersistenceWrapper"
         const val FILE_NAME = "controls_favorites.xml"
         private const val TAG_CONTROLS = "controls"
+        private const val TAG_STRUCTURES = "structures"
+        private const val TAG_STRUCTURE = "structure"
         private const val TAG_CONTROL = "control"
         private const val TAG_COMPONENT = "component"
         private const val TAG_ID = "id"
         private const val TAG_TITLE = "title"
         private const val TAG_TYPE = "type"
+        private const val TAG_VERSION = "version"
+
+        // must increment with every change to the XML structure
+        private const val VERSION = 1
     }
 
     /**
@@ -66,7 +72,7 @@
      *
      * @param list a list of favorite controls. The list will be stored in the same order.
      */
-    fun storeFavorites(list: List<ControlInfo>) {
+    fun storeFavorites(structures: List<StructureInfo>) {
         executor.execute {
             Log.d(TAG, "Saving data to file: $file")
             val atomicFile = AtomicFile(file)
@@ -81,16 +87,28 @@
                     setOutput(writer, "utf-8")
                     setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true)
                     startDocument(null, true)
-                    startTag(null, TAG_CONTROLS)
-                    list.forEach {
-                        startTag(null, TAG_CONTROL)
-                        attribute(null, TAG_COMPONENT, it.component.flattenToString())
-                        attribute(null, TAG_ID, it.controlId)
-                        attribute(null, TAG_TITLE, it.controlTitle.toString())
-                        attribute(null, TAG_TYPE, it.deviceType.toString())
-                        endTag(null, TAG_CONTROL)
+                    startTag(null, TAG_VERSION)
+                    text("$VERSION")
+                    endTag(null, TAG_VERSION)
+
+                    startTag(null, TAG_STRUCTURES)
+                    structures.forEach { s ->
+                        startTag(null, TAG_STRUCTURE)
+                        attribute(null, TAG_COMPONENT, s.componentName.flattenToString())
+                        attribute(null, TAG_STRUCTURE, s.structure.toString())
+
+                        startTag(null, TAG_CONTROLS)
+                        s.controls.forEach { c ->
+                            startTag(null, TAG_CONTROL)
+                            attribute(null, TAG_ID, c.controlId)
+                            attribute(null, TAG_TITLE, c.controlTitle.toString())
+                            attribute(null, TAG_TYPE, c.deviceType.toString())
+                            endTag(null, TAG_CONTROL)
+                        }
+                        endTag(null, TAG_CONTROLS)
+                        endTag(null, TAG_STRUCTURE)
                     }
-                    endTag(null, TAG_CONTROLS)
+                    endTag(null, TAG_STRUCTURES)
                     endDocument()
                     atomicFile.finishWrite(writer)
                 }
@@ -109,7 +127,7 @@
      * @return a list of stored favorite controls. Return an empty list if the file is not found
      * @throws [IllegalStateException] if there is an error while reading the file
      */
-    fun readFavorites(): List<ControlInfo> {
+    fun readFavorites(): List<StructureInfo> {
         if (!file.exists()) {
             Log.d(TAG, "No favorites, returning empty list")
             return emptyList()
@@ -134,25 +152,32 @@
         }
     }
 
-    private fun parseXml(parser: XmlPullParser): List<ControlInfo> {
+    private fun parseXml(parser: XmlPullParser): List<StructureInfo> {
         var type: Int
-        val infos = mutableListOf<ControlInfo>()
+        val infos = mutableListOf<StructureInfo>()
+
+        var lastComponent: ComponentName? = null
+        var lastStructure: CharSequence? = null
+        var controls = mutableListOf<ControlInfo>()
         while (parser.next().also { type = it } != XmlPullParser.END_DOCUMENT) {
-            if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
-                continue
-            }
-            val tagName = parser.name
-            if (tagName == TAG_CONTROL) {
-                val component = ComponentName.unflattenFromString(
-                        parser.getAttributeValue(null, TAG_COMPONENT))
+            val tagName = parser.name ?: ""
+            if (type == XmlPullParser.START_TAG && tagName == TAG_STRUCTURE) {
+                lastComponent = ComponentName.unflattenFromString(
+                    parser.getAttributeValue(null, TAG_COMPONENT))
+                lastStructure = parser.getAttributeValue(null, TAG_STRUCTURE) ?: ""
+            } else if (type == XmlPullParser.START_TAG && tagName == TAG_CONTROL) {
                 val id = parser.getAttributeValue(null, TAG_ID)
                 val title = parser.getAttributeValue(null, TAG_TITLE)
                 val deviceType = parser.getAttributeValue(null, TAG_TYPE)?.toInt()
-                if (component != null && id != null && title != null && deviceType != null) {
-                    infos.add(ControlInfo(component, id, title, deviceType))
+                if (id != null && title != null && deviceType != null) {
+                    controls.add(ControlInfo(id, title, deviceType))
                 }
+            } else if (type == XmlPullParser.END_TAG && tagName == TAG_STRUCTURE) {
+                infos.add(StructureInfo(lastComponent!!, lastStructure!!, controls.toList()))
+                controls.clear()
             }
         }
+
         return infos
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
index a53fcd4..86e8e83 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
@@ -96,29 +96,30 @@
     }
 
     private fun bindService(bind: Boolean) {
-        requiresBound = bind
-        if (bind) {
-            if (bindTryCount == MAX_BIND_RETRIES) {
-                return
+        executor.execute {
+            requiresBound = bind
+            if (bind) {
+                if (bindTryCount != MAX_BIND_RETRIES) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Binding service $intent")
+                    }
+                    bindTryCount++
+                    try {
+                        context.bindServiceAsUser(intent, serviceConnection, BIND_FLAGS, user)
+                    } catch (e: SecurityException) {
+                        Log.e(TAG, "Failed to bind to service", e)
+                    }
+                }
+            } else {
+                if (DEBUG) {
+                    Log.d(TAG, "Unbinding service $intent")
+                }
+                bindTryCount = 0
+                wrapper?.run {
+                    context.unbindService(serviceConnection)
+                }
+                wrapper = null
             }
-            if (DEBUG) {
-                Log.d(TAG, "Binding service $intent")
-            }
-            bindTryCount++
-            try {
-                context.bindServiceAsUser(intent, serviceConnection, BIND_FLAGS, user)
-            } catch (e: SecurityException) {
-                Log.e(TAG, "Failed to bind to service", e)
-            }
-        } else {
-            if (DEBUG) {
-                Log.d(TAG, "Unbinding service $intent")
-            }
-            bindTryCount = 0
-            wrapper?.run {
-                context.unbindService(serviceConnection)
-            }
-            wrapper = null
         }
     }
 
@@ -320,6 +321,9 @@
         onLoadCanceller?.run()
         onLoadCanceller = null
 
+        // just in case this wasn't called already
+        unsubscribe()
+
         bindService(false)
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/StructureInfo.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/StructureInfo.kt
new file mode 100644
index 0000000..34bfa13
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/StructureInfo.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2020 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.controls.controller
+
+import android.content.ComponentName
+
+/**
+ * Stores basic information about a Structure to persist and keep track of favorites.
+ *
+ * Every [component] [structure] pair uniquely identifies the structure.
+ *
+ * @property componentName the name of the component that provides the [Control].
+ * @property structure common structure name of all underlying [controls], or empty string
+ * @property controls all controls in the name structure
+ */
+data class StructureInfo(
+    val componentName: ComponentName,
+    val structure: CharSequence,
+    val controls: List<ControlInfo>
+)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt b/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt
index 25ebc65..8b3454a 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt
@@ -26,14 +26,13 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleOwner
 import androidx.recyclerview.widget.RecyclerView
-import com.android.settingslib.applications.DefaultAppInfo
-import com.android.settingslib.widget.CandidateInfo
 import com.android.systemui.R
+import com.android.systemui.controls.ControlsServiceInfo
 import java.text.Collator
 import java.util.concurrent.Executor
 
 /**
- * Adapter for binding [CandidateInfo] related to [ControlsProviderService].
+ * Adapter for binding [ControlsServiceInfo] related to [ControlsProviderService].
  *
  * This class handles subscribing and keeping track of the list of valid applications for
  * displaying.
@@ -55,16 +54,16 @@
     private val resources: Resources
 ) : RecyclerView.Adapter<AppAdapter.Holder>() {
 
-    private var listOfServices = emptyList<CandidateInfo>()
+    private var listOfServices = emptyList<ControlsServiceInfo>()
 
     private val callback = object : ControlsListingController.ControlsListingCallback {
-        override fun onServicesUpdated(candidates: List<CandidateInfo>) {
+        override fun onServicesUpdated(serviceInfos: List<ControlsServiceInfo>) {
             backgroundExecutor.execute {
                 val collator = Collator.getInstance(resources.configuration.locales[0])
-                val localeComparator = compareBy<CandidateInfo, CharSequence>(collator) {
+                val localeComparator = compareBy<ControlsServiceInfo, CharSequence>(collator) {
                     it.loadLabel()
                 }
-                listOfServices = candidates.sortedWith(localeComparator)
+                listOfServices = serviceInfos.sortedWith(localeComparator)
                 uiExecutor.execute(::notifyDataSetChanged)
             }
         }
@@ -100,11 +99,10 @@
          * Bind data to the view
          * @param data Information about the [ControlsProviderService] to bind to the data
          */
-        fun bindData(data: CandidateInfo) {
+        fun bindData(data: ControlsServiceInfo) {
             icon.setImageDrawable(data.loadIcon())
             title.text = data.loadLabel()
-            favorites.text = favRenderer.renderFavoritesForComponent(
-                    (data as DefaultAppInfo).componentName)
+            favorites.text = favRenderer.renderFavoritesForComponent(data.componentName)
         }
     }
 }
@@ -122,4 +120,4 @@
             return ""
         }
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
index 0870a4d..e87cf74 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
@@ -136,7 +136,10 @@
     private val title: TextView = itemView.requireViewById(R.id.title)
     private val subtitle: TextView = itemView.requireViewById(R.id.subtitle)
     private val removed: TextView = itemView.requireViewById(R.id.status)
-    private val favorite: CheckBox = itemView.requireViewById<CheckBox>(R.id.favorite).apply {
+    private val favorite: CheckBox = itemView.requireViewById<CheckBox>(R.id.favorite)
+    private val favoriteFrame: ViewGroup = itemView
+            .requireViewById<ViewGroup>(R.id.favorite_container)
+            .apply {
         visibility = View.VISIBLE
     }
 
@@ -151,6 +154,7 @@
         favorite.setOnClickListener {
             favoriteCallback(data.control.controlId, favorite.isChecked)
         }
+        favoriteFrame.setOnClickListener { favorite.performClick() }
         applyRenderInfo(renderInfo)
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt
index 2c01449..08a1a500 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt
@@ -29,6 +29,7 @@
 import androidx.recyclerview.widget.RecyclerView
 import com.android.systemui.R
 import com.android.systemui.broadcast.BroadcastDispatcher
+import com.android.systemui.controls.controller.StructureInfo
 import com.android.systemui.controls.controller.ControlsControllerImpl
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.settings.CurrentUserTracker
@@ -52,6 +53,7 @@
     private lateinit var statusText: TextView
     private var model: ControlsModel? = null
     private var component: ComponentName? = null
+    private var structureName: CharSequence = ""
 
     private val currentUserTracker = object : CurrentUserTracker(broadcastDispatcher) {
         private val startingUser = controller.currentUserId
@@ -97,11 +99,11 @@
         requireViewById<Button>(R.id.done).setOnClickListener {
             if (component == null) return@setOnClickListener
             val favoritesForStorage = model?.favorites?.map {
-                it.componentName = component!!
                 it.build()
             }
             if (favoritesForStorage != null) {
-                controller.replaceFavoritesForComponent(component!!, favoritesForStorage)
+                controller.replaceFavoritesForStructure(StructureInfo(component!!, structureName,
+                        favoritesForStorage))
                 finishAffinity()
             }
         }
@@ -112,6 +114,12 @@
                 val allControls = data.allControls
                 val favoriteKeys = data.favoritesIds
                 val error = data.errorOnLoad
+                val structures = allControls.fold(hashSetOf<CharSequence>()) {
+                    s, c ->
+                        s.add(c.control.structure ?: "")
+                        s
+                }
+                // TODO add multi structure switching support
                 executor.execute {
                     val emptyZoneString = resources.getText(
                             R.string.controls_favorite_other_zone_header)
@@ -149,4 +157,4 @@
         currentUserTracker.stopTracking()
         super.onDestroy()
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt
index 8e47f64..647dacc 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt
@@ -17,7 +17,7 @@
 package com.android.systemui.controls.management
 
 import android.content.ComponentName
-import com.android.settingslib.widget.CandidateInfo
+import com.android.systemui.controls.ControlsServiceInfo
 import com.android.systemui.controls.UserAwareController
 import com.android.systemui.statusbar.policy.CallbackController
 
@@ -31,7 +31,7 @@
     /**
      * @return the current list of services that satisfies the [ServiceListing].
      */
-    fun getCurrentServices(): List<CandidateInfo>
+    fun getCurrentServices(): List<ControlsServiceInfo>
 
     /**
      * Get the app label for a given component.
@@ -45,6 +45,6 @@
 
     @FunctionalInterface
     interface ControlsListingCallback {
-        fun onServicesUpdated(candidates: List<CandidateInfo>)
+        fun onServicesUpdated(serviceInfos: List<ControlsServiceInfo>)
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
index 53f3019..9b108cf 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
@@ -24,7 +24,6 @@
 import android.service.controls.ControlsProviderService
 import android.util.Log
 import com.android.internal.annotations.VisibleForTesting
-import com.android.settingslib.applications.DefaultAppInfo
 import com.android.settingslib.applications.ServiceListing
 import com.android.settingslib.widget.CandidateInfo
 import com.android.systemui.controls.ControlsServiceInfo
@@ -147,7 +146,7 @@
      * @return a list of components that satisfy the requirements to be a
      *         [ControlsProviderService]
      */
-    override fun getCurrentServices(): List<CandidateInfo> =
+    override fun getCurrentServices(): List<ControlsServiceInfo> =
             availableServices.map { ControlsServiceInfo(context, it) }
 
     /**
@@ -157,7 +156,7 @@
      * @return a label as returned by [CandidateInfo.loadLabel] or `null`.
      */
     override fun getAppLabel(name: ComponentName): CharSequence? {
-        return getCurrentServices().firstOrNull { (it as? DefaultAppInfo)?.componentName == name }
+        return getCurrentServices().firstOrNull { it.componentName == name }
                 ?.loadLabel()
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
index feaea7c..f2c8490 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
@@ -122,7 +122,7 @@
     }
 
     fun action(action: ControlAction) {
-        controlsController.action(cws.ci, action)
+        controlsController.action(cws.componentName, cws.ci, action)
     }
 
     private fun findBehavior(status: Int, template: ControlTemplate): KClass<out Behavior> {
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlWithState.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlWithState.kt
index 816f0b2..0511555 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlWithState.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlWithState.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.controls.ui
 
+import android.content.ComponentName
 import android.service.controls.Control
 
 import com.android.systemui.controls.controller.ControlInfo
@@ -23,9 +24,14 @@
 /**
  * A container for:
  * <ul>
+ *  <li>ComponentName - Component responsible for this Control
  *  <li>ControlInfo - Basic cached info about a Control
  *  <li>Control - Actual Control parcelable received directly from
  *  the participating application
  * </ul>
  */
-data class ControlWithState(val ci: ControlInfo, val control: Control?)
+data class ControlWithState(
+    val componentName: ComponentName,
+    val ci: ControlInfo,
+    val control: Control?
+)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
index f4fd375..eaf57ff 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
@@ -22,21 +22,29 @@
 import android.content.Context
 import android.content.Intent
 import android.content.ServiceConnection
+import android.content.SharedPreferences
 import android.graphics.drawable.Drawable
+import android.graphics.drawable.LayerDrawable
 import android.os.IBinder
 import android.service.controls.Control
 import android.service.controls.TokenProvider
 import android.util.Log
+import android.view.ContextThemeWrapper
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.WindowManager
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
 import android.widget.ImageView
 import android.widget.LinearLayout
+import android.widget.ListPopupWindow
 import android.widget.Space
-
-import com.android.settingslib.widget.CandidateInfo
-import com.android.systemui.controls.controller.ControlsController
+import android.widget.TextView
+import com.android.systemui.controls.ControlsServiceInfo
 import com.android.systemui.controls.controller.ControlInfo
+import com.android.systemui.controls.controller.ControlsController
+import com.android.systemui.controls.controller.StructureInfo
 import com.android.systemui.controls.management.ControlsListingController
 import com.android.systemui.controls.management.ControlsProviderSelectorActivity
 import com.android.systemui.dagger.qualifiers.Background
@@ -55,8 +63,11 @@
 private const val TOKEN = "https://www.googleapis.com/auth/assistant"
 private const val SCOPE = "oauth2:" + TOKEN
 private var tokenProviderConnection: TokenProviderConnection? = null
-class TokenProviderConnection(val cc: ControlsController, val context: Context)
-    : ServiceConnection {
+class TokenProviderConnection(
+    val cc: ControlsController,
+    val context: Context,
+    val structure: StructureInfo?
+) : ServiceConnection {
     private var mTokenProvider: TokenProvider? = null
 
     override fun onServiceConnected(cName: ComponentName, binder: IBinder) {
@@ -70,7 +81,9 @@
                 Log.e(ControlsUiController.TAG, "NO ACCOUNT IS SET. Open HomeMock app")
             } else {
                 mTokenProvider?.setAuthToken(getAuthToken(mLastAccountName))
-                cc.subscribeToFavorites()
+                structure?.let {
+                    cc.subscribeToFavorites(it)
+                }
             }
         }, "TokenProviderThread").start()
     }
@@ -116,83 +129,122 @@
     val context: Context,
     @Main val uiExecutor: DelayableExecutor,
     @Background val bgExecutor: DelayableExecutor,
-    val controlsListingController: Lazy<ControlsListingController>
+    val controlsListingController: Lazy<ControlsListingController>,
+    @Main val sharedPreferences: SharedPreferences
 ) : ControlsUiController {
 
-    private lateinit var controlInfos: List<ControlInfo>
+    companion object {
+        private const val PREF_COMPONENT = "controls_component"
+        private const val PREF_STRUCTURE = "controls_structure"
+
+        private val EMPTY_COMPONENT = ComponentName("", "")
+        private val EMPTY_STRUCTURE = StructureInfo(
+            EMPTY_COMPONENT,
+            "",
+            mutableListOf<ControlInfo>()
+        )
+    }
+
+    private var selectedStructure: StructureInfo = EMPTY_STRUCTURE
+    private lateinit var allStructures: List<StructureInfo>
     private val controlsById = mutableMapOf<ControlKey, ControlWithState>()
     private val controlViewsById = mutableMapOf<ControlKey, ControlViewHolder>()
     private lateinit var parent: ViewGroup
+    private lateinit var lastItems: List<SelectionItem>
+    private var popup: ListPopupWindow? = null
+
+    private val addControlsItem: SelectionItem
+
+    init {
+        val addDrawable = context.getDrawable(R.drawable.ic_add).apply {
+            setTint(context.resources.getColor(R.color.control_secondary_text, null))
+        }
+        addControlsItem = SelectionItem(
+            context.resources.getString(R.string.controls_providers_title),
+            "",
+            addDrawable,
+            EMPTY_COMPONENT
+        )
+    }
 
     override val available: Boolean
         get() = controlsController.get().available
 
-    private val listingCallback = object : ControlsListingController.ControlsListingCallback {
-        override fun onServicesUpdated(candidates: List<CandidateInfo>) {
-            bgExecutor.execute {
-                val collator = Collator.getInstance(context.resources.configuration.locales[0])
-                val localeComparator = compareBy<CandidateInfo, CharSequence>(collator) {
-                    it.loadLabel()
-                }
+    private lateinit var listingCallback: ControlsListingController.ControlsListingCallback
 
-                val mList = candidates.toMutableList()
-                mList.sortWith(localeComparator)
-                loadInitialSetupViewIcons(mList.map { it.loadLabel() to it.loadIcon() })
+    private fun createCallback(
+        onResult: (List<SelectionItem>) -> Unit
+    ): ControlsListingController.ControlsListingCallback {
+        return object : ControlsListingController.ControlsListingCallback {
+            override fun onServicesUpdated(serviceInfos: List<ControlsServiceInfo>) {
+                bgExecutor.execute {
+                    val collator = Collator.getInstance(context.resources.configuration.locales[0])
+                    val localeComparator = compareBy<ControlsServiceInfo, CharSequence>(collator) {
+                        it.loadLabel()
+                    }
+
+                    val mList = serviceInfos.toMutableList()
+                    mList.sortWith(localeComparator)
+                    lastItems = mList.map {
+                        SelectionItem(it.loadLabel(), "", it.loadIcon(), it.componentName)
+                    }
+                    uiExecutor.execute {
+                        onResult(lastItems)
+                    }
+                }
             }
         }
     }
 
     override fun show(parent: ViewGroup) {
         Log.d(ControlsUiController.TAG, "show()")
-
         this.parent = parent
 
-        controlInfos = controlsController.get().getFavoriteControls()
+        allStructures = controlsController.get().getFavorites()
+        selectedStructure = loadPreference(allStructures)
 
-        controlInfos.map {
-            ControlWithState(it, null)
-        }.associateByTo(controlsById) { ControlKey(it.ci.component, it.ci.controlId) }
-
-        if (controlInfos.isEmpty()) {
-            showInitialSetupView()
+        if (selectedStructure.controls.isEmpty() && allStructures.size <= 1) {
+            // only show initial view if there are really no favorites across any structure
+            listingCallback = createCallback(::showInitialSetupView)
         } else {
-            showControlsView()
+            selectedStructure.controls.map {
+                ControlWithState(selectedStructure.componentName, it, null)
+            }.associateByTo(controlsById) {
+                ControlKey(selectedStructure.componentName, it.ci.controlId)
+            }
+            listingCallback = createCallback(::showControlsView)
         }
 
+        controlsListingController.get().addCallback(listingCallback)
+
         // Temp code to pass auth
-        tokenProviderConnection = TokenProviderConnection(controlsController.get(), context)
+        tokenProviderConnection = TokenProviderConnection(controlsController.get(), context,
+                selectedStructure)
+
         val serviceIntent = Intent()
         serviceIntent.setComponent(ComponentName("com.android.systemui.home.mock",
                 "com.android.systemui.home.mock.AuthService"))
         if (!context.bindService(serviceIntent, tokenProviderConnection!!,
                 Context.BIND_AUTO_CREATE)) {
-            controlsController.get().subscribeToFavorites()
+            controlsController.get().subscribeToFavorites(selectedStructure)
         }
     }
 
-    private fun showInitialSetupView() {
+    private fun showInitialSetupView(items: List<SelectionItem>) {
+        parent.removeAllViews()
+
         val inflater = LayoutInflater.from(context)
         inflater.inflate(R.layout.controls_no_favorites, parent, true)
 
         val viewGroup = parent.requireViewById(R.id.controls_no_favorites_group) as ViewGroup
         viewGroup.setOnClickListener(launchSelectorActivityListener(context))
 
-        controlsListingController.get().addCallback(listingCallback)
-    }
-
-    private fun loadInitialSetupViewIcons(icons: List<Pair<CharSequence, Drawable>>) {
-        uiExecutor.execute {
-            val viewGroup = parent.requireViewById(R.id.controls_icon_row) as ViewGroup
-            viewGroup.removeAllViews()
-
-            val inflater = LayoutInflater.from(context)
-            icons.forEach {
-                val imageView = inflater.inflate(R.layout.controls_icon, viewGroup, false)
-                        as ImageView
-                imageView.setContentDescription(it.first)
-                imageView.setImageDrawable(it.second)
-                viewGroup.addView(imageView)
-            }
+        val iconRowGroup = parent.requireViewById(R.id.controls_icon_row) as ViewGroup
+        items.forEach {
+            val imageView = inflater.inflate(R.layout.controls_icon, viewGroup, false) as ImageView
+            imageView.setContentDescription(it.getTitle())
+            imageView.setImageDrawable(it.icon)
+            iconRowGroup.addView(imageView)
         }
     }
 
@@ -208,14 +260,16 @@
         }
     }
 
-    private fun showControlsView() {
+    private fun showControlsView(items: List<SelectionItem>) {
+        parent.removeAllViews()
+        controlViewsById.clear()
+
         val inflater = LayoutInflater.from(context)
         inflater.inflate(R.layout.controls_with_favorites, parent, true)
 
         val listView = parent.requireViewById(R.id.global_actions_controls_list) as ViewGroup
         var lastRow: ViewGroup = createRow(inflater, listView)
-        controlInfos.forEach {
-            Log.d(ControlsUiController.TAG, "favorited control id: " + it.controlId)
+        selectedStructure.controls.forEach {
             if (lastRow.getChildCount() == 2) {
                 lastRow = createRow(inflater, listView)
             }
@@ -223,21 +277,118 @@
                 R.layout.controls_base_item, lastRow, false) as ViewGroup
             lastRow.addView(item)
             val cvh = ControlViewHolder(item, controlsController.get(), uiExecutor, bgExecutor)
-            val key = ControlKey(it.component, it.controlId)
+            val key = ControlKey(selectedStructure.componentName, it.controlId)
             cvh.bindData(controlsById.getValue(key))
             controlViewsById.put(key, cvh)
         }
 
-        if ((controlInfos.size % 2) == 1) {
+        // add spacer if necessary to keep control size consistent
+        if ((selectedStructure.controls.size % 2) == 1) {
             lastRow.addView(Space(context), LinearLayout.LayoutParams(0, 0, 1f))
         }
 
-        val moreImageView = parent.requireViewById(R.id.controls_more) as View
-        moreImageView.setOnClickListener(launchSelectorActivityListener(context))
+        val itemsByComponent = items.associateBy { it.componentName }
+        var adapter = ItemAdapter(context, R.layout.controls_spinner_item).apply {
+            val listItems = allStructures.mapNotNull {
+                itemsByComponent.get(it.componentName)?.copy(structure = it.structure)
+            }
+
+            addAll(listItems + addControlsItem)
+        }
+
+        /*
+         * Default spinner widget does not work with the window type required
+         * for this dialog. Use a textView with the ListPopupWindow to achieve
+         * a similar effect
+         */
+        val item = adapter.findSelectionItem(selectedStructure) ?: adapter.getItem(0)
+        parent.requireViewById<TextView>(R.id.app_or_structure_spinner).apply {
+            setText(item.getTitle())
+            // override the default color on the dropdown drawable
+            (getBackground() as LayerDrawable).getDrawable(1)
+                .setTint(context.resources.getColor(R.color.control_spinner_dropdown, null))
+        }
+        parent.requireViewById<ImageView>(R.id.app_icon).apply {
+            setContentDescription(item.getTitle())
+            setImageDrawable(item.icon)
+        }
+        val anchor = parent.requireViewById<ViewGroup>(R.id.controls_header)
+        anchor.setOnClickListener(object : View.OnClickListener {
+            override fun onClick(v: View) {
+                popup = ListPopupWindow(
+                    ContextThemeWrapper(context, R.style.Control_ListPopupWindow))
+                popup?.apply {
+                    setWindowLayoutType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY)
+                    setAnchorView(anchor)
+                    setAdapter(adapter)
+                    setModal(true)
+                    setOnItemClickListener(object : AdapterView.OnItemClickListener {
+                        override fun onItemClick(
+                            parent: AdapterView<*>,
+                            view: View,
+                            pos: Int,
+                            id: Long
+                        ) {
+                            val listItem = parent.getItemAtPosition(pos) as SelectionItem
+                            this@ControlsUiControllerImpl.switchAppOrStructure(listItem)
+                            dismiss()
+                        }
+                    })
+                    // need to call show() first in order to construct the listView
+                    show()
+                    getListView()?.apply {
+                        setDividerHeight(
+                            context.resources.getDimensionPixelSize(R.dimen.control_list_divider))
+                        setDivider(
+                            context.resources.getDrawable(R.drawable.controls_list_divider))
+                    }
+                    show()
+                }
+            }
+        })
+    }
+
+    private fun loadPreference(structures: List<StructureInfo>): StructureInfo {
+        if (structures.isEmpty()) return EMPTY_STRUCTURE
+
+        val component = sharedPreferences.getString(PREF_COMPONENT, null)?.let {
+            ComponentName.unflattenFromString(it)
+        } ?: EMPTY_COMPONENT
+        val structure = sharedPreferences.getString(PREF_STRUCTURE, "")
+
+        return structures.firstOrNull {
+            component == it.componentName && structure == it.structure
+        } ?: structures.get(0)
+    }
+
+    private fun updatePreferences(si: StructureInfo) {
+        sharedPreferences.edit()
+            .putString(PREF_COMPONENT, si.componentName.flattenToString())
+            .putString(PREF_STRUCTURE, si.structure.toString())
+            .commit()
+    }
+
+    private fun switchAppOrStructure(item: SelectionItem) {
+        if (item == addControlsItem) {
+            launchSelectorActivityListener(context)(parent)
+        } else {
+            val newSelection = allStructures.first {
+                it.structure == item.structure && it.componentName == item.componentName
+            }
+
+            if (newSelection != selectedStructure) {
+                selectedStructure = newSelection
+                updatePreferences(selectedStructure)
+                controlsListingController.get().removeCallback(listingCallback)
+                show(parent)
+            }
+        }
     }
 
     override fun hide() {
         Log.d(ControlsUiController.TAG, "hide()")
+        popup?.dismiss()
+
         controlsController.get().unsubscribe()
         context.unbindService(tokenProviderConnection)
         tokenProviderConnection = null
@@ -253,7 +404,7 @@
         controls.forEach { c ->
             controlsById.get(ControlKey(componentName, c.getControlId()))?.let {
                 Log.d(ControlsUiController.TAG, "onRefreshState() for id: " + c.getControlId())
-                val cws = ControlWithState(it.ci, c)
+                val cws = ControlWithState(componentName, it.ci, c)
                 val key = ControlKey(componentName, c.getControlId())
                 controlsById.put(key, cws)
 
@@ -277,3 +428,46 @@
         return row
     }
 }
+
+private data class SelectionItem(
+    val appName: CharSequence,
+    val structure: CharSequence,
+    val icon: Drawable,
+    val componentName: ComponentName
+) {
+    fun getTitle() = if (structure.isEmpty()) { appName } else { structure }
+}
+
+private class ItemAdapter(
+    val parentContext: Context,
+    val resource: Int
+) : ArrayAdapter<SelectionItem>(parentContext, resource) {
+
+    val layoutInflater = LayoutInflater.from(context)
+
+    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
+        val item = getItem(position)
+        val view = convertView ?: layoutInflater.inflate(resource, parent, false)
+        view.requireViewById<TextView>(R.id.controls_spinner_item).apply {
+            setText(item.getTitle())
+        }
+        view.requireViewById<ImageView>(R.id.app_icon).apply {
+            setContentDescription(item.getTitle())
+            setImageDrawable(item.icon)
+        }
+        return view
+    }
+
+    fun findSelectionItem(si: StructureInfo): SelectionItem? {
+        var i = 0
+        while (i < getCount()) {
+            val item = getItem(i)
+            if (item.componentName == si.componentName &&
+                item.structure == si.structure) {
+                return item
+            }
+            i++
+        }
+        return null
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java b/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java
index 024378d..6c502d2 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java
@@ -28,6 +28,7 @@
 import android.os.ServiceManager;
 import android.util.DisplayMetrics;
 import android.view.Choreographer;
+import android.view.IWindowManager;
 import android.view.LayoutInflater;
 import android.view.WindowManager;
 
@@ -47,6 +48,7 @@
 import com.android.systemui.shared.system.DevicePolicyManagerWrapper;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.NavigationBarController;
+import com.android.systemui.statusbar.phone.AutoHideController;
 import com.android.systemui.statusbar.phone.ConfigurationControllerImpl;
 import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.DataSaverController;
@@ -166,6 +168,14 @@
         return new ConfigurationControllerImpl(context);
     }
 
+    /** */
+    @Singleton
+    @Provides
+    public AutoHideController provideAutoHideController(Context context,
+            @Main Handler mainHandler, IWindowManager iWindowManager) {
+        return new AutoHideController(context, mainHandler, iWindowManager);
+    }
+
     @Singleton
     @Provides
     public ActivityManagerWrapper provideActivityManagerWrapper() {
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
index 352ee33..364babb 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
@@ -30,10 +30,13 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.pm.IPackageManager;
+import android.content.pm.LauncherApps;
+import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.hardware.SensorPrivacyManager;
 import android.media.AudioManager;
 import android.net.ConnectivityManager;
+import android.os.BatteryStats;
 import android.os.Handler;
 import android.os.PowerManager;
 import android.os.ServiceManager;
@@ -49,6 +52,7 @@
 import android.view.WindowManagerGlobal;
 import android.view.accessibility.AccessibilityManager;
 
+import com.android.internal.app.IBatteryStats;
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.util.LatencyTracker;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -123,6 +127,13 @@
 
     @Provides
     @Singleton
+    static IBatteryStats provideIBatteryStats() {
+        return IBatteryStats.Stub.asInterface(
+                ServiceManager.getService(BatteryStats.SERVICE_NAME));
+    }
+
+    @Provides
+    @Singleton
     static IDreamManager provideIDreamManager() {
         return IDreamManager.Stub.asInterface(
                 ServiceManager.checkService(DreamService.DREAM_SERVICE));
@@ -167,6 +178,12 @@
         return LatencyTracker.getInstance(context);
     }
 
+    @Singleton
+    @Provides
+    static LauncherApps provideLauncherApps(Context context) {
+        return context.getSystemService(LauncherApps.class);
+    }
+
     @SuppressLint("MissingPermission")
     @Singleton
     @Provides
@@ -184,6 +201,12 @@
 
     @Singleton
     @Provides
+    static PackageManager providePackageManager(Context context) {
+        return context.getPackageManager();
+    }
+
+    @Singleton
+    @Provides
     static PackageManagerWrapper providePackageManagerWrapper() {
         return PackageManagerWrapper.getInstance();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
index 6f655bb..8117bbb 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
@@ -102,7 +102,8 @@
                 wrappedService, mDozeParameters);
 
         DozeMachine machine = new DozeMachine(wrappedService, config, wakeLock,
-                mWakefulnessLifecycle, mBatteryController, mDozeLog, mDockManager);
+                mWakefulnessLifecycle, mBatteryController, mDozeLog, mDockManager,
+                mDozeServiceHost);
         machine.setParts(new DozeMachine.Part[]{
                 new DozePauser(mHandler, machine, mAlarmManager, mDozeParameters.getPolicy()),
                 new DozeFalsingManagerAdapter(mFalsingManager),
@@ -118,7 +119,6 @@
                 new DozeWallpaperState(mWallpaperManager, mBiometricUnlockController,
                         mDozeParameters),
                 new DozeDockHandler(config, machine, mDockManager),
-                new DozeSuppressedHandler(dozeService, config, machine),
                 new DozeAuthRemover(dozeService)
         });
 
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java
index d1047e2..9c25b35 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java
@@ -81,6 +81,9 @@
      */
     void stopPulsing();
 
+    /** Returns whether doze is suppressed. */
+    boolean isDozeSuppressed();
+
     interface Callback {
         /**
          * Called when a high priority notification is added.
@@ -94,6 +97,9 @@
          * @param active whether power save is active or not
          */
         default void onPowerSaveChanged(boolean active) {}
+
+        /** Called when the doze suppression state changes. */
+        default void onDozeSuppressedChanged(boolean suppressed) {}
     }
 
     interface PulseCallback {
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java
index 6e81d3a..3bed338 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java
@@ -134,6 +134,7 @@
     private final AmbientDisplayConfiguration mConfig;
     private final WakefulnessLifecycle mWakefulnessLifecycle;
     private final BatteryController mBatteryController;
+    private final DozeHost mDozeHost;
     private Part[] mParts;
 
     private final ArrayList<State> mQueuedRequests = new ArrayList<>();
@@ -144,7 +145,7 @@
 
     public DozeMachine(Service service, AmbientDisplayConfiguration config, WakeLock wakeLock,
             WakefulnessLifecycle wakefulnessLifecycle, BatteryController batteryController,
-            DozeLog dozeLog, DockManager dockManager) {
+            DozeLog dozeLog, DockManager dockManager, DozeHost dozeHost) {
         mDozeService = service;
         mConfig = config;
         mWakefulnessLifecycle = wakefulnessLifecycle;
@@ -152,6 +153,7 @@
         mBatteryController = batteryController;
         mDozeLog = dozeLog;
         mDockManager = dockManager;
+        mDozeHost = dozeHost;
     }
 
     /** Initializes the set of {@link Part}s. Must be called exactly once after construction. */
@@ -328,7 +330,7 @@
         if (mState == State.FINISH) {
             return State.FINISH;
         }
-        if (mConfig.dozeSuppressed(UserHandle.USER_CURRENT) && requestedState.isAlwaysOn()) {
+        if (mDozeHost.isDozeSuppressed() && requestedState.isAlwaysOn()) {
             Log.i(TAG, "Doze is suppressed. Suppressing state: " + requestedState);
             mDozeLog.traceDozeSuppressed(requestedState);
             return State.DOZE;
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressedHandler.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressedHandler.java
deleted file mode 100644
index 3a5c1a0..0000000
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressedHandler.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2020 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.doze;
-
-import static java.util.Objects.requireNonNull;
-
-import android.app.ActivityManager;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.ContentObserver;
-import android.hardware.display.AmbientDisplayConfiguration;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.UserHandle;
-import android.provider.Settings;
-import android.util.Log;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-/** Handles updating the doze state when doze is suppressed. */
-public final class DozeSuppressedHandler implements DozeMachine.Part {
-
-    private static final String TAG = DozeSuppressedHandler.class.getSimpleName();
-    private static final boolean DEBUG = DozeService.DEBUG;
-
-    private final ContentResolver mResolver;
-    private final AmbientDisplayConfiguration mConfig;
-    private final DozeMachine mMachine;
-    private final DozeSuppressedSettingObserver mSettingObserver;
-    private final Handler mHandler = new Handler();
-
-    public DozeSuppressedHandler(Context context, AmbientDisplayConfiguration config,
-            DozeMachine machine) {
-        this(context, config, machine, null);
-    }
-
-    @VisibleForTesting
-    DozeSuppressedHandler(Context context, AmbientDisplayConfiguration config, DozeMachine machine,
-            DozeSuppressedSettingObserver observer) {
-        mResolver = context.getContentResolver();
-        mConfig = requireNonNull(config);
-        mMachine = requireNonNull(machine);
-        if (observer == null) {
-            mSettingObserver = new DozeSuppressedSettingObserver(mHandler);
-        } else {
-            mSettingObserver = observer;
-        }
-    }
-
-    @Override
-    public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
-        switch (newState) {
-            case INITIALIZED:
-                mSettingObserver.register();
-                break;
-            case FINISH:
-                mSettingObserver.unregister();
-                break;
-            default:
-                // no-op
-        }
-    }
-
-    /**
-     * Listens to changes to the DOZE_SUPPRESSED secure setting and updates the doze state
-     * accordingly.
-     */
-    final class DozeSuppressedSettingObserver extends ContentObserver {
-        private boolean mRegistered;
-
-        private DozeSuppressedSettingObserver(Handler handler) {
-            super(handler);
-        }
-
-        @Override
-        public void onChange(boolean selfChange, Uri uri, int userId) {
-            if (userId != ActivityManager.getCurrentUser()) {
-                return;
-            }
-            final DozeMachine.State nextState;
-            if (mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT)
-                    && !mConfig.dozeSuppressed(UserHandle.USER_CURRENT)) {
-                nextState = DozeMachine.State.DOZE_AOD;
-            } else {
-                nextState = DozeMachine.State.DOZE;
-            }
-            mMachine.requestState(nextState);
-        }
-
-        void register() {
-            if (mRegistered) {
-                return;
-            }
-            mResolver.registerContentObserver(
-                    Settings.Secure.getUriFor(Settings.Secure.SUPPRESS_DOZE),
-                    false, this, UserHandle.USER_CURRENT);
-            Log.d(TAG, "Register");
-            mRegistered = true;
-        }
-
-        void unregister() {
-            if (!mRegistered) {
-                return;
-            }
-            mResolver.unregisterContentObserver(this);
-            Log.d(TAG, "Unregister");
-            mRegistered = false;
-        }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
index 305a4c8..09d7d26 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
@@ -127,7 +127,7 @@
             mDozeLog.tracePulseDropped("pulseOnNotificationsDisabled");
             return;
         }
-        if (mConfig.dozeSuppressed(UserHandle.USER_CURRENT)) {
+        if (mDozeHost.isDozeSuppressed()) {
             runIfNotNull(onPulseSuppressedListener);
             mDozeLog.tracePulseDropped("dozeSuppressed");
             return;
@@ -492,5 +492,16 @@
                 mMachine.requestState(DozeMachine.State.DOZE);
             }
         }
+
+        @Override
+        public void onDozeSuppressedChanged(boolean suppressed) {
+            final DozeMachine.State nextState;
+            if (mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT) && !suppressed) {
+                nextState = DozeMachine.State.DOZE_AOD;
+            } else {
+                nextState = DozeMachine.State.DOZE;
+            }
+            mMachine.requestState(nextState);
+        }
     };
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java b/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java
index b5fd406..1fc1fe4 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java
@@ -99,6 +99,10 @@
         return mCurrentAnimator;
     }
 
+    PipTransitionAnimator getCurrentAnimator() {
+        return mCurrentAnimator;
+    }
+
     private PipTransitionAnimator setupPipTransitionAnimator(PipTransitionAnimator animator) {
         animator.setInterpolator(mFastOutSlowInInterpolator);
         animator.setFloatValues(FRACTION_START, FRACTION_END);
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java b/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java
index 8c3ccaa..1ae3d4f 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java
@@ -336,9 +336,17 @@
         // Save the snap fraction and adjust the size based on the new aspect ratio.
         final float snapFraction = mSnapAlgorithm.getSnapFraction(stackBounds,
                 getMovementBounds(stackBounds));
-        final int minEdgeSize = useCurrentMinEdgeSize ? mCurrentMinSize : mDefaultMinSize;
-        final Size size = mSnapAlgorithm.getSizeForAspectRatio(
-                new Size(stackBounds.width(), stackBounds.height()), aspectRatio, minEdgeSize);
+        final int minEdgeSize;
+        final Size size;
+        if (useCurrentMinEdgeSize) {
+            minEdgeSize = mCurrentMinSize;
+            size = mSnapAlgorithm.getSizeForAspectRatio(
+                    new Size(stackBounds.width(), stackBounds.height()), aspectRatio, minEdgeSize);
+        } else {
+            minEdgeSize = mDefaultMinSize;
+            size = mSnapAlgorithm.getSizeForAspectRatio(aspectRatio, minEdgeSize,
+                    mDisplayInfo.logicalWidth, mDisplayInfo.logicalHeight);
+        }
 
         final int left = (int) (stackBounds.centerX() - size.getWidth() / 2f);
         final int top = (int) (stackBounds.centerY() - size.getHeight() / 2f);
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipSnapAlgorithm.java b/packages/SystemUI/src/com/android/systemui/pip/PipSnapAlgorithm.java
index 6b89718..6bd28c5 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipSnapAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipSnapAlgorithm.java
@@ -19,14 +19,11 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.Resources;
-import android.graphics.Point;
 import android.graphics.PointF;
 import android.graphics.Rect;
 import android.util.Size;
-import android.view.Gravity;
 
 import java.io.PrintWriter;
-import java.util.ArrayList;
 
 /**
  * Calculates the snap targets and the snap position for the PIP given a position and a velocity.
@@ -34,32 +31,11 @@
  */
 public class PipSnapAlgorithm {
 
-    // The below SNAP_MODE_* constants correspond to the config resource value
-    // config_pictureInPictureSnapMode and should not be changed independently.
-    // Allows snapping to the four corners
-    private static final int SNAP_MODE_CORNERS_ONLY = 0;
-    // Allows snapping to the four corners and the mid-points on the long edge in each orientation
-    private static final int SNAP_MODE_CORNERS_AND_SIDES = 1;
-    // Allows snapping to anywhere along the edge of the screen
-    private static final int SNAP_MODE_EDGE = 2;
-    // Allows snapping anywhere along the edge of the screen and magnets towards corners
-    private static final int SNAP_MODE_EDGE_MAGNET_CORNERS = 3;
-    // Allows snapping on the long edge in each orientation and magnets towards corners
-    private static final int SNAP_MODE_LONG_EDGE_MAGNET_CORNERS = 4;
-
-    // Threshold to magnet to a corner
-    private static final float CORNER_MAGNET_THRESHOLD = 0.3f;
-
     private final Context mContext;
 
-    private final ArrayList<Integer> mSnapGravities = new ArrayList<>();
-    private final int mDefaultSnapMode = SNAP_MODE_EDGE_MAGNET_CORNERS;
-    private int mSnapMode = mDefaultSnapMode;
-
     private final float mDefaultSizePercent;
     private final float mMinAspectRatioForMinSize;
     private final float mMaxAspectRatioForMinSize;
-    private final int mFlingDeceleration;
 
     private int mOrientation = Configuration.ORIENTATION_UNDEFINED;
 
@@ -71,8 +47,6 @@
         mMaxAspectRatioForMinSize = res.getFloat(
                 com.android.internal.R.dimen.config_pictureInPictureAspectRatioLimitForMinSize);
         mMinAspectRatioForMinSize = 1f / mMaxAspectRatioForMinSize;
-        mFlingDeceleration = mContext.getResources().getDimensionPixelSize(
-                com.android.internal.R.dimen.pip_fling_deceleration);
         onConfigurationChanged();
     }
 
@@ -82,144 +56,6 @@
     public void onConfigurationChanged() {
         Resources res = mContext.getResources();
         mOrientation = res.getConfiguration().orientation;
-        mSnapMode = res.getInteger(com.android.internal.R.integer.config_pictureInPictureSnapMode);
-        calculateSnapTargets();
-    }
-
-    /**
-     * @return the closest absolute snap stack bounds for the given {@param stackBounds} moving at
-     * the given {@param velocityX} and {@param velocityY}.  The {@param movementBounds} should be
-     * those for the given {@param stackBounds}.
-     */
-    public Rect findClosestSnapBounds(Rect movementBounds, Rect stackBounds, float velocityX,
-            float velocityY, Point dragStartPosition) {
-        final Rect intersectStackBounds = new Rect(stackBounds);
-        final Point intersect = getEdgeIntersect(stackBounds, movementBounds, velocityX, velocityY,
-                dragStartPosition);
-        intersectStackBounds.offsetTo(intersect.x, intersect.y);
-        return findClosestSnapBounds(movementBounds, intersectStackBounds);
-    }
-
-    /**
-     * @return The point along the {@param movementBounds} that the PIP would intersect with based
-     *         on the provided {@param velX}, {@param velY} along with the position of the PIP when
-     *         the gesture started, {@param dragStartPosition}.
-     */
-    public Point getEdgeIntersect(Rect stackBounds, Rect movementBounds, float velX, float velY,
-            Point dragStartPosition) {
-        final boolean isLandscape = mOrientation == Configuration.ORIENTATION_LANDSCAPE;
-        final int x = stackBounds.left;
-        final int y = stackBounds.top;
-
-        // Find the line of movement the PIP is on. Line defined by: y = slope * x + yIntercept
-        final float slope = velY / velX; // slope = rise / run
-        final float yIntercept = y - slope * x; // rearrange line equation for yIntercept
-        // The PIP can have two intercept points:
-        // 1) Where the line intersects with one of the edges of the screen (vertical line)
-        Point vertPoint = new Point();
-        // 2) Where the line intersects with the top or bottom of the screen (horizontal line)
-        Point horizPoint = new Point();
-
-        // Find the vertical line intersection, x will be one of the edges
-        vertPoint.x = velX > 0 ? movementBounds.right : movementBounds.left;
-        // Sub in x in our line equation to determine y position
-        vertPoint.y = findY(slope, yIntercept, vertPoint.x);
-
-        // Find the horizontal line intersection, y will be the top or bottom of the screen
-        horizPoint.y = velY > 0 ? movementBounds.bottom : movementBounds.top;
-        // Sub in y in our line equation to determine x position
-        horizPoint.x = findX(slope, yIntercept, horizPoint.y);
-
-        // Now pick one of these points -- first determine if we're flinging along the current edge.
-        // Only fling along current edge if it's a direction with space for the PIP to move to
-        int maxDistance;
-        if (isLandscape) {
-            maxDistance = velX > 0
-                    ? movementBounds.right - stackBounds.left
-                    : stackBounds.left - movementBounds.left;
-        } else {
-            maxDistance = velY > 0
-                    ? movementBounds.bottom - stackBounds.top
-                    : stackBounds.top - movementBounds.top;
-        }
-        if (maxDistance > 0) {
-            // Only fling along the current edge if the start and end point are on the same side
-            final int startPoint = isLandscape ? dragStartPosition.y : dragStartPosition.x;
-            final int endPoint = isLandscape ? horizPoint.y : horizPoint.x;
-            final int center = movementBounds.centerX();
-            if ((startPoint < center && endPoint < center)
-                    || (startPoint > center && endPoint > center)) {
-                // We are flinging along the current edge, figure out how far it should travel
-                // based on velocity and assumed deceleration.
-                int distance = (int) (0 - Math.pow(isLandscape ? velX : velY, 2))
-                        / (2 * mFlingDeceleration);
-                distance = Math.min(distance, maxDistance);
-                // Adjust the point for the distance
-                if (isLandscape) {
-                    horizPoint.x = stackBounds.left + (velX > 0 ? distance : -distance);
-                } else {
-                    horizPoint.y = stackBounds.top + (velY > 0 ? distance : -distance);
-                }
-                return horizPoint;
-            }
-        }
-        // If we're not flinging along the current edge, find the closest point instead.
-        final double distanceVert = Math.hypot(vertPoint.x - x, vertPoint.y - y);
-        final double distanceHoriz = Math.hypot(horizPoint.x - x, horizPoint.y - y);
-        return Math.abs(distanceVert) > Math.abs(distanceHoriz) ? horizPoint : vertPoint;
-    }
-
-    private int findY(float slope, float yIntercept, float x) {
-        return (int) ((slope * x) + yIntercept);
-    }
-
-    private int findX(float slope, float yIntercept, float y) {
-        return (int) ((y - yIntercept) / slope);
-    }
-
-    /**
-     * @return the closest absolute snap stack bounds for the given {@param stackBounds}.  The
-     * {@param movementBounds} should be those for the given {@param stackBounds}.
-     */
-    public Rect findClosestSnapBounds(Rect movementBounds, Rect stackBounds) {
-        final Rect pipBounds = new Rect(movementBounds.left, movementBounds.top,
-                movementBounds.right + stackBounds.width(),
-                movementBounds.bottom + stackBounds.height());
-        final Rect newBounds = new Rect(stackBounds);
-        if (mSnapMode == SNAP_MODE_LONG_EDGE_MAGNET_CORNERS
-                || mSnapMode == SNAP_MODE_EDGE_MAGNET_CORNERS) {
-            final Rect tmpBounds = new Rect();
-            final Point[] snapTargets = new Point[mSnapGravities.size()];
-            for (int i = 0; i < mSnapGravities.size(); i++) {
-                Gravity.apply(mSnapGravities.get(i), stackBounds.width(), stackBounds.height(),
-                        pipBounds, 0, 0, tmpBounds);
-                snapTargets[i] = new Point(tmpBounds.left, tmpBounds.top);
-            }
-            Point snapTarget = findClosestPoint(stackBounds.left, stackBounds.top, snapTargets);
-            float distance = distanceToPoint(snapTarget, stackBounds.left, stackBounds.top);
-            final float thresh = Math.max(stackBounds.width(), stackBounds.height())
-                    * CORNER_MAGNET_THRESHOLD;
-            if (distance < thresh) {
-                newBounds.offsetTo(snapTarget.x, snapTarget.y);
-            } else {
-                snapRectToClosestEdge(stackBounds, movementBounds, newBounds);
-            }
-        } else if (mSnapMode == SNAP_MODE_EDGE) {
-            // Find the closest edge to the given stack bounds and snap to it
-            snapRectToClosestEdge(stackBounds, movementBounds, newBounds);
-        } else {
-            // Find the closest snap point
-            final Rect tmpBounds = new Rect();
-            final Point[] snapTargets = new Point[mSnapGravities.size()];
-            for (int i = 0; i < mSnapGravities.size(); i++) {
-                Gravity.apply(mSnapGravities.get(i), stackBounds.width(), stackBounds.height(),
-                        pipBounds, 0, 0, tmpBounds);
-                snapTargets[i] = new Point(tmpBounds.left, tmpBounds.top);
-            }
-            Point snapTarget = findClosestPoint(stackBounds.left, stackBounds.top, snapTargets);
-            newBounds.offsetTo(snapTarget.x, snapTarget.y);
-        }
-        return newBounds;
     }
 
     /**
@@ -356,26 +192,10 @@
     }
 
     /**
-     * @return the closest point in {@param points} to the given {@param x} and {@param y}.
-     */
-    private Point findClosestPoint(int x, int y, Point[] points) {
-        Point closestPoint = null;
-        float minDistance = Float.MAX_VALUE;
-        for (Point p : points) {
-            float distance = distanceToPoint(p, x, y);
-            if (distance < minDistance) {
-                closestPoint = p;
-                minDistance = distance;
-            }
-        }
-        return closestPoint;
-    }
-
-    /**
      * Snaps the {@param stackBounds} to the closest edge of the {@param movementBounds} and writes
      * the new bounds out to {@param boundsOut}.
      */
-    private void snapRectToClosestEdge(Rect stackBounds, Rect movementBounds, Rect boundsOut) {
+    public void snapRectToClosestEdge(Rect stackBounds, Rect movementBounds, Rect boundsOut) {
         final int boundedLeft = Math.max(movementBounds.left, Math.min(movementBounds.right,
                 stackBounds.left));
         final int boundedTop = Math.max(movementBounds.top, Math.min(movementBounds.bottom,
@@ -387,15 +207,7 @@
         final int fromTop = Math.abs(stackBounds.top - movementBounds.top);
         final int fromRight = Math.abs(movementBounds.right - stackBounds.left);
         final int fromBottom = Math.abs(movementBounds.bottom - stackBounds.top);
-        int shortest;
-        if (mSnapMode == SNAP_MODE_LONG_EDGE_MAGNET_CORNERS) {
-            // Only check longest edges
-            shortest = (mOrientation == Configuration.ORIENTATION_LANDSCAPE)
-                    ? Math.min(fromTop, fromBottom)
-                    : Math.min(fromLeft, fromRight);
-        } else {
-            shortest = Math.min(Math.min(fromLeft, fromRight), Math.min(fromTop, fromBottom));
-        }
+        final int shortest = Math.min(Math.min(fromLeft, fromRight), Math.min(fromTop, fromBottom));
         if (shortest == fromLeft) {
             boundsOut.offsetTo(movementBounds.left, boundedTop);
         } else if (shortest == fromTop) {
@@ -407,46 +219,9 @@
         }
     }
 
-    /**
-     * @return the distance between point {@param p} and the given {@param x} and {@param y}.
-     */
-    private float distanceToPoint(Point p, int x, int y) {
-        return PointF.length(p.x - x, p.y - y);
-    }
-
-    /**
-     * Calculate the snap targets for the discrete snap modes.
-     */
-    private void calculateSnapTargets() {
-        mSnapGravities.clear();
-        switch (mSnapMode) {
-            case SNAP_MODE_CORNERS_AND_SIDES:
-                if (mOrientation == Configuration.ORIENTATION_LANDSCAPE) {
-                    mSnapGravities.add(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
-                    mSnapGravities.add(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
-                } else {
-                    mSnapGravities.add(Gravity.CENTER_VERTICAL | Gravity.LEFT);
-                    mSnapGravities.add(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
-                }
-                // Fall through
-            case SNAP_MODE_CORNERS_ONLY:
-            case SNAP_MODE_EDGE_MAGNET_CORNERS:
-            case SNAP_MODE_LONG_EDGE_MAGNET_CORNERS:
-                mSnapGravities.add(Gravity.TOP | Gravity.LEFT);
-                mSnapGravities.add(Gravity.TOP | Gravity.RIGHT);
-                mSnapGravities.add(Gravity.BOTTOM | Gravity.LEFT);
-                mSnapGravities.add(Gravity.BOTTOM | Gravity.RIGHT);
-                break;
-            default:
-                // Skip otherwise
-                break;
-        }
-    }
-
     public void dump(PrintWriter pw, String prefix) {
         final String innerPrefix = prefix + "  ";
         pw.println(prefix + PipSnapAlgorithm.class.getSimpleName());
-        pw.println(innerPrefix + "mSnapMode=" + mSnapMode);
         pw.println(innerPrefix + "mOrientation=" + mOrientation);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
index 1555153..836485a 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
@@ -18,7 +18,7 @@
 
 import static com.android.systemui.pip.PipAnimationController.ANIM_TYPE_ALPHA;
 import static com.android.systemui.pip.PipAnimationController.ANIM_TYPE_BOUNDS;
-import static com.android.systemui.pip.PipAnimationController.DURATION_NONE;
+import static com.android.systemui.pip.PipAnimationController.DURATION_DEFAULT_MS;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -87,19 +87,7 @@
                 }
             });
             final Rect destinationBounds = animator.getDestinationBounds();
-            mLastReportedBounds.set(destinationBounds);
-            try {
-                final WindowContainerTransaction wct = new WindowContainerTransaction();
-                if (animator.shouldScheduleFinishPip()) {
-                    wct.scheduleFinishEnterPip(wc, destinationBounds);
-                } else {
-                    wct.setBounds(wc, destinationBounds);
-                }
-                wct.setBoundsChangeTransaction(wc, tx);
-                mTaskOrganizerController.applyContainerTransaction(wct, null /* ITaskOrganizer */);
-            } catch (RemoteException e) {
-                Log.e(TAG, "Failed to apply container transaction", e);
-            }
+            finishResizeInternal(destinationBounds, wc, tx, animator.shouldScheduleFinishPip());
         }
 
         @Override
@@ -125,15 +113,6 @@
     }
 
     /**
-     * Resize the PiP window, animate if the given duration is not {@link #DURATION_NONE}
-     */
-    public void resizePinnedStack(Rect destinationBounds, int durationMs) {
-        Objects.requireNonNull(mTaskInfo, "Requires valid IWindowContainer");
-        resizePinnedStackInternal(mTaskInfo.token, false /* scheduleFinishPip */,
-                mLastReportedBounds, destinationBounds, durationMs);
-    }
-
-    /**
      * Offset the PiP window, animate if the given duration is not {@link #DURATION_NONE}
      */
     public void offsetPinnedStack(Rect originalBounds, int xOffset, int yOffset, int durationMs) {
@@ -143,7 +122,7 @@
         }
         final Rect destinationBounds = new Rect(originalBounds);
         destinationBounds.offset(xOffset, yOffset);
-        resizePinnedStackInternal(mTaskInfo.token, false /* scheduleFinishPip*/,
+        animateResizePipInternal(mTaskInfo.token, false /* scheduleFinishPip*/,
                 originalBounds, destinationBounds, durationMs);
     }
 
@@ -166,7 +145,22 @@
      * Updates the display dimension with given {@link DisplayInfo}
      */
     public void onDisplayInfoChanged(DisplayInfo displayInfo) {
-        mDisplayBounds.set(0, 0, displayInfo.logicalWidth, displayInfo.logicalHeight);
+        final Rect newDisplayBounds = new Rect(0, 0,
+                displayInfo.logicalWidth, displayInfo.logicalHeight);
+        if (!mDisplayBounds.equals(newDisplayBounds)) {
+            // Updates the exiting PiP animation in case the screen rotation changes in the middle.
+            // It's a legit case that PiP window is in portrait mode on home screen and
+            // the application requests landscape onces back to fullscreen mode.
+            final PipAnimationController.PipTransitionAnimator animator =
+                    mPipAnimationController.getCurrentAnimator();
+            if (animator != null
+                    && animator.getAnimationType() == ANIM_TYPE_BOUNDS
+                    && animator.getDestinationBounds().equals(mDisplayBounds)) {
+                animator.updateEndValue(newDisplayBounds);
+                animator.setDestinationBounds(newDisplayBounds);
+            }
+        }
+        mDisplayBounds.set(newDisplayBounds);
     }
 
     /**
@@ -193,15 +187,14 @@
         mTaskInfo = info;
         if (mOneShotAnimationType == ANIM_TYPE_BOUNDS) {
             final Rect currentBounds = mTaskInfo.configuration.windowConfiguration.getBounds();
-            resizePinnedStackInternal(mTaskInfo.token, true /* scheduleFinishPip */,
-                    currentBounds, destinationBounds,
-                    PipAnimationController.DURATION_DEFAULT_MS);
+            animateResizePipInternal(mTaskInfo.token, true /* scheduleFinishPip */,
+                    currentBounds, destinationBounds, DURATION_DEFAULT_MS);
         } else if (mOneShotAnimationType == ANIM_TYPE_ALPHA) {
             mMainHandler.post(() -> mPipAnimationController
                     .getAnimator(mTaskInfo.token, true /* scheduleFinishPip */,
                             destinationBounds, 0f, 1f)
                     .setPipAnimationCallback(mPipAnimationCallback)
-                    .setDuration(PipAnimationController.DURATION_DEFAULT_MS)
+                    .setDuration(DURATION_DEFAULT_MS)
                     .start());
             mOneShotAnimationType = ANIM_TYPE_BOUNDS;
         } else {
@@ -216,9 +209,8 @@
             Log.wtf(TAG, "Unrecognized token: " + token);
             return;
         }
-        resizePinnedStackInternal(token, false /* scheduleFinishPip */,
-                mLastReportedBounds, mDisplayBounds,
-                PipAnimationController.DURATION_DEFAULT_MS);
+        animateResizePipInternal(token, false /* scheduleFinishPip */,
+                mLastReportedBounds, mDisplayBounds, DURATION_DEFAULT_MS);
     }
 
     @Override
@@ -227,14 +219,41 @@
 
     @Override
     public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) {
+        final PictureInPictureParams newParams = info.pictureInPictureParams;
+        if (!shouldUpdateDestinationBounds(newParams)) {
+            Log.d(TAG, "Ignored onTaskInfoChanged with PiP param: " + newParams);
+            return;
+        }
         final Rect destinationBounds = mPipBoundsHandler.getDestinationBounds(
-                getAspectRatioOrDefault(info.pictureInPictureParams), null /* bounds */);
+                getAspectRatioOrDefault(newParams), null /* bounds */);
         Objects.requireNonNull(destinationBounds, "Missing destination bounds");
-        resizePinnedStack(destinationBounds, PipAnimationController.DURATION_DEFAULT_MS);
+        animateResizePip(destinationBounds, DURATION_DEFAULT_MS);
     }
 
-    private void resizePinnedStackInternal(IWindowContainer wc, boolean scheduleFinishPip,
-            Rect currentBounds, Rect destinationBounds, int animationDurationMs) {
+    /**
+     * @return {@code true} if the aspect ratio is changed since no other parameters within
+     * {@link PictureInPictureParams} would affect the bounds.
+     */
+    private boolean shouldUpdateDestinationBounds(PictureInPictureParams params) {
+        if (params == null || mTaskInfo.pictureInPictureParams == null) {
+            return params != mTaskInfo.pictureInPictureParams;
+        }
+        return !Objects.equals(mTaskInfo.pictureInPictureParams.getAspectRatioRational(),
+                params.getAspectRatioRational());
+    }
+
+    /**
+     * Directly perform manipulation/resize on the leash. This will not perform any
+     * {@link WindowContainerTransaction} until {@link #finishResize} is called.
+     */
+    public void resizePip(Rect destinationBounds) {
+        Objects.requireNonNull(mTaskInfo, "Requires valid IWindowContainer");
+        resizePipInternal(mTaskInfo.token, destinationBounds);
+    }
+
+    private void resizePipInternal(IWindowContainer wc,
+            Rect destinationBounds) {
+        Objects.requireNonNull(mTaskInfo, "Requires valid IWindowContainer");
         try {
             // Could happen when dismissPip
             if (wc == null || wc.getLeash() == null) {
@@ -242,20 +261,10 @@
                 return;
             }
             final SurfaceControl leash = wc.getLeash();
-            if (animationDurationMs == DURATION_NONE) {
-                // Directly resize if no animation duration is set. When fling, wait for final
-                // callback to issue the proper WindowContainerTransaction with destination bounds.
-                new SurfaceControl.Transaction()
-                        .setPosition(leash, destinationBounds.left, destinationBounds.top)
-                        .setWindowCrop(leash, destinationBounds.width(), destinationBounds.height())
-                        .apply();
-            } else {
-                mMainHandler.post(() -> mPipAnimationController
-                        .getAnimator(wc, scheduleFinishPip, currentBounds, destinationBounds)
-                        .setPipAnimationCallback(mPipAnimationCallback)
-                        .setDuration(animationDurationMs)
-                        .start());
-            }
+            new SurfaceControl.Transaction()
+                    .setPosition(leash, destinationBounds.left, destinationBounds.top)
+                    .setWindowCrop(leash, destinationBounds.width(), destinationBounds.height())
+                    .apply();
         } catch (RemoteException e) {
             Log.w(TAG, "Abort animation, invalid window container", e);
         } catch (Exception e) {
@@ -263,6 +272,73 @@
         }
     }
 
+    /**
+     * Finish a intermediate resize operation. This is expected to be called after
+     * {@link #resizePip}.
+     */
+    public void finishResize(Rect destinationBounds) {
+        try {
+            final IWindowContainer wc = mTaskInfo.token;
+            SurfaceControl.Transaction tx = new SurfaceControl.Transaction()
+                    .setPosition(wc.getLeash(), destinationBounds.left,
+                            destinationBounds.top)
+                    .setWindowCrop(wc.getLeash(), destinationBounds.width(),
+                            destinationBounds.height());
+            finishResizeInternal(destinationBounds, wc, tx, false);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to obtain leash");
+        }
+    }
+
+    private void finishResizeInternal(Rect destinationBounds, IWindowContainer wc,
+            SurfaceControl.Transaction tx, boolean shouldScheduleFinishPip) {
+        mLastReportedBounds.set(destinationBounds);
+        try {
+            final WindowContainerTransaction wct = new WindowContainerTransaction();
+            if (shouldScheduleFinishPip) {
+                wct.scheduleFinishEnterPip(wc, destinationBounds);
+            } else {
+                wct.setBounds(wc, destinationBounds);
+            }
+            wct.setBoundsChangeTransaction(mTaskInfo.token, tx);
+            mTaskOrganizerController.applyContainerTransaction(wct, null /* ITaskOrganizer */);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to apply container transaction", e);
+        }
+    }
+
+    /**
+     * Animates resizing of the pinned stack given the duration.
+     */
+    public void animateResizePip(Rect destinationBounds, int durationMs) {
+        Objects.requireNonNull(mTaskInfo, "Requires valid IWindowContainer");
+        animateResizePipInternal(mTaskInfo.token, false, mLastReportedBounds,
+                destinationBounds, durationMs);
+    }
+
+    private void animateResizePipInternal(IWindowContainer wc, boolean scheduleFinishPip,
+            Rect currentBounds, Rect destinationBounds, int durationMs) {
+        try {
+            // Could happen when dismissPip
+            if (wc == null || wc.getLeash() == null) {
+                Log.w(TAG, "Abort animation, invalid leash");
+                return;
+            }
+            final SurfaceControl leash = wc.getLeash();
+
+            mMainHandler.post(() -> mPipAnimationController
+                    .getAnimator(wc, scheduleFinishPip, currentBounds, destinationBounds)
+                    .setPipAnimationCallback(mPipAnimationCallback)
+                    .setDuration(durationMs)
+                    .start());
+        } catch (RemoteException e) {
+            Log.w(TAG, "Abort animation, invalid window container", e);
+        } catch (Exception e) {
+            Log.e(TAG, "Should not reach here, terrible thing happened", e);
+        }
+    }
+
+
     private float getAspectRatioOrDefault(@Nullable PictureInPictureParams params) {
         return params == null
                 ? mPipBoundsHandler.getDefaultAspectRatio()
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
index 7b96268..8ada3c3 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
@@ -69,7 +69,6 @@
     private IActivityManager mActivityManager;
     private Handler mHandler = new Handler();
 
-    private final PinnedStackListener mPinnedStackListener = new PipManagerPinnedStackListener();
     private final DisplayInfo mTmpDisplayInfo = new DisplayInfo();
     private final Rect mTmpInsetBounds = new Rect();
     private final Rect mTmpNormalBounds = new Rect();
@@ -211,7 +210,8 @@
         mActivityManager = ActivityManager.getService();
 
         try {
-            WindowManagerWrapper.getInstance().addPinnedStackListener(mPinnedStackListener);
+            WindowManagerWrapper.getInstance().addPinnedStackListener(
+                    new PipManagerPinnedStackListener());
         } catch (RemoteException e) {
             Log.e(TAG, "Failed to register pinned stack listener", e);
         }
@@ -341,7 +341,6 @@
 
     private void updateMovementBounds(Rect animatingBounds, boolean fromImeAdjustment,
             boolean fromShelfAdjustment) {
-        mPipTaskOrganizer.onDisplayInfoChanged(mTmpDisplayInfo);
         // Populate inset / normal bounds and DisplayInfo from mPipBoundsHandler before
         // passing to mTouchHandler, mTouchHandler would rely on the bounds calculated by
         // mPipBoundsHandler with up-to-dated information
@@ -350,6 +349,7 @@
         mTouchHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds,
                 animatingBounds, fromImeAdjustment, fromShelfAdjustment,
                 mTmpDisplayInfo.rotation);
+        mPipTaskOrganizer.onDisplayInfoChanged(mTmpDisplayInfo);
     }
 
     public void dump(PrintWriter pw) {
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
index 980d18b..fdaf66a 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
@@ -38,7 +38,6 @@
 
 import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
 import com.android.internal.os.SomeArgs;
-import com.android.systemui.pip.PipAnimationController;
 import com.android.systemui.pip.PipSnapAlgorithm;
 import com.android.systemui.pip.PipTaskOrganizer;
 import com.android.systemui.shared.system.WindowManagerWrapper;
@@ -329,7 +328,8 @@
      * Animates the PiP to the closest snap target.
      */
     void animateToClosestSnapTarget() {
-        final Rect newBounds = mSnapAlgorithm.findClosestSnapBounds(mMovementBounds, mBounds);
+        final Rect newBounds = new Rect();
+        mSnapAlgorithm.snapRectToClosestEdge(mBounds, mMovementBounds, newBounds);
         animateToBounds(newBounds, mSpringConfig);
     }
 
@@ -546,7 +546,7 @@
             case MSG_RESIZE_IMMEDIATE: {
                 SomeArgs args = (SomeArgs) msg.obj;
                 Rect toBounds = (Rect) args.arg1;
-                mPipTaskOrganizer.resizePinnedStack(toBounds, PipAnimationController.DURATION_NONE);
+                mPipTaskOrganizer.resizePip(toBounds);
                 mBounds.set(toBounds);
                 return true;
             }
@@ -564,7 +564,7 @@
                         return true;
                     }
 
-                    mPipTaskOrganizer.resizePinnedStack(toBounds, duration);
+                    mPipTaskOrganizer.animateResizePip(toBounds, duration);
                     mBounds.set(toBounds);
                 } catch (RemoteException e) {
                     Log.e(TAG, "Could not animate resize pinned stack to bounds: " + toBounds, e);
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java
index 389793e..8fff419 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java
@@ -41,6 +41,7 @@
 import com.android.internal.policy.TaskResizingAlgorithm;
 import com.android.systemui.R;
 import com.android.systemui.pip.PipBoundsHandler;
+import com.android.systemui.pip.PipTaskOrganizer;
 import com.android.systemui.util.DeviceConfigProxy;
 
 import java.util.concurrent.Executor;
@@ -74,12 +75,13 @@
 
     private InputMonitor mInputMonitor;
     private InputEventReceiver mInputEventReceiver;
+    private PipTaskOrganizer mPipTaskOrganizer;
 
     private int mCtrlType;
 
     public PipResizeGestureHandler(Context context, PipBoundsHandler pipBoundsHandler,
             PipTouchHandler pipTouchHandler, PipMotionHelper motionHelper,
-            DeviceConfigProxy deviceConfig) {
+            DeviceConfigProxy deviceConfig, PipTaskOrganizer pipTaskOrganizer) {
         final Resources res = context.getResources();
         context.getDisplay().getMetrics(mDisplayMetrics);
         mDisplayId = context.getDisplayId();
@@ -87,6 +89,7 @@
         mPipBoundsHandler = pipBoundsHandler;
         mPipTouchHandler = pipTouchHandler;
         mMotionHelper = motionHelper;
+        mPipTaskOrganizer = pipTaskOrganizer;
 
         context.getDisplay().getRealSize(mMaxSize);
         mDelta = res.getDimensionPixelSize(R.dimen.pip_resize_edge_size);
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
index 3f73d01..c3212b8 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
@@ -182,7 +182,7 @@
                 mMenuController, mSnapAlgorithm, mFlingAnimationUtils, floatingContentCoordinator);
         mPipResizeGestureHandler =
                 new PipResizeGestureHandler(context, pipBoundsHandler, this, mMotionHelper,
-                        deviceConfig);
+                        deviceConfig, pipTaskOrganizer);
         mTouchState = new PipTouchState(ViewConfiguration.get(context), mHandler,
                 () -> mMenuController.showMenu(MENU_STATE_FULL, mMotionHelper.getBounds(),
                         mMovementBounds, true /* allowMenuTimeout */, willResizeMenu()));
diff --git a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
index cb1a218..f28c3f6 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
@@ -433,8 +433,8 @@
                 mCurrentPipBounds = mPipBounds;
                 break;
         }
-        mPipTaskOrganizer.resizePinnedStack(
-                mCurrentPipBounds, PipAnimationController.DURATION_DEFAULT_MS);
+        mPipTaskOrganizer.animateResizePip(mCurrentPipBounds,
+                PipAnimationController.DURATION_DEFAULT_MS);
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
index 938f9db..17ac5e5 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
@@ -28,6 +28,7 @@
 import android.provider.Settings.Secure;
 import android.service.quicksettings.Tile;
 import android.text.TextUtils;
+import android.util.ArraySet;
 import android.util.Log;
 
 import com.android.systemui.Dumpable;
@@ -61,6 +62,7 @@
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Optional;
+import java.util.Set;
 import java.util.function.Predicate;
 
 import javax.inject.Inject;
@@ -91,6 +93,7 @@
     private final ArrayList<QSFactory> mQsFactories = new ArrayList<>();
     private int mCurrentUser;
     private final Optional<StatusBar> mStatusBarOptional;
+    private Context mUserContext;
 
     @Inject
     public QSTileHost(Context context,
@@ -107,6 +110,7 @@
             QSLogger qsLogger) {
         mIconController = iconController;
         mContext = context;
+        mUserContext = context;
         mTunerService = tunerService;
         mPluginManager = pluginManager;
         mDumpManager = dumpManager;
@@ -207,6 +211,9 @@
         return mContext;
     }
 
+    public Context getUserContext() {
+        return mUserContext;
+    }
 
     public TileServices getTileServices() {
         return mServices;
@@ -227,6 +234,9 @@
         }
         final List<String> tileSpecs = loadTileSpecs(mContext, newValue);
         int currentUser = ActivityManager.getCurrentUser();
+        if (currentUser != mCurrentUser) {
+            mUserContext = mContext.createContextAsUser(UserHandle.of(currentUser), 0);
+        }
         if (tileSpecs.equals(mTileSpecs) && currentUser == mCurrentUser) return;
         mTiles.entrySet().stream().filter(tile -> !tileSpecs.contains(tile.getKey())).forEach(
                 tile -> {
@@ -253,6 +263,13 @@
                     mQSLogger.logTileDestroyed(tileSpec, "Tile not available");
                 }
             } else {
+                // This means that the tile is a CustomTile AND the user is different, so let's
+                // destroy it
+                if (tile != null) {
+                    tile.destroy();
+                    Log.d(TAG, "Destroying tile for wrong user: " + tileSpec);
+                    mQSLogger.logTileDestroyed(tileSpec, "Tile for wrong user");
+                }
                 Log.d(TAG, "Creating tile: " + tileSpec);
                 try {
                     tile = createTile(tileSpec);
@@ -273,7 +290,7 @@
             }
         }
         mCurrentUser = currentUser;
-        List<String> currentSpecs = new ArrayList(mTileSpecs);
+        List<String> currentSpecs = new ArrayList<>(mTileSpecs);
         mTileSpecs.clear();
         mTileSpecs.addAll(tileSpecs);
         mTiles.clear();
@@ -300,7 +317,7 @@
     }
 
     public void addTile(String spec) {
-        changeTileSpecs(tileSpecs-> tileSpecs.add(spec));
+        changeTileSpecs(tileSpecs-> !tileSpecs.contains(spec) && tileSpecs.add(spec));
     }
 
     private void changeTileSpecs(Predicate<List<String>> changeFunction) {
@@ -314,9 +331,12 @@
     }
 
     public void addTile(ComponentName tile) {
-        List<String> newSpecs = new ArrayList<>(mTileSpecs);
-        newSpecs.add(0, CustomTile.toSpec(tile));
-        changeTiles(mTileSpecs, newSpecs);
+        String spec = CustomTile.toSpec(tile);
+        if (!mTileSpecs.contains(spec)) {
+            List<String> newSpecs = new ArrayList<>(mTileSpecs);
+            newSpecs.add(0, spec);
+            changeTiles(mTileSpecs, newSpecs);
+        }
     }
 
     public void removeTile(ComponentName tile) {
@@ -326,10 +346,10 @@
     }
 
     public void changeTiles(List<String> previousTiles, List<String> newTiles) {
-        final int NP = previousTiles.size();
-        final int NA = newTiles.size();
+        final List<String> copy = new ArrayList<>(previousTiles);
+        final int NP = copy.size();
         for (int i = 0; i < NP; i++) {
-            String tileSpec = previousTiles.get(i);
+            String tileSpec = copy.get(i);
             if (!tileSpec.startsWith(CustomTile.PREFIX)) continue;
             if (!newTiles.contains(tileSpec)) {
                 ComponentName component = CustomTile.getComponentFromSpec(tileSpec);
@@ -380,16 +400,26 @@
         }
         final ArrayList<String> tiles = new ArrayList<String>();
         boolean addedDefault = false;
+        Set<String> addedSpecs = new ArraySet<>();
         for (String tile : tileList.split(",")) {
             tile = tile.trim();
             if (tile.isEmpty()) continue;
             if (tile.equals("default")) {
                 if (!addedDefault) {
-                    tiles.addAll(getDefaultSpecs(context));
+                    List<String> defaultSpecs = getDefaultSpecs(context);
+                    for (String spec : defaultSpecs) {
+                        if (!addedSpecs.contains(spec)) {
+                            tiles.add(spec);
+                            addedSpecs.add(spec);
+                        }
+                    }
                     addedDefault = true;
                 }
             } else {
-                tiles.add(tile);
+                if (!addedSpecs.contains(tile)) {
+                    tiles.add(tile);
+                    addedSpecs.add(tile);
+                }
             }
         }
         return tiles;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java b/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java
index 21a424c..3b27fb7 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java
@@ -20,6 +20,7 @@
 
 import android.app.ActivityManager;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -72,15 +73,19 @@
     private android.graphics.drawable.Icon mDefaultIcon;
     private CharSequence mDefaultLabel;
 
+    private final Context mUserContext;
+
     private boolean mListening;
     private boolean mIsTokenGranted;
     private boolean mIsShowingDialog;
 
-    private CustomTile(QSTileHost host, String action) {
+    private CustomTile(QSTileHost host, String action, Context userContext) {
         super(host);
         mWindowManager = WindowManagerGlobal.getWindowManagerService();
         mComponent = ComponentName.unflattenFromString(action);
         mTile = new Tile();
+        mUserContext = userContext;
+        mUser = mUserContext.getUserId();
         updateDefaultTileAndIcon();
         mServiceManager = host.getTileServices().getTileWrapper(this);
         if (mServiceManager.isToggleableTile()) {
@@ -90,7 +95,6 @@
 
         mService = mServiceManager.getTileService();
         mServiceManager.setTileChangeListener(this);
-        mUser = ActivityManager.getCurrentUser();
     }
 
     @Override
@@ -100,7 +104,7 @@
 
     private void updateDefaultTileAndIcon() {
         try {
-            PackageManager pm = mContext.getPackageManager();
+            PackageManager pm = mUserContext.getPackageManager();
             int flags = PackageManager.MATCH_DIRECT_BOOT_UNAWARE | PackageManager.MATCH_DIRECT_BOOT_AWARE;
             if (isSystemApp(pm)) {
                 flags |= PackageManager.MATCH_DISABLED_COMPONENTS;
@@ -318,15 +322,16 @@
         state.state = tileState;
         Drawable drawable;
         try {
-            drawable = mTile.getIcon().loadDrawable(mContext);
+            drawable = mTile.getIcon().loadDrawable(mUserContext);
         } catch (Exception e) {
             Log.w(TAG, "Invalid icon, forcing into unavailable state");
             state.state = Tile.STATE_UNAVAILABLE;
-            drawable = mDefaultIcon.loadDrawable(mContext);
+            drawable = mDefaultIcon.loadDrawable(mUserContext);
         }
 
         final Drawable drawableF = drawable;
         state.iconSupplier = () -> {
+            if (drawableF == null) return null;
             Drawable.ConstantState cs = drawableF.getConstantState();
             if (cs != null) {
                 return new DrawableIcon(cs.newDrawable());
@@ -387,7 +392,7 @@
         return ComponentName.unflattenFromString(action);
     }
 
-    public static CustomTile create(QSTileHost host, String spec) {
+    public static CustomTile create(QSTileHost host, String spec, Context userContext) {
         if (spec == null || !spec.startsWith(PREFIX) || !spec.endsWith(")")) {
             throw new IllegalArgumentException("Bad custom tile spec: " + spec);
         }
@@ -395,6 +400,6 @@
         if (action.isEmpty()) {
             throw new IllegalArgumentException("Empty custom tile spec action");
         }
-        return new CustomTile(host, action);
+        return new CustomTile(host, action, userContext);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java b/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java
index 17b0251..aa51771 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java
@@ -279,6 +279,7 @@
         if (mPackageReceiverRegistered.get() || mUserReceiverRegistered.get()) {
             stopPackageListening();
         }
+        mChangeListener = null;
     }
 
     private void handleDeath() {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
index 554672d..1b8717b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
@@ -178,7 +178,9 @@
         }
 
         // Custom tiles
-        if (tileSpec.startsWith(CustomTile.PREFIX)) return CustomTile.create(mHost, tileSpec);
+        if (tileSpec.startsWith(CustomTile.PREFIX)) {
+            return CustomTile.create(mHost, tileSpec, mHost.getUserContext());
+        }
 
         // Debug tiles.
         if (Build.IS_DEBUGGABLE) {
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
index 3afd5dc..7c770f4 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
@@ -551,7 +551,7 @@
                 super.onAnimationEnd(animation);
                 mScreenshotView.setScaleX(cornerScale);
                 mScreenshotView.setScaleY(cornerScale);
-                mScreenshotView.setX(finalPos.x - height * cornerScale / 2f);
+                mScreenshotView.setX(finalPos.x - width * cornerScale / 2f);
                 mScreenshotView.setY(finalPos.y - height * cornerScale / 2f);
                 Rect bounds = new Rect();
                 mScreenshotView.getBoundsOnScreen(bounds);
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
index 27b799b..333fa3c 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
@@ -19,6 +19,9 @@
 import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
 import static android.view.Display.DEFAULT_DISPLAY;
 
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ValueAnimator;
 import android.app.ActivityTaskManager;
 import android.content.Context;
 import android.content.res.Configuration;
@@ -35,6 +38,8 @@
 import android.view.View;
 import android.view.WindowContainerTransaction;
 
+import androidx.annotation.Nullable;
+
 import com.android.internal.policy.DividerSnapAlgorithm;
 import com.android.systemui.R;
 import com.android.systemui.SystemUI;
@@ -69,6 +74,7 @@
     static final boolean DEBUG = true;
 
     static final int DEFAULT_APP_TRANSITION_DURATION = 336;
+    static final float ADJUSTED_NONFOCUS_DIM = 0.3f;
 
     private final Optional<Lazy<Recents>> mRecentsOptionalLazy;
 
@@ -121,42 +127,92 @@
                 }
             };
 
-    private IWindowContainer mLastImeTarget = null;
-    private boolean mShouldAdjustForIme = false;
-
     private DisplayImeController.ImePositionProcessor mImePositionProcessor =
             new DisplayImeController.ImePositionProcessor() {
-                private int mStartTop = 0;
-                private int mFinalTop = 0;
+                /**
+                 * These are the y positions of the top of the IME surface when it is hidden and
+                 * when it is shown respectively. These are NOT necessarily the top of the visible
+                 * IME itself.
+                 */
+                private int mHiddenTop = 0;
+                private int mShownTop = 0;
+
+                // The following are target states (what we are curretly animating towards).
+                /**
+                 * {@code true} if, at the end of the animation, the split task positions should be
+                 * adjusted by height of the IME. This happens when the secondary split is the IME
+                 * target.
+                 */
+                private boolean mTargetAdjusted = false;
+                /**
+                 * {@code true} if, at the end of the animation, the IME should be shown/visible
+                 * regardless of what has focus.
+                 */
+                private boolean mTargetShown = false;
+
+                // The following are the current (most recent) states set during animation
+                /**
+                 * {@code true} if the secondary split has IME focus.
+                 */
+                private boolean mSecondaryHasFocus = false;
+                /** The dimming currently applied to the primary/secondary splits. */
+                private float mLastPrimaryDim = 0.f;
+                private float mLastSecondaryDim = 0.f;
+                /** The most recent y position of the top of the IME surface */
+                private int mLastAdjustTop = -1;
+
+                // The following are states reached last time an animation fully completed.
+                /** {@code true} if the IME was shown/visible by the last-completed animation. */
+                private boolean mImeWasShown = false;
+                /**
+                 * {@code true} if the split positions were adjusted by the last-completed
+                 * animation.
+                 */
+                private boolean mAdjusted = false;
+
+                /**
+                 * When some aspect of split-screen needs to animate independent from the IME,
+                 * this will be non-null and control split animation.
+                 */
+                @Nullable
+                private ValueAnimator mAnimation = null;
+
+                private boolean getSecondaryHasFocus(int displayId) {
+                    try {
+                        IWindowContainer imeSplit = ActivityTaskManager.getTaskOrganizerController()
+                                .getImeTarget(displayId);
+                        return imeSplit != null
+                                && (imeSplit.asBinder() == mSplits.mSecondary.token.asBinder());
+                    } catch (RemoteException e) {
+                        Slog.w(TAG, "Failed to get IME target", e);
+                    }
+                    return false;
+                }
+
                 @Override
-                public void onImeStartPositioning(int displayId, int imeTop, int finalImeTop,
-                        boolean showing, SurfaceControl.Transaction t) {
-                    mStartTop = imeTop;
-                    mFinalTop = finalImeTop;
-                    if (showing) {
-                        try {
-                            mLastImeTarget = ActivityTaskManager.getTaskOrganizerController()
-                                    .getImeTarget(displayId);
-                            mShouldAdjustForIme = mLastImeTarget != null
-                                    && !mSplitLayout.mDisplayLayout.isLandscape()
-                                    && (mLastImeTarget.asBinder()
-                                    == mSplits.mSecondary.token.asBinder());
-                        } catch (RemoteException e) {
-                            Slog.w(TAG, "Failed to get IME target", e);
-                        }
+                public void onImeStartPositioning(int displayId, int hiddenTop, int shownTop,
+                        boolean imeShouldShow, SurfaceControl.Transaction t) {
+                    mSecondaryHasFocus = getSecondaryHasFocus(displayId);
+                    mTargetAdjusted = imeShouldShow && mSecondaryHasFocus
+                            && !mSplitLayout.mDisplayLayout.isLandscape();
+                    mHiddenTop = hiddenTop;
+                    mShownTop = shownTop;
+                    mTargetShown = imeShouldShow;
+                    if (mLastAdjustTop < 0) {
+                        mLastAdjustTop = imeShouldShow ? hiddenTop : shownTop;
                     }
-                    if (!mShouldAdjustForIme) {
-                        setAdjustedForIme(false);
-                        return;
+                    if (mAnimation != null || (mImeWasShown && imeShouldShow
+                            && mTargetAdjusted != mAdjusted)) {
+                        // We need to animate adjustment independently of the IME position, so
+                        // start our own animation to drive adjustment. This happens when a
+                        // different split's editor has gained focus while the IME is still visible.
+                        startAsyncAnimation();
                     }
-                    mView.setAdjustedForIme(showing, showing
-                            ? DisplayImeController.ANIMATION_DURATION_SHOW_MS
-                            : DisplayImeController.ANIMATION_DURATION_HIDE_MS);
                     // Reposition the server's secondary split position so that it evaluates
                     // insets properly.
                     WindowContainerTransaction wct = new WindowContainerTransaction();
-                    if (showing) {
-                        mSplitLayout.updateAdjustedBounds(finalImeTop, imeTop, finalImeTop);
+                    if (mTargetAdjusted) {
+                        mSplitLayout.updateAdjustedBounds(mShownTop, mHiddenTop, mShownTop);
                         wct.setBounds(mSplits.mSecondary.token, mSplitLayout.mAdjustedSecondary);
                     } else {
                         wct.setBounds(mSplits.mSecondary.token, mSplitLayout.mSecondary);
@@ -166,34 +222,106 @@
                                 .applyContainerTransaction(wct, null /* organizer */);
                     } catch (RemoteException e) {
                     }
-                    setAdjustedForIme(showing);
+
+                    // Update all the adjusted-for-ime states
+                    mView.setAdjustedForIme(mTargetShown, mTargetShown
+                            ? DisplayImeController.ANIMATION_DURATION_SHOW_MS
+                            : DisplayImeController.ANIMATION_DURATION_HIDE_MS);
+                    setAdjustedForIme(mTargetShown);
                 }
 
                 @Override
                 public void onImePositionChanged(int displayId, int imeTop,
                         SurfaceControl.Transaction t) {
-                    if (!mShouldAdjustForIme) {
+                    if (mAnimation != null) {
+                        // Not synchronized with IME anymore, so return.
                         return;
                     }
-                    mSplitLayout.updateAdjustedBounds(imeTop, mStartTop, mFinalTop);
-                    mView.resizeSplitSurfaces(t, mSplitLayout.mAdjustedPrimary,
-                            mSplitLayout.mAdjustedSecondary);
-                    final boolean showing = mFinalTop < mStartTop;
-                    final float progress = ((float) (imeTop - mStartTop)) / (mFinalTop - mStartTop);
-                    final float fraction = showing ? progress : 1.f - progress;
-                    mView.setResizeDimLayer(t, true /* primary */, fraction * 0.3f);
+                    final float fraction = ((float) imeTop - mHiddenTop) / (mShownTop - mHiddenTop);
+                    final float progress = mTargetShown ? fraction : 1.f - fraction;
+                    onProgress(progress, t);
                 }
 
                 @Override
-                public void onImeEndPositioning(int displayId, int imeTop,
-                        boolean showing, SurfaceControl.Transaction t) {
-                    if (!mShouldAdjustForIme) {
+                public void onImeEndPositioning(int displayId, boolean cancelled,
+                        SurfaceControl.Transaction t) {
+                    if (mAnimation != null) {
+                        // Not synchronized with IME anymore, so return.
                         return;
                     }
-                    mSplitLayout.updateAdjustedBounds(imeTop, mStartTop, mFinalTop);
-                    mView.resizeSplitSurfaces(t, mSplitLayout.mAdjustedPrimary,
-                            mSplitLayout.mAdjustedSecondary);
-                    mView.setResizeDimLayer(t, true /* primary */, showing ? 0.3f : 0.f);
+                    onEnd(cancelled, t);
+                }
+
+                private void onProgress(float progress, SurfaceControl.Transaction t) {
+                    if (mTargetAdjusted != mAdjusted) {
+                        final float fraction = mTargetAdjusted ? progress : 1.f - progress;
+                        mLastAdjustTop =
+                                (int) (fraction * mShownTop + (1.f - fraction) * mHiddenTop);
+                        mSplitLayout.updateAdjustedBounds(mLastAdjustTop, mHiddenTop, mShownTop);
+                        mView.resizeSplitSurfaces(t, mSplitLayout.mAdjustedPrimary,
+                                mSplitLayout.mAdjustedSecondary);
+                    }
+                    final float invProg = 1.f - progress;
+                    final float targetPrimaryDim = (mSecondaryHasFocus && mTargetShown)
+                            ? ADJUSTED_NONFOCUS_DIM : 0.f;
+                    final float targetSecondaryDim = (!mSecondaryHasFocus && mTargetShown)
+                            ? ADJUSTED_NONFOCUS_DIM : 0.f;
+                    mView.setResizeDimLayer(t, true /* primary */,
+                            mLastPrimaryDim * invProg + progress * targetPrimaryDim);
+                    mView.setResizeDimLayer(t, false /* primary */,
+                            mLastSecondaryDim * invProg + progress * targetSecondaryDim);
+                }
+
+                private void onEnd(boolean cancelled, SurfaceControl.Transaction t) {
+                    if (!cancelled) {
+                        onProgress(1.f, t);
+                        mAdjusted = mTargetAdjusted;
+                        mImeWasShown = mTargetShown;
+                        mLastAdjustTop = mAdjusted ? mShownTop : mHiddenTop;
+                        mLastPrimaryDim =
+                                (mSecondaryHasFocus && mTargetShown) ? ADJUSTED_NONFOCUS_DIM : 0.f;
+                        mLastSecondaryDim =
+                                (!mSecondaryHasFocus && mTargetShown) ? ADJUSTED_NONFOCUS_DIM : 0.f;
+                    }
+                }
+
+                private void startAsyncAnimation() {
+                    if (mAnimation != null) {
+                        mAnimation.cancel();
+                    }
+                    mAnimation = ValueAnimator.ofFloat(0.f, 1.f);
+                    mAnimation.setDuration(DisplayImeController.ANIMATION_DURATION_SHOW_MS);
+                    if (mTargetAdjusted != mAdjusted) {
+                        final float fraction =
+                                ((float) mLastAdjustTop - mHiddenTop) / (mShownTop - mHiddenTop);
+                        final float progress = mTargetAdjusted ? fraction : 1.f - fraction;
+                        mAnimation.setCurrentFraction(progress);
+                    }
+
+                    mAnimation.addUpdateListener(animation -> {
+                        SurfaceControl.Transaction t = mTransactionPool.acquire();
+                        float value = (float) animation.getAnimatedValue();
+                        onProgress(value, t);
+                        t.apply();
+                        mTransactionPool.release(t);
+                    });
+                    mAnimation.setInterpolator(DisplayImeController.INTERPOLATOR);
+                    mAnimation.addListener(new AnimatorListenerAdapter() {
+                        private boolean mCancel = false;
+                        @Override
+                        public void onAnimationCancel(Animator animation) {
+                            mCancel = true;
+                        }
+                        @Override
+                        public void onAnimationEnd(Animator animation) {
+                            SurfaceControl.Transaction t = mTransactionPool.acquire();
+                            onEnd(mCancel, t);
+                            t.apply();
+                            mTransactionPool.release(t);
+                            mAnimation = null;
+                        }
+                    });
+                    mAnimation.start();
                 }
             };
 
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
index 375d9bb..477cbb7 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
@@ -328,7 +328,8 @@
             // Our window doesn't cover entire display, so we use the display frame to re-calculate
             // the insets.
             final InsetsState state = getWindowInsetsController().getState();
-            insets = state.calculateInsets(state.getDisplayFrame(), insets.isRound(),
+            insets = state.calculateInsets(state.getDisplayFrame(),
+                    null /* ignoringVisibilityState */, insets.isRound(),
                     insets.shouldAlwaysConsumeSystemBars(), insets.getDisplayCutout(),
                     null /* legacyContentInsets */, null /* legacyStableInsets */,
                     0 /* legacySystemUiFlags */,
@@ -934,6 +935,9 @@
     }
 
     public void setAdjustedForIme(boolean adjustedForIme, long animDuration) {
+        if (mAdjustedForIme == adjustedForIme) {
+            return;
+        }
         updateDockSide();
         mHandle.animate()
                 .setInterpolator(IME_ADJUST_INTERPOLATOR)
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java
index b19f560..271faed 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java
@@ -171,22 +171,13 @@
     /**
      * Updates the adjustment depending on it's current state.
      */
-    void updateAdjustedBounds(int currImeTop, int startTop, int finalTop) {
-        updateAdjustedBounds(mDisplayLayout, currImeTop, startTop, finalTop, mDividerSize,
+    void updateAdjustedBounds(int currImeTop, int hiddenTop, int shownTop) {
+        adjustForIME(mDisplayLayout, currImeTop, hiddenTop, shownTop, mDividerSize,
                 mDividerSizeInactive, mPrimary, mSecondary);
     }
 
-    /**
-     * Updates the adjustment depending on it's current state.
-     */
-    private void updateAdjustedBounds(DisplayLayout dl, int currImeTop, int startTop, int finalTop,
-            int dividerWidth, int dividerWidthInactive, Rect primaryBounds, Rect secondaryBounds) {
-        adjustForIME(dl, currImeTop, startTop, finalTop, dividerWidth, dividerWidthInactive,
-                primaryBounds, secondaryBounds);
-    }
-
     /** Assumes top/bottom split. Splits are not adjusted for left/right splits. */
-    private void adjustForIME(DisplayLayout dl, int currImeTop, int startTop, int finalTop,
+    private void adjustForIME(DisplayLayout dl, int currImeTop, int hiddenTop, int shownTop,
             int dividerWidth, int dividerWidthInactive, Rect primaryBounds, Rect secondaryBounds) {
         if (mAdjustedPrimary == null) {
             mAdjustedPrimary = new Rect();
@@ -196,11 +187,9 @@
         final Rect displayStableRect = new Rect();
         dl.getStableBounds(displayStableRect);
 
-        final boolean showing = finalTop < startTop;
-        final float progress = ((float) (currImeTop - startTop)) / (finalTop - startTop);
-        final float dividerSquish = showing ? progress : 1.f - progress;
+        final float shownFraction = ((float) (currImeTop - hiddenTop)) / (shownTop - hiddenTop);
         final int currDividerWidth =
-                (int) (dividerWidthInactive * dividerSquish + dividerWidth * (1.f - dividerSquish));
+                (int) (dividerWidthInactive * shownFraction + dividerWidth * (1.f - shownFraction));
 
         final int minTopStackBottom = displayStableRect.top
                 + (int) ((mPrimary.bottom - displayStableRect.top) * ADJUSTED_STACK_FRACTION_MIN);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AutoHideUiElement.java b/packages/SystemUI/src/com/android/systemui/statusbar/AutoHideUiElement.java
new file mode 100644
index 0000000..af04135
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/AutoHideUiElement.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2020 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;
+
+/**
+ * Common interface for a UI element controlled by
+ * {@link com.android.systemui.statusbar.phone.AutoHideController}. These UI elements  automatically
+ * hidden by {@link com.android.systemui.statusbar.phone.AutoHideController} when in some transient
+ * state.
+ */
+public interface AutoHideUiElement {
+
+    /**
+     * Ensures that the {@link AutoHideUiElement} reflects the current expected state. This
+     * method will be posted as a {@link Runnable} in the main thread.
+     */
+    void synchronizeState();
+
+    /**
+     * The {@link com.android.systemui.statusbar.phone.AutoHideController} is responsible for
+     * automatically hiding ui elements that are only shown transiently. This method determines
+     * whether a manual touch should also hide the ui elements that are temporarily visible.
+     *
+     * Note that all {@link AutoHideUiElement} instances should return true for a manual touch to
+     * trigger {@link #hide()} on the ui elements.
+     */
+    default boolean shouldHideOnTouch() {
+        return true;
+    }
+
+    /** Returns true if the {@link AutoHideUiElement} is visible. */
+    boolean isVisible();
+
+    /**
+     * Called to hide the {@link AutoHideUiElement} through the
+     * {@link com.android.systemui.statusbar.phone.AutoHideController}.
+     */
+    void hide();
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 64f0830..3fe348f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -125,6 +125,7 @@
     private static final int MSG_SHOW_TOAST                        = 53 << MSG_SHIFT;
     private static final int MSG_HIDE_TOAST                        = 54 << MSG_SHIFT;
     private static final int MSG_TRACING_STATE_CHANGED             = 55 << MSG_SHIFT;
+    private static final int MSG_SUPPRESS_AMBIENT_DISPLAY          = 56 << MSG_SHIFT;
 
     public static final int FLAG_EXCLUDE_NONE = 0;
     public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0;
@@ -316,6 +317,9 @@
          */
         default void dismissInattentiveSleepWarning(boolean animated) { }
 
+        /** Called to suppress ambient display. */
+        default void suppressAmbientDisplay(boolean suppress) { }
+
         /**
          * @see IStatusBar#showToast(String, IBinder, CharSequence, IBinder, int,
          * ITransientNotificationCallback)
@@ -950,6 +954,13 @@
         }
     }
 
+    @Override
+    public void suppressAmbientDisplay(boolean suppress) {
+        synchronized (mLock) {
+            mHandler.obtainMessage(MSG_SUPPRESS_AMBIENT_DISPLAY, suppress).sendToTarget();
+        }
+    }
+
     private final class H extends Handler {
         private H(Looper l) {
             super(l);
@@ -1282,6 +1293,11 @@
                         mCallbacks.get(i).onTracingStateChanged((Boolean) msg.obj);
                     }
                     break;
+                case MSG_SUPPRESS_AMBIENT_DISPLAY:
+                    for (Callbacks callbacks: mCallbacks) {
+                        callbacks.suppressAmbientDisplay((boolean) msg.obj);
+                    }
+                    break;
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index 4f8e6cf..b906442 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -25,12 +25,9 @@
 import android.hardware.face.FaceManager;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.BatteryManager;
-import android.os.BatteryStats;
 import android.os.Handler;
 import android.os.Message;
 import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.UserManager;
 import android.text.TextUtils;
 import android.text.format.Formatter;
 import android.util.Log;
@@ -39,27 +36,20 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.IBatteryStats;
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.ViewClippingUtil;
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.keyguard.KeyguardUpdateMonitorCallback;
 import com.android.settingslib.Utils;
 import com.android.settingslib.fuelgauge.BatteryStatus;
-import com.android.systemui.Dependency;
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.dock.DockManager;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
 import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
-import com.android.systemui.statusbar.phone.LockIcon;
-import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
-import com.android.systemui.statusbar.phone.ShadeController;
+import com.android.systemui.statusbar.phone.LockscreenLockIconController;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
-import com.android.systemui.statusbar.policy.AccessibilityController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
-import com.android.systemui.statusbar.policy.UserInfoController;
 import com.android.systemui.util.wakelock.SettableWakeLock;
 import com.android.systemui.util.wakelock.WakeLock;
 
@@ -68,9 +58,13 @@
 import java.text.NumberFormat;
 import java.util.IllegalFormatConversionException;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
 /**
  * Controls the indications and error messages shown on the Keyguard
  */
+@Singleton
 public class KeyguardIndicationController implements StateListener,
         KeyguardStateController.Callback {
 
@@ -84,22 +78,17 @@
     private static final float BOUNCE_ANIMATION_FINAL_Y = 0f;
 
     private final Context mContext;
-    private final ShadeController mShadeController;
-    private final AccessibilityController mAccessibilityController;
     private final KeyguardStateController mKeyguardStateController;
     private final StatusBarStateController mStatusBarStateController;
     private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
     private ViewGroup mIndicationArea;
     private KeyguardIndicationTextView mTextView;
-    private final UserManager mUserManager;
     private final IBatteryStats mBatteryInfo;
     private final SettableWakeLock mWakeLock;
-    private final LockPatternUtils mLockPatternUtils;
     private final DockManager mDockManager;
 
-    private final LockIcon mLockIcon;
+    private LockscreenLockIconController mLockIconController;
     private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
-    private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
 
     private String mRestingIndication;
     private String mAlignmentIndication;
@@ -132,55 +121,25 @@
     /**
      * Creates a new KeyguardIndicationController and registers callbacks.
      */
-    public KeyguardIndicationController(Context context, ViewGroup indicationArea,
-            LockIcon lockIcon) {
-        this(context, indicationArea, lockIcon, new LockPatternUtils(context),
-                WakeLock.createPartial(context, "Doze:KeyguardIndication"),
-                Dependency.get(ShadeController.class),
-                Dependency.get(AccessibilityController.class),
-                Dependency.get(KeyguardStateController.class),
-                Dependency.get(StatusBarStateController.class),
-                Dependency.get(KeyguardUpdateMonitor.class),
-                Dependency.get(DockManager.class),
-                IBatteryStats.Stub.asInterface(
-                        ServiceManager.getService(BatteryStats.SERVICE_NAME)));
-    }
-
-    /**
-     * Creates a new KeyguardIndicationController for testing.
-     */
-    @VisibleForTesting
-    KeyguardIndicationController(Context context, ViewGroup indicationArea, LockIcon lockIcon,
-            LockPatternUtils lockPatternUtils, WakeLock wakeLock, ShadeController shadeController,
-            AccessibilityController accessibilityController,
+    @Inject
+    KeyguardIndicationController(Context context,
+            WakeLock.Builder wakeLockBuilder,
             KeyguardStateController keyguardStateController,
             StatusBarStateController statusBarStateController,
             KeyguardUpdateMonitor keyguardUpdateMonitor,
             DockManager dockManager,
             IBatteryStats iBatteryStats) {
         mContext = context;
-        mLockIcon = lockIcon;
-        mShadeController = shadeController;
-        mAccessibilityController = accessibilityController;
         mKeyguardStateController = keyguardStateController;
         mStatusBarStateController = statusBarStateController;
         mKeyguardUpdateMonitor = keyguardUpdateMonitor;
         mDockManager = dockManager;
         mDockManager.addAlignmentStateListener(
                 alignState -> mHandler.post(() -> handleAlignStateChanged(alignState)));
-        // lock icon is not used on all form factors.
-        if (mLockIcon != null) {
-            mLockIcon.setOnLongClickListener(this::handleLockLongClick);
-            mLockIcon.setOnClickListener(this::handleLockClick);
-        }
-        mWakeLock = new SettableWakeLock(wakeLock, TAG);
-        mLockPatternUtils = lockPatternUtils;
-
-        mUserManager = context.getSystemService(UserManager.class);
+        mWakeLock = new SettableWakeLock(
+                wakeLockBuilder.setTag("Doze:KeyguardIndication").build(), TAG);
         mBatteryInfo = iBatteryStats;
 
-        setIndicationArea(indicationArea);
-
         mKeyguardUpdateMonitor.registerCallback(getKeyguardCallback());
         mKeyguardUpdateMonitor.registerCallback(mTickReceiver);
         mStatusBarStateController.addCallback(this);
@@ -195,21 +154,8 @@
         updateIndication(false /* animate */);
     }
 
-    private boolean handleLockLongClick(View view) {
-        mLockscreenGestureLogger.write(MetricsProto.MetricsEvent.ACTION_LS_LOCK,
-                0 /* lengthDp - N/A */, 0 /* velocityDp - N/A */);
-        showTransientIndication(R.string.keyguard_indication_trust_disabled);
-        mKeyguardUpdateMonitor.onLockIconPressed();
-        mLockPatternUtils.requireCredentialEntry(KeyguardUpdateMonitor.getCurrentUser());
-
-        return true;
-    }
-
-    private void handleLockClick(View view) {
-        if (!mAccessibilityController.isAccessibilityEnabled()) {
-            return;
-        }
-        mShadeController.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
+    public void setLockIconController(LockscreenLockIconController lockIconController) {
+        mLockIconController = lockIconController;
     }
 
     private void handleAlignStateChanged(int alignState) {
@@ -269,12 +215,6 @@
     }
 
     /**
-     * Sets the active controller managing changes and callbacks to user information.
-     */
-    public void setUserInfoController(UserInfoController userInfoController) {
-    }
-
-    /**
      * Returns the indication text indicating that trust has been granted.
      *
      * @return {@code null} or an empty string if a trust indication text should not be shown.
@@ -285,6 +225,14 @@
     }
 
     /**
+     * Sets if the device is plugged in
+     */
+    @VisibleForTesting
+    void setPowerPluggedIn(boolean plugged) {
+        mPowerPluggedIn = plugged;
+    }
+
+    /**
      * Returns the indication text indicating that trust is currently being managed.
      *
      * @return {@code null} or an empty string if a trust managed text should not be shown.
@@ -382,29 +330,48 @@
             int userId = KeyguardUpdateMonitor.getCurrentUser();
             String trustGrantedIndication = getTrustGrantedIndication();
             String trustManagedIndication = getTrustManagedIndication();
+
+            String powerIndication = null;
+            if (mPowerPluggedIn) {
+                powerIndication = computePowerIndication();
+            }
+
             if (!mKeyguardUpdateMonitor.isUserUnlocked(userId)) {
                 mTextView.switchIndication(com.android.internal.R.string.lockscreen_storage_locked);
                 mTextView.setTextColor(mInitialTextColorState);
             } else if (!TextUtils.isEmpty(mTransientIndication)) {
-                mTextView.switchIndication(mTransientIndication);
+                if (powerIndication != null) {
+                    String indication = mContext.getResources().getString(
+                            R.string.keyguard_indication_trust_unlocked_plugged_in,
+                            mTransientIndication, powerIndication);
+                    mTextView.switchIndication(indication);
+                } else {
+                    mTextView.switchIndication(mTransientIndication);
+                }
                 mTextView.setTextColor(mTransientTextColorState);
             } else if (!TextUtils.isEmpty(trustGrantedIndication)
                     && mKeyguardUpdateMonitor.getUserHasTrust(userId)) {
-                mTextView.switchIndication(trustGrantedIndication);
+                if (powerIndication != null) {
+                    String indication = mContext.getResources().getString(
+                            R.string.keyguard_indication_trust_unlocked_plugged_in,
+                            trustGrantedIndication, powerIndication);
+                    mTextView.switchIndication(indication);
+                } else {
+                    mTextView.switchIndication(trustGrantedIndication);
+                }
                 mTextView.setTextColor(mInitialTextColorState);
             } else if (!TextUtils.isEmpty(mAlignmentIndication)) {
                 mTextView.switchIndication(mAlignmentIndication);
                 mTextView.setTextColor(Utils.getColorError(mContext));
             } else if (mPowerPluggedIn) {
-                String indication = computePowerIndication();
                 if (DEBUG_CHARGING_SPEED) {
-                    indication += ",  " + (mChargingWattage / 1000) + " mW";
+                    powerIndication += ",  " + (mChargingWattage / 1000) + " mW";
                 }
                 mTextView.setTextColor(mInitialTextColorState);
                 if (animate) {
-                    animateText(mTextView, indication);
+                    animateText(mTextView, powerIndication);
                 } else {
-                    mTextView.switchIndication(indication);
+                    mTextView.switchIndication(powerIndication);
                 }
             } else if (!TextUtils.isEmpty(trustManagedIndication)
                     && mKeyguardUpdateMonitor.getUserTrustIsManaged(userId)
@@ -469,7 +436,8 @@
                 });
     }
 
-    private String computePowerIndication() {
+    @VisibleForTesting
+    String computePowerIndication() {
         if (mPowerCharged) {
             return mContext.getResources().getString(R.string.keyguard_charged);
         }
@@ -545,7 +513,9 @@
             if (msg.what == MSG_HIDE_TRANSIENT) {
                 hideTransientIndication();
             } else if (msg.what == MSG_CLEAR_BIOMETRIC_MSG) {
-                mLockIcon.setTransientBiometricsError(false);
+                if (mLockIconController != null) {
+                    mLockIconController.setTransientBiometricsError(false);
+                }
             } else if (msg.what == MSG_SWIPE_UP_TO_UNLOCK) {
                 showSwipeUpToUnlock();
             }
@@ -694,7 +664,9 @@
         }
 
         private void animatePadlockError() {
-            mLockIcon.setTransientBiometricsError(true);
+            if (mLockIconController != null) {
+                mLockIconController.setTransientBiometricsError(true);
+            }
             mHandler.removeMessages(MSG_CLEAR_BIOMETRIC_MSG);
             mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_CLEAR_BIOMETRIC_MSG),
                     TRANSIENT_BIOMETRIC_ERROR_TIMEOUT);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/MediaArtworkProcessor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/MediaArtworkProcessor.kt
index 711d6a6d..326757e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/MediaArtworkProcessor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/MediaArtworkProcessor.kt
@@ -19,6 +19,7 @@
 import android.content.Context
 import android.graphics.Bitmap
 import android.graphics.Canvas
+import android.graphics.Point
 import android.graphics.Rect
 import android.renderscript.Allocation
 import android.renderscript.Element
@@ -26,11 +27,9 @@
 import android.renderscript.ScriptIntrinsicBlur
 import android.util.Log
 import android.util.MathUtils
-import android.util.Size
-import android.view.WindowManager
-import com.android.internal.annotations.VisibleForTesting
 import com.android.internal.graphics.ColorUtils
 import com.android.systemui.statusbar.notification.MediaNotificationProcessor
+
 import javax.inject.Inject
 import javax.inject.Singleton
 
@@ -42,9 +41,10 @@
 @Singleton
 class MediaArtworkProcessor @Inject constructor() {
 
+    private val mTmpSize = Point()
     private var mArtworkCache: Bitmap? = null
 
-    fun processArtwork(context: Context, artwork: Bitmap, windowType: Int): Bitmap? {
+    fun processArtwork(context: Context, artwork: Bitmap): Bitmap? {
         if (mArtworkCache != null) {
             return mArtworkCache
         }
@@ -54,9 +54,10 @@
         var output: Allocation? = null
         var inBitmap: Bitmap? = null
         try {
-            val size = getWindowSize(context, windowType)
+            @Suppress("DEPRECATION")
+            context.display?.getSize(mTmpSize)
             val rect = Rect(0, 0, artwork.width, artwork.height)
-            MathUtils.fitRect(rect, Math.max(size.width / DOWNSAMPLE, size.height / DOWNSAMPLE))
+            MathUtils.fitRect(rect, Math.max(mTmpSize.x / DOWNSAMPLE, mTmpSize.y / DOWNSAMPLE))
             inBitmap = Bitmap.createScaledBitmap(artwork, rect.width(), rect.height(),
                     true /* filter */)
             // Render script blurs only support ARGB_8888, we need a conversion if we got a
@@ -98,15 +99,4 @@
         mArtworkCache?.recycle()
         mArtworkCache = null
     }
-
-    @VisibleForTesting
-    internal fun getWindowSize(context: Context, windowType: Int): Size {
-        val windowContext = context.display?.let {
-            context.createDisplayContext(it)
-                    .createWindowContext(windowType, null)
-        } ?: run { throw NullPointerException("Display is null") }
-        val windowManager = windowContext.getSystemService(WindowManager::class.java)
-                ?: run { throw NullPointerException("Null window manager") }
-        return windowManager.currentWindowMetrics.size
-    }
 }
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java
index a8188b3..ebac4b2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java
@@ -149,7 +149,6 @@
             AutoHideController autoHideController = isOnDefaultDisplay
                     ? Dependency.get(AutoHideController.class)
                     : new AutoHideController(context, mHandler,
-                            Dependency.get(NotificationRemoteInputManager.class),
                             Dependency.get(IWindowManager.class));
             navBar.setAutoHideController(autoHideController);
             navBar.restoreAppearanceAndTransientState();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java
index b43fe73..047edd2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java
@@ -20,6 +20,7 @@
 import static com.android.systemui.statusbar.notification.NotificationEntryManager.UNDEFINED_DISMISS_REASON;
 import static com.android.systemui.statusbar.phone.StatusBar.DEBUG;
 
+import android.annotation.NonNull;
 import android.annotation.SuppressLint;
 import android.app.NotificationManager;
 import android.content.ComponentName;
@@ -161,6 +162,15 @@
         }
     }
 
+    public final void unsnoozeNotification(@NonNull String key) {
+        if (!isBound()) return;
+        try {
+            getNotificationInterface().unsnoozeNotificationFromSystemListener(mWrapper, key);
+        } catch (android.os.RemoteException ex) {
+            Log.v(TAG, "Unable to contact notification manager", ex);
+        }
+    }
+
     public void registerAsSystemService() {
         try {
             registerAsSystemService(mContext,
@@ -195,7 +205,8 @@
                     new ArrayList<>(),
                     false,
                     false,
-                    false
+                    false,
+                    null
             );
         }
         return ranking;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
index cdb2c53..87be739 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
@@ -42,7 +42,6 @@
 import android.util.ArraySet;
 import android.util.Log;
 import android.view.View;
-import android.view.WindowManager;
 import android.widget.ImageView;
 
 import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
@@ -214,7 +213,8 @@
             public void onEntryRemoved(
                     NotificationEntry entry,
                     NotificationVisibility visibility,
-                    boolean removedByUser) {
+                    boolean removedByUser,
+                    int reason) {
                 onNotificationRemoved(entry.getKey());
             }
         });
@@ -673,8 +673,7 @@
     };
 
     private Bitmap processArtwork(Bitmap artwork) {
-        return mMediaArtworkProcessor.processArtwork(mContext, artwork,
-                WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE);
+        return mMediaArtworkProcessor.processArtwork(mContext, artwork);
     }
 
     @MainThread
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
index ebc2fa6..bf28040 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
@@ -292,7 +292,8 @@
             public void onEntryRemoved(
                     @Nullable NotificationEntry entry,
                     NotificationVisibility visibility,
-                    boolean removedByUser) {
+                    boolean removedByUser,
+                    int reason) {
                 // We're removing the notification, the smart controller can forget about it.
                 mSmartReplyController.stopSending(entry);
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
index 99682fc..1a8454c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
@@ -120,6 +120,10 @@
         setClipToPadding(false);
         mShelfIcons.setIsStaticLayout(false);
         setBottomRoundness(1.0f, false /* animate */);
+
+        // Setting this to first in section to get the clipping to the top roundness correct. This
+        // value determines the way we are clipping to the top roundness of the overall shade
+        setFirstInSection(true);
         initDimens();
     }
 
@@ -269,47 +273,37 @@
         int backgroundTop = 0;
         int clipTopAmount = 0;
         float firstElementRoundness = 0.0f;
-        ActivatableNotificationView previousRow = null;
+        ActivatableNotificationView previousAnv = null;
 
         for (int i = 0; i < mHostLayout.getChildCount(); i++) {
             ExpandableView child = (ExpandableView) mHostLayout.getChildAt(i);
 
-            if (!(child instanceof ActivatableNotificationView)
-                    || child.getVisibility() == GONE || child == this) {
+            if (!child.needsClippingToShelf() || child.getVisibility() == GONE) {
                 continue;
             }
 
-            ActivatableNotificationView row = (ActivatableNotificationView) child;
             float notificationClipEnd;
-            boolean aboveShelf = ViewState.getFinalTranslationZ(row) > baseZHeight
-                    || row.isPinned();
+            boolean aboveShelf = ViewState.getFinalTranslationZ(child) > baseZHeight
+                    || child.isPinned();
             boolean isLastChild = child == lastChild;
-            float rowTranslationY = row.getTranslationY();
+            float rowTranslationY = child.getTranslationY();
             if ((isLastChild && !child.isInShelf()) || aboveShelf || backgroundForceHidden) {
                 notificationClipEnd = shelfStart + getIntrinsicHeight();
             } else {
                 notificationClipEnd = shelfStart - mPaddingBetweenElements;
-                float height = notificationClipEnd - rowTranslationY;
-                if (!row.isBelowSpeedBump() && height <= getNotificationMergeSize()) {
-                    // We want the gap to close when we reached the minimum size and only shrink
-                    // before
-                    notificationClipEnd = Math.min(shelfStart,
-                            rowTranslationY + getNotificationMergeSize());
-                }
             }
-            int clipTop = updateNotificationClipHeight(row, notificationClipEnd, notGoneIndex);
+            int clipTop = updateNotificationClipHeight(child, notificationClipEnd, notGoneIndex);
             clipTopAmount = Math.max(clipTop, clipTopAmount);
 
+
+            float inShelfAmount = updateShelfTransformation(child, expandAmount, scrolling,
+                    scrollingFast, expandingAnimated, isLastChild);
             // If the current row is an ExpandableNotificationRow, update its color, roundedness,
             // and icon state.
-            if (row instanceof ExpandableNotificationRow) {
-                ExpandableNotificationRow expandableRow = (ExpandableNotificationRow) row;
-
-                float inShelfAmount = updateIconAppearance(expandableRow, expandAmount, scrolling,
-                        scrollingFast,
-                        expandingAnimated, isLastChild);
+            if (child instanceof ExpandableNotificationRow) {
+                ExpandableNotificationRow expandableRow = (ExpandableNotificationRow) child;
                 numViewsInShelf += inShelfAmount;
-                int ownColorUntinted = row.getBackgroundColorWithoutTint();
+                int ownColorUntinted = expandableRow.getBackgroundColorWithoutTint();
                 if (rowTranslationY >= shelfStart && mNotGoneIndex == -1) {
                     mNotGoneIndex = notGoneIndex;
                     setTintColor(previousColor);
@@ -326,10 +320,10 @@
                     if (colorOfViewBeforeLast == NO_COLOR) {
                         colorOfViewBeforeLast = ownColorUntinted;
                     }
-                    row.setOverrideTintColor(colorOfViewBeforeLast, inShelfAmount);
+                    expandableRow.setOverrideTintColor(colorOfViewBeforeLast, inShelfAmount);
                 } else {
                     colorOfViewBeforeLast = ownColorUntinted;
-                    row.setOverrideTintColor(NO_COLOR, 0 /* overrideAmount */);
+                    expandableRow.setOverrideTintColor(NO_COLOR, 0 /* overrideAmount */);
                 }
                 if (notGoneIndex != 0 || !aboveShelf) {
                     expandableRow.setAboveShelf(false);
@@ -342,8 +336,8 @@
                     // since they don't show up on AOD
                     if (iconState != null && iconState.clampedAppearAmount == 1.0f) {
                         // only if the first icon is fully in the shelf we want to clip to it!
-                        backgroundTop = (int) (row.getTranslationY() - getTranslationY());
-                        firstElementRoundness = row.getCurrentTopRoundness();
+                        backgroundTop = (int) (child.getTranslationY() - getTranslationY());
+                        firstElementRoundness = expandableRow.getCurrentTopRoundness();
                     }
                 }
 
@@ -351,25 +345,31 @@
                 notGoneIndex++;
             }
 
-            if (row.isFirstInSection() && previousRow != null && previousRow.isLastInSection()) {
-                // If the top of the shelf is between the view before a gap and the view after a gap
-                // then we need to adjust the shelf's top roundness.
-                float distanceToGapBottom = row.getTranslationY() - getTranslationY();
-                float distanceToGapTop = getTranslationY()
-                        - (previousRow.getTranslationY() + previousRow.getActualHeight());
-                if (distanceToGapTop > 0) {
-                    // We interpolate our top roundness so that it's fully rounded if we're at the
-                    // bottom of the gap, and not rounded at all if we're at the top of the gap
-                    // (directly up against the bottom of previousRow)
-                    // Then we apply the same roundness to the bottom of previousRow so that the
-                    // corners join together as the shelf approaches previousRow.
-                    firstElementRoundness = (float) Math.min(1.0, distanceToGapTop / mGapHeight);
-                    previousRow.setBottomRoundness(firstElementRoundness,
-                            false /* don't animate */);
-                    backgroundTop = (int) distanceToGapBottom;
+            if (child instanceof ActivatableNotificationView) {
+                ActivatableNotificationView anv =
+                        (ActivatableNotificationView) child;
+                if (anv.isFirstInSection() && previousAnv != null
+                        && previousAnv.isLastInSection()) {
+                    // If the top of the shelf is between the view before a gap and the view after a
+                    // gap then we need to adjust the shelf's top roundness.
+                    float distanceToGapBottom = child.getTranslationY() - getTranslationY();
+                    float distanceToGapTop = getTranslationY()
+                            - (previousAnv.getTranslationY() + previousAnv.getActualHeight());
+                    if (distanceToGapTop > 0) {
+                        // We interpolate our top roundness so that it's fully rounded if we're at
+                        // the bottom of the gap, and not rounded at all if we're at the top of the
+                        // gap (directly up against the bottom of previousAnv)
+                        // Then we apply the same roundness to the bottom of previousAnv so that the
+                        // corners join together as the shelf approaches previousAnv.
+                        firstElementRoundness = (float) Math.min(1.0,
+                                distanceToGapTop / mGapHeight);
+                        previousAnv.setBottomRoundness(firstElementRoundness,
+                                false /* don't animate */);
+                        backgroundTop = (int) distanceToGapBottom;
+                    }
                 }
+                previousAnv = anv;
             }
-            previousRow = row;
         }
         clipTransientViews();
 
@@ -489,27 +489,27 @@
      * Update the clipping of this view.
      * @return the amount that our own top should be clipped
      */
-    private int updateNotificationClipHeight(ActivatableNotificationView row,
+    private int updateNotificationClipHeight(ExpandableView view,
             float notificationClipEnd, int childIndex) {
-        float viewEnd = row.getTranslationY() + row.getActualHeight();
-        boolean isPinned = (row.isPinned() || row.isHeadsUpAnimatingAway())
-                && !mAmbientState.isDozingAndNotPulsing(row);
+        float viewEnd = view.getTranslationY() + view.getActualHeight();
+        boolean isPinned = (view.isPinned() || view.isHeadsUpAnimatingAway())
+                && !mAmbientState.isDozingAndNotPulsing(view);
         boolean shouldClipOwnTop;
         if (mAmbientState.isPulseExpanding()) {
             shouldClipOwnTop = childIndex == 0;
         } else {
-            shouldClipOwnTop = row.showingPulsing();
+            shouldClipOwnTop = view.showingPulsing();
         }
         if (viewEnd > notificationClipEnd && !shouldClipOwnTop
                 && (mAmbientState.isShadeExpanded() || !isPinned)) {
             int clipBottomAmount = (int) (viewEnd - notificationClipEnd);
             if (isPinned) {
-                clipBottomAmount = Math.min(row.getIntrinsicHeight() - row.getCollapsedHeight(),
+                clipBottomAmount = Math.min(view.getIntrinsicHeight() - view.getCollapsedHeight(),
                         clipBottomAmount);
             }
-            row.setClipBottomAmount(clipBottomAmount);
+            view.setClipBottomAmount(clipBottomAmount);
         } else {
-            row.setClipBottomAmount(0);
+            view.setClipBottomAmount(0);
         }
         if (shouldClipOwnTop) {
             return (int) (viewEnd - getTranslationY());
@@ -528,31 +528,28 @@
     }
 
     /**
-     * @return the icon amount how much this notification is in the shelf;
+     * @return the amount how much this notification is in the shelf
      */
-    private float updateIconAppearance(ExpandableNotificationRow row, float expandAmount,
+    private float updateShelfTransformation(ExpandableView view, float expandAmount,
             boolean scrolling, boolean scrollingFast, boolean expandingAnimated,
             boolean isLastChild) {
-        StatusBarIconView icon = row.getEntry().expandedIcon;
+        StatusBarIconView icon = view.getShelfIcon();
         NotificationIconContainer.IconState iconState = getIconState(icon);
-        if (iconState == null) {
-            return 0.0f;
-        }
 
         // Let calculate how much the view is in the shelf
-        float viewStart = row.getTranslationY();
-        int fullHeight = row.getActualHeight() + mPaddingBetweenElements;
+        float viewStart = view.getTranslationY();
+        int fullHeight = view.getActualHeight() + mPaddingBetweenElements;
         float iconTransformDistance = getIntrinsicHeight() * 1.5f;
         iconTransformDistance *= NotificationUtils.interpolate(1.f, 1.5f, expandAmount);
         iconTransformDistance = Math.min(iconTransformDistance, fullHeight);
         if (isLastChild) {
-            fullHeight = Math.min(fullHeight, row.getMinHeight() - getIntrinsicHeight());
-            iconTransformDistance = Math.min(iconTransformDistance, row.getMinHeight()
+            fullHeight = Math.min(fullHeight, view.getMinHeight() - getIntrinsicHeight());
+            iconTransformDistance = Math.min(iconTransformDistance, view.getMinHeight()
                     - getIntrinsicHeight());
         }
         float viewEnd = viewStart + fullHeight;
         // TODO: fix this check for anchor scrolling.
-        if (expandingAnimated && mAmbientState.getScrollY() == 0
+        if (iconState != null && expandingAnimated && mAmbientState.getScrollY() == 0
                 && !mAmbientState.isOnKeyguard() && !iconState.isLastExpandIcon) {
             // We are expanding animated. Because we switch to a linear interpolation in this case,
             // the last icon may be stuck in between the shelf position and the notification
@@ -562,10 +559,10 @@
             // We need to persist this, since after the expansion, the behavior should still be the
             // same.
             float position = mAmbientState.getIntrinsicPadding()
-                    + mHostLayout.getPositionInLinearLayout(row);
+                    + mHostLayout.getPositionInLinearLayout(view);
             int maxShelfStart = mMaxLayoutHeight - getIntrinsicHeight();
-            if (position < maxShelfStart && position + row.getIntrinsicHeight() >= maxShelfStart
-                    && row.getTranslationY() < position) {
+            if (position < maxShelfStart && position + view.getIntrinsicHeight() >= maxShelfStart
+                    && view.getTranslationY() < position) {
                 iconState.isLastExpandIcon = true;
                 iconState.customTransformHeight = NO_VALUE;
                 // Let's check if we're close enough to snap into the shelf
@@ -580,16 +577,16 @@
             }
         }
         float fullTransitionAmount;
-        float iconTransitionAmount;
+        float transitionAmount;
         float shelfStart = getTranslationY();
-        if (iconState.hasCustomTransformHeight()) {
+        if (iconState != null && iconState.hasCustomTransformHeight()) {
             fullHeight = iconState.customTransformHeight;
             iconTransformDistance = iconState.customTransformHeight;
         }
         boolean fullyInOrOut = true;
-        if (viewEnd >= shelfStart && (!mAmbientState.isUnlockHintRunning() || row.isInShelf())
+        if (viewEnd >= shelfStart && (!mAmbientState.isUnlockHintRunning() || view.isInShelf())
                 && (mAmbientState.isShadeExpanded()
-                        || (!row.isPinned() && !row.isHeadsUpAnimatingAway()))) {
+                        || (!view.isPinned() && !view.isHeadsUpAnimatingAway()))) {
             if (viewStart < shelfStart) {
                 float fullAmount = (shelfStart - viewStart) / fullHeight;
                 fullAmount = Math.min(1.0f, fullAmount);
@@ -599,88 +596,98 @@
                         interpolatedAmount, fullAmount, expandAmount);
                 fullTransitionAmount = 1.0f - interpolatedAmount;
 
-                iconTransitionAmount = (shelfStart - viewStart) / iconTransformDistance;
-                iconTransitionAmount = Math.min(1.0f, iconTransitionAmount);
-                iconTransitionAmount = 1.0f - iconTransitionAmount;
+                transitionAmount = (shelfStart - viewStart) / iconTransformDistance;
+                transitionAmount = Math.min(1.0f, transitionAmount);
+                transitionAmount = 1.0f - transitionAmount;
                 fullyInOrOut = false;
             } else {
                 fullTransitionAmount = 1.0f;
-                iconTransitionAmount = 1.0f;
+                transitionAmount = 1.0f;
             }
         } else {
             fullTransitionAmount = 0.0f;
-            iconTransitionAmount = 0.0f;
+            transitionAmount = 0.0f;
         }
-        if (fullyInOrOut && !expandingAnimated && iconState.isLastExpandIcon) {
+        if (iconState != null && fullyInOrOut && !expandingAnimated && iconState.isLastExpandIcon) {
             iconState.isLastExpandIcon = false;
             iconState.customTransformHeight = NO_VALUE;
         }
-        updateIconPositioning(row, iconTransitionAmount, fullTransitionAmount,
+        updateIconPositioning(view, transitionAmount, fullTransitionAmount,
                 iconTransformDistance, scrolling, scrollingFast, expandingAnimated, isLastChild);
         return fullTransitionAmount;
     }
 
-    private void updateIconPositioning(ExpandableNotificationRow row, float iconTransitionAmount,
+    private void updateIconPositioning(ExpandableView view, float iconTransitionAmount,
             float fullTransitionAmount, float iconTransformDistance, boolean scrolling,
             boolean scrollingFast, boolean expandingAnimated, boolean isLastChild) {
-        StatusBarIconView icon = row.getEntry().expandedIcon;
+        StatusBarIconView icon = view.getShelfIcon();
         NotificationIconContainer.IconState iconState = getIconState(icon);
+        float contentTransformationAmount;
         if (iconState == null) {
-            return;
-        }
-        boolean forceInShelf = iconState.isLastExpandIcon && !iconState.hasCustomTransformHeight();
-        float clampedAmount = iconTransitionAmount > 0.5f ? 1.0f : 0.0f;
-        if (clampedAmount == fullTransitionAmount) {
-            iconState.noAnimations = (scrollingFast || expandingAnimated) && !forceInShelf;
-            iconState.useFullTransitionAmount = iconState.noAnimations
-                || (!ICON_ANMATIONS_WHILE_SCROLLING && fullTransitionAmount == 0.0f && scrolling);
-            iconState.useLinearTransitionAmount = !ICON_ANMATIONS_WHILE_SCROLLING
-                    && fullTransitionAmount == 0.0f && !mAmbientState.isExpansionChanging();
-            iconState.translateContent = mMaxLayoutHeight - getTranslationY()
-                    - getIntrinsicHeight() > 0;
-        }
-        if (!forceInShelf && (scrollingFast || (expandingAnimated
-                && iconState.useFullTransitionAmount && !ViewState.isAnimatingY(icon)))) {
-            iconState.cancelAnimations(icon);
-            iconState.useFullTransitionAmount = true;
-            iconState.noAnimations = true;
-        }
-        if (iconState.hasCustomTransformHeight()) {
-            iconState.useFullTransitionAmount = true;
-        }
-        if (iconState.isLastExpandIcon) {
-            iconState.translateContent = false;
-        }
-        float transitionAmount;
-        if (mAmbientState.isHiddenAtAll() && !row.isInShelf()) {
-            transitionAmount = mAmbientState.isFullyHidden() ? 1 : 0;
-        } else if (isLastChild || !USE_ANIMATIONS_WHEN_OPENING || iconState.useFullTransitionAmount
-                || iconState.useLinearTransitionAmount) {
-            transitionAmount = iconTransitionAmount;
+            contentTransformationAmount = iconTransitionAmount;
         } else {
-            // We take the clamped position instead
-            transitionAmount = clampedAmount;
-            iconState.needsCannedAnimation = iconState.clampedAppearAmount != clampedAmount
-                    && !mNoAnimationsInThisFrame;
-        }
-        iconState.iconAppearAmount = !USE_ANIMATIONS_WHEN_OPENING
+            boolean forceInShelf =
+                    iconState.isLastExpandIcon && !iconState.hasCustomTransformHeight();
+            float clampedAmount = iconTransitionAmount > 0.5f ? 1.0f : 0.0f;
+            if (clampedAmount == fullTransitionAmount) {
+                iconState.noAnimations = (scrollingFast || expandingAnimated) && !forceInShelf;
+                iconState.useFullTransitionAmount = iconState.noAnimations
+                        || (!ICON_ANMATIONS_WHILE_SCROLLING && fullTransitionAmount == 0.0f
+                        && scrolling);
+                iconState.useLinearTransitionAmount = !ICON_ANMATIONS_WHILE_SCROLLING
+                        && fullTransitionAmount == 0.0f && !mAmbientState.isExpansionChanging();
+                iconState.translateContent = mMaxLayoutHeight - getTranslationY()
+                        - getIntrinsicHeight() > 0;
+            }
+            if (!forceInShelf && (scrollingFast || (expandingAnimated
+                    && iconState.useFullTransitionAmount && !ViewState.isAnimatingY(icon)))) {
+                iconState.cancelAnimations(icon);
+                iconState.useFullTransitionAmount = true;
+                iconState.noAnimations = true;
+            }
+            if (iconState.hasCustomTransformHeight()) {
+                iconState.useFullTransitionAmount = true;
+            }
+            if (iconState.isLastExpandIcon) {
+                iconState.translateContent = false;
+            }
+            float transitionAmount;
+            if (mAmbientState.isHiddenAtAll() && !view.isInShelf()) {
+                transitionAmount = mAmbientState.isFullyHidden() ? 1 : 0;
+            } else if (isLastChild || !USE_ANIMATIONS_WHEN_OPENING
                     || iconState.useFullTransitionAmount
-                ? fullTransitionAmount
-                : transitionAmount;
-        iconState.clampedAppearAmount = clampedAmount;
-        float contentTransformationAmount = !row.isAboveShelf() && !row.showingPulsing()
+                    || iconState.useLinearTransitionAmount) {
+                transitionAmount = iconTransitionAmount;
+            } else {
+                // We take the clamped position instead
+                transitionAmount = clampedAmount;
+                iconState.needsCannedAnimation = iconState.clampedAppearAmount != clampedAmount
+                        && !mNoAnimationsInThisFrame;
+            }
+            iconState.iconAppearAmount = !USE_ANIMATIONS_WHEN_OPENING
+                    || iconState.useFullTransitionAmount
+                    ? fullTransitionAmount
+                    : transitionAmount;
+            iconState.clampedAppearAmount = clampedAmount;
+            contentTransformationAmount = !view.isAboveShelf() && !view.showingPulsing()
                     && (isLastChild || iconState.translateContent)
-                ? iconTransitionAmount
-                : 0.0f;
-        row.setContentTransformationAmount(contentTransformationAmount, isLastChild);
-        setIconTransformationAmount(row, transitionAmount, iconTransformDistance,
-                clampedAmount != transitionAmount, isLastChild);
+                    ? iconTransitionAmount
+                    : 0.0f;
+            setIconTransformationAmount(view, transitionAmount, iconTransformDistance,
+                    clampedAmount != transitionAmount, isLastChild);
+        }
+        view.setContentTransformationAmount(contentTransformationAmount, isLastChild);
     }
 
-    private void setIconTransformationAmount(ExpandableNotificationRow row,
+    private void setIconTransformationAmount(ExpandableView view,
             float transitionAmount, float iconTransformDistance, boolean usingLinearInterpolation,
             boolean isLastChild) {
-        StatusBarIconView icon = row.getEntry().expandedIcon;
+        if (!(view instanceof ExpandableNotificationRow)) {
+            return;
+        }
+        ExpandableNotificationRow row = (ExpandableNotificationRow) view;
+
+        StatusBarIconView icon = row.getShelfIcon();
         NotificationIconContainer.IconState iconState = getIconState(icon);
 
         View rowIcon = row.getNotificationIcon();
@@ -946,6 +953,11 @@
         updateRelativeOffset();
     }
 
+    @Override
+    public boolean needsClippingToShelf() {
+        return false;
+    }
+
     public void onUiModeChanged() {
         updateBackgroundColors();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java
index 405f32a..7cda235 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java
@@ -23,6 +23,7 @@
 import com.android.systemui.R;
 import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
 import com.android.systemui.statusbar.phone.LockIcon;
+import com.android.systemui.statusbar.phone.LockscreenLockIconController;
 import com.android.systemui.statusbar.phone.NotificationPanelView;
 import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
 import com.android.systemui.statusbar.phone.StatusBarWindowView;
@@ -41,6 +42,7 @@
     private final Context mContext;
     private final InjectionInflationController mInjectionInflationController;
     private final NotificationRowComponent.Builder mNotificationRowComponentBuilder;
+    private final LockscreenLockIconController mLockIconController;
 
     private NotificationShadeWindowView mNotificationShadeWindowView;
     private StatusBarWindowView mStatusBarWindowView;
@@ -49,10 +51,12 @@
     @Inject
     public SuperStatusBarViewFactory(Context context,
             InjectionInflationController injectionInflationController,
-            NotificationRowComponent.Builder notificationRowComponentBuilder) {
+            NotificationRowComponent.Builder notificationRowComponentBuilder,
+            LockscreenLockIconController lockIconController) {
         mContext = context;
         mInjectionInflationController = injectionInflationController;
         mNotificationRowComponentBuilder = notificationRowComponentBuilder;
+        mLockIconController = lockIconController;
     }
 
     /**
@@ -73,12 +77,12 @@
             throw new IllegalStateException(
                     "R.layout.super_notification_shade could not be properly inflated");
         }
-        return mNotificationShadeWindowView;
-    }
+        LockIcon lockIcon = mNotificationShadeWindowView.findViewById(R.id.lock_icon);
+        if (lockIcon != null) {
+            mLockIconController.attach(lockIcon);
+        }
 
-    /** Gets the {@link LockIcon} inside of {@link R.layout#super_status_bar}. */
-    public LockIcon getLockIcon() {
-        return getNotificationShadeWindowView().findViewById(R.id.lock_icon);
+        return mNotificationShadeWindowView;
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
index 5fc043a..53605e5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
@@ -274,8 +274,14 @@
             Matrix m = new Matrix();
             m.postTranslate(0, (float) (mParams.top - app.position.y));
             mWindowCrop.set(mParams.left, 0, mParams.right, mParams.getHeight());
-            SurfaceParams params = new SurfaceParams(app.leash, 1f /* alpha */, m, mWindowCrop,
-                    app.prefixOrderIndex, mCornerRadius, true /* visible */);
+            SurfaceParams params = new SurfaceParams.Builder(app.leash)
+                    .withAlpha(1f)
+                    .withMatrix(m)
+                    .withWindowCrop(mWindowCrop)
+                    .withLayer(app.prefixOrderIndex)
+                    .withCornerRadius(mCornerRadius)
+                    .withVisibility(true)
+                    .build();
             mSyncRtTransactionApplier.scheduleApply(params);
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt
index b1d6b40..571a854 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt
@@ -42,8 +42,8 @@
 private fun isEnabled(proxy: DeviceConfigProxy): Boolean {
     if (sIsEnabled == null) {
         sIsEnabled = proxy.getBoolean(
-                DeviceConfig.NAMESPACE_SYSTEMUI, NOTIFICATIONS_ALLOW_FGS_DISMISSAL, false)
+                DeviceConfig.NAMESPACE_SYSTEMUI, NOTIFICATIONS_ALLOW_FGS_DISMISSAL, true)
     }
 
     return sIsEnabled!!
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java
index 07cf9d9..df21f0b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java
@@ -77,7 +77,8 @@
             public void onEntryRemoved(
                     NotificationEntry entry,
                     NotificationVisibility visibility,
-                    boolean removedByUser) {
+                    boolean removedByUser,
+                    int reason) {
                 stopAlerting(entry.getKey());
             }
         });
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java
index 25253a1..2beceb2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java
@@ -92,7 +92,8 @@
     default void onEntryRemoved(
             NotificationEntry entry,
             @Nullable NotificationVisibility visibility,
-            boolean removedByUser) {
+            boolean removedByUser,
+            int reason) {
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
index 5ebd368..7f0479c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
@@ -477,7 +477,7 @@
 
                 mLogger.logNotifRemoved(entry.getKey(), removedByUser);
                 for (NotificationEntryListener listener : mNotificationEntryListeners) {
-                    listener.onEntryRemoved(entry, visibility, removedByUser);
+                    listener.onEntryRemoved(entry, visibility, removedByUser, reason);
                 }
                 for (NotifCollectionListener listener : mNotifCollectionListeners) {
                     // NEM doesn't have a good knowledge of reasons so defaulting to unknown.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationListController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationListController.java
index f2765db..c9c6f28 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationListController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationListController.java
@@ -59,7 +59,8 @@
         public void onEntryRemoved(
                 NotificationEntry entry,
                 NotificationVisibility visibility,
-                boolean removedByUser) {
+                boolean removedByUser,
+                int reason) {
             mListContainer.cleanUpViewStateForEntry(entry);
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java
index 44cec96..14903cd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar.notification.collection;
 
+import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeSortListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeTransformGroupsListener;
@@ -63,7 +64,7 @@
  *  6. Top-level entries are assigned sections by NotifSections ({@link #setSections})
  *  7. Top-level entries within the same section are sorted by NotifComparators
  *     ({@link #setComparators})
- *  8. Pre-render filters are fired on each notification ({@link #addPreRenderFilter})
+ *  8. Finalize filters are fired on each notification ({@link #addFinalizeFilter})
  *  9. OnBeforeRenderListListeners are fired ({@link #addOnBeforeRenderListListener})
  *  9. The list is handed off to the view layer to be rendered
  */
@@ -169,14 +170,22 @@
     }
 
     /**
+     * Called after notifs have been filtered once, grouped, and sorted but before the final
+     * filtering.
+     */
+    public void addOnBeforeFinalizeFilterListener(OnBeforeFinalizeFilterListener listener) {
+        mShadeListBuilder.addOnBeforeFinalizeFilterListener(listener);
+    }
+
+    /**
      * Registers a filter with the pipeline to filter right before rendering the list (after
      * pre-group filtering, grouping, promoting and sorting occurs). Filters are
      * called on each notification in the order that they were registered. If any filter returns
      * true, the notification is removed from the pipeline (and no other filters are called on that
      * notif).
      */
-    public void addPreRenderFilter(NotifFilter filter) {
-        mShadeListBuilder.addPreRenderFilter(filter);
+    public void addFinalizeFilter(NotifFilter filter) {
+        mShadeListBuilder.addFinalizeFilter(filter);
     }
 
     /**
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 25a832d..3e9d8a4 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
@@ -153,6 +153,7 @@
     public String remoteInputMimeType;
     public Uri remoteInputUri;
     private Notification.BubbleMetadata mBubbleMetadata;
+    private ShortcutInfo mShortcutInfo;
 
     /**
      * If {@link android.app.RemoteInput#getEditChoicesBeforeSending} is enabled, and the user is
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 7631120..5b73b1a 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
@@ -18,11 +18,11 @@
 
 import static com.android.systemui.statusbar.notification.collection.GroupEntry.ROOT_ENTRY;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_BUILD_STARTED;
+import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_FINALIZE_FILTERING;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_FINALIZING;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_GROUPING;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_IDLE;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_PRE_GROUP_FILTERING;
-import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_PRE_RENDER_FILTERING;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_RESETTING;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_SORTING;
 import static com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.STATE_TRANSFORMING;
@@ -36,6 +36,7 @@
 
 import com.android.systemui.Dumpable;
 import com.android.systemui.dump.DumpManager;
+import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeSortListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeTransformGroupsListener;
@@ -82,7 +83,7 @@
 
     private final List<NotifFilter> mNotifPreGroupFilters = new ArrayList<>();
     private final List<NotifPromoter> mNotifPromoters = new ArrayList<>();
-    private final List<NotifFilter> mNotifPreRenderFilters = new ArrayList<>();
+    private final List<NotifFilter> mNotifFinalizeFilters = new ArrayList<>();
     private final List<NotifComparator> mNotifComparators = new ArrayList<>();
     private final List<NotifSection> mNotifSections = new ArrayList<>();
 
@@ -90,6 +91,8 @@
             new ArrayList<>();
     private final List<OnBeforeSortListener> mOnBeforeSortListeners =
             new ArrayList<>();
+    private final List<OnBeforeFinalizeFilterListener> mOnBeforeFinalizeFilterListeners =
+            new ArrayList<>();
     private final List<OnBeforeRenderListListener> mOnBeforeRenderListListeners =
             new ArrayList<>();
     @Nullable private OnRenderListListener mOnRenderListListener;
@@ -142,6 +145,13 @@
         mOnBeforeSortListeners.add(listener);
     }
 
+    void addOnBeforeFinalizeFilterListener(OnBeforeFinalizeFilterListener listener) {
+        Assert.isMainThread();
+
+        mPipelineState.requireState(STATE_IDLE);
+        mOnBeforeFinalizeFilterListeners.add(listener);
+    }
+
     void addOnBeforeRenderListListener(OnBeforeRenderListListener listener) {
         Assert.isMainThread();
 
@@ -157,12 +167,12 @@
         filter.setInvalidationListener(this::onPreGroupFilterInvalidated);
     }
 
-    void addPreRenderFilter(NotifFilter filter) {
+    void addFinalizeFilter(NotifFilter filter) {
         Assert.isMainThread();
         mPipelineState.requireState(STATE_IDLE);
 
-        mNotifPreRenderFilters.add(filter);
-        filter.setInvalidationListener(this::onPreRenderFilterInvalidated);
+        mNotifFinalizeFilters.add(filter);
+        filter.setInvalidationListener(this::onFinalizeFilterInvalidated);
     }
 
     void addPromoter(NotifPromoter promoter) {
@@ -237,12 +247,12 @@
         rebuildListIfBefore(STATE_SORTING);
     }
 
-    private void onPreRenderFilterInvalidated(NotifFilter filter) {
+    private void onFinalizeFilterInvalidated(NotifFilter filter) {
         Assert.isMainThread();
 
-        mLogger.logPreRenderFilterInvalidated(filter.getName(), mPipelineState.getState());
+        mLogger.logFinalizeFilterInvalidated(filter.getName(), mPipelineState.getState());
 
-        rebuildListIfBefore(STATE_PRE_RENDER_FILTERING);
+        rebuildListIfBefore(STATE_FINALIZE_FILTERING);
     }
 
     private void onNotifComparatorInvalidated(NotifComparator comparator) {
@@ -298,8 +308,9 @@
 
         // Step 6: Filter out entries after pre-group filtering, grouping, promoting and sorting
         // Now filters can see grouping information to determine whether to filter or not.
-        mPipelineState.incrementTo(STATE_PRE_RENDER_FILTERING);
-        filterNotifs(mNotifList, mNewNotifList, mNotifPreRenderFilters);
+        dispatchOnBeforeFinalizeFilter(mReadOnlyNotifList);
+        mPipelineState.incrementTo(STATE_FINALIZE_FILTERING);
+        filterNotifs(mNotifList, mNewNotifList, mNotifFinalizeFilters);
         applyNewNotifList();
         pruneIncompleteGroups(mNotifList);
 
@@ -772,6 +783,12 @@
         }
     }
 
+    private void dispatchOnBeforeFinalizeFilter(List<ListEntry> entries) {
+        for (int i = 0; i < mOnBeforeFinalizeFilterListeners.size(); i++) {
+            mOnBeforeFinalizeFilterListeners.get(i).onBeforeFinalizeFilter(entries);
+        }
+    }
+
     private void dispatchOnBeforeRenderList(List<ListEntry> entries) {
         for (int i = 0; i < mOnBeforeRenderListListeners.size(); i++) {
             mOnBeforeRenderListListeners.get(i).onBeforeRenderList(entries);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BubbleCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BubbleCoordinator.java
index 8b2a07d..370de83 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BubbleCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BubbleCoordinator.java
@@ -77,7 +77,7 @@
     public void attach(NotifPipeline pipeline) {
         mNotifPipeline = pipeline;
         mNotifPipeline.addNotificationDismissInterceptor(mDismissInterceptor);
-        mNotifPipeline.addPreRenderFilter(mNotifFilter);
+        mNotifPipeline.addFinalizeFilter(mNotifFilter);
         mBubbleController.addNotifCallback(mNotifCallback);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java
index a26ee545..aaf71f5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java
@@ -87,7 +87,7 @@
     @Override
     public void attach(NotifPipeline pipeline) {
         setupInvalidateNotifListCallbacks();
-        pipeline.addPreRenderFilter(mNotifFilter);
+        pipeline.addFinalizeFilter(mNotifFilter);
     }
 
     private final NotifFilter mNotifFilter = new NotifFilter(TAG) {
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 1c8fdac..ebecf18 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
@@ -16,31 +16,39 @@
 
 package com.android.systemui.statusbar.notification.collection.coordinator;
 
+import android.annotation.IntDef;
 import android.os.RemoteException;
 import android.service.notification.StatusBarNotification;
+import android.util.ArrayMap;
 
 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.NotifInflaterImpl;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.ShadeListBuilder;
 import com.android.systemui.statusbar.notification.collection.inflation.NotifInflater;
+import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
 import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
 import com.android.systemui.statusbar.notification.row.NotifInflationErrorManager;
 
-import java.util.ArrayList;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
 /**
- * Kicks off notification inflation and view rebinding when a notification is added or updated.
+ * Kicks off core notification inflation and view rebinding when a notification is added or updated.
  * Aborts inflation when a notification is removed.
  *
- * If a notification is not done inflating, this coordinator will filter the notification out
- * from the {@link ShadeListBuilder}.
+ * If a notification was uninflated, this coordinator will filter the notification out from the
+ * {@link ShadeListBuilder} until it is inflated.
  */
 @Singleton
 public class PreparationCoordinator implements Coordinator {
@@ -49,7 +57,7 @@
     private final PreparationCoordinatorLogger mLogger;
     private final NotifInflater mNotifInflater;
     private final NotifInflationErrorManager mNotifErrorManager;
-    private final List<NotificationEntry> mPendingNotifications = new ArrayList<>();
+    private final Map<NotificationEntry, Integer> mInflationStates = new ArrayMap<>();
     private final IStatusBarService mStatusBarService;
 
     @Inject
@@ -69,27 +77,44 @@
     @Override
     public void attach(NotifPipeline pipeline) {
         pipeline.addCollectionListener(mNotifCollectionListener);
-        pipeline.addPreRenderFilter(mNotifInflationErrorFilter);
-        pipeline.addPreRenderFilter(mNotifInflatingFilter);
+        // Inflate after grouping/sorting since that affects what views to inflate.
+        pipeline.addOnBeforeFinalizeFilterListener(mOnBeforeFinalizeFilterListener);
+        pipeline.addFinalizeFilter(mNotifInflationErrorFilter);
+        pipeline.addFinalizeFilter(mNotifInflatingFilter);
     }
 
     private final NotifCollectionListener mNotifCollectionListener = new NotifCollectionListener() {
+
         @Override
-        public void onEntryAdded(NotificationEntry entry) {
-            inflateEntry(entry, "entryAdded");
+        public void onEntryInit(NotificationEntry entry) {
+            mInflationStates.put(entry, STATE_UNINFLATED);
         }
 
         @Override
         public void onEntryUpdated(NotificationEntry entry) {
-            rebind(entry, "entryUpdated");
+            @InflationState int state = getInflationState(entry);
+            if (state == STATE_INFLATED) {
+                mInflationStates.put(entry, STATE_INFLATED_INVALID);
+            } else if (state == STATE_ERROR) {
+                // Updated so maybe it won't error out now.
+                mInflationStates.put(entry, STATE_UNINFLATED);
+            }
         }
 
         @Override
         public void onEntryRemoved(NotificationEntry entry, int reason) {
             abortInflation(entry, "entryRemoved reason=" + reason);
         }
+
+        @Override
+        public void onEntryCleanUp(NotificationEntry entry) {
+            mInflationStates.remove(entry);
+        }
     };
 
+    private final OnBeforeFinalizeFilterListener mOnBeforeFinalizeFilterListener =
+            entries -> inflateAllRequiredViews(entries);
+
     private final NotifFilter mNotifInflationErrorFilter = new NotifFilter(
             TAG + "InflationError") {
         /**
@@ -97,10 +122,7 @@
          */
         @Override
         public boolean shouldFilterOut(NotificationEntry entry, long now) {
-            if (mNotifErrorManager.hasInflationError(entry)) {
-                return true;
-            }
-            return false;
+            return getInflationState(entry) == STATE_ERROR;
         }
     };
 
@@ -110,7 +132,8 @@
          */
         @Override
         public boolean shouldFilterOut(NotificationEntry entry, long now) {
-            return mPendingNotifications.contains(entry);
+            @InflationState int state = getInflationState(entry);
+            return (state != STATE_INFLATED) && (state != STATE_INFLATED_INVALID);
         }
     };
 
@@ -119,7 +142,7 @@
         @Override
         public void onInflationFinished(NotificationEntry entry) {
             mLogger.logNotifInflated(entry.getKey());
-            mPendingNotifications.remove(entry);
+            mInflationStates.put(entry, STATE_INFLATED);
             mNotifInflatingFilter.invalidateList();
         }
     };
@@ -128,7 +151,7 @@
             new NotifInflationErrorManager.NotifInflationErrorListener() {
         @Override
         public void onNotifInflationError(NotificationEntry entry, Exception e) {
-            mPendingNotifications.remove(entry);
+            mInflationStates.put(entry, STATE_ERROR);
             try {
                 final StatusBarNotification sbn = entry.getSbn();
                 // report notification inflation errors back up
@@ -152,9 +175,41 @@
         }
     };
 
+    private void inflateAllRequiredViews(List<ListEntry> entries) {
+        for (int i = 0, size = entries.size(); i < size; i++) {
+            ListEntry entry = entries.get(i);
+            if (entry instanceof GroupEntry) {
+                GroupEntry groupEntry = (GroupEntry) entry;
+                inflateNotifRequiredViews(groupEntry.getSummary());
+                List<NotificationEntry> children = groupEntry.getChildren();
+                for (int j = 0, groupSize = children.size(); j < groupSize; j++) {
+                    inflateNotifRequiredViews(children.get(j));
+                }
+            } else {
+                NotificationEntry notifEntry = (NotificationEntry) entry;
+                inflateNotifRequiredViews(notifEntry);
+            }
+        }
+    }
+
+    private void inflateNotifRequiredViews(NotificationEntry entry) {
+        @InflationState int state = mInflationStates.get(entry);
+        switch (state) {
+            case STATE_UNINFLATED:
+                inflateEntry(entry, "entryAdded");
+                break;
+            case STATE_INFLATED_INVALID:
+                rebind(entry, "entryUpdated");
+                break;
+            case STATE_INFLATED:
+            case STATE_ERROR:
+            default:
+                // Nothing to do.
+        }
+    }
+
     private void inflateEntry(NotificationEntry entry, String reason) {
         abortInflation(entry, reason);
-        mPendingNotifications.add(entry);
         mNotifInflater.inflateViews(entry);
     }
 
@@ -165,6 +220,32 @@
     private void abortInflation(NotificationEntry entry, String reason) {
         mLogger.logInflationAborted(entry.getKey(), reason);
         entry.abortTask();
-        mPendingNotifications.remove(entry);
     }
+
+    private @InflationState int getInflationState(NotificationEntry entry) {
+        Integer stateObj = mInflationStates.get(entry);
+        Objects.requireNonNull(stateObj,
+                "Asking state of a notification preparation coordinator doesn't know about");
+        return stateObj;
+    }
+
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"STATE_"},
+            value = {STATE_UNINFLATED, STATE_INFLATED_INVALID, STATE_INFLATED, STATE_ERROR})
+    @interface InflationState {}
+
+    /** The notification has never been inflated before. */
+    private static final int STATE_UNINFLATED = 0;
+
+    /** The notification is inflated. */
+    private static final int STATE_INFLATED = 1;
+
+    /**
+     * The notification is inflated, but its content may be out-of-date since the notification has
+     * been updated.
+     */
+    private static final int STATE_INFLATED_INVALID = 2;
+
+    /** The notification errored out while inflating */
+    private static final int STATE_ERROR = -1;
 }
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
new file mode 100644
index 0000000..086661e
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeFinalizeFilterListener.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2020 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.notification.collection.listbuilder;
+
+import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.NotifPipeline;
+
+import java.util.List;
+
+/** See {@link NotifPipeline#addOnBeforeFinalizeFilterListener(OnBeforeFinalizeFilterListener)} */
+public interface OnBeforeFinalizeFilterListener {
+    /**
+     * Called after the notif list has been filtered, grouped, and sorted but before they are
+     * filtered one last time before rendering.
+     *
+     * @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);
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/PipelineState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/PipelineState.java
index 1897ba2..f1f7d63 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/PipelineState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/PipelineState.java
@@ -82,7 +82,7 @@
     public static final int STATE_GROUPING = 4;
     public static final int STATE_TRANSFORMING = 5;
     public static final int STATE_SORTING = 6;
-    public static final int STATE_PRE_RENDER_FILTERING = 7;
+    public static final int STATE_FINALIZE_FILTERING = 7;
     public static final int STATE_FINALIZING = 8;
 
     @IntDef(prefix = { "STATE_" }, value = {
@@ -93,7 +93,7 @@
             STATE_GROUPING,
             STATE_TRANSFORMING,
             STATE_SORTING,
-            STATE_PRE_RENDER_FILTERING,
+            STATE_FINALIZE_FILTERING,
             STATE_FINALIZING,
     })
     @Retention(RetentionPolicy.SOURCE)
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 6e15043..763547c 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
@@ -87,12 +87,12 @@
         })
     }
 
-    fun logPreRenderFilterInvalidated(name: String, pipelineState: Int) {
+    fun logFinalizeFilterInvalidated(name: String, pipelineState: Int) {
         buffer.log(TAG, DEBUG, {
             str1 = name
             int1 = pipelineState
         }, {
-            """Pre-render NotifFilter "$str1" invalidated; pipeline state is $int1"""
+            """Finalize NotifFilter "$str1" invalidated; pipeline state is $int1"""
         })
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifFilter.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifFilter.java
index 8f575cd..9edb5fc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifFilter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifFilter.java
@@ -21,7 +21,7 @@
 
 /**
  * Pluggable for participating in notif filtering.
- * See {@link NotifPipeline#addPreGroupFilter} and {@link NotifPipeline#addPreRenderFilter}.
+ * See {@link NotifPipeline#addPreGroupFilter} and {@link NotifPipeline#addFinalizeFilter}.
  */
 public abstract class NotifFilter extends Pluggable<NotifFilter> {
     protected NotifFilter(String name) {
@@ -37,7 +37,7 @@
      * @param entry The entry in question.
      *              If this filter is registered via {@link NotifPipeline#addPreGroupFilter},
      *              this entry will not have any grouping nor sorting information.
-     *              If this filter is registered via {@link NotifPipeline#addPreRenderFilter},
+     *              If this filter is registered via {@link NotifPipeline#addFinalizeFilter},
      *              this entry will have grouping and sorting information.
      * @param now A timestamp in SystemClock.uptimeMillis that represents "now" for the purposes of
      *            pipeline execution. This value will be the same for all pluggable calls made
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
index becb758..6e161c9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
@@ -213,7 +213,8 @@
             public void onEntryRemoved(
                     NotificationEntry entry,
                     NotificationVisibility visibility,
-                    boolean removedByUser) {
+                    boolean removedByUser,
+                    int reason) {
                 if (removedByUser && visibility != null) {
                     logNotificationClear(entry.getKey(), entry.getSbn(), visibility);
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHub.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHub.kt
index 2a02c19..3007198 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHub.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHub.kt
@@ -47,7 +47,7 @@
     val key: PersonKey,
     val name: CharSequence,
     val avatar: Drawable,
-    val clickIntent: PendingIntent,
+    val clickRunnable: Runnable,
     val userId: Int
 )
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt
index 721f32a..360bf96 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt
@@ -17,20 +17,30 @@
 package com.android.systemui.statusbar.notification.people
 
 import android.app.Notification
+import android.content.Context
+import android.content.pm.LauncherApps
+import android.content.pm.PackageManager
+import android.content.pm.ShortcutInfo
 import android.content.pm.UserInfo
+import android.graphics.drawable.BitmapDrawable
 import android.graphics.drawable.Drawable
 import android.os.UserManager
+import android.service.notification.NotificationListenerService
+import android.service.notification.NotificationListenerService.REASON_SNOOZED
 import android.service.notification.StatusBarNotification
+import android.util.IconDrawableFactory
 import android.util.SparseArray
 import android.view.View
 import android.view.ViewGroup
 import android.widget.ImageView
 import com.android.internal.statusbar.NotificationVisibility
 import com.android.internal.widget.MessagingGroup
+import com.android.settingslib.notification.ConversationIconFactory
 import com.android.systemui.R
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.plugins.NotificationPersonExtractorPlugin
+import com.android.systemui.statusbar.NotificationListener
 import com.android.systemui.statusbar.NotificationLockscreenUserManager
 import com.android.systemui.statusbar.notification.NotificationEntryListener
 import com.android.systemui.statusbar.notification.NotificationEntryManager
@@ -69,7 +79,7 @@
 
     override fun extractPerson(sbn: StatusBarNotification) =
             plugin?.extractPerson(sbn)?.run {
-                PersonModel(key, name, avatar, clickIntent, sbn.user.identifier)
+                PersonModel(key, name, avatar, clickRunnable, sbn.user.identifier)
             }
 
     override fun extractPersonKey(sbn: StatusBarNotification) = plugin?.extractPersonKey(sbn)
@@ -80,17 +90,26 @@
 
 @Singleton
 class PeopleHubDataSourceImpl @Inject constructor(
-    private val notificationEntryManager: NotificationEntryManager,
-    private val extractor: NotificationPersonExtractor,
-    private val userManager: UserManager,
-    @Background private val bgExecutor: Executor,
-    @Main private val mainExecutor: Executor,
-    private val notifLockscreenUserMgr: NotificationLockscreenUserManager
-) : DataSource<PeopleHubModel> {
+        private val notificationEntryManager: NotificationEntryManager,
+        private val extractor: NotificationPersonExtractor,
+        private val userManager: UserManager,
+        private val launcherApps: LauncherApps,
+        private val packageManager: PackageManager,
+        private val c: Context,
+        private val notificationListener: NotificationListener,
+        @Background private val bgExecutor: Executor,
+        @Main private val mainExecutor: Executor,
+        private val notifLockscreenUserMgr: NotificationLockscreenUserManager,
+        private val peopleNotificationIdentifier: PeopleNotificationIdentifier
+        ) : DataSource<PeopleHubModel> {
 
     private var userChangeSubscription: Subscription? = null
     private val dataListeners = mutableListOf<DataListener<PeopleHubModel>>()
     private val peopleHubManagerForUser = SparseArray<PeopleHubManager>()
+    val context: Context = c.applicationContext
+    val iconFactory = ConversationIconFactory(context, launcherApps, packageManager,
+            IconDrawableFactory.newInstance(context), context.resources.getDimensionPixelSize(
+            R.dimen.notification_guts_conversation_icon_size))
 
     private val notificationEntryListener = object : NotificationEntryListener {
         override fun onEntryInflated(entry: NotificationEntry) = addVisibleEntry(entry)
@@ -102,18 +121,23 @@
         override fun onEntryRemoved(
             entry: NotificationEntry,
             visibility: NotificationVisibility?,
-            removedByUser: Boolean
-        ) = removeVisibleEntry(entry)
+            removedByUser: Boolean,
+            reason: Int
+        ) = removeVisibleEntry(entry, reason)
     }
 
-    private fun removeVisibleEntry(entry: NotificationEntry) {
+    private fun removeVisibleEntry(entry: NotificationEntry, reason: Int) {
         (extractor.extractPersonKey(entry.sbn) ?: entry.extractPersonKey())?.let { key ->
             val userId = entry.sbn.user.identifier
             bgExecutor.execute {
                 val parentId = userManager.getProfileParent(userId)?.id ?: userId
                 mainExecutor.execute {
-                    if (peopleHubManagerForUser[parentId]?.removeActivePerson(key) == true) {
-                        updateUi()
+                    if (reason == REASON_SNOOZED) {
+                        if (peopleHubManagerForUser[parentId]?.migrateActivePerson(key) == true) {
+                            updateUi()
+                        }
+                    } else {
+                        peopleHubManagerForUser[parentId]?.removeActivePerson(key)
                     }
                 }
             }
@@ -121,7 +145,7 @@
     }
 
     private fun addVisibleEntry(entry: NotificationEntry) {
-        (extractor.extractPerson(entry.sbn) ?: entry.extractPerson())?.let { personModel ->
+        entry.extractPerson()?.let { personModel ->
             val userId = entry.sbn.user.identifier
             bgExecutor.execute {
                 val parentId = userManager.getProfileParent(userId)?.id ?: userId
@@ -180,6 +204,34 @@
             listener.onDataChanged(model)
         }
     }
+
+    private fun NotificationEntry.extractPerson(): PersonModel? {
+        if (!peopleNotificationIdentifier.isPeopleNotification(sbn, ranking)) {
+            return null
+        }
+        val clickRunnable = Runnable { notificationListener.unsnoozeNotification(key) }
+        val extras = sbn.notification.extras
+        val name = ranking.shortcutInfo?.shortLabel
+                ?: extras.getString(Notification.EXTRA_CONVERSATION_TITLE)
+                ?: extras.getString(Notification.EXTRA_TITLE)
+                ?: return null
+        val drawable = ranking.shortcutInfo?.getIcon(iconFactory, sbn, ranking)
+                ?: iconFactory.getConversationDrawable(extractAvatarFromRow(this), sbn.packageName,
+                        sbn.uid, ranking.channel.isImportantConversation)
+
+        return PersonModel(key, name, drawable, clickRunnable, sbn.user.identifier)
+    }
+
+    private fun ShortcutInfo.getIcon(iconFactory: ConversationIconFactory,
+                                     sbn: StatusBarNotification,
+                                     ranking: NotificationListenerService.Ranking): Drawable? {
+        return iconFactory.getConversationDrawable(ranking.shortcutInfo, sbn.packageName, sbn.uid,
+                ranking.channel.isImportantConversation)
+    }
+
+    private fun NotificationEntry.extractPersonKey(): PersonKey? =
+            // TODO migrate to shortcut id when snoozing is conversation wide
+            if (peopleNotificationIdentifier.isPeopleNotification(sbn, ranking)) key else null
 }
 
 private fun NotificationLockscreenUserManager.registerListener(
@@ -201,7 +253,7 @@
     // People that were once "active" and have been dismissed, and so can be displayed in the hub
     private val inactivePeople = ArrayDeque<PersonModel>(MAX_STORED_INACTIVE_PEOPLE)
 
-    fun removeActivePerson(key: PersonKey): Boolean {
+    fun migrateActivePerson(key: PersonKey): Boolean {
         activePeople.remove(key)?.let { data ->
             if (inactivePeople.size >= MAX_STORED_INACTIVE_PEOPLE) {
                 inactivePeople.removeLast()
@@ -212,6 +264,10 @@
         return false
     }
 
+    fun removeActivePerson(key: PersonKey) {
+        activePeople.remove(key)
+    }
+
     fun addActivePerson(person: PersonModel): Boolean {
         activePeople[person.key] = person
         return inactivePeople.removeIf { it.key == person.key }
@@ -229,19 +285,6 @@
 
 private fun ViewGroup.childrenWithId(id: Int): Sequence<View> = children.filter { it.id == id }
 
-private fun NotificationEntry.extractPerson(): PersonModel? {
-    if (!isMessagingNotification()) {
-        return null
-    }
-    val clickIntent = sbn.notification.contentIntent ?: return null
-    val extras = sbn.notification.extras
-    val name = extras.getString(Notification.EXTRA_CONVERSATION_TITLE)
-            ?: extras.getString(Notification.EXTRA_TITLE)
-            ?: return null
-    val drawable = extractAvatarFromRow(this) ?: return null
-    return PersonModel(key, name, drawable, clickIntent, sbn.user.identifier)
-}
-
 fun extractAvatarFromRow(entry: NotificationEntry): Drawable? =
         entry.row
                 ?.childrenWithId(R.id.expanded)
@@ -261,8 +304,3 @@
                 }
                 ?.firstOrNull()
 
-private fun NotificationEntry.extractPersonKey(): PersonKey? =
-        if (isMessagingNotification()) key else null
-
-private fun NotificationEntry.isMessagingNotification() =
-        sbn.notification.notificationStyle == Notification.MessagingStyle::class.java
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubViewController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubViewController.kt
index a58c42b..62d3612 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubViewController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubViewController.kt
@@ -102,30 +102,19 @@
 @Singleton
 class PeopleHubViewModelFactoryDataSourceImpl @Inject constructor(
     private val activityStarter: ActivityStarter,
-    private val dataSource: DataSource<@JvmSuppressWildcards PeopleHubModel>,
-    private val settingChangeSource: DataSource<@JvmSuppressWildcards Boolean>
+    private val dataSource: DataSource<@JvmSuppressWildcards PeopleHubModel>
 ) : DataSource<PeopleHubViewModelFactory> {
 
     override fun registerListener(listener: DataListener<PeopleHubViewModelFactory>): Subscription {
-        var stripEnabled = false
         var model: PeopleHubModel? = null
 
         fun updateListener() {
             // don't invoke listener until we've received our first model
             model?.let { model ->
-                val factory =
-                        if (stripEnabled) PeopleHubViewModelFactoryImpl(model, activityStarter)
-                        else EmptyViewModelFactory
+                val factory = PeopleHubViewModelFactoryImpl(model, activityStarter)
                 listener.onDataChanged(factory)
             }
         }
-
-        val settingSub = settingChangeSource.registerListener(object : DataListener<Boolean> {
-            override fun onDataChanged(data: Boolean) {
-                stripEnabled = data
-                updateListener()
-            }
-        })
         val dataSub = dataSource.registerListener(object : DataListener<PeopleHubModel> {
             override fun onDataChanged(data: PeopleHubModel) {
                 model = data
@@ -134,7 +123,6 @@
         })
         return object : Subscription {
             override fun unsubscribe() {
-                settingSub.unsubscribe()
                 dataSub.unsubscribe()
             }
         }
@@ -155,11 +143,7 @@
     override fun createWithAssociatedClickView(view: View): PeopleHubViewModel {
         val personViewModels = model.people.asSequence().map { personModel ->
             val onClick = {
-                activityStarter.startPendingIntentDismissingKeyguard(
-                        personModel.clickIntent,
-                        null,
-                        view
-                )
+                personModel.clickRunnable.run()
             }
             PersonViewModel(personModel.name, personModel.avatar, onClick)
         }
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 b03ba3c..ea1bdd6 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
@@ -968,14 +968,6 @@
         return mCurrentBackgroundTint;
     }
 
-    public boolean isPinned() {
-        return false;
-    }
-
-    public boolean isHeadsUpAnimatingAway() {
-        return false;
-    }
-
     public boolean isHeadsUp() {
         return false;
     }
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 5b4a927..e75b705 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
@@ -285,7 +285,7 @@
             window?.apply {
                 setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
                 addFlags(wmFlags)
-                setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL)
+                setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL)
                 setWindowAnimations(com.android.internal.R.style.Animation_InputMethod)
 
                 attributes = attributes.apply {
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 6d3f126..9a4e789 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
@@ -142,7 +142,6 @@
     private LayoutListener mLayoutListener;
     private RowContentBindStage mRowContentBindStage;
     private int mIconTransformContentShift;
-    private int mIconTransformContentShiftNoIcon;
     private int mMaxHeadsUpHeightBeforeN;
     private int mMaxHeadsUpHeightBeforeP;
     private int mMaxHeadsUpHeight;
@@ -312,10 +311,8 @@
     private boolean mHeadsupDisappearRunning;
     private View mChildAfterViewWhenDismissed;
     private View mGroupParentWhenDismissed;
-    private float mContentTransformationAmount;
     private boolean mIconsVisible = true;
     private boolean mAboveShelf;
-    private boolean mIsLastChild;
     private Runnable mOnDismissRunnable;
     private boolean mIsLowPriority;
     private boolean mIsColorized;
@@ -1504,18 +1501,19 @@
         updateIconVisibilities();
     }
 
-    private void updateContentTransformation() {
+    @Override
+    protected void updateContentTransformation() {
         if (mExpandAnimationRunning) {
             return;
         }
-        float contentAlpha;
-        float translationY = -mContentTransformationAmount * mIconTransformContentShift;
-        if (mIsLastChild) {
-            contentAlpha = 1.0f - mContentTransformationAmount;
-            contentAlpha = Math.min(contentAlpha / 0.5f, 1.0f);
-            contentAlpha = Interpolators.ALPHA_OUT.getInterpolation(contentAlpha);
-            translationY *= 0.4f;
-        } else {
+        super.updateContentTransformation();
+    }
+
+    @Override
+    protected void applyContentTransformation(float contentAlpha, float translationY) {
+        super.applyContentTransformation(contentAlpha, translationY);
+        if (!mIsLastChild) {
+            // Don't fade views unless we're last
             contentAlpha = 1.0f;
         }
         for (NotificationContentView l : mLayouts) {
@@ -1672,8 +1670,6 @@
         Resources res = getResources();
         mIncreasedPaddingBetweenElements = res.getDimensionPixelSize(
                 R.dimen.notification_divider_height_increased);
-        mIconTransformContentShiftNoIcon = res.getDimensionPixelSize(
-                R.dimen.notification_icon_transform_content_shift);
         mEnableNonGroupedNotificationExpand =
                 res.getBoolean(R.bool.config_enableNonGroupedNotificationExpand);
         mShowGroupBackgroundWhenExpanded =
@@ -2137,6 +2133,11 @@
     }
 
     @Override
+    public StatusBarIconView getShelfIcon() {
+        return getEntry().expandedIcon;
+    }
+
+    @Override
     protected boolean shouldClipToActualHeight() {
         return super.shouldClipToActualHeight() && !mExpandAnimationRunning;
     }
@@ -2472,11 +2473,16 @@
             CachingIconView icon = notificationHeader.getIcon();
             mIconTransformContentShift = getRelativeTopPadding(icon) + icon.getHeight();
         } else {
-            mIconTransformContentShift = mIconTransformContentShiftNoIcon;
+            mIconTransformContentShift = mContentShift;
         }
     }
 
     @Override
+    protected float getContentTransformationShift() {
+        return mIconTransformContentShift;
+    }
+
+    @Override
     public void notifyHeightChanged(boolean needsAnimation) {
         super.notifyHeightChanged(needsAnimation);
         getShowingLayout().requestSelectLayout(needsAnimation || isUserLocked());
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 e79d89f..a9f72ff 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
@@ -18,6 +18,7 @@
 
 import android.animation.AnimatorListenerAdapter;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.graphics.Paint;
 import android.graphics.Rect;
 import android.util.AttributeSet;
@@ -28,6 +29,9 @@
 import androidx.annotation.Nullable;
 
 import com.android.systemui.Dumpable;
+import com.android.systemui.Interpolators;
+import com.android.systemui.R;
+import com.android.systemui.statusbar.StatusBarIconView;
 import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
 
@@ -58,11 +62,26 @@
     private ViewGroup mTransientContainer;
     private boolean mInShelf;
     private boolean mTransformingInShelf;
+    protected float mContentTransformationAmount;
+    protected boolean mIsLastChild;
+    protected int mContentShift;
     private final ExpandableViewState mViewState;
 
     public ExpandableView(Context context, AttributeSet attrs) {
         super(context, attrs);
         mViewState = createExpandableViewState();
+        initDimens();
+    }
+
+    private void initDimens() {
+        mContentShift = getResources().getDimensionPixelSize(
+                R.dimen.shelf_transform_content_shift);
+    }
+
+    @Override
+    protected void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        initDimens();
     }
 
     @Override
@@ -140,6 +159,22 @@
     }
 
     /**
+     * @return if this view needs to be clipped to the shelf
+     */
+    public boolean needsClippingToShelf() {
+        return true;
+    }
+
+
+    public boolean isPinned() {
+        return false;
+    }
+
+    public boolean isHeadsUpAnimatingAway() {
+        return false;
+    }
+
+    /**
      * Sets the actual height of this notification. This is different than the laid out
      * {@link View#getHeight()}, as we want to avoid layouting during scrolling and expanding.
      *
@@ -578,7 +613,7 @@
 
     /**
      * @return whether the current view doesn't add height to the overall content. This means that
-     * if it is added to a list of items, it's content will still have the same height.
+     * if it is added to a list of items, its content will still have the same height.
      * An example is the notification shelf, that is always placed on top of another view.
      */
     public boolean hasNoContentHeight() {
@@ -596,6 +631,59 @@
         return mInShelf;
     }
 
+    public @Nullable StatusBarIconView getShelfIcon() {
+        return null;
+    }
+
+    /**
+     * Set how much this notification is transformed into the shelf.
+     *
+     * @param contentTransformationAmount A value from 0 to 1 indicating how much we are transformed
+     *                                 to the content away
+     * @param isLastChild is this the last child in the list. If true, then the transformation is
+     *                    different since its content fades out.
+     */
+    public void setContentTransformationAmount(float contentTransformationAmount,
+            boolean isLastChild) {
+        boolean changeTransformation = isLastChild != mIsLastChild;
+        changeTransformation |= mContentTransformationAmount != contentTransformationAmount;
+        mIsLastChild = isLastChild;
+        mContentTransformationAmount = contentTransformationAmount;
+        if (changeTransformation) {
+            updateContentTransformation();
+        }
+    }
+
+    /**
+     * Update the content representation based on the amount we are transformed into the shelf.
+     */
+    protected void updateContentTransformation() {
+        float translationY = -mContentTransformationAmount * getContentTransformationShift();
+        float contentAlpha = 1.0f - mContentTransformationAmount;
+        contentAlpha = Math.min(contentAlpha / 0.5f, 1.0f);
+        contentAlpha = Interpolators.ALPHA_OUT.getInterpolation(contentAlpha);
+        if (mIsLastChild) {
+            translationY *= 0.4f;
+        }
+        applyContentTransformation(contentAlpha, translationY);
+    }
+
+    /**
+     * @return how much the content shifts up when going into the shelf
+     */
+    protected float getContentTransformationShift() {
+        return mContentShift;
+    }
+
+    /**
+     * Apply the contentTransformation when going into the shelf.
+     *
+     * @param contentAlpha The alpha that should be applied
+     * @param translationY the translationY that should be applied
+     */
+    protected void applyContentTransformation(float contentAlpha, float translationY) {
+    }
+
     /**
      * @param transformingInShelf whether the view is currently transforming into the shelf in an
      *                            animated way
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
index bab7840..1088cdc3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
@@ -216,15 +216,7 @@
         if (TextUtils.isEmpty(mConversationId)) {
             throw new IllegalArgumentException("Does not have required information");
         }
-        // TODO: consider querying this earlier in the notification pipeline and passing it in
-        LauncherApps.ShortcutQuery query = new LauncherApps.ShortcutQuery()
-                .setPackage(mPackageName)
-                .setQueryFlags(FLAG_MATCH_DYNAMIC | FLAG_MATCH_PINNED | FLAG_MATCH_CACHED)
-                .setShortcutIds(Arrays.asList(mConversationId));
-        List<ShortcutInfo> shortcuts = mLauncherApps.getShortcuts(query, mSbn.getUser());
-        if (shortcuts != null && !shortcuts.isEmpty()) {
-            mShortcutInfo = shortcuts.get(0);
-        }
+        mShortcutInfo = entry.getRanking().getShortcutInfo();
 
         mIsBubbleable = mEntry.getBubbleMetadata() != null
             && Settings.Global.getInt(mContext.getContentResolver(),
@@ -325,8 +317,9 @@
     private void bindIcon() {
         ImageView image = findViewById(R.id.conversation_icon);
         if (mShortcutInfo != null) {
-            image.setImageBitmap(mIconFactory.getConversationBitmap(
-                    mShortcutInfo, mPackageName, mAppUid));
+            image.setImageDrawable(mIconFactory.getConversationDrawable(
+                    mShortcutInfo, mPackageName, mAppUid,
+                    mNotificationChannel.isImportantConversation()));
         } else {
             if (mSbn.getNotification().extras.getBoolean(EXTRA_IS_GROUP_CONVERSATION, false)) {
                 // TODO: maybe use a generic group icon, or a composite of recent senders
@@ -480,6 +473,9 @@
                     mContext.getString(R.string.notification_conversation_mute));
             mute.setImageResource(R.drawable.ic_notifications_silence);
         }
+
+        // update icon in case importance has changed
+        bindIcon();
     }
 
     private void updateChannel() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
index c01f6c4..d746822 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
@@ -390,7 +390,7 @@
             };
         }
         ConversationIconFactory iconFactoryLoader = new ConversationIconFactory(mContext,
-                launcherApps, pmUser, IconDrawableFactory.newInstance(mContext),
+                launcherApps, pmUser, IconDrawableFactory.newInstance(mContext, false),
                 mContext.getResources().getDimensionPixelSize(
                         R.dimen.notification_guts_conversation_icon_size));
 
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 eaa2eaf..82e5f0a 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
@@ -49,6 +49,7 @@
 
     public StackScrollerDecorView(Context context, AttributeSet attrs) {
         super(context, attrs);
+        setClipChildren(false);
     }
 
     @Override
@@ -206,6 +207,11 @@
     }
 
     @Override
+    public boolean needsClippingToShelf() {
+        return false;
+    }
+
+    @Override
     public boolean hasOverlappingRendering() {
         return false;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java
index b3561c2..8ee2f50 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.statusbar.notification.stack;
 
+import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_GENTLE;
+
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
 import android.annotation.IntDef;
@@ -100,14 +102,11 @@
     private boolean mInitialized = false;
 
     private SectionHeaderView mGentleHeader;
-    private boolean mGentleHeaderVisible;
     @Nullable private View.OnClickListener mOnClearGentleNotifsClickListener;
 
     private SectionHeaderView mAlertingHeader;
-    private boolean mAlertingHeaderVisible;
 
     private PeopleHubView mPeopleHubView;
-    private boolean mPeopleHeaderVisible;
     private boolean mPeopleHubVisible = false;
     @Nullable private Subscription mPeopleHubSubscription;
 
@@ -231,88 +230,135 @@
             return;
         }
 
+        // The overall strategy here is to iterate over the current children of mParent, looking
+        // for where the sections headers are currently positioned, and where each section begins.
+        // Then, once we find the start of a new section, we track that position as the "target" for
+        // the section header, adjusted for the case where existing headers are in front of that
+        // target, but won't be once they are moved / removed after the pass has completed.
+
         final boolean showHeaders = mStatusBarStateController.getState() != StatusBarState.KEYGUARD;
         final boolean usingPeopleFiltering = mSectionsFeatureManager.isFilteringEnabled();
 
         boolean peopleNotifsPresent = false;
+
+        int currentPeopleHeaderIdx = -1;
         int peopleHeaderTarget = -1;
+        int currentAlertingHeaderIdx = -1;
         int alertingHeaderTarget = -1;
+        int currentGentleHeaderIdx = -1;
         int gentleHeaderTarget = -1;
 
-        int viewCount = 0;
+        int lastNotifIndex = 0;
 
-        if (showHeaders) {
-            final int childCount = mParent.getChildCount();
-            for (int i = 0; i < childCount; i++) {
-                View child = mParent.getChildAt(i);
-                if (child.getVisibility() == View.GONE
-                        || !(child instanceof ExpandableNotificationRow)) {
-                    continue;
-                }
-                ExpandableNotificationRow row = (ExpandableNotificationRow) child;
-                switch (row.getEntry().getBucket()) {
-                    case BUCKET_PEOPLE:
-                        if (peopleHeaderTarget == -1) {
-                            peopleNotifsPresent = true;
-                            peopleHeaderTarget = viewCount;
-                            viewCount++;
-                        }
-                        break;
-                    case BUCKET_ALERTING:
-                        if (usingPeopleFiltering && alertingHeaderTarget == -1) {
-                            alertingHeaderTarget = viewCount;
-                            viewCount++;
-                        }
-                        break;
-                    case BUCKET_SILENT:
-                        if (gentleHeaderTarget == -1) {
-                            gentleHeaderTarget = viewCount;
-                            viewCount++;
-                        }
-                        break;
-                }
-                viewCount++;
+        final int childCount = mParent.getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            View child = mParent.getChildAt(i);
+
+            // Track the existing positions of the headers
+            if (child == mPeopleHubView) {
+                currentPeopleHeaderIdx = i;
+                continue;
             }
-            if (usingPeopleFiltering && mPeopleHubVisible && peopleHeaderTarget == -1) {
-                // Insert the people header even if there are no people visible, in order to show
-                // the hub. Put it directly above the next header.
-                if (alertingHeaderTarget != -1) {
-                    peopleHeaderTarget = alertingHeaderTarget;
-                    alertingHeaderTarget++;
-                    gentleHeaderTarget++;
-                } else if (gentleHeaderTarget != -1) {
-                    peopleHeaderTarget = gentleHeaderTarget;
-                    gentleHeaderTarget++;
-                } else {
-                    // Put it at the end of the list.
-                    peopleHeaderTarget = viewCount;
-                }
+            if (child == mAlertingHeader) {
+                currentAlertingHeaderIdx = i;
+                continue;
+            }
+            if (child == mGentleHeader) {
+                currentGentleHeaderIdx = i;
+                continue;
+            }
+
+            if (!(child instanceof ExpandableNotificationRow)) {
+                continue;
+            }
+            lastNotifIndex = i;
+            ExpandableNotificationRow row = (ExpandableNotificationRow) child;
+            // Once we enter a new section, calculate the target position for the header.
+            switch (row.getEntry().getBucket()) {
+                case BUCKET_HEADS_UP:
+                    break;
+                case BUCKET_PEOPLE:
+                    peopleNotifsPresent = true;
+                    if (showHeaders && peopleHeaderTarget == -1) {
+                        peopleHeaderTarget = i;
+                        // Offset the target if there are other headers before this that will be
+                        // moved.
+                        if (currentPeopleHeaderIdx != -1) {
+                            peopleHeaderTarget--;
+                        }
+                        if (currentAlertingHeaderIdx != -1) {
+                            peopleHeaderTarget--;
+                        }
+                        if (currentGentleHeaderIdx != -1) {
+                            peopleHeaderTarget--;
+                        }
+                    }
+                    break;
+                case BUCKET_ALERTING:
+                    if (showHeaders && usingPeopleFiltering && alertingHeaderTarget == -1) {
+                        alertingHeaderTarget = i;
+                        // Offset the target if there are other headers before this that will be
+                        // moved.
+                        if (currentAlertingHeaderIdx != -1) {
+                            alertingHeaderTarget--;
+                        }
+                        if (currentGentleHeaderIdx != -1) {
+                            alertingHeaderTarget--;
+                        }
+                    }
+                    break;
+                case BUCKET_SILENT:
+                    if (showHeaders && gentleHeaderTarget == -1) {
+                        gentleHeaderTarget = i;
+                        // Offset the target if there are other headers before this that will be
+                        // moved.
+                        if (currentGentleHeaderIdx != -1) {
+                            gentleHeaderTarget--;
+                        }
+                    }
+                    break;
+                default:
+                    throw new IllegalStateException("Cannot find section bucket for view");
+            }
+        }
+        if (showHeaders && usingPeopleFiltering && mPeopleHubVisible && peopleHeaderTarget == -1) {
+            // Insert the people header even if there are no people visible, in order to show
+            // the hub. Put it directly above the next header.
+            if (alertingHeaderTarget != -1) {
+                peopleHeaderTarget = alertingHeaderTarget;
+            } else if (gentleHeaderTarget != -1) {
+                peopleHeaderTarget = gentleHeaderTarget;
+            } else {
+                // Put it at the end of the list.
+                peopleHeaderTarget = lastNotifIndex;
             }
         }
 
-        // Allow swiping the people header if the section is empty
-        mPeopleHubView.setCanSwipe(mPeopleHubVisible && !peopleNotifsPresent);
+        // Add headers in reverse order to preserve indices
+        adjustHeaderVisibilityAndPosition(
+                gentleHeaderTarget, mGentleHeader, currentGentleHeaderIdx);
+        adjustHeaderVisibilityAndPosition(
+                alertingHeaderTarget, mAlertingHeader, currentAlertingHeaderIdx);
+        adjustHeaderVisibilityAndPosition(
+                peopleHeaderTarget, mPeopleHubView, currentPeopleHeaderIdx);
 
-        mPeopleHeaderVisible = adjustHeaderVisibilityAndPosition(
-                peopleHeaderTarget, mPeopleHubView, mPeopleHeaderVisible);
-        mAlertingHeaderVisible = adjustHeaderVisibilityAndPosition(
-                alertingHeaderTarget, mAlertingHeader, mAlertingHeaderVisible);
-        mGentleHeaderVisible = adjustHeaderVisibilityAndPosition(
-                gentleHeaderTarget, mGentleHeader, mGentleHeaderVisible);
+        // Update headers to reflect state of section contents
+        mGentleHeader.setAreThereDismissableGentleNotifs(
+                mParent.hasActiveClearableNotifications(ROWS_GENTLE));
+        mPeopleHubView.setCanSwipe(showHeaders && mPeopleHubVisible && !peopleNotifsPresent);
+        if (peopleHeaderTarget != currentPeopleHeaderIdx) {
+            mPeopleHubView.resetTranslation();
+        }
     }
 
-    private boolean adjustHeaderVisibilityAndPosition(
-            int targetIndex, StackScrollerDecorView header, boolean isCurrentlyVisible) {
-        if (targetIndex == -1) {
-            if (isCurrentlyVisible) {
+    private void adjustHeaderVisibilityAndPosition(
+            int targetPosition, StackScrollerDecorView header, int currentPosition) {
+        if (targetPosition == -1) {
+            if (currentPosition != -1) {
                 mParent.removeView(header);
             }
-            return false;
         } else {
-            if (header instanceof SwipeableView) {
-                ((SwipeableView) header).resetTranslation();
-            }
-            if (!isCurrentlyVisible) {
+            if (currentPosition == -1) {
                 // If the header is animating away, it will still have a parent, so detach it first
                 // TODO: We should really cancel the active animations here. This will happen
                 // automatically when the view's intro animation starts, but it's a fragile link.
@@ -321,11 +367,10 @@
                     header.setTransientContainer(null);
                 }
                 header.setContentVisible(true);
-                mParent.addView(header, targetIndex);
-            } else if (mParent.indexOfChild(header) != targetIndex) {
-                mParent.changeViewPosition(header, targetIndex);
+                mParent.addView(header, targetPosition);
+            } else {
+                mParent.changeViewPosition(header, targetPosition);
             }
-            return true;
         }
     }
 
@@ -400,10 +445,20 @@
 
 
     @VisibleForTesting
-    SectionHeaderView getGentleHeaderView() {
+    ExpandableView getGentleHeaderView() {
         return mGentleHeader;
     }
 
+    @VisibleForTesting
+    ExpandableView getAlertingHeaderView() {
+        return mAlertingHeader;
+    }
+
+    @VisibleForTesting
+    ExpandableView getPeopleHeaderView() {
+        return mPeopleHubView;
+    }
+
     private final ConfigurationListener mConfigurationListener = new ConfigurationListener() {
         @Override
         public void onLocaleListChanged() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt
index 0708f76..1b4f98f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt
@@ -76,6 +76,19 @@
             }
         }
 
+    override fun needsClippingToShelf(): Boolean {
+        return true
+    }
+
+    override fun applyContentTransformation(contentAlpha: Float, translationY: Float) {
+        super.applyContentTransformation(contentAlpha, translationY)
+        for (i in 0 until contents.childCount) {
+            val view = contents.getChildAt(i)
+            view.alpha = contentAlpha
+            view.translationY = translationY
+        }
+    }
+
     private inner class PersonDataListenerImpl(val avatarView: ImageView) :
             DataListener<PersonViewModel?> {
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java
index ad3ff69..deb5532 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java
@@ -108,12 +108,26 @@
         mLabelView.setOnClickListener(listener);
     }
 
+    @Override
+    protected void applyContentTransformation(float contentAlpha, float translationY) {
+        super.applyContentTransformation(contentAlpha, translationY);
+        mLabelView.setAlpha(contentAlpha);
+        mLabelView.setTranslationY(translationY);
+        mClearAllButton.setAlpha(contentAlpha);
+        mClearAllButton.setTranslationY(translationY);
+    }
+
     /** Fired when the user clicks on the "X" button on the far right of the header. */
     void setOnClearAllClickListener(View.OnClickListener listener) {
         mOnClearClickListener = listener;
         mClearAllButton.setOnClickListener(listener);
     }
 
+    @Override
+    public boolean needsClippingToShelf() {
+        return true;
+    }
+
     void setHeaderText(@StringRes int resId) {
         mLabelView.setText(resId);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoHideController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoHideController.java
index 971f045..c05119d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoHideController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoHideController.java
@@ -19,56 +19,64 @@
 import android.content.Context;
 import android.os.Handler;
 import android.os.RemoteException;
+import android.util.ArraySet;
 import android.util.Log;
 import android.view.IWindowManager;
 import android.view.MotionEvent;
 
 import com.android.systemui.dagger.qualifiers.Main;
-import com.android.systemui.statusbar.NotificationRemoteInputManager;
-import com.android.systemui.statusbar.phone.dagger.StatusBarPhoneModule;
+import com.android.systemui.statusbar.AutoHideUiElement;
 
-/** A controller to control all auto-hide things. */
+import java.util.Set;
+
+import javax.inject.Inject;
+
+/** A controller to control all auto-hide things. Also see {@link AutoHideUiElement}. */
 public class AutoHideController {
     private static final String TAG = "AutoHideController";
+    private static final long AUTO_HIDE_TIMEOUT_MS = 2250;
 
     private final IWindowManager mWindowManagerService;
-
     private final Handler mHandler;
-    private final NotificationRemoteInputManager mRemoteInputManager;
-    private StatusBar mStatusBar;
-    private NavigationBarFragment mNavigationBar;
+    private final Set<AutoHideUiElement> mElements;
 
     private int mDisplayId;
 
     private boolean mAutoHideSuspended;
 
-    private static final long AUTO_HIDE_TIMEOUT_MS = 2250;
-
     private final Runnable mAutoHide = () -> {
         if (isAnyTransientBarShown()) {
             hideTransientBars();
         }
     };
 
-    /**
-     * Injected constructor. See {@link StatusBarPhoneModule}.
-     */
+    @Inject
     public AutoHideController(Context context, @Main Handler handler,
-            NotificationRemoteInputManager notificationRemoteInputManager,
             IWindowManager iWindowManager) {
         mHandler = handler;
-        mRemoteInputManager = notificationRemoteInputManager;
         mWindowManagerService = iWindowManager;
+        mElements = new ArraySet<>();
 
         mDisplayId = context.getDisplayId();
     }
 
-    void setStatusBar(StatusBar statusBar) {
-        mStatusBar = statusBar;
+    /**
+     * Adds an {@link AutoHideUiElement} whose behavior should be controlled by the
+     * {@link AutoHideController}.
+     */
+    public void addAutoHideUiElement(AutoHideUiElement element) {
+        if (element != null) {
+            mElements.add(element);
+        }
     }
 
-    void setNavigationBar(NavigationBarFragment navigationBar) {
-        mNavigationBar = navigationBar;
+    /**
+     * Remove an {@link AutoHideUiElement} that was previously added.
+     */
+    public void removeAutoHideUiElement(AutoHideUiElement element) {
+        if (element != null) {
+            mElements.remove(element);
+        }
     }
 
     private void hideTransientBars() {
@@ -77,11 +85,9 @@
         } catch (RemoteException ex) {
             Log.w(TAG, "Cannot get WindowManager");
         }
-        if (mStatusBar != null) {
-            mStatusBar.clearTransient();
-        }
-        if (mNavigationBar != null) {
-            mNavigationBar.clearTransient();
+
+        for (AutoHideUiElement element : mElements) {
+            element.hide();
         }
     }
 
@@ -104,7 +110,8 @@
         mAutoHideSuspended = isAnyTransientBarShown();
     }
 
-    void touchAutoHide() {
+    /** Schedules or cancels auto hide behavior based on current system bar state. */
+    public void touchAutoHide() {
         // update transient bar auto hide
         if (isAnyTransientBarShown()) {
             scheduleAutoHide();
@@ -114,13 +121,15 @@
     }
 
     private Runnable getCheckBarModesRunnable() {
-        if (mStatusBar != null) {
-            return () -> mStatusBar.checkBarModes();
-        } else if (mNavigationBar != null) {
-            return () -> mNavigationBar.checkNavBarModes();
-        } else {
+        if (mElements.isEmpty()) {
             return null;
         }
+
+        return () -> {
+            for (AutoHideUiElement element : mElements) {
+                element.synchronizeState();
+            }
+        };
     }
 
     private void cancelAutoHide() {
@@ -134,14 +143,15 @@
     }
 
     void checkUserAutoHide(MotionEvent event) {
-        boolean shouldAutoHide = isAnyTransientBarShown()
+        boolean shouldHide = isAnyTransientBarShown()
                 && event.getAction() == MotionEvent.ACTION_OUTSIDE // touch outside the source bar.
                 && event.getX() == 0 && event.getY() == 0;
-        if (mStatusBar != null) {
-            // a touch outside both bars
-            shouldAutoHide &= !mRemoteInputManager.getController().isRemoteInputActive();
+
+        for (AutoHideUiElement element : mElements) {
+            shouldHide &= element.shouldHideOnTouch();
         }
-        if (shouldAutoHide) {
+
+        if (shouldHide) {
             userAutoHide();
         }
     }
@@ -152,7 +162,11 @@
     }
 
     private boolean isAnyTransientBarShown() {
-        return (mStatusBar != null && mStatusBar.isTransientShown())
-                || mNavigationBar != null && mNavigationBar.isTransientShown();
+        for (AutoHideUiElement element : mElements) {
+            if (element.isVisible()) {
+                return true;
+            }
+        }
+        return false;
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java
index d5ded50..fb88ea5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java
@@ -394,10 +394,11 @@
     public void onFinishedGoingToSleep(int why) {
         Trace.beginSection("BiometricUnlockController#onFinishedGoingToSleep");
         if (mPendingAuthenticated != null) {
+            PendingAuthenticated pendingAuthenticated = mPendingAuthenticated;
             // Post this to make sure it's executed after the device is fully locked.
-            mHandler.post(() -> onBiometricAuthenticated(mPendingAuthenticated.userId,
-                    mPendingAuthenticated.biometricSourceType,
-                    mPendingAuthenticated.isStrongBiometric));
+            mHandler.post(() -> onBiometricAuthenticated(pendingAuthenticated.userId,
+                    pendingAuthenticated.biometricSourceType,
+                    pendingAuthenticated.isStrongBiometric));
             mPendingAuthenticated = null;
         }
         Trace.endSection();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
index 56e5cb0..abae4d8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
@@ -93,6 +93,7 @@
     private NotificationPanelViewController mNotificationPanel;
     private View mAmbientIndicationContainer;
     private StatusBar mStatusBar;
+    private boolean mSuppressed;
 
     @Inject
     public DozeServiceHost(DozeLog dozeLog, PowerManager powerManager,
@@ -449,4 +450,18 @@
     boolean getIgnoreTouchWhilePulsing() {
         return mIgnoreTouchWhilePulsing;
     }
+
+    void setDozeSuppressed(boolean suppressed) {
+        if (suppressed == mSuppressed) {
+            return;
+        }
+        mSuppressed = suppressed;
+        for (Callback callback : mCallbacks) {
+            callback.onDozeSuppressedChanged(suppressed);
+        }
+    }
+
+    public boolean isDozeSuppressed() {
+        return mSuppressed;
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java
index 5703f06..8e192c5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java
@@ -172,7 +172,7 @@
 
         @Override
         public void onEntryRemoved(@Nullable NotificationEntry entry,
-                NotificationVisibility visibility, boolean removedByUser) {
+                NotificationVisibility visibility, boolean removedByUser, int reason) {
             updateLightsOutView();
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
index 61cef68..c29ec9e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
@@ -22,7 +22,6 @@
 import android.content.Context;
 import android.content.res.ColorStateList;
 import android.content.res.Configuration;
-import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.graphics.drawable.Animatable2;
 import android.graphics.drawable.AnimatedVectorDrawable;
@@ -32,7 +31,6 @@
 import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
 import android.view.accessibility.AccessibilityNodeInfo;
 
@@ -45,16 +43,13 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.dock.DockManager;
-import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.KeyguardAffordanceView;
 import com.android.systemui.statusbar.StatusBarState;
 import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
 import com.android.systemui.statusbar.phone.ScrimController.ScrimVisibility;
 import com.android.systemui.statusbar.policy.AccessibilityController;
-import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
-import com.android.systemui.statusbar.policy.UserInfoController.OnUserInfoChangedListener;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -65,8 +60,7 @@
 /**
  * Manages the different states and animations of the unlock icon.
  */
-public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChangedListener,
-        StatusBarStateController.StateListener, ConfigurationController.ConfigurationListener,
+public class LockIcon extends KeyguardAffordanceView implements
         KeyguardStateController.Callback, NotificationWakeUpCoordinator.WakeUpListener,
         ViewTreeObserver.OnPreDrawListener, OnHeadsUpChangedListener {
 
@@ -74,8 +68,6 @@
     private static final int STATE_LOCK_OPEN = 1;
     private static final int STATE_SCANNING_FACE = 2;
     private static final int STATE_BIOMETRICS_ERROR = 3;
-    private final ConfigurationController mConfigurationController;
-    private final StatusBarStateController mStatusBarStateController;
     private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
     private final AccessibilityController mAccessibilityController;
     private final DockManager mDockManager;
@@ -103,6 +95,7 @@
     private boolean mKeyguardJustShown;
     private boolean mUpdatePending;
     private boolean mBouncerPreHideAnimation;
+    private int mStatusBarState = StatusBarState.SHADE;
 
     private final KeyguardStateController.Callback mKeyguardMonitorCallback =
             new KeyguardStateController.Callback() {
@@ -177,8 +170,6 @@
 
     @Inject
     public LockIcon(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
-            StatusBarStateController statusBarStateController,
-            ConfigurationController configurationController,
             AccessibilityController accessibilityController,
             KeyguardBypassController bypassController,
             NotificationWakeUpCoordinator wakeUpCoordinator,
@@ -189,8 +180,6 @@
         mContext = context;
         mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
         mAccessibilityController = accessibilityController;
-        mConfigurationController = configurationController;
-        mStatusBarStateController = statusBarStateController;
         mBypassController = bypassController;
         mWakeUpCoordinator = wakeUpCoordinator;
         mKeyguardStateController = keyguardStateController;
@@ -201,8 +190,6 @@
     @Override
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
-        mStatusBarStateController.addCallback(this);
-        mConfigurationController.addCallback(this);
         mKeyguardStateController.addCallback(mKeyguardMonitorCallback);
         mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback);
         mWakeUpCoordinator.addListener(this);
@@ -210,15 +197,12 @@
         if (mDockManager != null) {
             mDockManager.addListener(mDockEventListener);
         }
-        onThemeChanged();
         update();
     }
 
     @Override
     protected void onDetachedFromWindow() {
         super.onDetachedFromWindow();
-        mStatusBarStateController.removeCallback(this);
-        mConfigurationController.removeCallback(this);
         mKeyguardUpdateMonitor.removeCallback(mUpdateMonitorCallback);
         mKeyguardStateController.removeCallback(mKeyguardMonitorCallback);
         mWakeUpCoordinator.removeListener(this);
@@ -227,20 +211,6 @@
         }
     }
 
-    @Override
-    public void onThemeChanged() {
-        TypedArray typedArray = mContext.getTheme().obtainStyledAttributes(
-                null, new int[]{ R.attr.wallpaperTextColor }, 0, 0);
-        mIconColor = typedArray.getColor(0, Color.WHITE);
-        typedArray.recycle();
-        updateDarkTint();
-    }
-
-    @Override
-    public void onUserInfoChanged(String name, Drawable picture, String userAccount) {
-        update();
-    }
-
     /**
      * If we're currently presenting an authentication error message.
      */
@@ -342,7 +312,7 @@
                 || mShowingLaunchAffordance;
         if (mBypassController.getBypassEnabled() && !mBouncerShowingScrimmed) {
             if ((mHeadsUpManager.isHeadsUpGoingAway() || mHeadsUpManager.hasPinnedHeadsUp()
-                    || mStatusBarStateController.getState() == StatusBarState.KEYGUARD)
+                    || mStatusBarState == StatusBarState.KEYGUARD)
                     && !mWakeUpCoordinator.getNotificationsFullyHidden()) {
                 invisible = true;
             }
@@ -479,6 +449,11 @@
         update();
     }
 
+    void setIconColor(int iconColor) {
+        mIconColor = iconColor;
+        updateDarkTint();
+    }
+
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({ERROR, UNLOCK, LOCK, SCANNING})
     @interface LockAnimIndex {}
@@ -538,12 +513,6 @@
         }
     }
 
-    @Override
-    public void onDozeAmountChanged(float linear, float eased) {
-        mDozeAmount = eased;
-        updateDarkTint();
-    }
-
     /**
      * When keyguard is in pulsing (AOD2) state.
      * @param pulsing {@code true} when pulsing.
@@ -553,38 +522,11 @@
         update();
     }
 
-    /**
-     * Sets the dozing state of the keyguard.
-     */
-    @Override
-    public void onDozingChanged(boolean dozing) {
-        mDozing = dozing;
-        update();
-    }
-
     private void updateDarkTint() {
         int color = ColorUtils.blendARGB(mIconColor, Color.WHITE, mDozeAmount);
         setImageTintList(ColorStateList.valueOf(color));
     }
 
-    @Override
-    public void onDensityOrFontScaleChanged() {
-        ViewGroup.LayoutParams lp = getLayoutParams();
-        if (lp == null) {
-            return;
-        }
-        lp.width = getResources().getDimensionPixelSize(R.dimen.keyguard_lock_width);
-        lp.height = getResources().getDimensionPixelSize(R.dimen.keyguard_lock_height);
-        setLayoutParams(lp);
-        update(true /* force */);
-    }
-
-    @Override
-    public void onLocaleListChanged() {
-        setContentDescription(getContext().getText(R.string.accessibility_unlock_button));
-        update(true /* force */);
-    }
-
     /**
      * We need to hide the lock whenever there's a fingerprint unlock, otherwise you'll see the
      * icon on top of the black front scrim.
@@ -620,4 +562,20 @@
             update();
         }
     }
+
+    void setDozing(boolean dozing) {
+        mDozing = dozing;
+        update();
+    }
+
+    void setDozeAmount(float dozeAmount) {
+        mDozeAmount = dozeAmount;
+        updateDarkTint();
+    }
+
+    /** Set the StatusBarState. */
+    public void setStatusBarState(int statusBarState) {
+        mStatusBarState = statusBarState;
+        updateIconVisibility();
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
index 1e35b46..698a430 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
@@ -16,7 +16,21 @@
 
 package com.android.systemui.statusbar.phone;
 
-import com.android.systemui.statusbar.SuperStatusBarViewFactory;
+import android.content.res.TypedArray;
+import android.graphics.Color;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.internal.widget.LockPatternUtils;
+import com.android.keyguard.KeyguardUpdateMonitor;
+import com.android.systemui.R;
+import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.KeyguardIndicationController;
+import com.android.systemui.statusbar.policy.AccessibilityController;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
 
 import javax.inject.Inject;
 import javax.inject.Singleton;
@@ -25,11 +39,121 @@
 @Singleton
 public class LockscreenLockIconController {
 
-    private final LockIcon mLockIcon;
+    private final LockscreenGestureLogger mLockscreenGestureLogger;
+    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+    private final LockPatternUtils mLockPatternUtils;
+    private final ShadeController mShadeController;
+    private final AccessibilityController mAccessibilityController;
+    private final KeyguardIndicationController mKeyguardIndicationController;
+    private final StatusBarStateController mStatusBarStateController;
+    private final ConfigurationController mConfigurationController;
+    private LockIcon mLockIcon;
+
+    private View.OnAttachStateChangeListener mOnAttachStateChangeListener =
+            new View.OnAttachStateChangeListener() {
+        @Override
+        public void onViewAttachedToWindow(View v) {
+            mStatusBarStateController.addCallback(mSBStateListener);
+            mConfigurationController.addCallback(mConfigurationListener);
+
+            mConfigurationListener.onThemeChanged();
+        }
+
+        @Override
+        public void onViewDetachedFromWindow(View v) {
+            mStatusBarStateController.removeCallback(mSBStateListener);
+            mConfigurationController.removeCallback(mConfigurationListener);
+        }
+    };
+
+    private final StatusBarStateController.StateListener mSBStateListener =
+            new StatusBarStateController.StateListener() {
+                @Override
+                public void onDozingChanged(boolean isDozing) {
+                    mLockIcon.setDozing(isDozing);
+                }
+
+                @Override
+                public void onDozeAmountChanged(float linear, float eased) {
+                    mLockIcon.setDozeAmount(eased);
+                }
+
+                @Override
+                public void onStateChanged(int newState) {
+                    mLockIcon.setStatusBarState(newState);
+                }
+            };
+
+    private final ConfigurationListener mConfigurationListener = new ConfigurationListener() {
+        @Override
+        public void onThemeChanged() {
+            TypedArray typedArray = mLockIcon.getContext().getTheme().obtainStyledAttributes(
+                    null, new int[]{ R.attr.wallpaperTextColor }, 0, 0);
+            int iconColor = typedArray.getColor(0, Color.WHITE);
+            typedArray.recycle();
+            mLockIcon.setIconColor(iconColor);
+        }
+
+        @Override
+        public void onDensityOrFontScaleChanged() {
+            ViewGroup.LayoutParams lp = mLockIcon.getLayoutParams();
+            if (lp == null) {
+                return;
+            }
+            lp.width = mLockIcon.getResources().getDimensionPixelSize(R.dimen.keyguard_lock_width);
+            lp.height = mLockIcon.getResources().getDimensionPixelSize(
+                    R.dimen.keyguard_lock_height);
+            mLockIcon.setLayoutParams(lp);
+            mLockIcon.update(true /* force */);
+        }
+
+        @Override
+        public void onLocaleListChanged() {
+            mLockIcon.setContentDescription(
+                    mLockIcon.getResources().getText(R.string.accessibility_unlock_button));
+            mLockIcon.update(true /* force */);
+        }
+    };
 
     @Inject
-    public LockscreenLockIconController(SuperStatusBarViewFactory superStatusBarViewFactory) {
-        mLockIcon = superStatusBarViewFactory.getLockIcon();
+    public LockscreenLockIconController(LockscreenGestureLogger lockscreenGestureLogger,
+            KeyguardUpdateMonitor keyguardUpdateMonitor,
+            LockPatternUtils lockPatternUtils,
+            ShadeController shadeController,
+            AccessibilityController accessibilityController,
+            KeyguardIndicationController keyguardIndicationController,
+            StatusBarStateController statusBarStateController,
+            ConfigurationController configurationController) {
+        mLockscreenGestureLogger = lockscreenGestureLogger;
+        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
+        mLockPatternUtils = lockPatternUtils;
+        mShadeController = shadeController;
+        mAccessibilityController = accessibilityController;
+        mKeyguardIndicationController = keyguardIndicationController;
+        mStatusBarStateController = statusBarStateController;
+        mConfigurationController = configurationController;
+
+        mKeyguardIndicationController.setLockIconController(this);
+    }
+
+    /**
+     * Associate the controller with a {@link LockIcon}
+     */
+    public void attach(LockIcon lockIcon) {
+        mLockIcon = lockIcon;
+
+        mLockIcon.setOnClickListener(this::handleClick);
+        mLockIcon.setOnLongClickListener(this::handleLongClick);
+
+        if (mLockIcon.isAttachedToWindow()) {
+            mOnAttachStateChangeListener.onViewAttachedToWindow(mLockIcon);
+        }
+        mLockIcon.addOnAttachStateChangeListener(mOnAttachStateChangeListener);
+        mLockIcon.setStatusBarState(mStatusBarStateController.getState());
+    }
+
+    public LockIcon getView() {
+        return mLockIcon;
     }
 
     /**
@@ -86,4 +210,32 @@
             mLockIcon.onBouncerPreHideAnimation();
         }
     }
+
+    /**
+     * If we're currently presenting an authentication error message.
+     */
+    public void setTransientBiometricsError(boolean transientBiometricsError) {
+        if (mLockIcon != null) {
+            mLockIcon.setTransientBiometricsError(transientBiometricsError);
+        }
+    }
+
+    private boolean handleLongClick(View view) {
+        mLockscreenGestureLogger.write(MetricsProto.MetricsEvent.ACTION_LS_LOCK,
+                0 /* lengthDp - N/A */, 0 /* velocityDp - N/A */);
+        mKeyguardIndicationController.showTransientIndication(
+                R.string.keyguard_indication_trust_disabled);
+        mKeyguardUpdateMonitor.onLockIconPressed();
+        mLockPatternUtils.requireCredentialEntry(KeyguardUpdateMonitor.getCurrentUser());
+
+        return true;
+    }
+
+
+    private void handleClick(View view) {
+        if (!mAccessibilityController.isAccessibilityEnabled()) {
+            return;
+        }
+        mShadeController.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
index fd8c71b..02cf8cc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
@@ -105,8 +105,10 @@
 import com.android.systemui.shared.system.ActivityManagerWrapper;
 import com.android.systemui.shared.system.QuickStepContract;
 import com.android.systemui.stackdivider.Divider;
+import com.android.systemui.statusbar.AutoHideUiElement;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.CommandQueue.Callbacks;
+import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.StatusBarState;
 import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
 import com.android.systemui.statusbar.phone.ContextualButton.ContextButtonListener;
@@ -166,6 +168,7 @@
     private int mDisabledFlags2;
     private final Lazy<StatusBar> mStatusBarLazy;
     private final ShadeController mShadeController;
+    private final NotificationRemoteInputManager mNotificationRemoteInputManager;
     private Recents mRecents;
     private StatusBar mStatusBar;
     private final Divider mDivider;
@@ -291,6 +294,7 @@
             CommandQueue commandQueue, Divider divider,
             Optional<Recents> recentsOptional, Lazy<StatusBar> statusBarLazy,
             ShadeController shadeController,
+            NotificationRemoteInputManager notificationRemoteInputManager,
             @Main Handler mainHandler) {
         mAccessibilityManagerWrapper = accessibilityManagerWrapper;
         mDeviceProvisionedController = deviceProvisionedController;
@@ -300,6 +304,7 @@
         mSysUiFlagsContainer = sysUiFlagsContainer;
         mStatusBarLazy = statusBarLazy;
         mShadeController = shadeController;
+        mNotificationRemoteInputManager = notificationRemoteInputManager;
         mAssistantAvailable = mAssistManager.getAssistInfoForUser(UserHandle.USER_CURRENT) != null;
         mOverviewProxyService = overviewProxyService;
         mNavigationModeController = navigationModeController;
@@ -614,7 +619,7 @@
         clearTransient();
     }
 
-    void clearTransient() {
+    private void clearTransient() {
         if (mTransientShown) {
             mTransientShown = false;
             handleTransientChanged();
@@ -1048,10 +1053,30 @@
     /** Sets {@link AutoHideController} to the navigation bar. */
     public void setAutoHideController(AutoHideController autoHideController) {
         mAutoHideController = autoHideController;
-        mAutoHideController.setNavigationBar(this);
+        mAutoHideController.addAutoHideUiElement(new AutoHideUiElement() {
+            @Override
+            public void synchronizeState() {
+                checkNavBarModes();
+            }
+
+            @Override
+            public boolean shouldHideOnTouch() {
+                return !mNotificationRemoteInputManager.getController().isRemoteInputActive();
+            }
+
+            @Override
+            public boolean isVisible() {
+                return isTransientShown();
+            }
+
+            @Override
+            public void hide() {
+                clearTransient();
+            }
+        });
     }
 
-    boolean isTransientShown() {
+    private boolean isTransientShown() {
         return mTransientShown;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java
index 67e7f23..43ac4cf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java
@@ -16,26 +16,14 @@
 
 package com.android.systemui.statusbar.phone;
 
-import static android.app.Activity.RESULT_CANCELED;
-import static android.app.Activity.RESULT_OK;
-import static android.app.admin.DevicePolicyManager.STATE_USER_UNMANAGED;
 import static android.content.Intent.ACTION_OVERLAY_CHANGED;
 import static android.content.Intent.ACTION_PREFERRED_ACTIVITY_CHANGED;
-import static android.content.pm.PackageManager.FEATURE_DEVICE_ADMIN;
 import static android.os.UserHandle.USER_CURRENT;
-import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY;
 
-import static com.android.systemui.shared.system.QuickStepContract.ACTION_ENABLE_GESTURE_NAV;
-import static com.android.systemui.shared.system.QuickStepContract.ACTION_ENABLE_GESTURE_NAV_RESULT;
-import static com.android.systemui.shared.system.QuickStepContract.EXTRA_RESULT_INTENT;
-
-import android.app.PendingIntent;
-import android.app.admin.DevicePolicyManager;
 import android.content.BroadcastReceiver;
-import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -46,7 +34,6 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.UserHandle;
-import android.os.UserManager;
 import android.provider.Settings;
 import android.provider.Settings.Secure;
 import android.util.Log;
@@ -87,7 +74,6 @@
 
     private SparseBooleanArray mRestoreGesturalNavBarMode = new SparseBooleanArray();
 
-    private int mMode = NAV_BAR_MODE_3BUTTON;
     private ArrayList<ModeChangedListener> mListeners = new ArrayList<>();
 
     private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@@ -142,8 +128,6 @@
                 }
             };
 
-    private BroadcastReceiver mEnableGestureNavReceiver;
-
     @Inject
     public NavigationModeController(Context context,
             DeviceProvisionedController deviceProvisionedController,
@@ -171,18 +155,7 @@
         deferGesturalNavOverlayIfNecessary();
     }
 
-    private void removeEnableGestureNavListener() {
-        if (mEnableGestureNavReceiver != null) {
-            if (DEBUG) {
-                Log.d(TAG, "mEnableGestureNavReceiver unregistered");
-            }
-            mContext.unregisterReceiver(mEnableGestureNavReceiver);
-            mEnableGestureNavReceiver = null;
-        }
-    }
-
     private boolean setGestureModeOverlayForMainLauncher() {
-        removeEnableGestureNavListener();
         if (getCurrentInteractionMode(mCurrentUserContext) == NAV_BAR_MODE_GESTURAL) {
             // Already in gesture mode
             return true;
@@ -196,59 +169,15 @@
         return true;
     }
 
-    private boolean enableGestureNav(Intent intent) {
-        if (!(intent.getParcelableExtra(EXTRA_RESULT_INTENT) instanceof PendingIntent)) {
-            Log.e(TAG, "No callback pending intent was attached");
-            return false;
-        }
-
-        PendingIntent callback = intent.getParcelableExtra(EXTRA_RESULT_INTENT);
-        Intent callbackIntent = callback.getIntent();
-        if (callbackIntent == null
-                || !ACTION_ENABLE_GESTURE_NAV_RESULT.equals(callbackIntent.getAction())) {
-            Log.e(TAG, "Invalid callback intent");
-            return false;
-        }
-        String callerPackage = callback.getCreatorPackage();
-        UserHandle callerUser = callback.getCreatorUserHandle();
-
-        DevicePolicyManager dpm = mCurrentUserContext.getSystemService(DevicePolicyManager.class);
-        ComponentName ownerComponent = dpm.getDeviceOwnerComponentOnCallingUser();
-
-        if (ownerComponent != null) {
-            // Verify that the caller is the owner component
-            if (!ownerComponent.getPackageName().equals(callerPackage)
-                    || !mCurrentUserContext.getUser().equals(callerUser)) {
-                Log.e(TAG, "Callback must be from the device owner");
-                return false;
-            }
-        } else {
-            UserHandle callerParent = mCurrentUserContext.getSystemService(UserManager.class)
-                    .getProfileParent(callerUser);
-            if (callerParent == null || !callerParent.equals(mCurrentUserContext.getUser())) {
-                Log.e(TAG, "Callback must be from a managed user");
-                return false;
-            }
-            ComponentName profileOwner = dpm.getProfileOwnerAsUser(callerUser);
-            if (profileOwner == null || !profileOwner.getPackageName().equals(callerPackage)) {
-                Log.e(TAG, "Callback must be from the profile owner");
-                return false;
-            }
-        }
-
-        return setGestureModeOverlayForMainLauncher();
-    }
-
     public void updateCurrentInteractionMode(boolean notify) {
         mCurrentUserContext = getCurrentUserContext();
         int mode = getCurrentInteractionMode(mCurrentUserContext);
-        mMode = mode;
         mUiBgExecutor.execute(() -> {
             Settings.Secure.putString(mCurrentUserContext.getContentResolver(),
                     Secure.NAVIGATION_MODE, String.valueOf(mode));
         });
         if (DEBUG) {
-            Log.e(TAG, "updateCurrentInteractionMode: mode=" + mMode);
+            Log.e(TAG, "updateCurrentInteractionMode: mode=" + mode);
             dumpAssetPaths(mCurrentUserContext);
         }
 
@@ -272,7 +201,7 @@
         int mode = context.getResources().getInteger(
                 com.android.internal.R.integer.config_navBarInteractionMode);
         if (DEBUG) {
-            Log.d(TAG, "getCurrentInteractionMode: mode=" + mMode
+            Log.d(TAG, "getCurrentInteractionMode: mode=" + mode
                     + " contextUser=" + context.getUserId());
         }
         return mode;
@@ -297,10 +226,6 @@
         }
     }
 
-    private boolean supportsDeviceAdmin() {
-        return mContext.getPackageManager().hasSystemFeature(FEATURE_DEVICE_ADMIN);
-    }
-
     private void deferGesturalNavOverlayIfNecessary() {
         final int userId = mDeviceProvisionedController.getCurrentUser();
         mRestoreGesturalNavBarMode.put(userId, false);
@@ -311,7 +236,6 @@
                 Log.d(TAG, "deferGesturalNavOverlayIfNecessary: device is provisioned and user is "
                         + "setup");
             }
-            removeEnableGestureNavListener();
             return;
         }
 
@@ -327,7 +251,6 @@
                 Log.d(TAG, "deferGesturalNavOverlayIfNecessary: no default gestural overlay, "
                         + "default=" + defaultOverlays);
             }
-            removeEnableGestureNavListener();
             return;
         }
 
@@ -336,23 +259,6 @@
         setModeOverlay(NAV_BAR_MODE_3BUTTON_OVERLAY, USER_CURRENT);
         mRestoreGesturalNavBarMode.put(userId, true);
 
-        if (supportsDeviceAdmin() && mEnableGestureNavReceiver == null) {
-            mEnableGestureNavReceiver = new BroadcastReceiver() {
-                @Override
-                public void onReceive(Context context, Intent intent) {
-                    if (DEBUG) {
-                        Log.d(TAG, "ACTION_ENABLE_GESTURE_NAV");
-                    }
-                    setResultCode(enableGestureNav(intent) ? RESULT_OK : RESULT_CANCELED);
-                }
-            };
-            // Register for all users so that we can get managed users as well
-            mContext.registerReceiverAsUser(mEnableGestureNavReceiver, UserHandle.ALL,
-                    new IntentFilter(ACTION_ENABLE_GESTURE_NAV), null, null);
-            if (DEBUG) {
-                Log.d(TAG, "mEnableGestureNavReceiver registered");
-            }
-        }
         if (DEBUG) {
             Log.d(TAG, "deferGesturalNavOverlayIfNecessary: setting to 3 button mode");
         }
@@ -366,15 +272,7 @@
         final int userId = mDeviceProvisionedController.getCurrentUser();
         if (mRestoreGesturalNavBarMode.get(userId)) {
             // Restore the gestural state if necessary
-            if (!supportsDeviceAdmin()
-                    || mCurrentUserContext.getSystemService(DevicePolicyManager.class)
-                    .getUserProvisioningState() == STATE_USER_UNMANAGED) {
-                setGestureModeOverlayForMainLauncher();
-            } else {
-                if (DEBUG) {
-                    Log.d(TAG, "Not restoring to gesture nav for managed user");
-                }
-            }
+            setGestureModeOverlayForMainLauncher();
             mRestoreGesturalNavBarMode.put(userId, false);
         }
     }
@@ -396,7 +294,7 @@
     @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         pw.println("NavigationModeController:");
-        pw.println("  mode=" + mMode);
+        pw.println("  mode=" + getCurrentInteractionMode(mCurrentUserContext));
         String defaultOverlays = "";
         try {
             defaultOverlays = String.join(", ", mOverlayManager.getDefaultOverlayPackages());
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
index d709e02..8c31a37 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
@@ -196,7 +196,8 @@
         public void onEntryRemoved(
                 @Nullable NotificationEntry entry,
                 NotificationVisibility visibility,
-                boolean removedByUser) {
+                boolean removedByUser,
+                int reason) {
             // Removes any alerts pending on this entry. Note that this will not stop any inflation
             // tasks started by a transfer, so this should only be used as clean-up for when
             // inflation is stopped and the pending alert no longer needs to happen.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index b620d17..3e6e027 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -163,6 +163,7 @@
 import com.android.systemui.shared.plugins.PluginManager;
 import com.android.systemui.shared.system.WindowManagerWrapper;
 import com.android.systemui.stackdivider.Divider;
+import com.android.systemui.statusbar.AutoHideUiElement;
 import com.android.systemui.statusbar.BackDropView;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.CrossFadeHelper;
@@ -677,6 +678,7 @@
             ExtensionController extensionController,
             UserInfoControllerImpl userInfoControllerImpl,
             PhoneStatusBarPolicy phoneStatusBarPolicy,
+            KeyguardIndicationController keyguardIndicationController,
             DismissCallbackRegistry dismissCallbackRegistry,
             StatusBarTouchableRegionManager statusBarTouchableRegionManager) {
         super(context);
@@ -690,6 +692,7 @@
         mKeyguardBypassController = keyguardBypassController;
         mKeyguardStateController = keyguardStateController;
         mHeadsUpManager = headsUpManagerPhone;
+        mKeyguardIndicationController = keyguardIndicationController;
         mStatusBarTouchableRegionManager = statusBarTouchableRegionManager;
         mDynamicPrivacyController = dynamicPrivacyController;
         mBypassHeadsUpNotifier = bypassHeadsUpNotifier;
@@ -1048,10 +1051,8 @@
             mLockscreenWallpaper = mLockscreenWallpaperLazy.get();
         }
 
-        mKeyguardIndicationController =
-                SystemUIFactory.getInstance().createKeyguardIndicationController(mContext,
-                        mNotificationShadeWindowView.findViewById(R.id.keyguard_indication_area),
-                        mNotificationShadeWindowView.findViewById(R.id.lock_icon));
+        mKeyguardIndicationController.setIndicationArea(
+                mNotificationShadeWindowView.findViewById(R.id.keyguard_indication_area));
         mNotificationPanelViewController.setKeyguardIndicationController(
                 mKeyguardIndicationController);
 
@@ -1074,7 +1075,27 @@
             }
         });
 
-        mAutoHideController.setStatusBar(this);
+        mAutoHideController.addAutoHideUiElement(new AutoHideUiElement() {
+            @Override
+            public void synchronizeState() {
+                checkBarModes();
+            }
+
+            @Override
+            public boolean shouldHideOnTouch() {
+                return !mRemoteInputManager.getController().isRemoteInputActive();
+            }
+
+            @Override
+            public boolean isVisible() {
+                return isTransientShown();
+            }
+
+            @Override
+            public void hide() {
+                clearTransient();
+            }
+        });
 
         ScrimView scrimBehind = mNotificationShadeWindowView.findViewById(R.id.scrim_behind);
         ScrimView scrimInFront = mNotificationShadeWindowView.findViewById(R.id.scrim_in_front);
@@ -2228,7 +2249,7 @@
         clearTransient();
     }
 
-    void clearTransient() {
+    private void clearTransient() {
         if (mTransientShown) {
             mTransientShown = false;
             handleTransientChanged();
@@ -4262,8 +4283,12 @@
         return mGutsManager;
     }
 
-    boolean isTransientShown() {
+    private boolean isTransientShown() {
         return mTransientShown;
     }
 
+    @Override
+    public void suppressAmbientDisplay(boolean suppressed) {
+        mDozeServiceHost.setDozeSuppressed(suppressed);
+    }
 }
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 693cdd2..30d6b507 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
@@ -199,7 +199,8 @@
                 public void onEntryRemoved(
                         @Nullable NotificationEntry entry,
                         NotificationVisibility visibility,
-                        boolean removedByUser) {
+                        boolean removedByUser,
+                        int reason) {
                     StatusBarNotificationPresenter.this.onNotificationRemoved(
                             entry.getKey(), entry.getSbn());
                     if (removedByUser) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java
index 06105f5..1e98c75 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java
@@ -103,19 +103,17 @@
     }
 
     public static void setWindowOnTop(Dialog dialog) {
+        final Window window = dialog.getWindow();
+        window.setType(LayoutParams.TYPE_STATUS_BAR_SUB_PANEL);
         if (Dependency.get(KeyguardStateController.class).isShowing()) {
-            final Window window = dialog.getWindow();
-            window.setType(LayoutParams.TYPE_STATUS_BAR_PANEL);
             window.getAttributes().setFitInsetsTypes(
                     window.getAttributes().getFitInsetsTypes() & ~Type.statusBars());
-        } else {
-            dialog.getWindow().setType(LayoutParams.TYPE_STATUS_BAR_SUB_PANEL);
         }
     }
 
     public static AlertDialog applyFlags(AlertDialog dialog) {
         final Window window = dialog.getWindow();
-        window.setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL);
+        window.setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL);
         window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
                 | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
         window.getAttributes().setFitInsetsTypes(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneDependenciesModule.java
index fcf698c..69c6814 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneDependenciesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneDependenciesModule.java
@@ -16,14 +16,7 @@
 
 package com.android.systemui.statusbar.phone.dagger;
 
-import android.content.Context;
-import android.os.Handler;
-import android.view.IWindowManager;
-
-import com.android.systemui.dagger.qualifiers.Main;
-import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.notification.row.RowContentBindStage;
-import com.android.systemui.statusbar.phone.AutoHideController;
 import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
 import com.android.systemui.statusbar.phone.StatusBar;
 
@@ -39,16 +32,6 @@
  */
 @Module
 public interface StatusBarPhoneDependenciesModule {
-    /** */
-    @Singleton
-    @Provides
-    static AutoHideController newAutoHideController(Context context,
-            @Main Handler handler,
-            NotificationRemoteInputManager notificationRemoteInputManager,
-            IWindowManager iWindowManager) {
-        return new AutoHideController(context, handler, notificationRemoteInputManager,
-                iWindowManager);
-    }
 
     /** */
     @Singleton
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
index 0a4fdc9..eec8d50 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
@@ -46,6 +46,7 @@
 import com.android.systemui.shared.plugins.PluginManager;
 import com.android.systemui.stackdivider.Divider;
 import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.KeyguardIndicationController;
 import com.android.systemui.statusbar.NavigationBarController;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
 import com.android.systemui.statusbar.NotificationMediaManager;
@@ -195,6 +196,7 @@
             ExtensionController extensionController,
             UserInfoControllerImpl userInfoControllerImpl,
             PhoneStatusBarPolicy phoneStatusBarPolicy,
+            KeyguardIndicationController keyguardIndicationController,
             DismissCallbackRegistry dismissCallbackRegistry,
             StatusBarTouchableRegionManager statusBarTouchableRegionManager) {
         return new StatusBar(
@@ -272,6 +274,7 @@
                 extensionController,
                 userInfoControllerImpl,
                 phoneStatusBarPolicy,
+                keyguardIndicationController,
                 dismissCallbackRegistry,
                 statusBarTouchableRegionManager);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
index 9003de1..d2d76c7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.policy;
 
 import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
+import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
 import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN;
 import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT;
 import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_NONE;
@@ -157,6 +158,7 @@
     ServiceState mLastServiceState;
     private boolean mUserSetup;
     private boolean mSimDetected;
+    private boolean mForceCellularValidated;
 
     private ConfigurationController.ConfigurationListener mConfigurationListener =
             new ConfigurationController.ConfigurationListener() {
@@ -284,12 +286,41 @@
         mPhoneStateListener = new PhoneStateListener(mReceiverHandler::post) {
             @Override
             public void onActiveDataSubscriptionIdChanged(int subId) {
+                // For data switching from A to B, we assume B is validated for up to 2 seconds iff:
+                // 1) A and B are in the same subscription group e.g. CBRS data switch. And
+                // 2) A was validated before the switch.
+                // This is to provide smooth transition for UI without showing cross during data
+                // switch.
+                if (keepCellularValidationBitInSwitch(mActiveMobileDataSubscription, subId)) {
+                    if (DEBUG) Log.d(TAG, ": mForceCellularValidated to true.");
+                    mForceCellularValidated = true;
+                    mReceiverHandler.removeCallbacks(mClearForceValidated);
+                    mReceiverHandler.postDelayed(mClearForceValidated, 2000);
+                }
                 mActiveMobileDataSubscription = subId;
                 doUpdateMobileControllers();
             }
         };
     }
 
+    private final Runnable mClearForceValidated = () -> {
+        if (DEBUG) Log.d(TAG, ": mClearForceValidated");
+        mForceCellularValidated = false;
+        updateConnectivity();
+    };
+
+    boolean isInGroupDataSwitch(int subId1, int subId2) {
+        SubscriptionInfo info1 = mSubscriptionManager.getActiveSubscriptionInfo(subId1);
+        SubscriptionInfo info2 = mSubscriptionManager.getActiveSubscriptionInfo(subId2);
+        return (info1 != null && info2 != null && info1.getGroupUuid() != null
+            && info1.getGroupUuid().equals(info2.getGroupUuid()));
+    }
+
+    boolean keepCellularValidationBitInSwitch(int sourceSubId, int destSubId) {
+        return mValidatedTransports.get(TRANSPORT_CELLULAR)
+                && isInGroupDataSwitch(sourceSubId, destSubId);
+    }
+
     public DataSaverController getDataSaverController() {
         return mDataSaverController;
     }
@@ -793,6 +824,8 @@
             }
         }
 
+        if (mForceCellularValidated) mValidatedTransports.set(TRANSPORT_CELLULAR);
+
         if (CHATTY) {
             Log.d(TAG, "updateConnectivity: mConnectedTransports=" + mConnectedTransports);
             Log.d(TAG, "updateConnectivity: mValidatedTransports=" + mValidatedTransports);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputUriController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputUriController.java
index 4d912de..b503183 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputUriController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputUriController.java
@@ -73,7 +73,7 @@
     private final NotificationEntryListener mInlineUriListener = new NotificationEntryListener() {
         @Override
         public void onEntryRemoved(NotificationEntry entry, NotificationVisibility visibility,
-                boolean removedByUser) {
+                boolean removedByUser, int reason) {
             try {
                 mStatusBarManagerService.clearInlineReplyUriPermissions(entry.getKey());
             } catch (RemoteException ex) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
index 241d978..07985ab 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
@@ -74,11 +74,6 @@
         startSystemActivity(new Intent(ACTION_OPEN_TV_NOTIFICATIONS_PANEL));
     }
 
-    @Override
-    public void animateCollapsePanels(int flags, boolean force) {
-        startSystemActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME));
-    }
-
     private void startSystemActivity(Intent intent) {
         PackageManager pm = mContext.getPackageManager();
         ResolveInfo ri = pm.resolveActivity(intent, PackageManager.MATCH_SYSTEM_ONLY);
diff --git a/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java b/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java
index edab4a7..0242e83 100644
--- a/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java
+++ b/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java
@@ -21,21 +21,16 @@
 import android.app.INotificationManager;
 import android.app.ITransientNotificationCallback;
 import android.content.Context;
-import android.content.res.Configuration;
-import android.graphics.PixelFormat;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.util.Log;
-import android.view.Gravity;
-import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup.LayoutParams;
 import android.view.WindowManager;
-import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
-import android.widget.TextView;
 import android.widget.Toast;
+import android.widget.ToastPresenter;
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
@@ -64,6 +59,7 @@
     private final WindowManager mWindowManager;
     private final INotificationManager mNotificationManager;
     private final AccessibilityManager mAccessibilityManager;
+    private final ToastPresenter mPresenter;
     private ToastEntry mCurrentToast;
 
     @Inject
@@ -83,6 +79,7 @@
         mWindowManager = windowManager;
         mNotificationManager = notificationManager;
         mAccessibilityManager = accessibilityManager;
+        mPresenter = new ToastPresenter(context, accessibilityManager);
     }
 
     @Override
@@ -97,8 +94,8 @@
         if (mCurrentToast != null) {
             hideCurrentToast();
         }
-        View view = getView(text);
-        LayoutParams params = getLayoutParams(windowToken, duration);
+        View view = mPresenter.getTextToastView(text);
+        LayoutParams params = getLayoutParams(packageName, windowToken, duration);
         mCurrentToast = new ToastEntry(packageName, token, view, windowToken, callback);
         try {
             mWindowManager.addView(view, params);
@@ -106,7 +103,7 @@
             Log.w(TAG, "Error while attempting to show toast from " + packageName, e);
             return;
         }
-        trySendAccessibilityEvent(view, packageName);
+        mPresenter.trySendAccessibilityEvent(view, packageName);
         if (callback != null) {
             try {
                 callback.onToastShown();
@@ -148,56 +145,13 @@
         mCurrentToast = null;
     }
 
-    private void trySendAccessibilityEvent(View view, String packageName) {
-        if (!mAccessibilityManager.isEnabled()) {
-            return;
-        }
-        AccessibilityEvent event = AccessibilityEvent.obtain(
-                AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
-        event.setClassName(Toast.class.getName());
-        event.setPackageName(packageName);
-        view.dispatchPopulateAccessibilityEvent(event);
-        mAccessibilityManager.sendAccessibilityEvent(event);
-    }
-
-    private View getView(CharSequence text) {
-        View view = LayoutInflater.from(mContext).inflate(
-                R.layout.transient_notification, null);
-        TextView textView = view.findViewById(com.android.internal.R.id.message);
-        textView.setText(text);
-        return view;
-    }
-
-    private LayoutParams getLayoutParams(IBinder windowToken, int duration) {
+    private LayoutParams getLayoutParams(String packageName, IBinder windowToken, int duration) {
         WindowManager.LayoutParams params = new WindowManager.LayoutParams();
-        params.height = WindowManager.LayoutParams.WRAP_CONTENT;
-        params.width = WindowManager.LayoutParams.WRAP_CONTENT;
-        params.format = PixelFormat.TRANSLUCENT;
-        params.windowAnimations = com.android.internal.R.style.Animation_Toast;
-        params.type = WindowManager.LayoutParams.TYPE_TOAST;
-        params.setTitle("Toast");
-        params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
-                | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
-                | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
-        Configuration config = mContext.getResources().getConfiguration();
-        int specificGravity = mContext.getResources().getInteger(
+        mPresenter.startLayoutParams(params, packageName);
+        int gravity = mContext.getResources().getInteger(
                 com.android.internal.R.integer.config_toastDefaultGravity);
-        int gravity = Gravity.getAbsoluteGravity(specificGravity, config.getLayoutDirection());
-        params.gravity = gravity;
-        if ((gravity & Gravity.HORIZONTAL_GRAVITY_MASK) == Gravity.FILL_HORIZONTAL) {
-            params.horizontalWeight = 1.0f;
-        }
-        if ((gravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.FILL_VERTICAL) {
-            params.verticalWeight = 1.0f;
-        }
-        params.x = 0;
-        params.y = mContext.getResources().getDimensionPixelSize(R.dimen.toast_y_offset);
-        params.verticalMargin = 0;
-        params.horizontalMargin = 0;
-        params.packageName = mContext.getPackageName();
-        params.hideTimeoutMilliseconds =
-                (duration == Toast.LENGTH_LONG) ? DURATION_LONG : DURATION_SHORT;
-        params.token = windowToken;
+        int yOffset = mContext.getResources().getDimensionPixelSize(R.dimen.toast_y_offset);
+        mPresenter.adjustLayoutParams(params, windowToken, duration, gravity, 0, yOffset, 0, 0);
         return params;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java b/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java
index 775a3ab..08cd6e3 100644
--- a/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java
+++ b/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java
@@ -24,6 +24,8 @@
 
 import java.util.HashMap;
 
+import javax.inject.Inject;
+
 /** WakeLock wrapper for testability */
 public interface WakeLock {
 
@@ -121,4 +123,32 @@
             }
         };
     }
+
+    /**
+     * An injectable Builder that wraps {@link #createPartial(Context, String, long)}.
+     */
+    class Builder {
+        private final Context mContext;
+        private String mTag;
+        private long mMaxTimeout = DEFAULT_MAX_TIMEOUT;
+
+        @Inject
+        public Builder(Context context) {
+            mContext = context;
+        }
+
+        public Builder setTag(String tag) {
+            this.mTag = tag;
+            return this;
+        }
+
+        public Builder setMaxTimeout(long maxTimeout) {
+            this.mMaxTimeout = maxTimeout;
+            return this;
+        }
+
+        public WakeLock build() {
+            return WakeLock.createPartial(mContext, mTag, mMaxTimeout);
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java
index 112ae6f..7353263 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java
@@ -147,7 +147,12 @@
     public VolumeDialogControllerImpl(Context context, BroadcastDispatcher broadcastDispatcher,
             Optional<Lazy<StatusBar>> statusBarOptionalLazy) {
         mContext = context.getApplicationContext();
-        mStatusBarOptionalLazy = statusBarOptionalLazy;
+        // TODO(b/150663459): remove this TV workaround once StatusBar is "unbound" on TVs
+        if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)) {
+            mStatusBarOptionalLazy = Optional.empty();
+        } else {
+            mStatusBarOptionalLazy = statusBarOptionalLazy;
+        }
         mNotificationManager = (NotificationManager) mContext.getSystemService(
                 Context.NOTIFICATION_SERVICE);
         Events.writeEvent(Events.EVENT_COLLECTION_STARTED);
diff --git a/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java b/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java
index 1b62cbf..2f1b160 100644
--- a/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java
+++ b/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java
@@ -51,7 +51,7 @@
 
     public static final int ANIMATION_DURATION_SHOW_MS = 275;
     public static final int ANIMATION_DURATION_HIDE_MS = 340;
-    static final Interpolator INTERPOLATOR = new PathInterpolator(0.4f, 0f, 0.2f, 1f);
+    public static final Interpolator INTERPOLATOR = new PathInterpolator(0.4f, 0f, 0.2f, 1f);
     private static final int DIRECTION_NONE = 0;
     private static final int DIRECTION_SHOW = 1;
     private static final int DIRECTION_HIDE = 2;
@@ -127,20 +127,20 @@
         }
     }
 
-    private void dispatchStartPositioning(int displayId, int imeTop, int finalImeTop,
+    private void dispatchStartPositioning(int displayId, int hiddenTop, int shownTop,
             boolean show, SurfaceControl.Transaction t) {
         synchronized (mPositionProcessors) {
             for (ImePositionProcessor pp : mPositionProcessors) {
-                pp.onImeStartPositioning(displayId, imeTop, finalImeTop, show, t);
+                pp.onImeStartPositioning(displayId, hiddenTop, shownTop, show, t);
             }
         }
     }
 
-    private void dispatchEndPositioning(int displayId, int imeTop, boolean show,
+    private void dispatchEndPositioning(int displayId, boolean cancel,
             SurfaceControl.Transaction t) {
         synchronized (mPositionProcessors) {
             for (ImePositionProcessor pp : mPositionProcessors) {
-                pp.onImeEndPositioning(displayId, imeTop, show, t);
+                pp.onImeEndPositioning(displayId, cancel, t);
             }
         }
     }
@@ -173,6 +173,7 @@
         int mAnimationDirection = DIRECTION_NONE;
         ValueAnimator mAnimation = null;
         int mRotation = Surface.ROTATION_0;
+        boolean mImeShowing = false;
 
         PerDisplay(int displayId, int initialRotation) {
             mDisplayId = displayId;
@@ -239,23 +240,39 @@
             if (imeSource == null || mImeSourceControl == null) {
                 return;
             }
-            if ((mAnimationDirection == DIRECTION_SHOW && show)
-                    || (mAnimationDirection == DIRECTION_HIDE && !show)) {
-                return;
-            }
-            if (mAnimationDirection != DIRECTION_NONE) {
-                mAnimation.end();
-                mAnimationDirection = DIRECTION_NONE;
-            }
-            mAnimationDirection = show ? DIRECTION_SHOW : DIRECTION_HIDE;
             mHandler.post(() -> {
+                if ((mAnimationDirection == DIRECTION_SHOW && show)
+                        || (mAnimationDirection == DIRECTION_HIDE && !show)) {
+                    return;
+                }
+                boolean seek = false;
+                float seekValue = 0;
+                if (mAnimation != null) {
+                    if (mAnimation.isRunning()) {
+                        seekValue = (float) mAnimation.getAnimatedValue();
+                        seek = true;
+                    }
+                    mAnimation.cancel();
+                }
+                mAnimationDirection = show ? DIRECTION_SHOW : DIRECTION_HIDE;
                 final float defaultY = mImeSourceControl.getSurfacePosition().y;
                 final float x = mImeSourceControl.getSurfacePosition().x;
-                final float startY = show ? defaultY + imeSource.getFrame().height() : defaultY;
-                final float endY = show ? defaultY : defaultY + imeSource.getFrame().height();
+                final float hiddenY = defaultY + imeSource.getFrame().height();
+                final float shownY = defaultY;
+                final float startY = show ? hiddenY : shownY;
+                final float endY = show ? shownY : hiddenY;
+                if (mImeShowing && show) {
+                    // IME is already showing, so set seek to end
+                    seekValue = shownY;
+                    seek = true;
+                }
+                mImeShowing = show;
                 mAnimation = ValueAnimator.ofFloat(startY, endY);
                 mAnimation.setDuration(
                         show ? ANIMATION_DURATION_SHOW_MS : ANIMATION_DURATION_HIDE_MS);
+                if (seek) {
+                    mAnimation.setCurrentFraction((seekValue - startY) / (endY - startY));
+                }
 
                 mAnimation.addUpdateListener(animation -> {
                     SurfaceControl.Transaction t = mTransactionPool.acquire();
@@ -267,12 +284,13 @@
                 });
                 mAnimation.setInterpolator(INTERPOLATOR);
                 mAnimation.addListener(new AnimatorListenerAdapter() {
+                    private boolean mCancelled = false;
                     @Override
                     public void onAnimationStart(Animator animation) {
                         SurfaceControl.Transaction t = mTransactionPool.acquire();
                         t.setPosition(mImeSourceControl.getLeash(), x, startY);
-                        dispatchStartPositioning(mDisplayId, imeTop(imeSource, startY),
-                                imeTop(imeSource, endY), mAnimationDirection == DIRECTION_SHOW,
+                        dispatchStartPositioning(mDisplayId, imeTop(imeSource, hiddenY),
+                                imeTop(imeSource, shownY), mAnimationDirection == DIRECTION_SHOW,
                                 t);
                         if (mAnimationDirection == DIRECTION_SHOW) {
                             t.show(mImeSourceControl.getLeash());
@@ -281,12 +299,17 @@
                         mTransactionPool.release(t);
                     }
                     @Override
+                    public void onAnimationCancel(Animator animation) {
+                        mCancelled = true;
+                    }
+                    @Override
                     public void onAnimationEnd(Animator animation) {
                         SurfaceControl.Transaction t = mTransactionPool.acquire();
-                        t.setPosition(mImeSourceControl.getLeash(), x, endY);
-                        dispatchEndPositioning(mDisplayId, imeTop(imeSource, endY),
-                                mAnimationDirection == DIRECTION_SHOW, t);
-                        if (mAnimationDirection == DIRECTION_HIDE) {
+                        if (!mCancelled) {
+                            t.setPosition(mImeSourceControl.getLeash(), x, endY);
+                        }
+                        dispatchEndPositioning(mDisplayId, mCancelled, t);
+                        if (mAnimationDirection == DIRECTION_HIDE && !mCancelled) {
                             t.hide(mImeSourceControl.getLeash());
                         }
                         t.apply();
@@ -317,21 +340,30 @@
     public interface ImePositionProcessor {
         /**
          * Called when the IME position is starting to animate.
+         *
+         * @param hiddenTop The y position of the top of the IME surface when it is hidden.
+         * @param shownTop The y position of the top of the IME surface when it is shown.
+         * @param showing {@code true} when we are animating from hidden to shown, {@code false}
+         *                            when animating from shown to hidden.
          */
-        default void onImeStartPositioning(int displayId, int imeTop, int finalImeTop,
+        default void onImeStartPositioning(int displayId, int hiddenTop, int shownTop,
                 boolean showing, SurfaceControl.Transaction t) {}
 
         /**
          * Called when the ime position changed. This is expected to be a synchronous call on the
          * animation thread. Operations can be added to the transaction to be applied in sync.
+         *
+         * @param imeTop The current y position of the top of the IME surface.
          */
         default void onImePositionChanged(int displayId, int imeTop,
                 SurfaceControl.Transaction t) {}
 
         /**
          * Called when the IME position is done animating.
+         *
+         * @param cancel {@code true} if this was cancelled. This implies another start is coming.
          */
-        default void onImeEndPositioning(int displayId, int imeTop, boolean showing,
+        default void onImeEndPositioning(int displayId, boolean cancel,
                 SurfaceControl.Transaction t) {}
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
index 462b042..06552b9 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
@@ -15,27 +15,38 @@
  */
 package com.android.keyguard;
 
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.content.res.Resources;
 import android.graphics.Color;
 import android.net.Uri;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper.RunWithLooper;
+import android.util.AttributeSet;
 import android.view.LayoutInflater;
+import android.view.View;
 
 import androidx.slice.SliceProvider;
 import androidx.slice.SliceSpecs;
 import androidx.slice.builders.ListBuilder;
 
 import com.android.systemui.R;
-import com.android.systemui.SystemUIFactory;
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.keyguard.KeyguardSliceProvider;
-import com.android.systemui.util.InjectionInflationController;
+import com.android.systemui.plugins.ActivityStarter;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.tuner.TunerService;
 
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 
 import java.util.Collections;
 import java.util.HashSet;
@@ -48,15 +59,40 @@
     private KeyguardSliceView mKeyguardSliceView;
     private Uri mSliceUri;
 
+    @Mock
+    private TunerService mTunerService;
+    @Mock
+    private ConfigurationController mConfigurationController;
+    @Mock
+    private ActivityStarter mActivityStarter;
+    @Mock
+    private Resources mResources;
+
     @Before
     public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
         allowTestableLooperAsMainThread();
-        InjectionInflationController inflationController = new InjectionInflationController(
-                SystemUIFactory.getInstance().getRootComponent());
-        LayoutInflater layoutInflater = inflationController
-                .injectable(LayoutInflater.from(getContext()));
+        LayoutInflater layoutInflater = LayoutInflater.from(getContext());
+        layoutInflater.setPrivateFactory(new LayoutInflater.Factory2() {
+
+            @Override
+            public View onCreateView(View parent, String name, Context context,
+                    AttributeSet attrs) {
+                return onCreateView(name, context, attrs);
+            }
+
+            @Override
+            public View onCreateView(String name, Context context, AttributeSet attrs) {
+                if ("com.android.keyguard.KeyguardSliceView".equals(name)) {
+                    return new KeyguardSliceView(getContext(), attrs, mActivityStarter,
+                            mConfigurationController, mTunerService, mResources);
+                }
+                return null;
+            }
+        });
         mKeyguardSliceView = (KeyguardSliceView) layoutInflater
                 .inflate(R.layout.keyguard_status_area, null);
+        mKeyguardSliceView.setupUri(KeyguardSliceProvider.KEYGUARD_SLICE_URI);
         mSliceUri = Uri.parse(KeyguardSliceProvider.KEYGUARD_SLICE_URI);
         SliceProvider.setSpecs(new HashSet<>(Collections.singletonList(SliceSpecs.LIST)));
     }
@@ -111,4 +147,18 @@
         Assert.assertEquals("Should be using AOD text color", Color.WHITE,
                 mKeyguardSliceView.getTextColor());
     }
+
+    @Test
+    public void onAttachedToWindow_registersListeners() {
+        mKeyguardSliceView.onAttachedToWindow();
+        verify(mTunerService).addTunable(eq(mKeyguardSliceView), anyString());
+        verify(mConfigurationController).addCallback(eq(mKeyguardSliceView));
+    }
+
+    @Test
+    public void onDetachedFromWindow_unregistersListeners() {
+        mKeyguardSliceView.onDetachedFromWindow();
+        verify(mTunerService).removeTunable(eq(mKeyguardSliceView));
+        verify(mConfigurationController).removeCallback(eq(mKeyguardSliceView));
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 6d614af..eead120 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -67,6 +67,7 @@
 import com.android.systemui.dump.DumpManager;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 
+import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -157,6 +158,11 @@
         mKeyguardUpdateMonitor = new TestableKeyguardUpdateMonitor(context);
     }
 
+    @After
+    public void tearDown() {
+        mKeyguardUpdateMonitor.destroy();
+    }
+
     @Test
     public void testReceiversRegistered() {
         verify(mBroadcastDispatcher, atLeastOnce()).registerReceiverWithHandler(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java
index c912b67..69e933e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui;
 
+import static android.service.notification.NotificationListenerService.REASON_APP_CANCEL;
+
 import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertNull;
 import static junit.framework.TestCase.fail;
@@ -528,7 +530,8 @@
                         .setSbn(notification)
                         .build(),
                 null,
-                false);
+                false,
+                REASON_APP_CANCEL);
     }
 
     private void entryAdded(StatusBarNotification notification, int importance) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
index 3009593..742e652 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
@@ -77,6 +77,7 @@
 import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
 import com.android.systemui.statusbar.phone.DozeParameters;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
+import com.android.systemui.statusbar.phone.LockscreenLockIconController;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
 import com.android.systemui.statusbar.phone.ShadeController;
@@ -170,6 +171,8 @@
     private FeatureFlags mFeatureFlagsOldPipeline;
     @Mock
     private DumpManager mDumpManager;
+    @Mock
+    private LockscreenLockIconController mLockIconController;
 
     private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
     private BubbleData mBubbleData;
@@ -198,7 +201,8 @@
                     public NotificationRowComponent build() {
                         return mNotificationRowComponent;
                     }
-                });
+                },
+                mLockIconController);
 
         // Bubbles get added to status bar window view
         mNotificationShadeWindowController = new NotificationShadeWindowController(mContext,
@@ -685,7 +689,7 @@
         assertTrue(mBubbleController.hasBubbles());
 
         // Removes the notification
-        mEntryListener.onEntryRemoved(mRow.getEntry(), null, false);
+        mEntryListener.onEntryRemoved(mRow.getEntry(), null, false, REASON_APP_CANCEL);
         assertFalse(mBubbleController.hasBubbles());
     }
 
@@ -827,7 +831,7 @@
         mBubbleController.handleDismissalInterception(groupSummary.getEntry());
 
         // WHEN the summary is cancelled by the app
-        mEntryListener.onEntryRemoved(groupSummary.getEntry(), null, true);
+        mEntryListener.onEntryRemoved(groupSummary.getEntry(), null, false, REASON_APP_CANCEL);
 
         // THEN the summary and its children are removed from bubble data
         assertFalse(mBubbleData.hasBubbleWithKey(groupedBubble.getEntry().getKey()));
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java
index 1187cee..22ef3f3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java
@@ -72,6 +72,7 @@
 import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
 import com.android.systemui.statusbar.phone.DozeParameters;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
+import com.android.systemui.statusbar.phone.LockscreenLockIconController;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
 import com.android.systemui.statusbar.phone.ShadeController;
@@ -164,6 +165,8 @@
     private FeatureFlags mFeatureFlagsNewPipeline;
     @Mock
     private DumpManager mDumpManager;
+    @Mock
+    private LockscreenLockIconController mLockIconController;
 
     private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
     private BubbleData mBubbleData;
@@ -192,7 +195,8 @@
                     public NotificationRowComponent build() {
                         return mNotificationRowComponent;
                     }
-                });
+                },
+                mLockIconController);
 
         // Bubbles get added to status bar window view
         mNotificationShadeWindowController = new NotificationShadeWindowController(mContext,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
index 02bfc19e..eceb1dd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
@@ -39,7 +39,7 @@
 import org.mockito.Mockito.`when`
 import org.mockito.Mockito.mock
 import org.mockito.Mockito.never
-import org.mockito.Mockito.reset
+import org.mockito.Mockito.times
 import org.mockito.Mockito.verify
 import org.mockito.MockitoAnnotations
 
@@ -67,6 +67,7 @@
     @Before
     fun setUp() {
         MockitoAnnotations.initMocks(this)
+        providers.clear()
 
         controller = TestableControlsBindingControllerImpl(
                 mContext, executor, Lazy { mockControlsController })
@@ -76,7 +77,6 @@
     fun tearDown() {
         executor.advanceClockToLast()
         executor.runAllReady()
-        providers.clear()
     }
 
     @Test
@@ -93,71 +93,56 @@
         }
         controller.bindAndLoad(TEST_COMPONENT_NAME_1, callback)
 
-        assertEquals(1, providers.size)
-        val provider = providers.first()
-        verify(provider).maybeBindAndLoad(any())
+        verify(providers[0]).maybeBindAndLoad(any())
     }
 
     @Test
-    fun testBindServices() {
-        controller.bindServices(listOf(TEST_COMPONENT_NAME_1, TEST_COMPONENT_NAME_2))
+    fun testBindService() {
+        controller.bindService(TEST_COMPONENT_NAME_1)
         executor.runAllReady()
 
-        assertEquals(2, providers.size)
-        assertEquals(setOf(TEST_COMPONENT_NAME_1, TEST_COMPONENT_NAME_2),
-                providers.map { it.componentName }.toSet())
-        providers.forEach {
-            verify(it).bindService()
-        }
+        verify(providers[0]).bindService()
     }
 
     @Test
     fun testSubscribe() {
-        val controlInfo1 = ControlInfo(TEST_COMPONENT_NAME_1, "id_1", "", DeviceTypes.TYPE_UNKNOWN)
-        val controlInfo2 = ControlInfo(TEST_COMPONENT_NAME_2, "id_2", "", DeviceTypes.TYPE_UNKNOWN)
-        controller.bindServices(listOf(TEST_COMPONENT_NAME_3))
+        val controlInfo1 = ControlInfo("id_1", "", DeviceTypes.TYPE_UNKNOWN)
+        val controlInfo2 = ControlInfo("id_2", "", DeviceTypes.TYPE_UNKNOWN)
+        val structure =
+            StructureInfo(TEST_COMPONENT_NAME_1, "Home", listOf(controlInfo1, controlInfo2))
 
-        controller.subscribe(listOf(controlInfo1, controlInfo2))
+        controller.subscribe(structure)
 
         executor.runAllReady()
 
-        assertEquals(3, providers.size)
-        val provider1 = providers.first { it.componentName == TEST_COMPONENT_NAME_1 }
-        val provider2 = providers.first { it.componentName == TEST_COMPONENT_NAME_2 }
-        val provider3 = providers.first { it.componentName == TEST_COMPONENT_NAME_3 }
-
-        verify(provider1).maybeBindAndSubscribe(listOf(controlInfo1.controlId))
-        verify(provider2).maybeBindAndSubscribe(listOf(controlInfo2.controlId))
-        verify(provider3, never()).maybeBindAndSubscribe(any())
-        verify(provider3).unbindService() // Not needed services will be unbound
+        verify(providers[0]).maybeBindAndSubscribe(
+            listOf(controlInfo1.controlId, controlInfo2.controlId))
     }
 
     @Test
     fun testUnsubscribe_notRefreshing() {
-        controller.bindServices(listOf(TEST_COMPONENT_NAME_1, TEST_COMPONENT_NAME_2))
+        controller.bindService(TEST_COMPONENT_NAME_2)
         controller.unsubscribe()
 
         executor.runAllReady()
 
-        providers.forEach {
-            verify(it, never()).unsubscribe()
-        }
+        verify(providers[0], never()).unsubscribe()
     }
 
     @Test
     fun testUnsubscribe_refreshing() {
-        val controlInfo1 = ControlInfo(TEST_COMPONENT_NAME_1, "id_1", "", DeviceTypes.TYPE_UNKNOWN)
-        val controlInfo2 = ControlInfo(TEST_COMPONENT_NAME_2, "id_2", "", DeviceTypes.TYPE_UNKNOWN)
+        val controlInfo1 = ControlInfo("id_1", "", DeviceTypes.TYPE_UNKNOWN)
+        val controlInfo2 = ControlInfo("id_2", "", DeviceTypes.TYPE_UNKNOWN)
+        val structure =
+            StructureInfo(TEST_COMPONENT_NAME_1, "Home", listOf(controlInfo1, controlInfo2))
 
-        controller.subscribe(listOf(controlInfo1, controlInfo2))
+        controller.subscribe(structure)
 
         controller.unsubscribe()
 
         executor.runAllReady()
 
-        providers.forEach {
-            verify(it).unsubscribe()
-        }
+        verify(providers[0]).unsubscribe()
     }
 
     @Test
@@ -168,31 +153,37 @@
 
     @Test
     fun testChangeUsers_providersHaveCorrectUser() {
-        controller.bindServices(listOf(TEST_COMPONENT_NAME_1))
-        controller.changeUser(otherUser)
-        controller.bindServices(listOf(TEST_COMPONENT_NAME_2))
+        controller.bindService(TEST_COMPONENT_NAME_1)
+        assertEquals(user, providers[0].user)
 
-        val provider1 = providers.first { it.componentName == TEST_COMPONENT_NAME_1 }
-        assertEquals(user, provider1.user)
-        val provider2 = providers.first { it.componentName == TEST_COMPONENT_NAME_2 }
-        assertEquals(otherUser, provider2.user)
+        controller.changeUser(otherUser)
+
+        controller.bindService(TEST_COMPONENT_NAME_2)
+        assertEquals(otherUser, providers[0].user)
     }
 
     @Test
     fun testChangeUsers_providersUnbound() {
-        controller.bindServices(listOf(TEST_COMPONENT_NAME_1))
+        controller.bindService(TEST_COMPONENT_NAME_1)
         controller.changeUser(otherUser)
 
-        val provider1 = providers.first { it.componentName == TEST_COMPONENT_NAME_1 }
-        verify(provider1).unbindService()
+        verify(providers[0]).unbindService()
 
-        controller.bindServices(listOf(TEST_COMPONENT_NAME_2))
+        controller.bindService(TEST_COMPONENT_NAME_2)
         controller.changeUser(user)
 
-        reset(provider1)
-        val provider2 = providers.first { it.componentName == TEST_COMPONENT_NAME_2 }
-        verify(provider2).unbindService()
-        verify(provider1, never()).unbindService()
+        verify(providers[0]).unbindService()
+    }
+
+    @Test
+    fun testComponentRemoved_existingIsUnbound() {
+        controller.bindService(TEST_COMPONENT_NAME_1)
+
+        controller.onComponentRemoved(TEST_COMPONENT_NAME_1)
+
+        executor.runAllReady()
+
+        verify(providers[0], times(1)).unbindService()
     }
 }
 
@@ -203,7 +194,7 @@
 ) : ControlsBindingControllerImpl(context, executor, lazyController) {
 
     companion object {
-        val providers = mutableSetOf<ControlsProviderLifecycleManager>()
+        val providers = mutableListOf<ControlsProviderLifecycleManager>()
     }
 
     // Replaces the real provider with a mock and puts the mock in a visible set.
@@ -216,7 +207,10 @@
         `when`(provider.componentName).thenReturn(realProvider.componentName)
         `when`(provider.token).thenReturn(token)
         `when`(provider.user).thenReturn(realProvider.user)
+
+        providers.clear()
         providers.add(provider)
+
         return provider
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
index 488e418..45ea3c9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
@@ -22,6 +22,7 @@
 import android.content.Context
 import android.content.ContextWrapper
 import android.content.Intent
+import android.content.pm.ServiceInfo
 import android.os.UserHandle
 import android.provider.Settings
 import android.service.controls.Control
@@ -32,6 +33,7 @@
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.broadcast.BroadcastDispatcher
 import com.android.systemui.controls.ControlStatus
+import com.android.systemui.controls.ControlsServiceInfo
 import com.android.systemui.controls.management.ControlsListingController
 import com.android.systemui.controls.ui.ControlsUiController
 import com.android.systemui.dump.DumpManager
@@ -50,6 +52,7 @@
 import org.mockito.Mock
 import org.mockito.Mockito
 import org.mockito.Mockito.`when`
+import org.mockito.Mockito.inOrder
 import org.mockito.Mockito.mock
 import org.mockito.Mockito.never
 import org.mockito.Mockito.reset
@@ -76,12 +79,15 @@
     private lateinit var listingController: ControlsListingController
 
     @Captor
-    private lateinit var controlInfoListCaptor: ArgumentCaptor<List<ControlInfo>>
+    private lateinit var structureInfoCaptor: ArgumentCaptor<StructureInfo>
     @Captor
     private lateinit var controlLoadCallbackCaptor:
             ArgumentCaptor<ControlsBindingController.LoadCallback>
     @Captor
     private lateinit var broadcastReceiverCaptor: ArgumentCaptor<BroadcastReceiver>
+    @Captor
+    private lateinit var listingCallbackCaptor:
+            ArgumentCaptor<ControlsListingController.ControlsListingCallback>
 
     private lateinit var delayableExecutor: FakeExecutor
     private lateinit var controller: ControlsControllerImpl
@@ -95,15 +101,21 @@
         private const val TEST_CONTROL_ID = "control1"
         private const val TEST_CONTROL_TITLE = "Test"
         private const val TEST_DEVICE_TYPE = DeviceTypes.TYPE_AC_HEATER
-        private val TEST_CONTROL_INFO = ControlInfo(
-                TEST_COMPONENT, TEST_CONTROL_ID, TEST_CONTROL_TITLE, TEST_DEVICE_TYPE)
+        private const val TEST_STRUCTURE = ""
+        private val TEST_CONTROL_INFO = ControlInfo(TEST_CONTROL_ID,
+                TEST_CONTROL_TITLE, TEST_DEVICE_TYPE)
+        private val TEST_STRUCTURE_INFO = StructureInfo(TEST_COMPONENT,
+                TEST_STRUCTURE, listOf(TEST_CONTROL_INFO))
 
         private val TEST_COMPONENT_2 = ComponentName("test.pkg", "test.class.2")
         private const val TEST_CONTROL_ID_2 = "control2"
         private const val TEST_CONTROL_TITLE_2 = "Test 2"
         private const val TEST_DEVICE_TYPE_2 = DeviceTypes.TYPE_CAMERA
-        private val TEST_CONTROL_INFO_2 = ControlInfo(
-                TEST_COMPONENT_2, TEST_CONTROL_ID_2, TEST_CONTROL_TITLE_2, TEST_DEVICE_TYPE_2)
+        private const val TEST_STRUCTURE_2 = "My House"
+        private val TEST_CONTROL_INFO_2 = ControlInfo(TEST_CONTROL_ID_2,
+                TEST_CONTROL_TITLE_2, TEST_DEVICE_TYPE_2)
+        private val TEST_STRUCTURE_INFO_2 = StructureInfo(TEST_COMPONENT_2,
+                TEST_STRUCTURE_2, listOf(TEST_CONTROL_INFO_2))
     }
 
     private val user = mContext.userId
@@ -139,6 +151,8 @@
         assertTrue(controller.available)
         verify(broadcastDispatcher).registerReceiver(
                 capture(broadcastReceiverCaptor), any(), any(), eq(UserHandle.ALL))
+
+        verify(listingController).addCallback(capture(listingCallbackCaptor))
     }
 
     private fun builderFromInfo(controlInfo: ControlInfo): Control.StatelessBuilder {
@@ -153,12 +167,12 @@
 
     @Test
     fun testStartWithoutFavorites() {
-        assertTrue(controller.getFavoriteControls().isEmpty())
+        assertTrue(controller.getFavorites().isEmpty())
     }
 
     @Test
     fun testStartWithSavedFavorites() {
-        `when`(persistenceWrapper.readFavorites()).thenReturn(listOf(TEST_CONTROL_INFO))
+        `when`(persistenceWrapper.readFavorites()).thenReturn(listOf(TEST_STRUCTURE_INFO))
         val controller_other = ControlsControllerImpl(
                 mContext,
                 delayableExecutor,
@@ -169,88 +183,7 @@
                 Optional.of(persistenceWrapper),
                 mock(DumpManager::class.java)
         )
-        assertEquals(listOf(TEST_CONTROL_INFO), controller_other.getFavoriteControls())
-    }
-
-    @Test
-    fun testAddFavorite() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-
-        val favorites = controller.getFavoriteControls()
-        assertTrue(TEST_CONTROL_INFO in favorites)
-        assertEquals(1, favorites.size)
-    }
-
-    @Test
-    fun testAddMultipleFavorites() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO_2, true)
-
-        val favorites = controller.getFavoriteControls()
-        assertTrue(TEST_CONTROL_INFO in favorites)
-        assertTrue(TEST_CONTROL_INFO_2 in favorites)
-        assertEquals(2, favorites.size)
-    }
-
-    @Test
-    fun testAddAndRemoveFavorite() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO_2, true)
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, false)
-
-        val favorites = controller.getFavoriteControls()
-        assertTrue(TEST_CONTROL_INFO !in favorites)
-        assertTrue(TEST_CONTROL_INFO_2 in favorites)
-        assertEquals(1, favorites.size)
-    }
-
-    @Test
-    fun testFavoritesSavedOnAdd() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-
-        verify(persistenceWrapper).storeFavorites(listOf(TEST_CONTROL_INFO))
-    }
-
-    @Test
-    fun testFavoritesSavedOnRemove() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        reset(persistenceWrapper)
-
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, false)
-        verify(persistenceWrapper).storeFavorites(emptyList())
-    }
-
-    @Test
-    fun testFavoritesSavedOnChange() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        val newControlInfo = TEST_CONTROL_INFO.copy(controlTitle = TEST_CONTROL_TITLE_2)
-        val control = builderFromInfo(newControlInfo).build()
-
-        controller.loadForComponent(TEST_COMPONENT, Consumer {})
-
-        reset(persistenceWrapper)
-        verify(bindingController).bindAndLoad(eq(TEST_COMPONENT),
-                capture(controlLoadCallbackCaptor))
-
-        controlLoadCallbackCaptor.value.accept(listOf(control))
-
-        verify(persistenceWrapper).storeFavorites(listOf(newControlInfo))
-    }
-
-    @Test
-    fun testFavoritesNotSavedOnRedundantAdd() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-
-        reset(persistenceWrapper)
-
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        verify(persistenceWrapper, never()).storeFavorites(ArgumentMatchers.anyList())
-    }
-
-    @Test
-    fun testFavoritesNotSavedOnNotRemove() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, false)
-        verify(persistenceWrapper, never()).storeFavorites(ArgumentMatchers.anyList())
+        assertEquals(listOf(TEST_STRUCTURE_INFO), controller_other.getFavorites())
     }
 
     @Test
@@ -278,15 +211,16 @@
 
     @Test
     fun testSubscribeFavorites() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO_2, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO_2)
+        delayableExecutor.runAllReady()
 
-        controller.subscribeToFavorites()
+        controller.subscribeToFavorites(TEST_STRUCTURE_INFO)
 
-        verify(bindingController).subscribe(capture(controlInfoListCaptor))
+        verify(bindingController).subscribe(capture(structureInfoCaptor))
 
-        assertTrue(TEST_CONTROL_INFO in controlInfoListCaptor.value)
-        assertTrue(TEST_CONTROL_INFO_2 in controlInfoListCaptor.value)
+        assertTrue(TEST_CONTROL_INFO in structureInfoCaptor.value.controls)
+        assertFalse(TEST_CONTROL_INFO_2 in structureInfoCaptor.value.controls)
     }
 
     @Test
@@ -311,6 +245,8 @@
 
         controlLoadCallbackCaptor.value.accept(listOf(control))
 
+        delayableExecutor.runAllReady()
+
         assertTrue(loaded)
     }
 
@@ -319,7 +255,9 @@
         var loaded = false
         val control = builderFromInfo(TEST_CONTROL_INFO).build()
         val control2 = builderFromInfo(TEST_CONTROL_INFO_2).build()
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO_2)
+        delayableExecutor.runAllReady()
 
         controller.loadForComponent(TEST_COMPONENT, Consumer { data ->
             val controls = data.allControls
@@ -341,6 +279,7 @@
                 capture(controlLoadCallbackCaptor))
 
         controlLoadCallbackCaptor.value.accept(listOf(control, control2))
+        delayableExecutor.runAllReady()
 
         assertTrue(loaded)
     }
@@ -348,7 +287,8 @@
     @Test
     fun testLoadForComponent_removed() {
         var loaded = false
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
 
         controller.loadForComponent(TEST_COMPONENT, Consumer { data ->
             val controls = data.allControls
@@ -369,6 +309,7 @@
                 capture(controlLoadCallbackCaptor))
 
         controlLoadCallbackCaptor.value.accept(emptyList())
+        delayableExecutor.runAllReady()
 
         assertTrue(loaded)
     }
@@ -376,7 +317,8 @@
     @Test
     fun testErrorOnLoad_notRemoved() {
         var loaded = false
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
 
         controller.loadForComponent(TEST_COMPONENT, Consumer { data ->
             val controls = data.allControls
@@ -403,7 +345,9 @@
 
     @Test
     fun testFavoriteInformationModifiedOnLoad() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
+
         val newControlInfo = TEST_CONTROL_INFO.copy(controlTitle = TEST_CONTROL_TITLE_2)
         val control = builderFromInfo(newControlInfo).build()
 
@@ -413,15 +357,17 @@
                 capture(controlLoadCallbackCaptor))
 
         controlLoadCallbackCaptor.value.accept(listOf(control))
+        delayableExecutor.runAllReady()
 
-        val favorites = controller.getFavoriteControls()
+        val favorites = controller.getFavorites().flatMap { it.controls }
         assertEquals(1, favorites.size)
         assertEquals(newControlInfo, favorites[0])
     }
 
     @Test
     fun testFavoriteInformationModifiedOnRefresh() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+
         val newControlInfo = TEST_CONTROL_INFO.copy(controlTitle = TEST_CONTROL_TITLE_2)
         val control = builderFromInfo(newControlInfo).build()
 
@@ -429,23 +375,15 @@
 
         delayableExecutor.runAllReady()
 
-        val favorites = controller.getFavoriteControls()
+        val favorites = controller.getFavorites().flatMap { it.controls }
         assertEquals(1, favorites.size)
         assertEquals(newControlInfo, favorites[0])
     }
 
     @Test
-    fun testClearFavorites() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        assertEquals(1, controller.getFavoriteControls().size)
-
-        controller.clearFavorites()
-        assertTrue(controller.getFavoriteControls().isEmpty())
-    }
-
-    @Test
     fun testSwitchUsers() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
 
         reset(persistenceWrapper)
         val intent = Intent(Intent.ACTION_USER_SWITCHED).apply {
@@ -461,7 +399,7 @@
         verify(persistenceWrapper).readFavorites()
         verify(bindingController).changeUser(UserHandle.of(otherUser))
         verify(listingController).changeUser(UserHandle.of(otherUser))
-        assertTrue(controller.getFavoriteControls().isEmpty())
+        assertTrue(controller.getFavorites().isEmpty())
         assertEquals(otherUser, controller.currentUserId)
         assertTrue(controller.available)
     }
@@ -476,24 +414,28 @@
 
     @Test
     fun testDisableFeature_clearFavorites() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        assertFalse(controller.getFavoriteControls().isEmpty())
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
+
+        assertFalse(controller.getFavorites().isEmpty())
 
         Settings.Secure.putIntForUser(mContext.contentResolver,
                 ControlsControllerImpl.CONTROLS_AVAILABLE, 0, user)
         controller.settingObserver.onChange(false, ControlsControllerImpl.URI, user)
-        assertTrue(controller.getFavoriteControls().isEmpty())
+        assertTrue(controller.getFavorites().isEmpty())
     }
 
     @Test
     fun testDisableFeature_noChangeForNotCurrentUser() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
+
         Settings.Secure.putIntForUser(mContext.contentResolver,
                 ControlsControllerImpl.CONTROLS_AVAILABLE, 0, otherUser)
         controller.settingObserver.onChange(false, ControlsControllerImpl.URI, otherUser)
 
         assertTrue(controller.available)
-        assertFalse(controller.getFavoriteControls().isEmpty())
+        assertFalse(controller.getFavorites().isEmpty())
     }
 
     @Test
@@ -515,7 +457,8 @@
 
     @Test
     fun testCountFavoritesForComponent_singleComponent() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
 
         assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
         assertEquals(0, controller.countFavoritesForComponent(TEST_COMPONENT_2))
@@ -523,8 +466,9 @@
 
     @Test
     fun testCountFavoritesForComponent_multipleComponents() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO_2, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO_2)
+        delayableExecutor.runAllReady()
 
         assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
         assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT_2))
@@ -532,78 +476,180 @@
 
     @Test
     fun testGetFavoritesForComponent() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        assertEquals(listOf(TEST_CONTROL_INFO), controller.getFavoritesForComponent(TEST_COMPONENT))
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
+
+        assertEquals(listOf(TEST_STRUCTURE_INFO),
+            controller.getFavoritesForComponent(TEST_COMPONENT))
     }
 
     @Test
     fun testGetFavoritesForComponent_otherComponent() {
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO_2, true)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO_2)
+        delayableExecutor.runAllReady()
+
         assertTrue(controller.getFavoritesForComponent(TEST_COMPONENT).isEmpty())
     }
 
     @Test
     fun testGetFavoritesForComponent_multipleInOrder() {
-        val controlInfo = ControlInfo(TEST_COMPONENT, "id", "title", 0)
+        val controlInfo = ControlInfo("id", "title", 0)
 
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
-        controller.changeFavoriteStatus(controlInfo, true)
+        controller.replaceFavoritesForStructure(
+            StructureInfo(
+                TEST_COMPONENT,
+                "Home",
+                listOf(TEST_CONTROL_INFO, controlInfo)
+        ))
+        delayableExecutor.runAllReady()
 
         assertEquals(listOf(TEST_CONTROL_INFO, controlInfo),
-            controller.getFavoritesForComponent(TEST_COMPONENT))
+            controller.getFavoritesForComponent(TEST_COMPONENT).flatMap { it.controls })
 
-        controller.clearFavorites()
-
-        controller.changeFavoriteStatus(controlInfo, true)
-        controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+        controller.replaceFavoritesForStructure(
+            StructureInfo(
+                TEST_COMPONENT,
+                "Home",
+                listOf(controlInfo, TEST_CONTROL_INFO)
+        ))
+        delayableExecutor.runAllReady()
 
         assertEquals(listOf(controlInfo, TEST_CONTROL_INFO),
+            controller.getFavoritesForComponent(TEST_COMPONENT).flatMap { it.controls })
+    }
+
+    @Test
+    fun testReplaceFavoritesForStructure_noFavorites() {
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
+
+        assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
+        assertEquals(listOf(TEST_STRUCTURE_INFO),
             controller.getFavoritesForComponent(TEST_COMPONENT))
     }
 
     @Test
-    fun testReplaceFavoritesForComponent_noFavorites() {
-        controller.replaceFavoritesForComponent(TEST_COMPONENT, listOf(TEST_CONTROL_INFO))
+    fun testReplaceFavoritesForStructure_differentComponentsAreFilteredOut() {
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO_2)
+        delayableExecutor.runAllReady()
 
         assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
-        assertEquals(listOf(TEST_CONTROL_INFO), controller.getFavoritesForComponent(TEST_COMPONENT))
+        assertEquals(listOf(TEST_CONTROL_INFO),
+            controller.getFavoritesForComponent(TEST_COMPONENT).flatMap { it.controls })
     }
 
     @Test
-    fun testReplaceFavoritesForComponent_differentComponentsAreFilteredOut() {
-        controller.replaceFavoritesForComponent(TEST_COMPONENT,
-            listOf(TEST_CONTROL_INFO, TEST_CONTROL_INFO_2))
-
-        assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
-        assertEquals(listOf(TEST_CONTROL_INFO), controller.getFavoritesForComponent(TEST_COMPONENT))
-    }
-
-    @Test
-    fun testReplaceFavoritesForComponent_oldFavoritesRemoved() {
-        val controlInfo = ControlInfo(TEST_COMPONENT, "id", "title", 0)
+    fun testReplaceFavoritesForStructure_oldFavoritesRemoved() {
+        val controlInfo = ControlInfo("id", "title", 0)
         assertNotEquals(TEST_CONTROL_INFO, controlInfo)
 
-        controller.changeFavoriteStatus(controlInfo, true)
-        controller.replaceFavoritesForComponent(TEST_COMPONENT, listOf(TEST_CONTROL_INFO))
+        val newComponent = ComponentName("test.pkg", "test.class.3")
 
-        assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
-        assertEquals(listOf(TEST_CONTROL_INFO), controller.getFavoritesForComponent(TEST_COMPONENT))
+        controller.replaceFavoritesForStructure(
+            StructureInfo(
+                newComponent,
+                "Home",
+                listOf(controlInfo)
+        ))
+        controller.replaceFavoritesForStructure(
+            StructureInfo(
+                newComponent,
+                "Home",
+                listOf(TEST_CONTROL_INFO)
+        ))
+        delayableExecutor.runAllReady()
+
+        assertEquals(1, controller.countFavoritesForComponent(newComponent))
+        assertEquals(listOf(TEST_CONTROL_INFO), controller
+            .getFavoritesForComponent(newComponent).flatMap { it.controls })
     }
 
     @Test
-    fun testReplaceFavoritesForComponent_favoritesInOrder() {
-        val controlInfo = ControlInfo(TEST_COMPONENT, "id", "title", 0)
+    fun testReplaceFavoritesForStructure_favoritesInOrder() {
+        val controlInfo = ControlInfo("id", "title", 0)
 
         val listOrder1 = listOf(TEST_CONTROL_INFO, controlInfo)
-        controller.replaceFavoritesForComponent(TEST_COMPONENT, listOrder1)
+        val structure1 = StructureInfo(TEST_COMPONENT, "Home", listOrder1)
+        controller.replaceFavoritesForStructure(structure1)
+        delayableExecutor.runAllReady()
 
         assertEquals(2, controller.countFavoritesForComponent(TEST_COMPONENT))
-        assertEquals(listOrder1, controller.getFavoritesForComponent(TEST_COMPONENT))
+        assertEquals(listOrder1, controller.getFavoritesForComponent(TEST_COMPONENT)
+            .flatMap { it.controls })
 
         val listOrder2 = listOf(controlInfo, TEST_CONTROL_INFO)
-        controller.replaceFavoritesForComponent(TEST_COMPONENT, listOrder2)
+        val structure2 = StructureInfo(TEST_COMPONENT, "Home", listOrder2)
+
+        controller.replaceFavoritesForStructure(structure2)
+        delayableExecutor.runAllReady()
 
         assertEquals(2, controller.countFavoritesForComponent(TEST_COMPONENT))
-        assertEquals(listOrder2, controller.getFavoritesForComponent(TEST_COMPONENT))
+        assertEquals(listOrder2, controller.getFavoritesForComponent(TEST_COMPONENT)
+            .flatMap { it.controls })
+    }
+
+    @Test
+    fun testPackageRemoved_noFavorites_noRemovals() {
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        delayableExecutor.runAllReady()
+
+        val serviceInfo = mock(ServiceInfo::class.java)
+        `when`(serviceInfo.componentName).thenReturn(TEST_COMPONENT)
+        val info = ControlsServiceInfo(mContext, serviceInfo)
+
+        // Don't want to check what happens before this call
+        reset(persistenceWrapper)
+        listingCallbackCaptor.value.onServicesUpdated(listOf(info))
+        delayableExecutor.runAllReady()
+
+        verify(bindingController, never()).onComponentRemoved(any())
+
+        assertEquals(1, controller.getFavorites().size)
+        assertEquals(TEST_STRUCTURE_INFO, controller.getFavorites()[0])
+
+        verify(persistenceWrapper, never()).storeFavorites(ArgumentMatchers.anyList())
+    }
+
+    @Test
+    fun testPackageRemoved_hasFavorites() {
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO_2)
+        delayableExecutor.runAllReady()
+
+        val serviceInfo = mock(ServiceInfo::class.java)
+        `when`(serviceInfo.componentName).thenReturn(TEST_COMPONENT)
+        val info = ControlsServiceInfo(mContext, serviceInfo)
+
+        // Don't want to check what happens before this call
+        reset(persistenceWrapper)
+
+        listingCallbackCaptor.value.onServicesUpdated(listOf(info))
+        delayableExecutor.runAllReady()
+
+        verify(bindingController).onComponentRemoved(TEST_COMPONENT_2)
+
+        assertEquals(1, controller.getFavorites().size)
+        assertEquals(TEST_STRUCTURE_INFO, controller.getFavorites()[0])
+
+        verify(persistenceWrapper).storeFavorites(ArgumentMatchers.anyList())
+    }
+
+    @Test
+    fun testListingCallbackNotListeningWhileReadingFavorites() {
+        val intent = Intent(Intent.ACTION_USER_SWITCHED).apply {
+            putExtra(Intent.EXTRA_USER_HANDLE, otherUser)
+        }
+        val pendingResult = mock(BroadcastReceiver.PendingResult::class.java)
+        `when`(pendingResult.sendingUserId).thenReturn(otherUser)
+        broadcastReceiverCaptor.value.pendingResult = pendingResult
+
+        broadcastReceiverCaptor.value.onReceive(mContext, intent)
+
+        val inOrder = inOrder(persistenceWrapper, listingController)
+
+        inOrder.verify(listingController).removeCallback(listingCallbackCaptor.value)
+        inOrder.verify(persistenceWrapper).readFavorites()
+        inOrder.verify(listingController).addCallback(listingCallbackCaptor.value)
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt
index c145c1f..a47edf0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt
@@ -55,18 +55,27 @@
 
     @Test
     fun testSaveAndRestore() {
-        val controlInfo1 = ControlInfo(
-                ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS_1")!!,
-                "id1", "name_1", DeviceTypes.TYPE_UNKNOWN)
-        val controlInfo2 = ControlInfo(
-                ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS_2")!!,
-                "id2", "name_2", DeviceTypes.TYPE_GENERIC_ON_OFF)
-        val list = listOf(controlInfo1, controlInfo2)
+        val structureInfo1 = StructureInfo(
+            ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS_1")!!,
+            "",
+            listOf(
+                ControlInfo("id1", "name_1", DeviceTypes.TYPE_UNKNOWN)
+            )
+        )
 
+        val structureInfo2 = StructureInfo(
+            ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS_2")!!,
+            "structure1",
+            listOf(
+                ControlInfo("id2", "name_2", DeviceTypes.TYPE_GENERIC_ON_OFF),
+                ControlInfo("id3", "name_3", DeviceTypes.TYPE_GENERIC_ON_OFF)
+            )
+        )
+        val list = listOf(structureInfo1, structureInfo2)
         wrapper.storeFavorites(list)
 
         executor.runAllReady()
 
         assertEquals(list, wrapper.readFavorites())
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt
index a3e59e5..fd92ad0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt
@@ -97,19 +97,25 @@
     @Test
     fun testBindService() {
         manager.bindService()
+        executor.runAllReady()
         assertTrue(mContext.isBound(componentName))
     }
 
     @Test
     fun testUnbindService() {
         manager.bindService()
+        executor.runAllReady()
+
         manager.unbindService()
+        executor.runAllReady()
+
         assertFalse(mContext.isBound(componentName))
     }
 
     @Test
     fun testMaybeBindAndLoad() {
         manager.maybeBindAndLoad(subscriberService)
+        executor.runAllReady()
 
         verify(service).load(subscriberService)
 
@@ -119,14 +125,17 @@
     @Test
     fun testMaybeUnbind_bindingAndCallback() {
         manager.maybeBindAndLoad(subscriberService)
+        executor.runAllReady()
 
         manager.unbindService()
+        executor.runAllReady()
         assertFalse(mContext.isBound(componentName))
     }
 
     @Test
     fun testMaybeBindAndLoad_timeout() {
         manager.maybeBindAndLoad(subscriberService)
+        executor.runAllReady()
 
         executor.advanceClockToLast()
         executor.runAllReady()
@@ -138,6 +147,7 @@
     fun testMaybeBindAndSubscribe() {
         val list = listOf("TEST_ID")
         manager.maybeBindAndSubscribe(list)
+        executor.runAllReady()
 
         assertTrue(mContext.isBound(componentName))
         verify(service).subscribe(list, subscriberService)
@@ -148,6 +158,7 @@
         val controlId = "TEST_ID"
         val action = ControlAction.ERROR_ACTION
         manager.maybeBindAndSendAction(controlId, action)
+        executor.runAllReady()
 
         assertTrue(mContext.isBound(componentName))
         verify(service).action(eq(controlId), capture(wrapperCaptor),
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
index 63cbca9..c483314 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
@@ -69,6 +69,8 @@
     @Mock
     private DozeLog mDozeLog;
     @Mock private DockManager mDockManager;
+    @Mock
+    private DozeHost mHost;
     private DozeServiceFake mServiceFake;
     private WakeLockFake mWakeLockFake;
     private AmbientDisplayConfiguration mConfigMock;
@@ -85,7 +87,8 @@
         when(mDockManager.isHidden()).thenReturn(false);
 
         mMachine = new DozeMachine(mServiceFake, mConfigMock, mWakeLockFake,
-                mWakefulnessLifecycle, mock(BatteryController.class), mDozeLog, mDockManager);
+                mWakefulnessLifecycle, mock(BatteryController.class), mDozeLog, mDockManager,
+                mHost);
         mMachine.setParts(new DozeMachine.Part[]{mPartMock});
     }
 
@@ -140,7 +143,7 @@
 
     @Test
     public void testInitialize_dozeSuppressed_alwaysOnDisabled_goesToDoze() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false);
 
         mMachine.requestState(INITIALIZED);
@@ -151,7 +154,7 @@
 
     @Test
     public void testInitialize_dozeSuppressed_alwaysOnEnabled_goesToDoze() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
 
         mMachine.requestState(INITIALIZED);
@@ -162,7 +165,7 @@
 
     @Test
     public void testInitialize_dozeSuppressed_afterDocked_goesToDoze() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mDockManager.isDocked()).thenReturn(true);
 
         mMachine.requestState(INITIALIZED);
@@ -173,7 +176,7 @@
 
     @Test
     public void testInitialize_dozeSuppressed_alwaysOnDisabled_afterDockPaused_goesToDoze() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false);
         when(mDockManager.isDocked()).thenReturn(true);
         when(mDockManager.isHidden()).thenReturn(true);
@@ -186,7 +189,7 @@
 
     @Test
     public void testInitialize_dozeSuppressed_alwaysOnEnabled_afterDockPaused_goesToDoze() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
         when(mDockManager.isDocked()).thenReturn(true);
         when(mDockManager.isHidden()).thenReturn(true);
@@ -225,7 +228,7 @@
 
     @Test
     public void testPulseDone_dozeSuppressed_goesToSuppressed() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
         mMachine.requestState(INITIALIZED);
         mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION);
@@ -252,7 +255,7 @@
 
     @Test
     public void testPulseDone_dozeSuppressed_afterDocked_goesToDoze() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mDockManager.isDocked()).thenReturn(true);
         mMachine.requestState(INITIALIZED);
         mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION);
@@ -281,7 +284,7 @@
 
     @Test
     public void testPulseDone_dozeSuppressed_afterDockPaused_goesToDoze() {
-        when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+        when(mHost.isDozeSuppressed()).thenReturn(true);
         when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
         when(mDockManager.isDocked()).thenReturn(true);
         when(mDockManager.isHidden()).thenReturn(true);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressedHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressedHandlerTest.java
deleted file mode 100644
index 5bdca76..0000000
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressedHandlerTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2020 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.doze;
-
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-
-import android.hardware.display.AmbientDisplayConfiguration;
-import android.testing.AndroidTestingRunner;
-import android.testing.TestableLooper.RunWithLooper;
-
-import androidx.test.filters.SmallTest;
-
-import com.android.systemui.SysuiTestCase;
-import com.android.systemui.doze.DozeSuppressedHandler.DozeSuppressedSettingObserver;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@SmallTest
-@RunWith(AndroidTestingRunner.class)
-@RunWithLooper
-public class DozeSuppressedHandlerTest extends SysuiTestCase {
-    @Mock private DozeMachine mMachine;
-    @Mock private DozeSuppressedSettingObserver mObserver;
-    private AmbientDisplayConfiguration mConfig;
-    private DozeSuppressedHandler mSuppressedHandler;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mConfig = DozeConfigurationUtil.createMockConfig();
-        mSuppressedHandler = new DozeSuppressedHandler(mContext, mConfig, mMachine, mObserver);
-    }
-
-    @Test
-    public void transitionTo_initialized_registersObserver() throws Exception {
-        mSuppressedHandler.transitionTo(DozeMachine.State.UNINITIALIZED,
-                DozeMachine.State.INITIALIZED);
-
-        verify(mObserver).register();
-    }
-
-    @Test
-    public void transitionTo_finish_unregistersObserver() throws Exception {
-        mSuppressedHandler.transitionTo(DozeMachine.State.INITIALIZED,
-                DozeMachine.State.FINISH);
-
-        verify(mObserver).unregister();
-    }
-
-    @Test
-    public void transitionTo_doze_doesNothing() throws Exception {
-        mSuppressedHandler.transitionTo(DozeMachine.State.INITIALIZED,
-                DozeMachine.State.DOZE);
-
-        verify(mObserver, never()).register();
-        verify(mObserver, never()).unregister();
-    }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/pip/PipBoundsHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/pip/PipBoundsHandlerTest.java
index 1dbcf10..3b00684 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/pip/PipBoundsHandlerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/pip/PipBoundsHandlerTest.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.pip;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import android.content.ComponentName;
@@ -44,8 +45,11 @@
 @SmallTest
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
 public class PipBoundsHandlerTest extends SysuiTestCase {
-    private static final int ROUNDING_ERROR_MARGIN = 10;
+    private static final int ROUNDING_ERROR_MARGIN = 16;
+    private static final float ASPECT_RATIO_ERROR_MARGIN = 0.01f;
     private static final float DEFAULT_ASPECT_RATIO = 1f;
+    private static final float MIN_ASPECT_RATIO = 0.5f;
+    private static final float MAX_ASPECT_RATIO = 2f;
     private static final Rect EMPTY_CURRENT_BOUNDS = null;
 
     private PipBoundsHandler mPipBoundsHandler;
@@ -53,8 +57,8 @@
 
     @Before
     public void setUp() throws Exception {
-        mPipBoundsHandler = new PipBoundsHandler(mContext);
         initializeMockResources();
+        mPipBoundsHandler = new PipBoundsHandler(mContext);
 
         mPipBoundsHandler.onDisplayInfoChanged(mDefaultDisplayInfo);
     }
@@ -62,7 +66,8 @@
     private void initializeMockResources() {
         final TestableResources res = mContext.getOrCreateTestableResources();
         res.addOverride(
-                com.android.internal.R.dimen.config_pictureInPictureDefaultAspectRatio, 1f);
+                com.android.internal.R.dimen.config_pictureInPictureDefaultAspectRatio,
+                DEFAULT_ASPECT_RATIO);
         res.addOverride(
                 com.android.internal.R.integer.config_defaultPictureInPictureGravity,
                 Gravity.END | Gravity.BOTTOM);
@@ -72,9 +77,11 @@
                 com.android.internal.R.string.config_defaultPictureInPictureScreenEdgeInsets,
                 "16x16");
         res.addOverride(
-                com.android.internal.R.dimen.config_pictureInPictureMinAspectRatio, 0.5f);
+                com.android.internal.R.dimen.config_pictureInPictureMinAspectRatio,
+                MIN_ASPECT_RATIO);
         res.addOverride(
-                com.android.internal.R.dimen.config_pictureInPictureMaxAspectRatio, 2f);
+                com.android.internal.R.dimen.config_pictureInPictureMaxAspectRatio,
+                MAX_ASPECT_RATIO);
 
         mDefaultDisplayInfo = new DisplayInfo();
         mDefaultDisplayInfo.displayId = 1;
@@ -83,6 +90,76 @@
     }
 
     @Test
+    public void getDefaultAspectRatio() {
+        assertEquals("Default aspect ratio matches resources",
+                DEFAULT_ASPECT_RATIO, mPipBoundsHandler.getDefaultAspectRatio(),
+                ASPECT_RATIO_ERROR_MARGIN);
+    }
+
+    @Test
+    public void onConfigurationChanged_reloadResources() {
+        final float newDefaultAspectRatio = (DEFAULT_ASPECT_RATIO + MAX_ASPECT_RATIO) / 2;
+        final TestableResources res = mContext.getOrCreateTestableResources();
+        res.addOverride(com.android.internal.R.dimen.config_pictureInPictureDefaultAspectRatio,
+                newDefaultAspectRatio);
+
+        mPipBoundsHandler.onConfigurationChanged();
+
+        assertEquals("Default aspect ratio should be reloaded",
+                mPipBoundsHandler.getDefaultAspectRatio(), newDefaultAspectRatio,
+                ASPECT_RATIO_ERROR_MARGIN);
+    }
+
+    @Test
+    public void getDestinationBounds_returnBoundsMatchesAspectRatio() {
+        final float[] aspectRatios = new float[] {
+                (MIN_ASPECT_RATIO + DEFAULT_ASPECT_RATIO) / 2,
+                DEFAULT_ASPECT_RATIO,
+                (MAX_ASPECT_RATIO + DEFAULT_ASPECT_RATIO) / 2
+        };
+        for (float aspectRatio : aspectRatios) {
+            final Rect destinationBounds = mPipBoundsHandler.getDestinationBounds(
+                    aspectRatio, EMPTY_CURRENT_BOUNDS);
+            final float actualAspectRatio =
+                    destinationBounds.width() / (destinationBounds.height() * 1f);
+            assertEquals("Destination bounds matches the given aspect ratio",
+                    aspectRatio, actualAspectRatio, ASPECT_RATIO_ERROR_MARGIN);
+        }
+    }
+
+    @Test
+    public void getDestinationBounds_invalidAspectRatio_returnsDefaultAspectRatio() {
+        final float[] invalidAspectRatios = new float[] {
+                MIN_ASPECT_RATIO / 2,
+                MAX_ASPECT_RATIO * 2
+        };
+        for (float aspectRatio : invalidAspectRatios) {
+            final Rect destinationBounds = mPipBoundsHandler.getDestinationBounds(
+                    aspectRatio, EMPTY_CURRENT_BOUNDS);
+            final float actualAspectRatio =
+                    destinationBounds.width() / (destinationBounds.height() * 1f);
+            assertEquals("Destination bounds fallbacks to default aspect ratio",
+                    mPipBoundsHandler.getDefaultAspectRatio(), actualAspectRatio,
+                    ASPECT_RATIO_ERROR_MARGIN);
+        }
+    }
+
+    @Test
+    public void  getDestinationBounds_withCurrentBounds_returnBoundsMatchesAspectRatio() {
+        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 Rect destinationBounds = mPipBoundsHandler.getDestinationBounds(
+                aspectRatio, currentBounds);
+
+        final float actualAspectRatio =
+                destinationBounds.width() / (destinationBounds.height() * 1f);
+        assertEquals("Destination bounds matches the given aspect ratio",
+                aspectRatio, actualAspectRatio, ASPECT_RATIO_ERROR_MARGIN);
+    }
+
+    @Test
     public void setShelfHeight_offsetBounds() {
         final int shelfHeight = 100;
         final Rect oldPosition = mPipBoundsHandler.getDestinationBounds(
@@ -93,7 +170,7 @@
                 DEFAULT_ASPECT_RATIO, EMPTY_CURRENT_BOUNDS);
 
         oldPosition.offset(0, -shelfHeight);
-        assertBoundsWithMargin("PiP bounds offset by shelf height", oldPosition, newPosition);
+        assertBoundsWithMargin("offsetBounds by shelf", oldPosition, newPosition);
     }
 
     @Test
@@ -107,7 +184,7 @@
                 DEFAULT_ASPECT_RATIO, EMPTY_CURRENT_BOUNDS);
 
         oldPosition.offset(0, -imeHeight);
-        assertBoundsWithMargin("PiP bounds offset by IME height", oldPosition, newPosition);
+        assertBoundsWithMargin("offsetBounds by IME", oldPosition, newPosition);
     }
 
     @Test
@@ -122,11 +199,11 @@
         final Rect newPosition = mPipBoundsHandler.getDestinationBounds(
                 DEFAULT_ASPECT_RATIO, EMPTY_CURRENT_BOUNDS);
 
-        assertBoundsWithMargin("Last position is restored", oldPosition, newPosition);
+        assertBoundsWithMargin("restoreLastPosition", oldPosition, newPosition);
     }
 
     @Test
-    public void onResetReentryBounds_componentMatch_useDefaultBounds() {
+    public void onResetReentryBounds_useDefaultBounds() {
         final ComponentName componentName = new ComponentName(mContext, "component1");
         final Rect defaultBounds = mPipBoundsHandler.getDestinationBounds(
                 DEFAULT_ASPECT_RATIO, EMPTY_CURRENT_BOUNDS);
@@ -138,7 +215,7 @@
         final Rect actualBounds = mPipBoundsHandler.getDestinationBounds(
                 DEFAULT_ASPECT_RATIO, EMPTY_CURRENT_BOUNDS);
 
-        assertBoundsWithMargin("Use default bounds", defaultBounds, actualBounds);
+        assertBoundsWithMargin("useDefaultBounds", defaultBounds, actualBounds);
     }
 
     @Test
@@ -154,11 +231,15 @@
         final Rect actualBounds = mPipBoundsHandler.getDestinationBounds(
                 DEFAULT_ASPECT_RATIO, EMPTY_CURRENT_BOUNDS);
 
-        assertBoundsWithMargin("Last position is restored", newBounds, actualBounds);
+        assertBoundsWithMargin("restoreLastPosition", newBounds, actualBounds);
     }
 
-    private void assertBoundsWithMargin(String msg, Rect expected, Rect actual) {
-        expected.inset(-ROUNDING_ERROR_MARGIN, -ROUNDING_ERROR_MARGIN);
-        assertTrue(msg, expected.contains(actual));
+    private void assertBoundsWithMargin(String from, Rect expected, Rect actual) {
+        final Rect expectedWithMargin = new Rect(expected);
+        expectedWithMargin.inset(-ROUNDING_ERROR_MARGIN, -ROUNDING_ERROR_MARGIN);
+        assertTrue(from + ": expect " + expected
+                + " contains " + actual
+                + " with error margin " + ROUNDING_ERROR_MARGIN,
+                expectedWithMargin.contains(actual));
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java
index 36a9ea6..0098012 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java
@@ -27,6 +27,7 @@
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Handler;
@@ -76,7 +77,9 @@
 public class QSTileHostTest extends SysuiTestCase {
 
     private static String MOCK_STATE_STRING = "MockState";
-    private static final String CUSTOM_TILE_SPEC = "custom(TEST_PKG/.TEST_CLS)";
+    private static ComponentName CUSTOM_TILE =
+            ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS");
+    private static final String CUSTOM_TILE_SPEC = CustomTile.toSpec(CUSTOM_TILE);
 
     @Mock
     private StatusBarIconController mIconController;
@@ -114,24 +117,30 @@
                 mLooper.getLooper(), mPluginManager, mTunerService, mAutoTiles, mDumpManager,
                 mBroadcastDispatcher, mStatusBar, mQSLogger);
         setUpTileFactory();
+
+        // Override this config so there are no unexpected tiles
+        mContext.getOrCreateTestableResources().addOverride(
+                com.android.internal.R.string.config_defaultExtraQuickSettingsTiles,
+                "");
+
         Settings.Secure.putStringForUser(mContext.getContentResolver(), QSTileHost.TILES_SETTING,
                 "", ActivityManager.getCurrentUser());
     }
 
     private void setUpTileFactory() {
         when(mMockState.toString()).thenReturn(MOCK_STATE_STRING);
+        // Only create this kind of tiles
         when(mDefaultFactory.createTile(anyString())).thenAnswer(
                 invocation -> {
                     String spec = invocation.getArgument(0);
-                    switch (spec) {
-                        case "spec1":
-                            return new TestTile1(mQSTileHost);
-                        case "spec2":
-                            return new TestTile2(mQSTileHost);
-                        case CUSTOM_TILE_SPEC:
-                            return mCustomTile;
-                        default:
-                            return null;
+                    if ("spec1".equals(spec)) {
+                        return new TestTile1(mQSTileHost);
+                    } else if ("spec2".equals(spec)) {
+                        return new TestTile2(mQSTileHost);
+                    } else if (CUSTOM_TILE_SPEC.equals(spec)) {
+                        return mCustomTile;
+                    } else {
+                        return null;
                     }
                 });
         when(mCustomTile.isAvailable()).thenReturn(true);
@@ -222,6 +231,58 @@
         verify(mQSLogger).logTileAdded(CUSTOM_TILE_SPEC);
     }
 
+    @Test
+    public void testNoRepeatedSpecs_addTile() {
+        mQSTileHost.onTuningChanged(QSTileHost.TILES_SETTING, "spec1,spec2");
+
+        mQSTileHost.addTile("spec1");
+
+        assertEquals(2, mQSTileHost.mTileSpecs.size());
+        assertEquals("spec1", mQSTileHost.mTileSpecs.get(0));
+        assertEquals("spec2", mQSTileHost.mTileSpecs.get(1));
+    }
+
+    @Test
+    public void testNoRepeatedSpecs_customTile() {
+        mQSTileHost.onTuningChanged(QSTileHost.TILES_SETTING, CUSTOM_TILE_SPEC);
+
+        mQSTileHost.addTile(CUSTOM_TILE);
+
+        assertEquals(1, mQSTileHost.mTileSpecs.size());
+        assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(0));
+    }
+
+    @Test
+    public void testLoadTileSpec_repeated() {
+        List<String> specs = QSTileHost.loadTileSpecs(mContext, "spec1,spec1,spec2");
+
+        assertEquals(2, specs.size());
+        assertEquals("spec1", specs.get(0));
+        assertEquals("spec2", specs.get(1));
+    }
+
+    @Test
+    public void testLoadTileSpec_repeatedInDefault() {
+        mContext.getOrCreateTestableResources()
+                .addOverride(R.string.quick_settings_tiles_default, "spec1,spec1");
+        List<String> specs = QSTileHost.loadTileSpecs(mContext, "default");
+
+        // Remove spurious tiles, like dbg:mem
+        specs.removeIf(spec -> !"spec1".equals(spec));
+        assertEquals(1, specs.size());
+    }
+
+    @Test
+    public void testLoadTileSpec_repeatedDefaultAndSetting() {
+        mContext.getOrCreateTestableResources()
+                .addOverride(R.string.quick_settings_tiles_default, "spec1");
+        List<String> specs = QSTileHost.loadTileSpecs(mContext, "default,spec1");
+
+        // Remove spurious tiles, like dbg:mem
+        specs.removeIf(spec -> !"spec1".equals(spec));
+        assertEquals(1, specs.size());
+    }
+
     private static class TestQSTileHost extends QSTileHost {
         TestQSTileHost(Context context, StatusBarIconController iconController,
                 QSFactoryImpl defaultFactory, Handler mainHandler, Looper bgLooper,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/external/CustomTileTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/external/CustomTileTest.kt
index 9fe2569..58be50e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/external/CustomTileTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/external/CustomTileTest.kt
@@ -33,6 +33,7 @@
 import com.android.systemui.qs.QSTileHost
 import junit.framework.Assert.assertFalse
 import junit.framework.Assert.assertTrue
+import org.junit.Assert.assertEquals
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -84,13 +85,26 @@
                 .thenReturn(mServiceInfo)
         mServiceInfo.applicationInfo = mApplicationInfo
 
-        customTile = CustomTile.create(mTileHost, TILE_SPEC)
+        customTile = CustomTile.create(mTileHost, TILE_SPEC, mContext)
+    }
+
+    @Test
+    fun testCorrectUser() {
+        assertEquals(0, customTile.user)
+
+        val userContext = mock(Context::class.java)
+        `when`(userContext.packageManager).thenReturn(mPackageManager)
+        `when`(userContext.userId).thenReturn(10)
+
+        val tile = CustomTile.create(mTileHost, TILE_SPEC, userContext)
+
+        assertEquals(10, tile.user)
     }
 
     @Test
     fun testToggleableTileHasBooleanState() {
         `when`(mTileServiceManager.isToggleableTile).thenReturn(true)
-        customTile = CustomTile.create(mTileHost, TILE_SPEC)
+        customTile = CustomTile.create(mTileHost, TILE_SPEC, mContext)
 
         assertTrue(customTile.state is QSTile.BooleanState)
         assertTrue(customTile.newTileState() is QSTile.BooleanState)
@@ -105,7 +119,7 @@
     @Test
     fun testValueUpdatedInBooleanTile() {
         `when`(mTileServiceManager.isToggleableTile).thenReturn(true)
-        customTile = CustomTile.create(mTileHost, TILE_SPEC)
+        customTile = CustomTile.create(mTileHost, TILE_SPEC, mContext)
         customTile.qsTile.icon = mock(Icon::class.java)
         `when`(customTile.qsTile.icon.loadDrawable(any(Context::class.java)))
                 .thenReturn(mock(Drawable::class.java))
@@ -125,4 +139,12 @@
         customTile.handleUpdateState(state, null)
         assertFalse(state.value)
     }
+
+    @Test
+    fun testNoCrashOnNullDrawable() {
+        customTile.qsTile.icon = mock(Icon::class.java)
+        `when`(customTile.qsTile.icon.loadDrawable(any(Context::class.java)))
+                .thenReturn(null)
+        customTile.handleUpdateState(customTile.newTileState(), null)
+    }
 }
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java
index 24c372c..7c6da63 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java
@@ -447,4 +447,11 @@
         waitForIdleSync();
         verify(mCallbacks).hideAuthenticationDialog();
     }
+
+    @Test
+    public void testSuppressAmbientDisplay() {
+        mCommandQueue.suppressAmbientDisplay(true);
+        waitForIdleSync();
+        verify(mCallbacks).suppressAmbientDisplay(true);
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
index 581d795..fb40177 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
@@ -44,7 +44,6 @@
 import android.os.Looper;
 import android.os.RemoteException;
 import android.os.UserManager;
-import android.view.View;
 import android.view.ViewGroup;
 
 import androidx.test.InstrumentationRegistry;
@@ -52,7 +51,6 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.app.IBatteryStats;
-import com.android.internal.widget.LockPatternUtils;
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.settingslib.Utils;
 import com.android.settingslib.fuelgauge.BatteryStatus;
@@ -61,10 +59,7 @@
 import com.android.systemui.dock.DockManager;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
-import com.android.systemui.statusbar.phone.LockIcon;
-import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
-import com.android.systemui.statusbar.policy.AccessibilityController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.util.wakelock.WakeLockFake;
 
@@ -85,14 +80,6 @@
     @Mock
     private ViewGroup mIndicationArea;
     @Mock
-    private LockIcon mLockIcon;
-    @Mock
-    private LockPatternUtils mLockPatternUtils;
-    @Mock
-    private ShadeController mShadeController;
-    @Mock
-    private AccessibilityController mAccessibilityController;
-    @Mock
     private KeyguardStateController mKeyguardStateController;
     @Mock
     private StatusBarStateController mStatusBarStateController;
@@ -111,6 +98,7 @@
     private KeyguardIndicationTextView mTextView;
 
     private KeyguardIndicationController mController;
+    private WakeLockFake.Builder mWakeLockBuilder;
     private WakeLockFake mWakeLock;
     private Instrumentation mInstrumentation;
 
@@ -131,16 +119,19 @@
         when(mIndicationArea.findViewById(R.id.keyguard_indication_text)).thenReturn(mTextView);
 
         mWakeLock = new WakeLockFake();
+        mWakeLockBuilder = new WakeLockFake.Builder(mContext);
+        mWakeLockBuilder.setWakeLock(mWakeLock);
     }
 
     private void createController() {
         if (Looper.myLooper() == null) {
             Looper.prepare();
         }
-        mController = new KeyguardIndicationController(mContext, mIndicationArea, mLockIcon,
-                mLockPatternUtils, mWakeLock, mShadeController, mAccessibilityController,
+
+        mController = new KeyguardIndicationController(mContext, mWakeLockBuilder,
                 mKeyguardStateController, mStatusBarStateController, mKeyguardUpdateMonitor,
                 mDockManager, mIBatteryStats);
+        mController.setIndicationArea(mIndicationArea);
         mController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
         clearInvocations(mIBatteryStats);
     }
@@ -319,26 +310,6 @@
     }
 
     @Test
-    public void lockIcon_click() {
-        createController();
-
-        ArgumentCaptor<View.OnLongClickListener> longClickCaptor = ArgumentCaptor.forClass(
-                View.OnLongClickListener.class);
-        ArgumentCaptor<View.OnClickListener> clickCaptor = ArgumentCaptor.forClass(
-                View.OnClickListener.class);
-        verify(mLockIcon).setOnLongClickListener(longClickCaptor.capture());
-        verify(mLockIcon).setOnClickListener(clickCaptor.capture());
-
-        when(mAccessibilityController.isAccessibilityEnabled()).thenReturn(true);
-        clickCaptor.getValue().onClick(mLockIcon);
-        verify(mShadeController).animateCollapsePanels(anyInt(), eq(true));
-
-        longClickCaptor.getValue().onLongClick(mLockIcon);
-        verify(mLockPatternUtils).requireCredentialEntry(anyInt());
-        verify(mKeyguardUpdateMonitor).onLockIconPressed();
-    }
-
-    @Test
     public void updateMonitor_listenerUpdatesIndication() {
         createController();
         String restingIndication = "Resting indication";
@@ -403,4 +374,18 @@
         verify(mStatusBarStateController).addCallback(eq(mController));
         verify(mKeyguardUpdateMonitor, times(2)).registerCallback(any());
     }
+
+    @Test
+    public void unlockMethodCache_listenerUpdatesPluggedIndication() {
+        createController();
+        when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
+        mController.setPowerPluggedIn(true);
+        mController.setVisible(true);
+        String powerIndication = mController.computePowerIndication();
+        String pluggedIndication = mContext.getString(R.string.keyguard_indication_trust_unlocked);
+        pluggedIndication = mContext.getString(
+                R.string.keyguard_indication_trust_unlocked_plugged_in,
+                pluggedIndication, powerIndication);
+        assertThat(mTextView.getText()).isEqualTo(pluggedIndication);
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/MediaArtworkProcessorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/MediaArtworkProcessorTest.kt
index a27c085..72e6df2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/MediaArtworkProcessorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/MediaArtworkProcessorTest.kt
@@ -16,14 +16,15 @@
 
 package com.android.systemui.statusbar
 
+import com.google.common.truth.Truth.assertThat
+
 import android.graphics.Bitmap
 import android.graphics.Canvas
 import android.graphics.Color
+import android.graphics.Point
 import android.testing.AndroidTestingRunner
-import android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
-import com.google.common.truth.Truth.assertThat
 import org.junit.After
 import org.junit.Before
 import org.junit.Test
@@ -31,7 +32,6 @@
 
 private const val WIDTH = 200
 private const val HEIGHT = 200
-private const val WINDOW_TYPE = TYPE_NOTIFICATION_SHADE
 
 @RunWith(AndroidTestingRunner::class)
 @SmallTest
@@ -46,10 +46,10 @@
     fun setUp() {
         processor = MediaArtworkProcessor()
 
-        val size = processor.getWindowSize(context, WINDOW_TYPE)
-
-        screenWidth = size.width
-        screenHeight = size.height
+        val point = Point()
+        context.display.getSize(point)
+        screenWidth = point.x
+        screenHeight = point.y
     }
 
     @After
@@ -63,7 +63,7 @@
         val artwork = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ARGB_8888)
         Canvas(artwork).drawColor(Color.BLUE)
         // WHEN the background is created from the artwork
-        val background = processor.processArtwork(context, artwork, WINDOW_TYPE)!!
+        val background = processor.processArtwork(context, artwork)!!
         // THEN the background has the size of the screen that has been downsamples
         assertThat(background.height).isLessThan(screenHeight)
         assertThat(background.width).isLessThan(screenWidth)
@@ -76,8 +76,8 @@
         val artwork = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ARGB_8888)
         Canvas(artwork).drawColor(Color.BLUE)
         // WHEN the background is processed twice
-        val background1 = processor.processArtwork(context, artwork, WINDOW_TYPE)!!
-        val background2 = processor.processArtwork(context, artwork, WINDOW_TYPE)!!
+        val background1 = processor.processArtwork(context, artwork)!!
+        val background2 = processor.processArtwork(context, artwork)!!
         // THEN the two bitmaps are the same
         // Note: This is currently broken and trying to use caching causes issues
         assertThat(background1).isNotSameAs(background2)
@@ -89,7 +89,7 @@
         val artwork = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ALPHA_8)
         Canvas(artwork).drawColor(Color.BLUE)
         // WHEN the background is created from the artwork
-        val background = processor.processArtwork(context, artwork, WINDOW_TYPE)!!
+        val background = processor.processArtwork(context, artwork)!!
         // THEN the background has Config ARGB_8888
         assertThat(background.config).isEqualTo(Bitmap.Config.ARGB_8888)
     }
@@ -102,7 +102,7 @@
         // AND the artwork is recycled
         artwork.recycle()
         // WHEN the background is created from the artwork
-        val background = processor.processArtwork(context, artwork, WINDOW_TYPE)
+        val background = processor.processArtwork(context, artwork)
         // THEN the processed bitmap is null
         assertThat(background).isNull()
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/RankingBuilder.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/RankingBuilder.java
index 16f105d..fe8b89f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/RankingBuilder.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/RankingBuilder.java
@@ -20,6 +20,7 @@
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationManager.Importance;
+import android.content.pm.ShortcutInfo;
 import android.service.notification.NotificationListenerService.Ranking;
 import android.service.notification.SnoozeCriterion;
 
@@ -53,6 +54,7 @@
     private boolean mCanBubble = false;
     private boolean mIsVisuallyInterruptive = false;
     private boolean mIsConversation = false;
+    private ShortcutInfo mShortcutInfo = null;
 
     public RankingBuilder() {
     }
@@ -79,6 +81,7 @@
         mCanBubble = ranking.canBubble();
         mIsVisuallyInterruptive = ranking.visuallyInterruptive();
         mIsConversation = ranking.isConversation();
+        mShortcutInfo = ranking.getShortcutInfo();
     }
 
     public Ranking build() {
@@ -104,7 +107,8 @@
                 mSmartReplies,
                 mCanBubble,
                 mIsVisuallyInterruptive,
-                mIsConversation);
+                mIsConversation,
+                mShortcutInfo);
         return ranking;
     }
 
@@ -189,6 +193,11 @@
         return this;
     }
 
+    public RankingBuilder setShortcutInfo(ShortcutInfo shortcutInfo) {
+        mShortcutInfo = shortcutInfo;
+        return this;
+    }
+
     public RankingBuilder setImportance(@Importance int importance) {
         mImportance = importance;
         return this;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
index 98f12ce..312bb7f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
@@ -143,7 +143,7 @@
                     IMPORTANCE_DEFAULT,
                     null, null,
                     null, null, null, true, sentiment, false, -1, false, null, null, false, false,
-                    false);
+                    false, null);
             return true;
         }).when(mRankingMap).getRanking(eq(key), any(Ranking.class));
     }
@@ -162,7 +162,7 @@
                     null, null,
                     null, null, null, true,
                     Ranking.USER_SENTIMENT_NEUTRAL, false, -1,
-                    false, smartActions, null, false, false, false);
+                    false, smartActions, null, false, false, false, null);
             return true;
         }).when(mRankingMap).getRanking(eq(key), any(Ranking.class));
     }
@@ -254,7 +254,7 @@
 
         verify(mPresenter).updateNotificationViews();
         verify(mEntryListener).onEntryRemoved(
-                eq(mEntry), any(), eq(false) /* removedByUser */);
+                eq(mEntry), any(), eq(false) /* removedByUser */, eq(UNDEFINED_DISMISS_REASON));
         verify(mRow).setRemoved();
 
         assertNull(mEntryManager.getActiveNotificationUnfiltered(mSbn.getKey()));
@@ -266,7 +266,7 @@
         mEntryManager.removeNotification("not_a_real_key", mRankingMap, UNDEFINED_DISMISS_REASON);
 
         verify(mEntryListener, never()).onEntryRemoved(
-                eq(mEntry), any(), eq(false) /* removedByUser */);
+                eq(mEntry), any(), eq(false) /* removedByUser */, eq(UNDEFINED_DISMISS_REASON));
     }
 
     @Test
@@ -275,7 +275,7 @@
         mEntryManager.removeNotification(mSbn.getKey(), mRankingMap, UNDEFINED_DISMISS_REASON);
 
         verify(mEntryListener, never()).onEntryRemoved(
-                eq(mEntry), any(), eq(false /* removedByUser */));
+                eq(mEntry), any(), eq(false /* removedByUser */), eq(UNDEFINED_DISMISS_REASON));
     }
 
     @Test
@@ -356,7 +356,8 @@
         verify(extender).setShouldManageLifetime(mEntry, true);
         // THEN the notification is retained
         assertNotNull(mEntryManager.getActiveNotificationUnfiltered(mSbn.getKey()));
-        verify(mEntryListener, never()).onEntryRemoved(eq(mEntry), any(), eq(false));
+        verify(mEntryListener, never()).onEntryRemoved(
+                eq(mEntry), any(), eq(false), eq(UNDEFINED_DISMISS_REASON));
     }
 
     @Test
@@ -374,7 +375,8 @@
 
         // THEN the notification is removed
         assertNull(mEntryManager.getActiveNotificationUnfiltered(mSbn.getKey()));
-        verify(mEntryListener).onEntryRemoved(eq(mEntry), any(), eq(false));
+        verify(mEntryListener).onEntryRemoved(
+                eq(mEntry), any(), eq(false), eq(UNDEFINED_DISMISS_REASON));
     }
 
     @Test
@@ -447,7 +449,7 @@
         // THEN the interceptor intercepts & the entry is not removed & no listeners are called
         assertNotNull(mEntryManager.getActiveNotificationUnfiltered(mSbn.getKey()));
         verify(mEntryListener, never()).onEntryRemoved(eq(mEntry),
-                any(NotificationVisibility.class), anyBoolean());
+                any(NotificationVisibility.class), anyBoolean(), eq(UNDEFINED_DISMISS_REASON));
     }
 
     @Test
@@ -466,7 +468,7 @@
         // THEN the interceptor intercepts & the entry is not removed & no listeners are called
         assertNull(mEntryManager.getActiveNotificationUnfiltered(mSbn.getKey()));
         verify(mEntryListener, atLeastOnce()).onEntryRemoved(eq(mEntry),
-                any(NotificationVisibility.class), anyBoolean());
+                any(NotificationVisibility.class), anyBoolean(), eq(UNDEFINED_DISMISS_REASON));
     }
 
     private NotificationEntry createNotification() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationListControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationListControllerTest.java
index 7343e5e..19dd027 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationListControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationListControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.statusbar.notification;
 
+import static com.android.systemui.statusbar.notification.NotificationEntryManager.UNDEFINED_DISMISS_REASON;
+
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.verify;
 
@@ -87,7 +89,8 @@
         mEntryListener.onEntryRemoved(
                 entry,
                 NotificationVisibility.obtain(entry.getKey(), 0, 0, true),
-                false);
+                false,
+                UNDEFINED_DISMISS_REASON);
         verify(mListContainer).cleanUpViewStateForEntry(entry);
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
index d2bb011..92a9080 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
@@ -21,6 +21,7 @@
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.Context;
+import android.content.pm.ShortcutInfo;
 import android.os.UserHandle;
 import android.service.notification.SnoozeCriterion;
 import android.service.notification.StatusBarNotification;
@@ -266,4 +267,9 @@
         mRankingBuilder.setSmartReplies(smartReplies);
         return this;
     }
+
+    public NotificationEntryBuilder setShortcutInfo(ShortcutInfo shortcutInfo) {
+        mRankingBuilder.setShortcutInfo(shortcutInfo);
+        return this;
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
index f37836c..5a6f888 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
@@ -40,6 +40,7 @@
 import dagger.Lazy
 import junit.framework.Assert.assertEquals
 import org.junit.Before
+import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.Mockito.mock
@@ -195,6 +196,7 @@
         assertEquals(listOf(b, a), rankingManager.updateRanking(null, listOf(a, b), "test"))
     }
 
+    @Ignore // TODO: (b/149046729) fix test and re-enable
     @Test
     fun testSort_importantPeople() {
         whenever(sectionsManager.isFilteringEnabled()).thenReturn(true)
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 546fce8..d7c7279 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
@@ -42,6 +42,7 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.dump.DumpManager;
 import com.android.systemui.statusbar.notification.collection.ShadeListBuilder.OnRenderListListener;
+import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeSortListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeTransformGroupsListener;
@@ -84,6 +85,7 @@
     @Mock private NotifCollection mNotifCollection;
     @Spy private OnBeforeTransformGroupsListener mOnBeforeTransformGroupsListener;
     @Spy private OnBeforeSortListener mOnBeforeSortListener;
+    @Spy private OnBeforeFinalizeFilterListener mOnBeforeFinalizeFilterListener;
     @Spy private OnBeforeRenderListListener mOnBeforeRenderListListener;
     @Spy private OnRenderListListener mOnRenderListListener = list -> mBuiltList = list;
 
@@ -387,7 +389,7 @@
         NotifFilter preGroupFilter = spy(new PackageFilter(PACKAGE_2));
         NotifFilter preRenderFilter = spy(new PackageFilter(PACKAGE_2));
         mListBuilder.addPreGroupFilter(preGroupFilter);
-        mListBuilder.addPreRenderFilter(preRenderFilter);
+        mListBuilder.addFinalizeFilter(preRenderFilter);
 
         // WHEN the pipeline is kicked off on a list of notifs
         addNotif(0, PACKAGE_1);
@@ -423,7 +425,7 @@
     public void testPreRenderNotifsAreFiltered() {
         // GIVEN a NotifFilter that filters out a specific package
         NotifFilter filter1 = spy(new PackageFilter(PACKAGE_2));
-        mListBuilder.addPreRenderFilter(filter1);
+        mListBuilder.addFinalizeFilter(filter1);
 
         // WHEN the pipeline is kicked off on a list of notifs
         addNotif(0, PACKAGE_1);
@@ -454,7 +456,7 @@
         final String filterTag = "FILTER_ME";
         // GIVEN a NotifFilter that filters out notifications with a tag
         NotifFilter filter1 = spy(new NotifFilterWithTag(filterTag));
-        mListBuilder.addPreRenderFilter(filter1);
+        mListBuilder.addFinalizeFilter(filter1);
 
         // WHEN the pipeline is kicked off on a list of notifs
         addGroupChildWithTag(0, PACKAGE_2, GROUP_1, filterTag);
@@ -742,8 +744,9 @@
         mListBuilder.addOnBeforeSortListener(mOnBeforeSortListener);
         mListBuilder.setComparators(Collections.singletonList(comparator));
         mListBuilder.setSections(Arrays.asList(section));
+        mListBuilder.addOnBeforeFinalizeFilterListener(mOnBeforeFinalizeFilterListener);
+        mListBuilder.addFinalizeFilter(preRenderFilter);
         mListBuilder.addOnBeforeRenderListListener(mOnBeforeRenderListListener);
-        mListBuilder.addPreRenderFilter(preRenderFilter);
 
         // WHEN a few new notifs are added
         addNotif(0, PACKAGE_1);
@@ -763,6 +766,7 @@
                 mOnBeforeSortListener,
                 section,
                 comparator,
+                mOnBeforeFinalizeFilterListener,
                 preRenderFilter,
                 mOnBeforeRenderListListener,
                 mOnRenderListListener);
@@ -777,6 +781,7 @@
         inOrder.verify(section, atLeastOnce()).isInSection(any(ListEntry.class));
         inOrder.verify(comparator, atLeastOnce())
                 .compare(any(ListEntry.class), any(ListEntry.class));
+        inOrder.verify(mOnBeforeFinalizeFilterListener).onBeforeFinalizeFilter(anyList());
         inOrder.verify(preRenderFilter, atLeastOnce())
                 .shouldFilterOut(any(NotificationEntry.class), anyLong());
         inOrder.verify(mOnBeforeRenderListListener).onBeforeRenderList(anyList());
@@ -1075,7 +1080,7 @@
         // GIVEN a PreRenderNotifFilter that gets invalidated during the finalizing stage
         NotifFilter filter = new PackageFilter(PACKAGE_5);
         OnBeforeRenderListListener listener = (list) -> filter.invalidateList();
-        mListBuilder.addPreRenderFilter(filter);
+        mListBuilder.addFinalizeFilter(filter);
         mListBuilder.addOnBeforeRenderListListener(listener);
 
         // WHEN we try to run the pipeline and the PreRenderFilter is invalidated
@@ -1090,7 +1095,7 @@
         // GIVEN a PreRenderFilter that gets invalidated during the grouping stage
         NotifFilter filter = new PackageFilter(PACKAGE_5);
         OnBeforeTransformGroupsListener listener = (list) -> filter.invalidateList();
-        mListBuilder.addPreRenderFilter(filter);
+        mListBuilder.addFinalizeFilter(filter);
         mListBuilder.addOnBeforeTransformGroupsListener(listener);
 
         // WHEN we try to run the pipeline and the filter is invalidated
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java
index 5866d90..c4f3a16 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java
@@ -88,7 +88,7 @@
 
         ArgumentCaptor<NotifFilter> filterCaptor = ArgumentCaptor.forClass(NotifFilter.class);
         mKeyguardCoordinator.attach(mNotifPipeline);
-        verify(mNotifPipeline, times(1)).addPreRenderFilter(filterCaptor.capture());
+        verify(mNotifPipeline, times(1)).addFinalizeFilter(filterCaptor.capture());
         mKeyguardFilter = filterCaptor.getValue();
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java
index 61a4fbe..792b4d5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java
@@ -16,8 +16,8 @@
 
 package com.android.systemui.statusbar.notification.collection.coordinator;
 
-import static junit.framework.Assert.assertTrue;
-
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
@@ -35,13 +35,16 @@
 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.OnBeforeFinalizeFilterListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
+import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
 import com.android.systemui.statusbar.notification.row.NotifInflationErrorManager;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -54,14 +57,22 @@
     private static final String TEST_MESSAGE = "TEST_MESSAGE";
 
     private PreparationCoordinator mCoordinator;
+    private NotifCollectionListener mCollectionListener;
+    private OnBeforeFinalizeFilterListener mBeforeFilterListener;
+    private NotifFilter mUninflatedFilter;
     private NotifFilter mInflationErrorFilter;
+    private NotifInflaterImpl.InflationCallback mCallback;
     private NotifInflationErrorManager mErrorManager;
     private NotificationEntry mEntry;
     private Exception mInflationError;
 
-    @Mock
-    private NotifPipeline mNotifPipeline;
+    @Captor private ArgumentCaptor<NotifCollectionListener> mCollectionListenerCaptor;
+    @Captor private ArgumentCaptor<OnBeforeFinalizeFilterListener> mBeforeFilterListenerCaptor;
+    @Captor private ArgumentCaptor<NotifInflaterImpl.InflationCallback> mCallbackCaptor;
+
+    @Mock private NotifPipeline mNotifPipeline;
     @Mock private IStatusBarService mService;
+    @Mock private NotifInflaterImpl mNotifInflater;
 
     @Before
     public void setUp() {
@@ -73,15 +84,28 @@
 
         mCoordinator = new PreparationCoordinator(
                 mock(PreparationCoordinatorLogger.class),
-                mock(NotifInflaterImpl.class),
+                mNotifInflater,
                 mErrorManager,
                 mService);
 
         ArgumentCaptor<NotifFilter> filterCaptor = ArgumentCaptor.forClass(NotifFilter.class);
         mCoordinator.attach(mNotifPipeline);
-        verify(mNotifPipeline, times(2)).addPreRenderFilter(filterCaptor.capture());
+        verify(mNotifPipeline, times(2)).addFinalizeFilter(filterCaptor.capture());
         List<NotifFilter> filters = filterCaptor.getAllValues();
         mInflationErrorFilter = filters.get(0);
+        mUninflatedFilter = filters.get(1);
+
+        verify(mNotifPipeline).addCollectionListener(mCollectionListenerCaptor.capture());
+        mCollectionListener = mCollectionListenerCaptor.getValue();
+
+        verify(mNotifPipeline).addOnBeforeFinalizeFilterListener(
+                mBeforeFilterListenerCaptor.capture());
+        mBeforeFilterListener = mBeforeFilterListenerCaptor.getValue();
+
+        verify(mNotifInflater).setInflationCallback(mCallbackCaptor.capture());
+        mCallback = mCallbackCaptor.getValue();
+
+        mCollectionListener.onEntryInit(mEntry);
     }
 
     @Test
@@ -108,4 +132,42 @@
         // THEN we filter it from the notification list.
         assertTrue(mInflationErrorFilter.shouldFilterOut(mEntry, 0));
     }
+
+    @Test
+    public void testInflatesNewNotification() {
+        // WHEN there is a new notification
+        mCollectionListener.onEntryAdded(mEntry);
+        mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
+
+        // THEN we inflate it
+        verify(mNotifInflater).inflateViews(mEntry);
+
+        // THEN we filter it out until it's done inflating.
+        assertTrue(mUninflatedFilter.shouldFilterOut(mEntry, 0));
+    }
+
+    @Test
+    public void testRebindsInflatedNotificationsOnUpdate() {
+        // GIVEN an inflated notification
+        mCallback.onInflationFinished(mEntry);
+
+        // WHEN notification is updated
+        mCollectionListener.onEntryUpdated(mEntry);
+        mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
+
+        // THEN we rebind it
+        verify(mNotifInflater).rebindViews(mEntry);
+
+        // THEN we do not filter it because it's not the first inflation.
+        assertFalse(mUninflatedFilter.shouldFilterOut(mEntry, 0));
+    }
+
+    @Test
+    public void testDoesntFilterInflatedNotifs() {
+        // WHEN a notification is inflated
+        mCallback.onInflationFinished(mEntry);
+
+        // THEN it isn't filtered from shade list
+        assertFalse(mUninflatedFilter.shouldFilterOut(mEntry, 0));
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/people/PeopleHubViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/people/PeopleHubViewControllerTest.kt
index b0ca943..b1288f8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/people/PeopleHubViewControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/people/PeopleHubViewControllerTest.kt
@@ -101,15 +101,13 @@
 
     @Test
     fun testViewModelDataSourceTransformsModel() {
-        val fakeClickIntent = PendingIntent.getActivity(context, 0, Intent("action"), 0)
-        val fakePerson = fakePersonModel("id", "name", fakeClickIntent)
+        val fakeClickRunnable = mock(Runnable::class.java)
+        val fakePerson = fakePersonModel("id", "name", fakeClickRunnable)
         val fakeModel = PeopleHubModel(listOf(fakePerson))
         val fakeModelDataSource = FakeDataSource(fakeModel)
-        val fakeSettingDataSource = FakeDataSource(true)
         val factoryDataSource = PeopleHubViewModelFactoryDataSourceImpl(
                 mockActivityStarter,
-                fakeModelDataSource,
-                fakeSettingDataSource
+                fakeModelDataSource
         )
         val fakeListener = FakeDataListener<PeopleHubViewModelFactory>()
         val mockClickView = mock(View::class.java)
@@ -126,35 +124,7 @@
 
         people[0].onClick()
 
-        verify(mockActivityStarter).startPendingIntentDismissingKeyguard(
-                same(fakeClickIntent),
-                any(),
-                same(mockClickView)
-        )
-    }
-
-    @Test
-    fun testViewModelDataSource_notVisibleIfSettingDisabled() {
-        val fakeClickIntent = PendingIntent.getActivity(context, 0, Intent("action"), 0)
-        val fakePerson = fakePersonModel("id", "name", fakeClickIntent)
-        val fakeModel = PeopleHubModel(listOf(fakePerson))
-        val fakeModelDataSource = FakeDataSource(fakeModel)
-        val fakeSettingDataSource = FakeDataSource(false)
-        val factoryDataSource = PeopleHubViewModelFactoryDataSourceImpl(
-                mockActivityStarter,
-                fakeModelDataSource,
-                fakeSettingDataSource
-        )
-        val fakeListener = FakeDataListener<PeopleHubViewModelFactory>()
-        val mockClickView = mock(View::class.java)
-
-        factoryDataSource.registerListener(fakeListener)
-
-        val viewModel = (fakeListener.lastSeen as Maybe.Just).value
-                .createWithAssociatedClickView(mockClickView)
-        assertThat(viewModel.isVisible).isFalse()
-        val people = viewModel.people.toList()
-        assertThat(people.size).isEqualTo(0)
+        verify(fakeClickRunnable).run()
     }
 }
 
@@ -178,10 +148,10 @@
 private fun fakePersonModel(
     id: String,
     name: CharSequence,
-    clickIntent: PendingIntent,
+    clickRunnable: Runnable,
     userId: Int = 0
 ): PersonModel =
-        PersonModel(id, name, mock(Drawable::class.java), clickIntent, userId)
+        PersonModel(id, name, mock(Drawable::class.java), clickRunnable, userId)
 
 private fun fakePersonViewModel(name: CharSequence): PersonViewModel =
         PersonViewModel(name, mock(Drawable::class.java), mock({}.javaClass))
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
index 138ea39..e1ab33a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
@@ -30,6 +30,7 @@
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.anyInt;
 import static org.mockito.Mockito.anyString;
@@ -53,8 +54,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ShortcutInfo;
 import android.content.pm.ShortcutManager;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Icon;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -117,7 +117,7 @@
     @Mock
     private ShortcutInfo mShortcutInfo;
     @Mock
-    private Bitmap mImage;
+    private Drawable mIconDrawable;
 
     @Rule
     public MockitoRule mockito = MockitoJUnit.rule();
@@ -183,8 +183,9 @@
         when(mShortcutInfo.getShortLabel()).thenReturn("Convo name");
         List<ShortcutInfo> shortcuts = Arrays.asList(mShortcutInfo);
         when(mLauncherApps.getShortcuts(any(), any())).thenReturn(shortcuts);
-        when(mIconFactory.getConversationBitmap(any(ShortcutInfo.class), anyString(), anyInt()))
-                .thenReturn(mImage);
+        when(mIconFactory.getConversationDrawable(
+                any(ShortcutInfo.class), anyString(), anyInt(), anyBoolean()))
+                .thenReturn(mIconDrawable);
 
         mNotificationChannel = new NotificationChannel(
                 TEST_CHANNEL, TEST_CHANNEL_NAME, IMPORTANCE_LOW);
@@ -197,7 +198,7 @@
                 .build();
         mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID, 0,
                 notification, UserHandle.CURRENT, null, 0);
-        mEntry = new NotificationEntryBuilder().setSbn(mSbn).build();
+        mEntry = new NotificationEntryBuilder().setSbn(mSbn).setShortcutInfo(mShortcutInfo).build();
 
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0,
                 new Intent(mContext, BubblesTestActivity.class), 0);
@@ -206,7 +207,10 @@
                         .createIntentBubble(bubbleIntent,
                                 Icon.createWithResource(mContext, R.drawable.android)).build())
                 .build();
-        mBubbleEntry = new NotificationEntryBuilder().setSbn(mBubbleSbn).build();
+        mBubbleEntry = new NotificationEntryBuilder()
+                .setSbn(mBubbleSbn)
+                .setShortcutInfo(mShortcutInfo)
+                .build();
 
         mConversationChannel = new NotificationChannel(
                 TEST_CHANNEL + " : " + CONVERSATION_ID, TEST_CHANNEL_NAME, IMPORTANCE_LOW);
@@ -233,7 +237,7 @@
                 mIconFactory,
                 true);
         final ImageView view = mNotificationInfo.findViewById(R.id.conversation_icon);
-        assertEquals(mImage, ((BitmapDrawable) view.getDrawable()).getBitmap());
+        assertEquals(mIconDrawable, view.getDrawable());
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java
index ac40808..2c9fd2c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java
@@ -64,7 +64,6 @@
 import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider;
 import com.android.systemui.statusbar.notification.logging.NotificationLogger;
 import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
-import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
 import com.android.systemui.statusbar.notification.row.dagger.ExpandableNotificationRowComponent;
 import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
@@ -85,6 +84,8 @@
 import org.mockito.MockitoAnnotations;
 import org.mockito.stubbing.Answer;
 
+import java.util.concurrent.CountDownLatch;
+
 /**
  * Functional tests for notification inflation from {@link NotificationEntryManager}.
  */
@@ -130,6 +131,7 @@
     private NotificationEntryManager mEntryManager;
     private NotificationRowBinderImpl mRowBinder;
     private Handler mHandler;
+    private CountDownLatch mCountDownLatch;
 
     @Before
     public void setUp() {
@@ -281,7 +283,8 @@
                 null,
                 false,
                 false,
-                false);
+                false,
+                null);
         mRankingMap = new NotificationListenerService.RankingMap(new Ranking[] {ranking});
 
         TestableLooper.get(this).processAllMessages();
@@ -302,9 +305,7 @@
         verify(mEntryListener).onPendingEntryAdded(entryCaptor.capture());
         NotificationEntry entry = entryCaptor.getValue();
 
-        // Wait for inflation
-        // row inflation, system notification, remote views, contracted view
-        waitForMessages(4);
+        waitForInflation();
 
         // THEN the notification has its row inflated
         assertNotNull(entry.getRow());
@@ -331,7 +332,7 @@
                 NotificationEntry.class);
         verify(mEntryListener).onPendingEntryAdded(entryCaptor.capture());
         NotificationEntry entry = entryCaptor.getValue();
-        waitForMessages(4);
+        waitForInflation();
 
         Mockito.reset(mEntryListener);
         Mockito.reset(mPresenter);
@@ -339,9 +340,7 @@
         // WHEN the notification is updated
         mEntryManager.updateNotification(mSbn, mRankingMap);
 
-        // Wait for inflation
-        // remote views, contracted view
-        waitForMessages(2);
+        waitForInflation();
 
         // THEN the notification has its row and inflated
         assertNotNull(entry.getRow());
@@ -354,32 +353,31 @@
         verify(mPresenter).updateNotificationViews();
     }
 
-    /**
-     * Wait for a certain number of messages to finish before continuing, timing out if they never
-     * occur.
-     *
-     * As part of the inflation pipeline, the main thread is forced to deal with several callbacks
-     * due to the nature of the API used (generally because they're {@link android.os.AsyncTask}
-     * callbacks). In order, these are
-     *
-     * 1) Callback after row inflation. See {@link RowInflaterTask}.
-     * 2) Callback checking if row is system notification. See
-     *    {@link ExpandableNotificationRow#setEntry}
-     * 3) Callback after remote views are created. See
-     *    {@link NotificationContentInflater.AsyncInflationTask}.
-     * 4-6) Callback after each content view is inflated/rebound from remote view. See
-     *      {@link NotificationContentInflater#applyRemoteView} and {@link InflationFlag}.
-     *
-     * Depending on the test, only some of these will be necessary. For example, generally, not
-     * every content view is inflated or the row may not be inflated if one already exists.
-     *
-     * Currently, the burden is on the developer to figure these out until we have a much more
-     * test-friendly way of executing inflation logic (i.e. pass in an executor).
-     */
-    private void waitForMessages(int numMessages) {
+    private void waitForInflation() {
         mHandler.postDelayed(TIMEOUT_RUNNABLE, TIMEOUT_TIME);
-        TestableLooper.get(this).processMessages(numMessages);
+        final CountDownLatch latch = new CountDownLatch(1);
+        NotificationEntryListener inflationListener = new NotificationEntryListener() {
+            @Override
+            public void onEntryInflated(NotificationEntry entry) {
+                latch.countDown();
+            }
+
+            @Override
+            public void onEntryReinflated(NotificationEntry entry) {
+                latch.countDown();
+            }
+
+            @Override
+            public void onInflationError(StatusBarNotification notification, Exception exception) {
+                latch.countDown();
+            }
+        };
+        mEntryManager.addNotificationEntryListener(inflationListener);
+        while (latch.getCount() != 0) {
+            TestableLooper.get(this).processMessages(1);
+        }
         mHandler.removeCallbacks(TIMEOUT_RUNNABLE);
+        mEntryManager.removeNotificationEntryListener(inflationListener);
     }
 
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java
index abfbcd9..c64dd09 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java
@@ -19,6 +19,8 @@
 import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
 
 import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_ALERTING;
+import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_HEADS_UP;
+import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_PEOPLE;
 import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_SILENT;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -107,7 +109,7 @@
     @Test
     public void testInsertHeader() {
         // GIVEN a stack with HI and LO rows but no section headers
-        setStackState(ChildType.HIPRI, ChildType.HIPRI, ChildType.HIPRI, ChildType.LOPRI);
+        setStackState(ChildType.ALERTING, ChildType.ALERTING, ChildType.ALERTING, ChildType.GENTLE);
 
         // WHEN we update the section headers
         mSectionsManager.updateSectionBoundaries();
@@ -119,11 +121,15 @@
     @Test
     public void testRemoveHeader() {
         // GIVEN a stack that originally had a header between the HI and LO sections
-        setStackState(ChildType.HIPRI, ChildType.HIPRI, ChildType.LOPRI);
+        setStackState(ChildType.ALERTING, ChildType.ALERTING, ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
 
         // WHEN the last LO row is replaced with a HI row
-        setStackState(ChildType.HIPRI, ChildType.HIPRI, ChildType.HEADER, ChildType.HIPRI);
+        setStackState(
+                ChildType.ALERTING,
+                ChildType.ALERTING,
+                ChildType.GENTLE_HEADER,
+                ChildType.ALERTING);
         clearInvocations(mNssl);
         mSectionsManager.updateSectionBoundaries();
 
@@ -134,7 +140,7 @@
     @Test
     public void testDoNothingIfHeaderAlreadyRemoved() {
         // GIVEN a stack with only HI rows
-        setStackState(ChildType.HIPRI, ChildType.HIPRI, ChildType.HIPRI);
+        setStackState(ChildType.ALERTING, ChildType.ALERTING, ChildType.ALERTING);
 
         // WHEN we update the sections headers
         mSectionsManager.updateSectionBoundaries();
@@ -147,19 +153,19 @@
     public void testMoveHeaderForward() {
         // GIVEN a stack that originally had a header between the HI and LO sections
         setStackState(
-                ChildType.HIPRI,
-                ChildType.HIPRI,
-                ChildType.HIPRI,
-                ChildType.LOPRI);
+                ChildType.ALERTING,
+                ChildType.ALERTING,
+                ChildType.ALERTING,
+                ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
 
         // WHEN the LO section moves forward
         setStackState(
-                ChildType.HIPRI,
-                ChildType.HIPRI,
-                ChildType.LOPRI,
-                ChildType.HEADER,
-                ChildType.LOPRI);
+                ChildType.ALERTING,
+                ChildType.ALERTING,
+                ChildType.GENTLE,
+                ChildType.GENTLE_HEADER,
+                ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
 
         // THEN the LO section header is also moved forward
@@ -170,19 +176,19 @@
     public void testMoveHeaderBackward() {
         // GIVEN a stack that originally had a header between the HI and LO sections
         setStackState(
-                ChildType.HIPRI,
-                ChildType.LOPRI,
-                ChildType.LOPRI,
-                ChildType.LOPRI);
+                ChildType.ALERTING,
+                ChildType.GENTLE,
+                ChildType.GENTLE,
+                ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
 
         // WHEN the LO section moves backward
         setStackState(
-                ChildType.HIPRI,
-                ChildType.HEADER,
-                ChildType.HIPRI,
-                ChildType.HIPRI,
-                ChildType.LOPRI);
+                ChildType.ALERTING,
+                ChildType.GENTLE_HEADER,
+                ChildType.ALERTING,
+                ChildType.ALERTING,
+                ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
 
         // THEN the LO section header is also moved backward (with appropriate index shifting)
@@ -193,14 +199,14 @@
     public void testHeaderRemovedFromTransientParent() {
         // GIVEN a stack where the header is animating away
         setStackState(
-                ChildType.HIPRI,
-                ChildType.LOPRI,
-                ChildType.LOPRI,
-                ChildType.LOPRI);
+                ChildType.ALERTING,
+                ChildType.GENTLE,
+                ChildType.GENTLE,
+                ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
         setStackState(
-                ChildType.HIPRI,
-                ChildType.HEADER);
+                ChildType.ALERTING,
+                ChildType.GENTLE_HEADER);
         mSectionsManager.updateSectionBoundaries();
         clearInvocations(mNssl);
 
@@ -209,8 +215,8 @@
 
         // WHEN the LO section reappears
         setStackState(
-                ChildType.HIPRI,
-                ChildType.LOPRI);
+                ChildType.ALERTING,
+                ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
 
         // THEN the header is first removed from the transient parent before being added to the
@@ -223,7 +229,7 @@
     public void testHeaderNotShownOnLockscreen() {
         // GIVEN a stack of HI and LO notifs on the lockscreen
         when(mStatusBarStateController.getState()).thenReturn(StatusBarState.KEYGUARD);
-        setStackState(ChildType.HIPRI, ChildType.HIPRI, ChildType.HIPRI, ChildType.LOPRI);
+        setStackState(ChildType.ALERTING, ChildType.ALERTING, ChildType.ALERTING, ChildType.GENTLE);
 
         // WHEN we update the section headers
         mSectionsManager.updateSectionBoundaries();
@@ -236,7 +242,7 @@
     public void testHeaderShownWhenEnterLockscreen() {
         // GIVEN a stack of HI and LO notifs on the lockscreen
         when(mStatusBarStateController.getState()).thenReturn(StatusBarState.KEYGUARD);
-        setStackState(ChildType.HIPRI, ChildType.HIPRI, ChildType.HIPRI, ChildType.LOPRI);
+        setStackState(ChildType.ALERTING, ChildType.ALERTING, ChildType.ALERTING, ChildType.GENTLE);
         mSectionsManager.updateSectionBoundaries();
 
         // WHEN we unlock
@@ -250,37 +256,104 @@
     @Test
     public void testHeaderHiddenWhenEnterLockscreen() {
         // GIVEN a stack of HI and LO notifs on the shade
-        when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE_LOCKED);
-        setStackState(ChildType.HIPRI, ChildType.HIPRI, ChildType.HIPRI, ChildType.LOPRI);
-        mSectionsManager.updateSectionBoundaries();
+        setStackState(ChildType.ALERTING, ChildType.GENTLE_HEADER, ChildType.GENTLE);
 
         // WHEN we go back to the keyguard
         when(mStatusBarStateController.getState()).thenReturn(StatusBarState.KEYGUARD);
         mSectionsManager.updateSectionBoundaries();
 
         // Then the section header is removed
-        verify(mNssl).removeView(eq(mSectionsManager.getGentleHeaderView()));
+        verify(mNssl).removeView(mSectionsManager.getGentleHeaderView());
     }
 
-    private enum ChildType { HEADER, HIPRI, LOPRI }
+    @Test
+    public void testPeopleFiltering_addHeadersFromShowingOnlyGentle() {
+        enablePeopleFiltering();
+
+        setStackState(
+                ChildType.GENTLE_HEADER,
+                ChildType.PERSON,
+                ChildType.ALERTING,
+                ChildType.GENTLE);
+        mSectionsManager.updateSectionBoundaries();
+
+        verify(mNssl).changeViewPosition(mSectionsManager.getGentleHeaderView(), 2);
+        verify(mNssl).addView(mSectionsManager.getAlertingHeaderView(), 1);
+        verify(mNssl).addView(mSectionsManager.getPeopleHeaderView(), 0);
+    }
+
+    @Test
+    public void testPeopleFiltering_addAllHeaders() {
+        enablePeopleFiltering();
+
+        setStackState(
+                ChildType.PERSON,
+                ChildType.ALERTING,
+                ChildType.GENTLE);
+        mSectionsManager.updateSectionBoundaries();
+
+        verify(mNssl).addView(mSectionsManager.getGentleHeaderView(), 2);
+        verify(mNssl).addView(mSectionsManager.getAlertingHeaderView(), 1);
+        verify(mNssl).addView(mSectionsManager.getPeopleHeaderView(), 0);
+    }
+
+    @Test
+    public void testPeopleFiltering_moveAllHeaders() {
+        enablePeopleFiltering();
+
+        setStackState(
+                ChildType.PEOPLE_HEADER,
+                ChildType.ALERTING_HEADER,
+                ChildType.GENTLE_HEADER,
+                ChildType.PERSON,
+                ChildType.ALERTING,
+                ChildType.GENTLE);
+        mSectionsManager.updateSectionBoundaries();
+
+        verify(mNssl).changeViewPosition(mSectionsManager.getGentleHeaderView(), 4);
+        verify(mNssl).changeViewPosition(mSectionsManager.getAlertingHeaderView(), 2);
+        verify(mNssl).changeViewPosition(mSectionsManager.getPeopleHeaderView(), 0);
+    }
+
+    private void enablePeopleFiltering() {
+        when(mSectionsFeatureManager.isFilteringEnabled()).thenReturn(true);
+        when(mSectionsFeatureManager.getNumberOfBuckets()).thenReturn(4);
+    }
+
+    private enum ChildType {
+        PEOPLE_HEADER, ALERTING_HEADER, GENTLE_HEADER, HEADS_UP, PERSON, ALERTING, GENTLE, OTHER
+    }
 
     private void setStackState(ChildType... children) {
         when(mNssl.getChildCount()).thenReturn(children.length);
         for (int i = 0; i < children.length; i++) {
             View child;
             switch (children[i]) {
-                case HEADER:
+                case PEOPLE_HEADER:
+                    child = mSectionsManager.getPeopleHeaderView();
+                    break;
+                case ALERTING_HEADER:
+                    child = mSectionsManager.getAlertingHeaderView();
+                    break;
+                case GENTLE_HEADER:
                     child = mSectionsManager.getGentleHeaderView();
                     break;
-                case HIPRI:
-                case LOPRI:
-                    ExpandableNotificationRow notifRow = mock(ExpandableNotificationRow.class,
-                            RETURNS_DEEP_STUBS);
-                    when(notifRow.getVisibility()).thenReturn(View.VISIBLE);
-                    when(notifRow.getEntry().getBucket()).thenReturn(
-                            children[i] == ChildType.HIPRI ? BUCKET_ALERTING : BUCKET_SILENT);
-                    when(notifRow.getParent()).thenReturn(mNssl);
-                    child = notifRow;
+                case HEADS_UP:
+                    child = mockNotification(BUCKET_HEADS_UP);
+                    break;
+                case PERSON:
+                    child = mockNotification(BUCKET_PEOPLE);
+                    break;
+                case ALERTING:
+                    child = mockNotification(BUCKET_ALERTING);
+                    break;
+                case GENTLE:
+                    child = mockNotification(BUCKET_SILENT);
+                    break;
+                case OTHER:
+                    child = mock(View.class);
+                    when(child.getVisibility()).thenReturn(View.VISIBLE);
+                    when(child.getParent()).thenReturn(mNssl);
                     break;
                 default:
                     throw new RuntimeException("Unknown ChildType: " + children[i]);
@@ -289,4 +362,13 @@
             when(mNssl.indexOfChild(child)).thenReturn(i);
         }
     }
+
+    private View mockNotification(int bucket) {
+        ExpandableNotificationRow notifRow = mock(ExpandableNotificationRow.class,
+                RETURNS_DEEP_STUBS);
+        when(notifRow.getVisibility()).thenReturn(View.VISIBLE);
+        when(notifRow.getEntry().getBucket()).thenReturn(bucket);
+        when(notifRow.getParent()).thenReturn(mNssl);
+        return notifRow;
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java
index d8d6018..bfcf41d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java
@@ -48,6 +48,7 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -325,11 +326,13 @@
         mBiometricUnlockController.onFinishedGoingToSleep(-1);
         verify(mHandler, never()).post(any());
 
+        ArgumentCaptor<Runnable> captor = ArgumentCaptor.forClass(Runnable.class);
         // the value of isStrongBiometric doesn't matter here since we only care about the returned
         // value of isUnlockingWithBiometricAllowed()
         mBiometricUnlockController.onBiometricAuthenticated(1 /* userId */,
                 BiometricSourceType.FACE, true /* isStrongBiometric */);
         mBiometricUnlockController.onFinishedGoingToSleep(-1);
-        verify(mHandler).post(any());
+        verify(mHandler).post(captor.capture());
+        captor.getValue().run();
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java
index 3d59d61..dbb4512 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar.phone;
 
+import static android.service.notification.NotificationListenerService.REASON_CANCEL_ALL;
 import static android.view.WindowInsetsController.APPEARANCE_LOW_PROFILE_BARS;
 
 import static junit.framework.Assert.assertFalse;
@@ -205,7 +206,8 @@
         // WHEN all active notifications are removed
         when(mEntryManager.hasActiveNotifications()).thenReturn(false);
         assertFalse(mLightsOutNotifController.shouldShowDot());
-        mEntryListener.onEntryRemoved(mock(NotificationEntry.class), null, false);
+        mEntryListener.onEntryRemoved(
+                mock(NotificationEntry.class), null, false, REASON_CANCEL_ALL);
 
         // THEN we shouldn't see the dot view
         assertIsShowingDot(false);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
new file mode 100644
index 0000000..05f10e3
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.phone;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.view.View;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.keyguard.KeyguardUpdateMonitor;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.statusbar.KeyguardIndicationController;
+import com.android.systemui.statusbar.policy.AccessibilityController;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class LockscreenIconControllerTest extends SysuiTestCase {
+    private LockscreenLockIconController mLockIconController;
+    @Mock
+    private LockscreenGestureLogger mLockscreenGestureLogger;
+    @Mock
+    private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+    @Mock
+    private LockPatternUtils mLockPatternUtils;
+    @Mock
+    private ShadeController mShadeController;
+    @Mock
+    private AccessibilityController mAccessibilityController;
+    @Mock
+    private KeyguardIndicationController mKeyguardIndicationController;
+    @Mock
+    private LockIcon mLockIcon; // TODO: make this not a mock once inject is removed.
+    @Mock
+    private StatusBarStateController mStatusBarStateController;
+    @Mock
+    private ConfigurationController mConfigurationController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mLockIconController = new LockscreenLockIconController(
+                mLockscreenGestureLogger, mKeyguardUpdateMonitor, mLockPatternUtils,
+                mShadeController, mAccessibilityController, mKeyguardIndicationController,
+                mStatusBarStateController, mConfigurationController);
+
+        mLockIconController.attach(mLockIcon);
+    }
+
+    @Test
+    public void lockIcon_click() {
+        ArgumentCaptor<View.OnLongClickListener> longClickCaptor = ArgumentCaptor.forClass(
+                View.OnLongClickListener.class);
+        ArgumentCaptor<View.OnClickListener> clickCaptor = ArgumentCaptor.forClass(
+                View.OnClickListener.class);
+
+        // TODO: once we use a real LockIcon instead of a mock, remove all this.
+        verify(mLockIcon).setOnLongClickListener(longClickCaptor.capture());
+        verify(mLockIcon).setOnClickListener(clickCaptor.capture());
+
+        when(mAccessibilityController.isAccessibilityEnabled()).thenReturn(true);
+        clickCaptor.getValue().onClick(new View(mContext));
+        verify(mShadeController).animateCollapsePanels(anyInt(), eq(true));
+
+        longClickCaptor.getValue().onLongClick(new View(mContext));
+        verify(mLockPatternUtils).requireCredentialEntry(anyInt());
+        verify(mKeyguardUpdateMonitor).onLockIconPressed();
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
index 8f645b6..9aa0fdd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
@@ -70,6 +70,7 @@
 import com.android.systemui.recents.Recents;
 import com.android.systemui.stackdivider.Divider;
 import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
 
@@ -255,6 +256,7 @@
                 Optional.of(mRecents),
                 () -> mock(StatusBar.class),
                 mock(ShadeController.class),
+                mock(NotificationRemoteInputManager.class),
                 mHandler);
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
index e171a28..f6a099d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar.phone;
 
+import static com.android.systemui.statusbar.notification.NotificationEntryManager.UNDEFINED_DISMISS_REASON;
 import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
 
 import static org.junit.Assert.assertFalse;
@@ -254,7 +255,8 @@
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
 
-        mNotificationEntryListener.onEntryRemoved(childEntry, null, false);
+        mNotificationEntryListener.onEntryRemoved(
+                childEntry, null, false, UNDEFINED_DISMISS_REASON);
 
         assertFalse(mGroupAlertTransferHelper.isAlertTransferPending(childEntry));
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index 5253e2ca..0d7734e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -402,6 +402,7 @@
                 mExtensionController,
                 mUserInfoControllerImpl,
                 mPhoneStatusBarPolicy,
+                mKeyguardIndicationController,
                 mDismissCallbackRegistry,
                 mStatusBarTouchableRegionManager);
 
@@ -858,6 +859,18 @@
                 any(UserHandle.class));
     }
 
+    @Test
+    public void testSuppressAmbientDisplay_suppress() {
+        mStatusBar.suppressAmbientDisplay(true);
+        verify(mDozeServiceHost).setDozeSuppressed(true);
+    }
+
+    @Test
+    public void testSuppressAmbientDisplay_unsuppress() {
+        mStatusBar.suppressAmbientDisplay(false);
+        verify(mDozeServiceHost).setDozeSuppressed(false);
+    }
+
     public static class TestableNotificationInterruptionStateProvider extends
             NotificationInterruptionStateProvider {
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java b/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java
index d58f2c9..bc3a5b1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java
@@ -105,6 +105,33 @@
         assertThat(windowParams.packageName).isEqualTo(mContext.getPackageName());
         assertThat(windowParams.getTitle()).isEqualTo("Toast");
         assertThat(windowParams.token).isEqualTo(WINDOW_TOKEN_1);
+        assertThat(windowParams.privateFlags
+                & WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS).isEqualTo(0);
+    }
+
+    @Test
+    public void testShowToast_forAndroidPackage_addsAllUserFlag() throws Exception {
+        mToastUI.showToast("android", TOKEN_1, TEXT, WINDOW_TOKEN_1, Toast.LENGTH_LONG, null);
+
+        verify(mWindowManager).addView(any(), mParamsCaptor.capture());
+        ViewGroup.LayoutParams params = mParamsCaptor.getValue();
+        assertThat(params).isInstanceOf(WindowManager.LayoutParams.class);
+        WindowManager.LayoutParams windowParams = (WindowManager.LayoutParams) params;
+        assertThat(windowParams.privateFlags
+                & WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS).isNotEqualTo(0);
+    }
+
+    @Test
+    public void testShowToast_forSystemUiPackage_addsAllUserFlag() throws Exception {
+        mToastUI.showToast("com.android.systemui", TOKEN_1, TEXT, WINDOW_TOKEN_1, Toast.LENGTH_LONG,
+                null);
+
+        verify(mWindowManager).addView(any(), mParamsCaptor.capture());
+        ViewGroup.LayoutParams params = mParamsCaptor.getValue();
+        assertThat(params).isInstanceOf(WindowManager.LayoutParams.class);
+        WindowManager.LayoutParams windowParams = (WindowManager.LayoutParams) params;
+        assertThat(windowParams.privateFlags
+                & WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS).isNotEqualTo(0);
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/animation/PhysicsAnimatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/animation/PhysicsAnimatorTest.kt
index 3f3f4d1..950f70f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/util/animation/PhysicsAnimatorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/animation/PhysicsAnimatorTest.kt
@@ -279,6 +279,7 @@
 
     @Test
     @Throws(InterruptedException::class)
+    @Ignore("Sporadically flaking.")
     fun testAnimationsUpdatedWhileInMotion_originalListenersStillCalled() {
         PhysicsAnimatorTestUtils.setAllAnimationsBlock(false)
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockFake.java b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockFake.java
index ef20df2..553b8a42 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockFake.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockFake.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.util.wakelock;
 
+import android.content.Context;
+
 import com.android.internal.util.Preconditions;
 
 public class WakeLockFake implements WakeLock {
@@ -48,4 +50,24 @@
     public boolean isHeld() {
         return mAcquired > 0;
     }
+
+    public static class Builder extends WakeLock.Builder {
+        private WakeLock mWakeLock;
+
+        public Builder(Context context) {
+            super(context);
+        }
+
+        public void setWakeLock(WakeLock wakeLock) {
+            mWakeLock = wakeLock;
+        }
+
+        public WakeLock build() {
+            if (mWakeLock != null) {
+                return mWakeLock;
+            }
+
+            return super.build();
+        }
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java
index 80aa6f6..8cc83dd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java
@@ -29,6 +29,7 @@
 import android.media.AudioManager;
 import android.media.session.MediaSession;
 import android.os.Handler;
+import android.os.Process;
 import android.testing.AndroidTestingRunner;
 
 import androidx.test.filters.SmallTest;
@@ -116,13 +117,13 @@
 
     @Test
     public void testOnRemoteVolumeChanged_newStream_noNullPointer() {
-        MediaSession.Token token = new MediaSession.Token(null);
+        MediaSession.Token token = new MediaSession.Token(Process.myUid(), null);
         mVolumeController.mMediaSessionsCallbacksW.onRemoteVolumeChanged(token, 0);
     }
 
     @Test
     public void testOnRemoteRemove_newStream_noNullPointer() {
-        MediaSession.Token token = new MediaSession.Token(null);
+        MediaSession.Token token = new MediaSession.Token(Process.myUid(), null);
         mVolumeController.mMediaSessionsCallbacksW.onRemoteRemoved(token);
     }
 
diff --git a/packages/Tethering/apex/Android.bp b/packages/Tethering/apex/Android.bp
index 94ef11c..96a4d20 100644
--- a/packages/Tethering/apex/Android.bp
+++ b/packages/Tethering/apex/Android.bp
@@ -16,6 +16,7 @@
 
 apex {
     name: "com.android.tethering",
+    updatable: true,
     java_libs: ["framework-tethering"],
     apps: ["Tethering"],
     manifest: "manifest.json",
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ar/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ar/strings.xml
new file mode 100644
index 0000000..307bf70
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ar/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"حواف منحنية"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-bn/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-bn/strings.xml
new file mode 100644
index 0000000..565f75e
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-bn/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"ওয়াটারফল কাট-আউট"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-bs/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-bs/strings.xml
index c9cff08..594999f 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-bs/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-bs/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Urez vodopada"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Izrezani vodopad"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-eu/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-eu/strings.xml
new file mode 100644
index 0000000..93ef2c8
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-eu/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Ur-jauzi moduko mozketa"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-fr-rCA/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..7232c33
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-fr-rCA/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Encoche en cascade"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-gu/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-gu/strings.xml
new file mode 100644
index 0000000..03672fe
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-gu/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"વૉટરફૉલ કટઆઉટ"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-hi/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-hi/strings.xml
new file mode 100644
index 0000000..319d81a
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-hi/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"वॉटरफ़ॉल कटआउट"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-it/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-it/strings.xml
index dde9914..3ea14c5 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-it/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-it/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Ritaglio a cascata"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Curvatura Waterfall"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-iw/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-iw/strings.xml
index f71a879..5dbce7e 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-iw/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-iw/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"מגרעת מפל"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"שוליים מעוגלים"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ja/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ja/strings.xml
index 354ce59..4db0149 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ja/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ja/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"ウォーターフォールのカットアウト"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"エッジ スクリーン"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-kk/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-kk/strings.xml
new file mode 100644
index 0000000..bb0dfe9
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-kk/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Сарқырама ойығы"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-km/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-km/strings.xml
index 8d2f887..b73ccbb 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-km/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-km/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"អេក្រង់​គ្មានគែម"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"គែមកោង"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ky/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ky/strings.xml
new file mode 100644
index 0000000..18e2083
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ky/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Шаркыратманы кесүү"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-mk/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-mk/strings.xml
index f39584b..a330a35 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-mk/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-mk/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Исечок во вид на водопад"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Прекин за Waterfall"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ml/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ml/strings.xml
new file mode 100644
index 0000000..112562d
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ml/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"വെള്ളച്ചാട്ട കട്ടൗട്ട്"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt-rBR/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt-rBR/strings.xml
index f80fcad..3ead3c2 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt-rBR/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt-rBR/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Recorte de cascata"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Design cachoeira"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt/strings.xml
index f80fcad..3ead3c2 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-pt/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Recorte de cascata"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Design cachoeira"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ta/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ta/strings.xml
new file mode 100644
index 0000000..85d32c3
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-ta/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2020 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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"வாட்டர்ஃபால் கட்அவுட்"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-th/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-th/strings.xml
index 6c39a7f..e9b5e1f 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-th/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-th/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"คัตเอาท์ Waterfall"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"ขอบจอโค้ง"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-vi/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-vi/strings.xml
index 2fff027..a063e8f 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-vi/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-vi/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Vết cắt trên thác nước"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"Vết cắt thác nước"</string>
 </resources>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-zh-rTW/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-zh-rTW/strings.xml
index 109b61c..56144e5 100644
--- a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-zh-rTW/strings.xml
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-zh-rTW/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"瀑布裁剪圖片"</string>
+    <string name="display_cutout_emulation_overlay" msgid="3523556473422419323">"瀑布螢幕凹口"</string>
 </resources>
diff --git a/packages/overlays/IconShapeFlowerOverlay/Android.mk b/packages/overlays/IconShapeFlowerOverlay/Android.mk
new file mode 100644
index 0000000..d410bb7
--- /dev/null
+++ b/packages/overlays/IconShapeFlowerOverlay/Android.mk
@@ -0,0 +1,29 @@
+#
+#  Copyright 2020, 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.
+#
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_RRO_THEME := IconShapeFlower
+
+LOCAL_PRODUCT_MODULE := true
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+
+LOCAL_PACKAGE_NAME := IconShapeFlowerOverlay
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_RRO_PACKAGE)
diff --git a/packages/overlays/IconShapeFlowerOverlay/AndroidManifest.xml b/packages/overlays/IconShapeFlowerOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..9d20c6b
--- /dev/null
+++ b/packages/overlays/IconShapeFlowerOverlay/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.android.theme.icon.flower"
+          android:versionCode="1"
+          android:versionName="1.0">
+    <overlay
+        android:targetPackage="android"
+        android:category="android.theme.customization.adaptive_icon_shape"
+        android:priority="1"/>
+
+    <application android:label="@string/icon_shape_flower_overlay" android:hasCode="false"/>
+</manifest>
diff --git a/packages/overlays/IconShapeFlowerOverlay/res/values/config.xml b/packages/overlays/IconShapeFlowerOverlay/res/values/config.xml
new file mode 100644
index 0000000..73f4f21
--- /dev/null
+++ b/packages/overlays/IconShapeFlowerOverlay/res/values/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Specifies the path that is used by AdaptiveIconDrawable class to crop launcher icons. -->
+    <string name="config_icon_mask" translatable="false">"M50,0 C60.6,0 69.9,5.3 75.6,13.5 78.5,17.8 82.3,21.5 86.6,24.5 94.7,30.1 100,39.4 100,50 100,60.6 94.7,69.9 86.5,75.6 82.2,78.5 78.5,82.3 75.5,86.6 69.9,94.7 60.6,100 50,100 39.4,100 30.1,94.7 24.4,86.5 21.5,82.2 17.7,78.5 13.4,75.5 5.3,69.9 0,60.6 0,50 0,39.4 5.3,30.1 13.5,24.4 17.8,21.5 21.5,17.7 24.5,13.4 30.1,5.3 39.4,0 50,0 Z"</string>
+    <!-- Flag indicating whether round icons should be parsed from the application manifest. -->
+    <bool name="config_useRoundIcon">false</bool>
+    <!-- Corner radius of system dialogs -->
+    <dimen name="config_dialogCornerRadius">8dp</dimen>
+    <!-- Corner radius for bottom sheet system dialogs -->
+    <dimen name="config_bottomDialogCornerRadius">16dp</dimen>
+
+</resources>
diff --git a/packages/overlays/IconShapeFlowerOverlay/res/values/strings.xml b/packages/overlays/IconShapeFlowerOverlay/res/values/strings.xml
new file mode 100644
index 0000000..47c1479
--- /dev/null
+++ b/packages/overlays/IconShapeFlowerOverlay/res/values/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Flower icon overlay -->
+    <string name="icon_shape_flower_overlay" translatable="false">Flower</string>
+
+</resources>
diff --git a/packages/overlays/IconShapeHexagonOverlay/Android.mk b/packages/overlays/IconShapeHexagonOverlay/Android.mk
new file mode 100644
index 0000000..16ef399
--- /dev/null
+++ b/packages/overlays/IconShapeHexagonOverlay/Android.mk
@@ -0,0 +1,29 @@
+#
+#  Copyright 2020, 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.
+#
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_RRO_THEME := IconShapeHexagon
+
+LOCAL_PRODUCT_MODULE := true
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+
+LOCAL_PACKAGE_NAME := IconShapeHexagonOverlay
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_RRO_PACKAGE)
diff --git a/packages/overlays/IconShapeHexagonOverlay/AndroidManifest.xml b/packages/overlays/IconShapeHexagonOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..bf408fd
--- /dev/null
+++ b/packages/overlays/IconShapeHexagonOverlay/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.android.theme.icon.hexagon"
+          android:versionCode="1"
+          android:versionName="1.0">
+    <overlay
+        android:targetPackage="android"
+        android:category="android.theme.customization.adaptive_icon_shape"
+        android:priority="1"/>
+
+    <application android:label="@string/icon_shape_hexagon_overlay" android:hasCode="false"/>
+</manifest>
diff --git a/packages/overlays/IconShapeHexagonOverlay/res/values/config.xml b/packages/overlays/IconShapeHexagonOverlay/res/values/config.xml
new file mode 100644
index 0000000..f7cb595
--- /dev/null
+++ b/packages/overlays/IconShapeHexagonOverlay/res/values/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Specifies the path that is used by AdaptiveIconDrawable class to crop launcher icons. -->
+    <string name="config_icon_mask" translatable="false">"M12,0 88,0 100,50 88,100 12,100 0,50 12,0 Z"</string>
+    <!-- Flag indicating whether round icons should be parsed from the application manifest. -->
+    <bool name="config_useRoundIcon">false</bool>
+    <!-- Corner radius of system dialogs -->
+    <dimen name="config_dialogCornerRadius">0dp</dimen>
+    <!-- Corner radius for bottom sheet system dialogs -->
+    <dimen name="config_bottomDialogCornerRadius">0dp</dimen>
+
+</resources>
diff --git a/packages/overlays/IconShapeHexagonOverlay/res/values/strings.xml b/packages/overlays/IconShapeHexagonOverlay/res/values/strings.xml
new file mode 100644
index 0000000..e00dc9d
--- /dev/null
+++ b/packages/overlays/IconShapeHexagonOverlay/res/values/strings.xml
@@ -0,0 +1,20 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Hexagon icon overlay -->
+    <string name="icon_shape_hexagon_overlay" translatable="false">Hexagon</string>
+
+</resources>
diff --git a/proto/src/system_messages.proto b/proto/src/system_messages.proto
index c5a5d34..34d2b73 100644
--- a/proto/src/system_messages.proto
+++ b/proto/src/system_messages.proto
@@ -252,9 +252,6 @@
     // Package: android
     NOTE_ID_WIFI_SIM_REQUIRED = 60;
 
-    // Inform the user a foreground service while-in-use permission is restricted.
-    NOTE_FOREGROUND_SERVICE_WHILE_IN_USE_PERMISSION = 61;
-
     // Display the Android Debug Protocol status
     // Package: android
     NOTE_ADB_WIFI_ACTIVE = 62;
diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
index 0a527d4..4052942 100644
--- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
+++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
@@ -27,6 +27,7 @@
 import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK;
 
 import android.accessibilityservice.AccessibilityGestureEvent;
+import android.accessibilityservice.AccessibilityService;
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.accessibilityservice.IAccessibilityServiceClient;
 import android.accessibilityservice.IAccessibilityServiceConnection;
@@ -177,6 +178,8 @@
 
     final SparseArray<IBinder> mOverlayWindowTokens = new SparseArray();
 
+    /** The timestamp of requesting to take screenshot in milliseconds */
+    private long mRequestTakeScreenshotTimestampMs;
 
     public interface SystemSupport {
         /**
@@ -974,44 +977,39 @@
     }
 
     @Override
-    public void takeScreenshot(int displayId, RemoteCallback callback) {
+    public boolean takeScreenshot(int displayId, RemoteCallback callback) {
+        final long currentTimestamp = SystemClock.uptimeMillis();
+        if (mRequestTakeScreenshotTimestampMs != 0
+                && (currentTimestamp - mRequestTakeScreenshotTimestampMs)
+                <= AccessibilityService.ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS) {
+            return false;
+        }
+        mRequestTakeScreenshotTimestampMs = currentTimestamp;
+
         synchronized (mLock) {
             if (!hasRightsToCurrentUserLocked()) {
-                sendScreenshotResult(true, null, callback);
-                return;
+                return false;
             }
 
             if (!mSecurityPolicy.canTakeScreenshotLocked(this)) {
-                sendScreenshotResult(true, null, callback);
                 throw new SecurityException("Services don't have the capability of taking"
                         + " the screenshot.");
             }
         }
 
         if (!mSecurityPolicy.checkAccessibilityAccess(this)) {
-            sendScreenshotResult(true, null, callback);
-            return;
+            return false;
         }
 
         final Display display = DisplayManagerGlobal.getInstance()
                 .getRealDisplay(displayId);
         if (display == null) {
-            sendScreenshotResult(true, null, callback);
-            return;
+            return false;
         }
 
-        sendScreenshotResult(false, display, callback);
-    }
-
-    private void sendScreenshotResult(boolean noResult, Display display, RemoteCallback callback) {
-        final boolean noScreenshot = noResult;
         final long identity = Binder.clearCallingIdentity();
         try {
             mMainHandler.post(PooledLambda.obtainRunnable((nonArg) -> {
-                if (noScreenshot) {
-                    callback.sendResult(null);
-                    return;
-                }
                 final Point displaySize = new Point();
                 // TODO (b/145893483): calling new API with the display as a parameter
                 // when surface control supported.
@@ -1025,22 +1023,27 @@
                                 displaySize.x, displaySize.y, false,
                                 rotation);
                 final GraphicBuffer graphicBuffer = screenshotBuffer.getGraphicBuffer();
-                final HardwareBuffer hardwareBuffer =
-                        HardwareBuffer.createFromGraphicBuffer(graphicBuffer);
-                final ParcelableColorSpace colorSpace =
-                        new ParcelableColorSpace(screenshotBuffer.getColorSpace());
+                try (HardwareBuffer hardwareBuffer =
+                        HardwareBuffer.createFromGraphicBuffer(graphicBuffer)) {
+                    final ParcelableColorSpace colorSpace =
+                            new ParcelableColorSpace(screenshotBuffer.getColorSpace());
 
-                // Send back the result.
-                final Bundle payload = new Bundle();
-                payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER,
-                        hardwareBuffer);
-                payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE, colorSpace);
-                payload.putLong(KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP, SystemClock.uptimeMillis());
-                callback.sendResult(payload);
+                    // Send back the result.
+                    final Bundle payload = new Bundle();
+                    payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER,
+                            hardwareBuffer);
+                    payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE, colorSpace);
+                    payload.putLong(KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP,
+                            SystemClock.uptimeMillis());
+                    callback.sendResult(payload);
+                    hardwareBuffer.close();
+                }
             }, null).recycleOnUse());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
+
+        return true;
     }
 
     @Override
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java
index 446e882..5d699c0 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java
@@ -717,7 +717,7 @@
                 case WindowManager.LayoutParams.TYPE_SEARCH_BAR:
                 case WindowManager.LayoutParams.TYPE_STATUS_BAR:
                 case WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE:
-                case WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL:
+                case WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL:
                 case WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL:
                 case WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY:
                 case WindowManager.LayoutParams.TYPE_SYSTEM_ALERT:
diff --git a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
index d1c3a02..4f5b9ed 100644
--- a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
+++ b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
@@ -328,6 +328,8 @@
         public void onFingerprintGesture(int gesture) {}
 
         @Override
-        public void takeScreenshot(int displayId, RemoteCallback callback) {}
+        public boolean takeScreenshot(int displayId, RemoteCallback callback) {
+            return false;
+        }
     }
 }
diff --git a/services/art-profile b/services/art-profile
index 1f53ebd..ab55bfc 100644
--- a/services/art-profile
+++ b/services/art-profile
@@ -30,13 +30,13 @@
 PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->debug(Landroid/os/NativeHandle;Ljava/util/ArrayList;)V
 PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->enroll(Ljava/util/ArrayList;ILjava/util/ArrayList;)I
 HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->enumerate()I
-PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->generateChallenge(I)Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
+HPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->generateChallenge(I)Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
 HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->getAuthenticatorId()Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
 PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->getFeature(II)Landroid/hardware/biometrics/face/V1_0/OptionalBool;
 HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->interfaceChain()Ljava/util/ArrayList;
 PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->remove(I)I
-PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->resetLockout(Ljava/util/ArrayList;)I
-PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->revokeChallenge()I
+HPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->resetLockout(Ljava/util/ArrayList;)I
+HPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->revokeChallenge()I
 HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->setActiveUser(ILjava/lang/String;)I
 HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->setCallback(Landroid/hardware/biometrics/face/V1_0/IBiometricsFaceClientCallback;)Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
 PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->setFeature(IZLjava/util/ArrayList;I)I
@@ -71,6 +71,13 @@
 HSPLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;-><init>()V
 HSPLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;->asBinder()Landroid/os/IHwBinder;
 HSPLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+PLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;
+PLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;->castFrom(Landroid/os/IHwInterface;)Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;
+HSPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
 HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;-><init>(Landroid/os/IHwBinder;)V
 HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasHDRDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
 HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasWideColorDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
@@ -116,17 +123,17 @@
 HSPLandroid/hardware/light/ILights$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/light/ILights;
 HSPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;-><init>(Landroid/os/IHwBinder;)V
 HSPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->isOemUnlockAllowedByCarrier(Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByCarrierCallback;)V
+HPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->isOemUnlockAllowedByCarrier(Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByCarrierCallback;)V
 PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->isOemUnlockAllowedByDevice(Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByDeviceCallback;)V
-PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->setOemUnlockAllowedByCarrier(ZLjava/util/ArrayList;)I
+HPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->setOemUnlockAllowedByCarrier(ZLjava/util/ArrayList;)I
 HSPLandroid/hardware/oemlock/V1_0/IOemLock;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/oemlock/V1_0/IOemLock;
 HSPLandroid/hardware/oemlock/V1_0/IOemLock;->getService()Landroid/hardware/oemlock/V1_0/IOemLock;
 HSPLandroid/hardware/oemlock/V1_0/IOemLock;->getService(Ljava/lang/String;)Landroid/hardware/oemlock/V1_0/IOemLock;
-HSPLandroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;->retrieveKey()[B
-HSPLandroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;->storeKey([B)V
-HSPLandroid/hardware/rebootescrow/IRebootEscrow$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/rebootescrow/IRebootEscrow;
-PLandroid/hardware/soundtrigger/V2_0/ConfidenceLevel;-><init>()V
+PLandroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;->retrieveKey()[B
+PLandroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;->storeKey([B)V
+PLandroid/hardware/rebootescrow/IRebootEscrow$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/rebootescrow/IRebootEscrow;
+HPLandroid/hardware/soundtrigger/V2_0/ConfidenceLevel;-><init>()V
 HPLandroid/hardware/soundtrigger/V2_0/ConfidenceLevel;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
 HPLandroid/hardware/soundtrigger/V2_0/ConfidenceLevel;->toString()Ljava/lang/String;
 PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Phrase;-><init>()V
@@ -161,7 +168,7 @@
 HPLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$RecognitionConfig;->writeToParcel(Landroid/os/HwParcel;)V
 HPLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;-><init>()V
 PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;->writeEmbeddedToBlob(Landroid/os/HwBlob;J)V
-PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;->writeToParcel(Landroid/os/HwParcel;)V
+HPLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;->writeToParcel(Landroid/os/HwParcel;)V
 HPLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$PhraseRecognitionEvent;-><init>()V
 HPLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$PhraseRecognitionEvent;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
 PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$PhraseRecognitionEvent;->readFromParcel(Landroid/os/HwParcel;)V
@@ -194,9 +201,15 @@
 HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
 HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->queryPortStatus()V
 HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->setCallback(Landroid/hardware/usb/V1_0/IUsbCallback;)V
+PLandroid/hardware/usb/V1_0/IUsb$Proxy;->switchRole(Ljava/lang/String;Landroid/hardware/usb/V1_0/PortRole;)V
 HSPLandroid/hardware/usb/V1_0/IUsb;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/usb/V1_0/IUsb;
 HSPLandroid/hardware/usb/V1_0/IUsb;->getService()Landroid/hardware/usb/V1_0/IUsb;
 HSPLandroid/hardware/usb/V1_0/IUsb;->getService(Ljava/lang/String;)Landroid/hardware/usb/V1_0/IUsb;
+PLandroid/hardware/usb/V1_0/PortRole;-><init>()V
+PLandroid/hardware/usb/V1_0/PortRole;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+PLandroid/hardware/usb/V1_0/PortRole;->readFromParcel(Landroid/os/HwParcel;)V
+PLandroid/hardware/usb/V1_0/PortRole;->writeEmbeddedToBlob(Landroid/os/HwBlob;J)V
+PLandroid/hardware/usb/V1_0/PortRole;->writeToParcel(Landroid/os/HwParcel;)V
 HSPLandroid/hardware/usb/V1_0/PortStatus;-><init>()V
 HSPLandroid/hardware/usb/V1_0/PortStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
 HSPLandroid/hardware/usb/V1_1/PortStatus_1_1;-><init>()V
@@ -256,15 +269,15 @@
 HPLandroid/net/-$$Lambda$IpMemoryStore$LPW97BoNSL4rh_RVPiAHfCbmGHU;-><init>(Ljava/util/function/Consumer;)V
 PLandroid/net/-$$Lambda$IpMemoryStore$LPW97BoNSL4rh_RVPiAHfCbmGHU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HPLandroid/net/-$$Lambda$IpMemoryStore$pFctTFAvh_Nxb_aTb0gjNsixGeM;-><init>(Ljava/util/function/Consumer;)V
-PLandroid/net/-$$Lambda$IpMemoryStore$pFctTFAvh_Nxb_aTb0gjNsixGeM;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/net/-$$Lambda$IpMemoryStore$pFctTFAvh_Nxb_aTb0gjNsixGeM;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HPLandroid/net/-$$Lambda$IpMemoryStoreClient$284VFgqq7BBkkwVNFLIrF3c59Es;-><init>(Landroid/net/IIpMemoryStore;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/OnBlobRetrievedListener;)V
 PLandroid/net/-$$Lambda$IpMemoryStoreClient$284VFgqq7BBkkwVNFLIrF3c59Es;->run()V
 HPLandroid/net/-$$Lambda$IpMemoryStoreClient$3VeddAdCuqfXquVC2DlGvI3eVPM;-><init>(Landroid/net/IpMemoryStoreClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/OnBlobRetrievedListener;)V
 PLandroid/net/-$$Lambda$IpMemoryStoreClient$3VeddAdCuqfXquVC2DlGvI3eVPM;->accept(Ljava/lang/Object;)V
 HPLandroid/net/-$$Lambda$IpMemoryStoreClient$4eqT-tDGA25PNMyU_1yqQCF2gOo;-><init>(Landroid/net/IIpMemoryStore;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;)V
-PLandroid/net/-$$Lambda$IpMemoryStoreClient$4eqT-tDGA25PNMyU_1yqQCF2gOo;->run()V
+HPLandroid/net/-$$Lambda$IpMemoryStoreClient$4eqT-tDGA25PNMyU_1yqQCF2gOo;->run()V
 HPLandroid/net/-$$Lambda$IpMemoryStoreClient$OI4Zw2djhZoG0D4IE2ujC0Iv6G4;-><init>(Landroid/net/IpMemoryStoreClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;)V
-PLandroid/net/-$$Lambda$IpMemoryStoreClient$OI4Zw2djhZoG0D4IE2ujC0Iv6G4;->accept(Ljava/lang/Object;)V
+HPLandroid/net/-$$Lambda$IpMemoryStoreClient$OI4Zw2djhZoG0D4IE2ujC0Iv6G4;->accept(Ljava/lang/Object;)V
 HPLandroid/net/-$$Lambda$NetworkStackClient$8Y7GJyozK7_xixdmgfHS4QSif-A;-><init>(Landroid/net/Network;Ljava/lang/String;Landroid/net/INetworkMonitorCallbacks;)V
 HPLandroid/net/-$$Lambda$NetworkStackClient$8Y7GJyozK7_xixdmgfHS4QSif-A;->onNetworkStackConnected(Landroid/net/INetworkStackConnector;)V
 HSPLandroid/net/-$$Lambda$NetworkStackClient$EsrnifYD8E-HxTwVQsf45HJKvtM;-><init>(Ljava/lang/String;Landroid/net/ip/IIpClientCallbacks;)V
@@ -329,6 +342,7 @@
 HSPLandroid/net/INetd$Stub$Proxy;->firewallSetUidRule(III)V
 HPLandroid/net/INetd$Stub$Proxy;->idletimerAddInterface(Ljava/lang/String;ILjava/lang/String;)V
 HPLandroid/net/INetd$Stub$Proxy;->idletimerRemoveInterface(Ljava/lang/String;ILjava/lang/String;)V
+PLandroid/net/INetd$Stub$Proxy;->interfaceClearAddrs(Ljava/lang/String;)V
 HSPLandroid/net/INetd$Stub$Proxy;->interfaceGetCfg(Ljava/lang/String;)Landroid/net/InterfaceConfigurationParcel;
 HSPLandroid/net/INetd$Stub$Proxy;->interfaceGetList()[Ljava/lang/String;
 PLandroid/net/INetd$Stub$Proxy;->interfaceSetCfg(Landroid/net/InterfaceConfigurationParcel;)V
@@ -338,6 +352,7 @@
 HPLandroid/net/INetd$Stub$Proxy;->networkAddLegacyRoute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 HPLandroid/net/INetd$Stub$Proxy;->networkAddRoute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HPLandroid/net/INetd$Stub$Proxy;->networkAddUidRanges(I[Landroid/net/UidRangeParcel;)V
+PLandroid/net/INetd$Stub$Proxy;->networkClearDefault()V
 HPLandroid/net/INetd$Stub$Proxy;->networkClearPermissionForUser([I)V
 HPLandroid/net/INetd$Stub$Proxy;->networkCreatePhysical(II)V
 HPLandroid/net/INetd$Stub$Proxy;->networkCreateVpn(IZ)V
@@ -406,18 +421,18 @@
 PLandroid/net/IpMemoryStore;->getMemoryStore(Landroid/content/Context;)Landroid/net/IpMemoryStore;
 PLandroid/net/IpMemoryStore;->getNetworkStackClient()Landroid/net/NetworkStackClient;
 PLandroid/net/IpMemoryStore;->lambda$runWhenServiceReady$0(Ljava/util/function/Consumer;Landroid/net/IIpMemoryStore;Ljava/lang/Throwable;)Landroid/net/IIpMemoryStore;
-PLandroid/net/IpMemoryStore;->lambda$runWhenServiceReady$1(Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
-PLandroid/net/IpMemoryStore;->runWhenServiceReady(Ljava/util/function/Consumer;)V
+HPLandroid/net/IpMemoryStore;->lambda$runWhenServiceReady$1(Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
+HPLandroid/net/IpMemoryStore;->runWhenServiceReady(Ljava/util/function/Consumer;)V
 PLandroid/net/IpMemoryStoreClient;-><clinit>()V
 PLandroid/net/IpMemoryStoreClient;-><init>(Landroid/content/Context;)V
 PLandroid/net/IpMemoryStoreClient;->ignoringRemoteException(Landroid/net/IpMemoryStoreClient$ThrowingRunnable;)V
-PLandroid/net/IpMemoryStoreClient;->ignoringRemoteException(Ljava/lang/String;Landroid/net/IpMemoryStoreClient$ThrowingRunnable;)V
+HPLandroid/net/IpMemoryStoreClient;->ignoringRemoteException(Ljava/lang/String;Landroid/net/IpMemoryStoreClient$ThrowingRunnable;)V
 PLandroid/net/IpMemoryStoreClient;->lambda$retrieveBlob$15(Landroid/net/IIpMemoryStore;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/OnBlobRetrievedListener;)V
 PLandroid/net/IpMemoryStoreClient;->lambda$retrieveBlob$16$IpMemoryStoreClient(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/OnBlobRetrievedListener;Landroid/net/IIpMemoryStore;)V
 HPLandroid/net/IpMemoryStoreClient;->lambda$storeBlob$3(Landroid/net/IIpMemoryStore;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;)V
-PLandroid/net/IpMemoryStoreClient;->lambda$storeBlob$4$IpMemoryStoreClient(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;Landroid/net/IIpMemoryStore;)V
+HPLandroid/net/IpMemoryStoreClient;->lambda$storeBlob$4$IpMemoryStoreClient(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;Landroid/net/IIpMemoryStore;)V
 PLandroid/net/IpMemoryStoreClient;->retrieveBlob(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/OnBlobRetrievedListener;)V
-PLandroid/net/IpMemoryStoreClient;->storeBlob(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;)V
+HPLandroid/net/IpMemoryStoreClient;->storeBlob(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;)V
 PLandroid/net/NattKeepalivePacketDataParcelable$1;-><init>()V
 PLandroid/net/NattKeepalivePacketDataParcelable;-><clinit>()V
 PLandroid/net/NattKeepalivePacketDataParcelable;-><init>()V
@@ -544,6 +559,7 @@
 HSPLandroid/net/ip/IIpClientCallbacks$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/net/ip/IIpClientCallbacks$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/net/ip/IpClientCallbacks;-><init>()V
+PLandroid/net/ip/IpClientCallbacks;->onLinkPropertiesChange(Landroid/net/LinkProperties;)V
 PLandroid/net/ip/IpClientCallbacks;->onNewDhcpResults(Landroid/net/DhcpResults;)V
 PLandroid/net/ip/IpClientCallbacks;->onNewDhcpResults(Landroid/net/DhcpResultsParcelable;)V
 PLandroid/net/ip/IpClientCallbacks;->setFallbackMulticastFilter(Z)V
@@ -593,7 +609,7 @@
 PLandroid/net/ipmemorystore/OnBlobRetrievedListener$1;-><init>(Landroid/net/ipmemorystore/OnBlobRetrievedListener;)V
 PLandroid/net/ipmemorystore/OnBlobRetrievedListener$1;->onBlobRetrieved(Landroid/net/ipmemorystore/StatusParcelable;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;)V
 PLandroid/net/ipmemorystore/OnBlobRetrievedListener;->toAIDL(Landroid/net/ipmemorystore/OnBlobRetrievedListener;)Landroid/net/ipmemorystore/IOnBlobRetrievedListener;
-PLandroid/net/ipmemorystore/OnStatusListener$1;-><init>(Landroid/net/ipmemorystore/OnStatusListener;)V
+HPLandroid/net/ipmemorystore/OnStatusListener$1;-><init>(Landroid/net/ipmemorystore/OnStatusListener;)V
 PLandroid/net/ipmemorystore/OnStatusListener$1;->onComplete(Landroid/net/ipmemorystore/StatusParcelable;)V
 PLandroid/net/ipmemorystore/OnStatusListener;->toAIDL(Landroid/net/ipmemorystore/OnStatusListener;)Landroid/net/ipmemorystore/IOnStatusListener;
 HPLandroid/net/ipmemorystore/Status;-><init>(I)V
@@ -632,7 +648,10 @@
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withDisplayName(Ljava/lang/String;)Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withNetwork(Landroid/net/Network;)Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withPreDhcpAction()Landroid/net/shared/ProvisioningConfiguration$Builder;
+PLandroid/net/shared/ProvisioningConfiguration$Builder;->withPreDhcpAction(I)Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withProvisioningTimeoutMs(I)Landroid/net/shared/ProvisioningConfiguration$Builder;
+PLandroid/net/shared/ProvisioningConfiguration$Builder;->withStaticConfiguration(Landroid/net/StaticIpConfiguration;)Landroid/net/shared/ProvisioningConfiguration$Builder;
+PLandroid/net/shared/ProvisioningConfiguration$Builder;->withoutIpReachabilityMonitor()Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration;-><init>()V
 PLandroid/net/shared/ProvisioningConfiguration;-><init>(Landroid/net/shared/ProvisioningConfiguration;)V
 PLandroid/net/shared/ProvisioningConfiguration;->toStableParcelable()Landroid/net/ProvisioningConfigurationParcelable;
@@ -671,16 +690,18 @@
 HSPLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;-><clinit>()V
 HSPLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;-><init>()V
 HSPLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;->get(Lcom/android/server/NsdService$NativeCallbackReceiver;)Lcom/android/server/NsdService$DaemonConnection;
-PLcom/android/server/-$$Lambda$AlarmManagerService$2$Eo-D98J-N9R2METkD-12gPs320c;-><init>(Lcom/android/server/AlarmManagerService$2;Landroid/app/IAlarmCompleteListener;)V
+HPLcom/android/server/-$$Lambda$AlarmManagerService$2$Eo-D98J-N9R2METkD-12gPs320c;-><init>(Lcom/android/server/AlarmManagerService$2;Landroid/app/IAlarmCompleteListener;)V
 HPLcom/android/server/-$$Lambda$AlarmManagerService$2$Eo-D98J-N9R2METkD-12gPs320c;->run()V
 HPLcom/android/server/-$$Lambda$AlarmManagerService$3$jIkPWjqS66vG6aFVQoHxR2w4HPE;-><init>(Lcom/android/server/AlarmManagerService$3;Landroid/app/IAlarmCompleteListener;)V
 HPLcom/android/server/-$$Lambda$AlarmManagerService$3$jIkPWjqS66vG6aFVQoHxR2w4HPE;->run()V
 HPLcom/android/server/-$$Lambda$AlarmManagerService$Batch$Xltkj5RTKUMuFVeuavpuY7-Ogzc;-><init>(Lcom/android/server/AlarmManagerService$Alarm;)V
-PLcom/android/server/-$$Lambda$AlarmManagerService$Batch$Xltkj5RTKUMuFVeuavpuY7-Ogzc;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/-$$Lambda$AlarmManagerService$Batch$Xltkj5RTKUMuFVeuavpuY7-Ogzc;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/-$$Lambda$AlarmManagerService$ZVedZIeWdB3G6AGM0_-9P_GEO24;-><init>(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
 HSPLcom/android/server/-$$Lambda$AlarmManagerService$ZVedZIeWdB3G6AGM0_-9P_GEO24;->test(Ljava/lang/Object;)Z
 HPLcom/android/server/-$$Lambda$AlarmManagerService$gKXZ864LsHRTGbnNeLAgHKL2YPk;-><init>(Lcom/android/server/AlarmManagerService;)V
 HPLcom/android/server/-$$Lambda$AlarmManagerService$gKXZ864LsHRTGbnNeLAgHKL2YPk;->run()V
+PLcom/android/server/-$$Lambda$AlarmManagerService$lzZOWJB2te9UTLsLWoZ6M8xouQQ;-><init>(I)V
+PLcom/android/server/-$$Lambda$AlarmManagerService$lzZOWJB2te9UTLsLWoZ6M8xouQQ;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/-$$Lambda$AlarmManagerService$nSJw2tKfoL3YIrKDtszoL44jcSM;-><init>(Lcom/android/server/AlarmManagerService;)V
 PLcom/android/server/-$$Lambda$AlarmManagerService$nSJw2tKfoL3YIrKDtszoL44jcSM;->test(Ljava/lang/Object;)Z
 PLcom/android/server/-$$Lambda$AlarmManagerService$nhEd_CDoc7mzdNLRwGUhwl9TaGk;-><init>(I)V
@@ -759,6 +780,8 @@
 HSPLcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;-><init>()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;-><init>(Lcom/android/server/LocationManagerService$1;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;->run()V
+HPLcom/android/server/-$$Lambda$LocationManagerService$1$h5HNQ2cVn5xkASh-c0UkLGiwn_Y;-><init>(Lcom/android/server/LocationManagerService$1;Ljava/lang/String;)V
+HPLcom/android/server/-$$Lambda$LocationManagerService$1$h5HNQ2cVn5xkASh-c0UkLGiwn_Y;->run()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;-><init>(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;->onSettingChanged()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$6axYIgaetwnztBT8L9-07FzvA1k;-><init>(Lcom/android/server/LocationManagerService;)V
@@ -774,18 +797,24 @@
 HSPLcom/android/server/-$$Lambda$LocationManagerService$BY2uqgE48i0Shvo1FGLa9toRxBA;-><init>(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/-$$Lambda$LocationManagerService$BY2uqgE48i0Shvo1FGLa9toRxBA;->onSettingChanged()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$DJ4kMod0tVB-vqSawrWCXTCoPAM;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$DgmGqZVwms-Y6rAmZybXkZVgJ-Q;-><init>(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/-$$Lambda$LocationManagerService$DgmGqZVwms-Y6rAmZybXkZVgJ-Q;->onUserChanged(II)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$EWYAKDMwH-ZXy5A8J9erCTIUqKY;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;->getPackages(I)[Ljava/lang/String;
 HSPLcom/android/server/-$$Lambda$LocationManagerService$HZIPtgYCt4b4zdEJtC8qjcHStVE;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$HZIPtgYCt4b4zdEJtC8qjcHStVE;->getPackages(I)[Ljava/lang/String;
 HSPLcom/android/server/-$$Lambda$LocationManagerService$KXKNxpIZDrysWhFilQxLdYekB3M;-><init>(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/-$$Lambda$LocationManagerService$KXKNxpIZDrysWhFilQxLdYekB3M;->onSettingChanged()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$LocationProviderManager$neXVKsR0MS1O6DaHXSdf3TVC-rc;-><init>(Lcom/android/server/LocationManagerService$LocationProviderManager;Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$LocationProviderManager$neXVKsR0MS1O6DaHXSdf3TVC-rc;->run()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$Nht7c6P7I1-MJqXp4qiS_HUIjzY;-><init>(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/-$$Lambda$LocationManagerService$Nht7c6P7I1-MJqXp4qiS_HUIjzY;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;-><init>(Lcom/android/server/LocationManagerService;)V
 HPLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;->run()V
+PLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;-><clinit>()V
+PLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;-><init>()V
+PLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;-><init>(Lcom/android/server/LocationManagerService;II)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;->run()V
 PLcom/android/server/-$$Lambda$LocationManagerService$XWulT08IueAbw1NBjxLvw-T5cfc;-><init>(Lcom/android/server/LocationManagerService;Landroid/os/PowerSaveState;)V
@@ -810,7 +839,7 @@
 HPLcom/android/server/-$$Lambda$LooperStatsService$Vzysuo2tO86qjfcWeh1Rdb47NQQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;-><clinit>()V
 PLcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;-><init>()V
-PLcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/-$$Lambda$LooperStatsService$XtFJEDeyYRT79ZkVP96XkHribxg;-><clinit>()V
 PLcom/android/server/-$$Lambda$LooperStatsService$XtFJEDeyYRT79ZkVP96XkHribxg;-><init>()V
 PLcom/android/server/-$$Lambda$LooperStatsService$XtFJEDeyYRT79ZkVP96XkHribxg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
@@ -918,8 +947,8 @@
 PLcom/android/server/-$$Lambda$ServiceWatcher$uCZpuTwrOz-CS9PQS2NY1ZXaU8U;->run()V
 HSPLcom/android/server/-$$Lambda$ServiceWatcher$uru7j1zD-GiN8rndFZ3KWaTrxYo;-><init>(Lcom/android/server/ServiceWatcher;Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HSPLcom/android/server/-$$Lambda$ServiceWatcher$uru7j1zD-GiN8rndFZ3KWaTrxYo;->run()V
-PLcom/android/server/-$$Lambda$ServiceWatcher$x-WpgD2R0YjDE53WHPzWKGSSc4I;-><init>(Lcom/android/server/ServiceWatcher;Ljava/lang/Object;Lcom/android/server/ServiceWatcher$BlockingBinderRunner;)V
-PLcom/android/server/-$$Lambda$ServiceWatcher$x-WpgD2R0YjDE53WHPzWKGSSc4I;->call()Ljava/lang/Object;
+HPLcom/android/server/-$$Lambda$ServiceWatcher$x-WpgD2R0YjDE53WHPzWKGSSc4I;-><init>(Lcom/android/server/ServiceWatcher;Ljava/lang/Object;Lcom/android/server/ServiceWatcher$BlockingBinderRunner;)V
+HPLcom/android/server/-$$Lambda$ServiceWatcher$x-WpgD2R0YjDE53WHPzWKGSSc4I;->call()Ljava/lang/Object;
 PLcom/android/server/-$$Lambda$StorageManagerService$iQEwQayMYzs9Ew4L6Gk7kRIO9wM;-><init>(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/-$$Lambda$StorageManagerService$iQEwQayMYzs9Ew4L6Gk7kRIO9wM;->run()V
 HSPLcom/android/server/-$$Lambda$StorageManagerService$js3bHvdd2Mf8gztNxvL27JoT034;-><init>(Lcom/android/server/StorageManagerService;)V
@@ -1012,7 +1041,7 @@
 HSPLcom/android/server/AlarmManagerService$4;->currentNetworkTimeMillis()J
 PLcom/android/server/AlarmManagerService$4;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/AlarmManagerService$4;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
-PLcom/android/server/AlarmManagerService$4;->getNextWakeFromIdleTime()J
+HPLcom/android/server/AlarmManagerService$4;->getNextWakeFromIdleTime()J
 HSPLcom/android/server/AlarmManagerService$4;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
 HSPLcom/android/server/AlarmManagerService$4;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
 PLcom/android/server/AlarmManagerService$4;->setTime(J)Z
@@ -1039,6 +1068,7 @@
 HPLcom/android/server/AlarmManagerService$Alarm;->toString()Ljava/lang/String;
 HSPLcom/android/server/AlarmManagerService$AlarmHandler;-><init>(Lcom/android/server/AlarmManagerService;)V
 HSPLcom/android/server/AlarmManagerService$AlarmHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/AlarmManagerService$AlarmHandler;->postRemoveForStopped(I)V
 HSPLcom/android/server/AlarmManagerService$AlarmThread;-><init>(Lcom/android/server/AlarmManagerService;)V
 HSPLcom/android/server/AlarmManagerService$AlarmThread;->run()V
 HSPLcom/android/server/AlarmManagerService$AppStandbyTracker;-><init>(Lcom/android/server/AlarmManagerService;)V
@@ -1160,8 +1190,8 @@
 HPLcom/android/server/AlarmManagerService;->access$3008(Lcom/android/server/AlarmManagerService;)I
 PLcom/android/server/AlarmManagerService;->access$302(Lcom/android/server/AlarmManagerService;Z)Z
 HPLcom/android/server/AlarmManagerService;->access$3100(Lcom/android/server/AlarmManagerService$Alarm;)I
-PLcom/android/server/AlarmManagerService;->access$3208(Lcom/android/server/AlarmManagerService;)I
-PLcom/android/server/AlarmManagerService;->access$3300(Lcom/android/server/AlarmManagerService;)Landroid/content/Intent;
+HPLcom/android/server/AlarmManagerService;->access$3208(Lcom/android/server/AlarmManagerService;)I
+HPLcom/android/server/AlarmManagerService;->access$3300(Lcom/android/server/AlarmManagerService;)Landroid/content/Intent;
 HPLcom/android/server/AlarmManagerService;->access$3408(Lcom/android/server/AlarmManagerService;)I
 PLcom/android/server/AlarmManagerService;->access$3500(Lcom/android/server/AlarmManagerService;)[J
 PLcom/android/server/AlarmManagerService;->access$3600(Lcom/android/server/AlarmManagerService;)I
@@ -1209,6 +1239,7 @@
 PLcom/android/server/AlarmManagerService;->labelForType(I)Ljava/lang/String;
 HPLcom/android/server/AlarmManagerService;->lambda$interactiveStateChangedLocked$5$AlarmManagerService()V
 PLcom/android/server/AlarmManagerService;->lambda$nSJw2tKfoL3YIrKDtszoL44jcSM(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$Alarm;)Z
+PLcom/android/server/AlarmManagerService;->lambda$removeForStoppedLocked$3(ILcom/android/server/AlarmManagerService$Alarm;)Z
 HSPLcom/android/server/AlarmManagerService;->lambda$removeLocked$0(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/AlarmManagerService$Alarm;)Z
 PLcom/android/server/AlarmManagerService;->lambda$removeLocked$1(ILcom/android/server/AlarmManagerService$Alarm;)Z
 PLcom/android/server/AlarmManagerService;->lambda$removeUserLocked$4(ILcom/android/server/AlarmManagerService$Alarm;)Z
@@ -1221,6 +1252,7 @@
 HSPLcom/android/server/AlarmManagerService;->reAddAlarmLocked(Lcom/android/server/AlarmManagerService$Alarm;JZ)V
 HSPLcom/android/server/AlarmManagerService;->rebatchAllAlarms()V
 HSPLcom/android/server/AlarmManagerService;->rebatchAllAlarmsLocked(Z)V
+HPLcom/android/server/AlarmManagerService;->removeForStoppedLocked(I)V
 HSPLcom/android/server/AlarmManagerService;->removeImpl(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
 HPLcom/android/server/AlarmManagerService;->removeLocked(I)V
 HSPLcom/android/server/AlarmManagerService;->removeLocked(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
@@ -1352,7 +1384,7 @@
 HSPLcom/android/server/AttributeCache;->get(Ljava/lang/String;I[II)Lcom/android/server/AttributeCache$Entry;
 HSPLcom/android/server/AttributeCache;->init(Landroid/content/Context;)V
 HSPLcom/android/server/AttributeCache;->instance()Lcom/android/server/AttributeCache;
-PLcom/android/server/AttributeCache;->removePackage(Ljava/lang/String;)V
+HSPLcom/android/server/AttributeCache;->removePackage(Ljava/lang/String;)V
 HSPLcom/android/server/AttributeCache;->updateConfiguration(Landroid/content/res/Configuration;)V
 PLcom/android/server/BatteryService$10;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
 PLcom/android/server/BatteryService$10;->run()V
@@ -1365,7 +1397,7 @@
 PLcom/android/server/BatteryService$7;->run()V
 HSPLcom/android/server/BatteryService$8;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
 HSPLcom/android/server/BatteryService$8;->run()V
-PLcom/android/server/BatteryService$9;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
+HSPLcom/android/server/BatteryService$9;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
 PLcom/android/server/BatteryService$9;->run()V
 HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;)V
 HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$1;)V
@@ -1507,7 +1539,7 @@
 HSPLcom/android/server/BluetoothManagerService$3;-><init>(Lcom/android/server/BluetoothManagerService;)V
 HSPLcom/android/server/BluetoothManagerService$3;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Handler;)V
 PLcom/android/server/BluetoothManagerService$3;->onChange(Z)V
-PLcom/android/server/BluetoothManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/BluetoothManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/BluetoothManagerService$4;-><init>(Lcom/android/server/BluetoothManagerService;)V
 HSPLcom/android/server/BluetoothManagerService$4;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Handler;)V
 PLcom/android/server/BluetoothManagerService$4;->onChange(Z)V
@@ -1531,15 +1563,15 @@
 HSPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2000(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;)Z
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2100(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2200(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;)Z
-PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$3300(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
+HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$3300(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$3500(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->addProxy(Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HSPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->bindService()Z
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->binderDied()V
-PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->isEmpty()Z
+HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->isEmpty()Z
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->onServiceDisconnected(Landroid/content/ComponentName;)V
-PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->removeProxy(Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
+HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->removeProxy(Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HSPLcom/android/server/BluetoothManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/BluetoothManagerService;->access$000(J)Ljava/lang/CharSequence;
 PLcom/android/server/BluetoothManagerService;->access$100(I)Ljava/lang/String;
@@ -1548,7 +1580,7 @@
 HSPLcom/android/server/BluetoothManagerService;->access$1002(Lcom/android/server/BluetoothManagerService;Landroid/bluetooth/IBluetooth;)Landroid/bluetooth/IBluetooth;
 HSPLcom/android/server/BluetoothManagerService;->access$1100(Lcom/android/server/BluetoothManagerService;)Landroid/bluetooth/IBluetooth;
 PLcom/android/server/BluetoothManagerService;->access$1100(Lcom/android/server/BluetoothManagerService;)V
-PLcom/android/server/BluetoothManagerService;->access$1102(Lcom/android/server/BluetoothManagerService;Landroid/bluetooth/IBluetooth;)Landroid/bluetooth/IBluetooth;
+HSPLcom/android/server/BluetoothManagerService;->access$1102(Lcom/android/server/BluetoothManagerService;Landroid/bluetooth/IBluetooth;)Landroid/bluetooth/IBluetooth;
 PLcom/android/server/BluetoothManagerService;->access$1200(Lcom/android/server/BluetoothManagerService;ILjava/lang/String;Z)V
 HSPLcom/android/server/BluetoothManagerService;->access$1300(Lcom/android/server/BluetoothManagerService;)Z
 HSPLcom/android/server/BluetoothManagerService;->access$1302(Lcom/android/server/BluetoothManagerService;Z)Z
@@ -1561,7 +1593,7 @@
 HSPLcom/android/server/BluetoothManagerService;->access$1702(Lcom/android/server/BluetoothManagerService;Z)Z
 PLcom/android/server/BluetoothManagerService;->access$1800(Lcom/android/server/BluetoothManagerService;)Ljava/util/Map;
 PLcom/android/server/BluetoothManagerService;->access$1900(Lcom/android/server/BluetoothManagerService;)Z
-PLcom/android/server/BluetoothManagerService;->access$1902(Lcom/android/server/BluetoothManagerService;Z)Z
+HSPLcom/android/server/BluetoothManagerService;->access$1902(Lcom/android/server/BluetoothManagerService;Z)Z
 HSPLcom/android/server/BluetoothManagerService;->access$200(Lcom/android/server/BluetoothManagerService;)Lcom/android/server/BluetoothManagerService$BluetoothHandler;
 PLcom/android/server/BluetoothManagerService;->access$2100(Lcom/android/server/BluetoothManagerService;I)V
 HSPLcom/android/server/BluetoothManagerService;->access$2200(Lcom/android/server/BluetoothManagerService;)Z
@@ -1582,38 +1614,41 @@
 HSPLcom/android/server/BluetoothManagerService;->access$3100(Lcom/android/server/BluetoothManagerService;)Landroid/os/RemoteCallbackList;
 PLcom/android/server/BluetoothManagerService;->access$3100(Lcom/android/server/BluetoothManagerService;)V
 HSPLcom/android/server/BluetoothManagerService;->access$3200(Lcom/android/server/BluetoothManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/BluetoothManagerService;->access$3200(Lcom/android/server/BluetoothManagerService;)Ljava/util/Map;
+HPLcom/android/server/BluetoothManagerService;->access$3200(Lcom/android/server/BluetoothManagerService;)Ljava/util/Map;
 HSPLcom/android/server/BluetoothManagerService;->access$3300(Lcom/android/server/BluetoothManagerService;)Landroid/os/RemoteCallbackList;
 PLcom/android/server/BluetoothManagerService;->access$3400(Lcom/android/server/BluetoothManagerService;)Ljava/util/Map;
 PLcom/android/server/BluetoothManagerService;->access$3402(Lcom/android/server/BluetoothManagerService;Landroid/bluetooth/IBluetoothGatt;)Landroid/bluetooth/IBluetoothGatt;
 PLcom/android/server/BluetoothManagerService;->access$3500(Lcom/android/server/BluetoothManagerService;)V
 PLcom/android/server/BluetoothManagerService;->access$3602(Lcom/android/server/BluetoothManagerService;Landroid/bluetooth/IBluetoothGatt;)Landroid/bluetooth/IBluetoothGatt;
-PLcom/android/server/BluetoothManagerService;->access$3602(Lcom/android/server/BluetoothManagerService;Landroid/os/IBinder;)Landroid/os/IBinder;
+HSPLcom/android/server/BluetoothManagerService;->access$3602(Lcom/android/server/BluetoothManagerService;Landroid/os/IBinder;)Landroid/os/IBinder;
 PLcom/android/server/BluetoothManagerService;->access$3700(Lcom/android/server/BluetoothManagerService;)V
-PLcom/android/server/BluetoothManagerService;->access$3700(Lcom/android/server/BluetoothManagerService;)Z
-PLcom/android/server/BluetoothManagerService;->access$3800(Lcom/android/server/BluetoothManagerService;)Landroid/bluetooth/IBluetoothCallback;
+HSPLcom/android/server/BluetoothManagerService;->access$3700(Lcom/android/server/BluetoothManagerService;)Z
+HSPLcom/android/server/BluetoothManagerService;->access$3800(Lcom/android/server/BluetoothManagerService;)Landroid/bluetooth/IBluetoothCallback;
 HSPLcom/android/server/BluetoothManagerService;->access$3802(Lcom/android/server/BluetoothManagerService;Landroid/os/IBinder;)Landroid/os/IBinder;
-PLcom/android/server/BluetoothManagerService;->access$3900(Lcom/android/server/BluetoothManagerService;)V
+HSPLcom/android/server/BluetoothManagerService;->access$3900(Lcom/android/server/BluetoothManagerService;)V
 HSPLcom/android/server/BluetoothManagerService;->access$3900(Lcom/android/server/BluetoothManagerService;)Z
 PLcom/android/server/BluetoothManagerService;->access$400(Lcom/android/server/BluetoothManagerService;)Landroid/content/Context;
+PLcom/android/server/BluetoothManagerService;->access$4000(Lcom/android/server/BluetoothManagerService;)I
 HSPLcom/android/server/BluetoothManagerService;->access$4000(Lcom/android/server/BluetoothManagerService;)Landroid/bluetooth/IBluetoothCallback;
-PLcom/android/server/BluetoothManagerService;->access$4002(Lcom/android/server/BluetoothManagerService;I)I
+HSPLcom/android/server/BluetoothManagerService;->access$4002(Lcom/android/server/BluetoothManagerService;I)I
 HSPLcom/android/server/BluetoothManagerService;->access$4100(Lcom/android/server/BluetoothManagerService;)V
-PLcom/android/server/BluetoothManagerService;->access$4100(Lcom/android/server/BluetoothManagerService;II)V
+HSPLcom/android/server/BluetoothManagerService;->access$4100(Lcom/android/server/BluetoothManagerService;II)V
 PLcom/android/server/BluetoothManagerService;->access$4200(Lcom/android/server/BluetoothManagerService;)I
 HSPLcom/android/server/BluetoothManagerService;->access$4202(Lcom/android/server/BluetoothManagerService;I)I
 PLcom/android/server/BluetoothManagerService;->access$4300(Lcom/android/server/BluetoothManagerService;)I
 HSPLcom/android/server/BluetoothManagerService;->access$4300(Lcom/android/server/BluetoothManagerService;II)V
 PLcom/android/server/BluetoothManagerService;->access$4302(Lcom/android/server/BluetoothManagerService;I)I
 PLcom/android/server/BluetoothManagerService;->access$4308(Lcom/android/server/BluetoothManagerService;)I
+PLcom/android/server/BluetoothManagerService;->access$4400(Lcom/android/server/BluetoothManagerService;)V
 PLcom/android/server/BluetoothManagerService;->access$4500(Lcom/android/server/BluetoothManagerService;)I
+PLcom/android/server/BluetoothManagerService;->access$4500(Lcom/android/server/BluetoothManagerService;)V
 PLcom/android/server/BluetoothManagerService;->access$4502(Lcom/android/server/BluetoothManagerService;I)I
 PLcom/android/server/BluetoothManagerService;->access$4508(Lcom/android/server/BluetoothManagerService;)I
 PLcom/android/server/BluetoothManagerService;->access$4600(Lcom/android/server/BluetoothManagerService;)V
 PLcom/android/server/BluetoothManagerService;->access$4700(Lcom/android/server/BluetoothManagerService;)V
 PLcom/android/server/BluetoothManagerService;->access$500(Lcom/android/server/BluetoothManagerService;ILjava/lang/String;)V
 PLcom/android/server/BluetoothManagerService;->access$600(Lcom/android/server/BluetoothManagerService;)Z
-PLcom/android/server/BluetoothManagerService;->access$600(Lcom/android/server/BluetoothManagerService;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/BluetoothManagerService;->access$600(Lcom/android/server/BluetoothManagerService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/BluetoothManagerService;->access$700(Lcom/android/server/BluetoothManagerService;)Ljava/util/Map;
 PLcom/android/server/BluetoothManagerService;->access$700(Lcom/android/server/BluetoothManagerService;)Z
 PLcom/android/server/BluetoothManagerService;->access$800(Lcom/android/server/BluetoothManagerService;I)V
@@ -1662,7 +1697,7 @@
 HSPLcom/android/server/BluetoothManagerService;->sendBleStateChanged(II)V
 PLcom/android/server/BluetoothManagerService;->sendBluetoothServiceDownCallback()V
 HSPLcom/android/server/BluetoothManagerService;->sendBluetoothServiceUpCallback()V
-PLcom/android/server/BluetoothManagerService;->sendBluetoothStateCallback(Z)V
+HPLcom/android/server/BluetoothManagerService;->sendBluetoothStateCallback(Z)V
 PLcom/android/server/BluetoothManagerService;->sendBrEdrDownCallback()V
 PLcom/android/server/BluetoothManagerService;->sendDisableMsg(ILjava/lang/String;)V
 HSPLcom/android/server/BluetoothManagerService;->sendEnableMsg(ZILjava/lang/String;)V
@@ -1670,7 +1705,7 @@
 HSPLcom/android/server/BluetoothManagerService;->supportBluetoothPersistedState()Z
 PLcom/android/server/BluetoothManagerService;->timeToLog(J)Ljava/lang/CharSequence;
 PLcom/android/server/BluetoothManagerService;->unbindAndFinish()V
-PLcom/android/server/BluetoothManagerService;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
+HPLcom/android/server/BluetoothManagerService;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HPLcom/android/server/BluetoothManagerService;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
 HPLcom/android/server/BluetoothManagerService;->updateBleAppCount(Landroid/os/IBinder;ZLjava/lang/String;)I
 PLcom/android/server/BluetoothManagerService;->updateOppLauncherComponentState(IZ)V
@@ -1728,9 +1763,9 @@
 PLcom/android/server/ConnectivityService$CaptivePortalImpl;->logEvent(ILjava/lang/String;)V
 HSPLcom/android/server/ConnectivityService$ConnectivityDiagnosticsHandler;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Looper;)V
 HSPLcom/android/server/ConnectivityService$ConnectivityDiagnosticsHandler;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Looper;Lcom/android/server/ConnectivityService$1;)V
-PLcom/android/server/ConnectivityService$ConnectivityDiagnosticsHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/ConnectivityService$ConnectivityReportEvent;-><init>(JLcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService$ConnectivityReportEvent;-><init>(JLcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$1;)V
+HPLcom/android/server/ConnectivityService$ConnectivityDiagnosticsHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/ConnectivityService$ConnectivityReportEvent;-><init>(JLcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService$ConnectivityReportEvent;-><init>(JLcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$1;)V
 PLcom/android/server/ConnectivityService$ConnectivityReportEvent;->access$8100(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;)Lcom/android/server/connectivity/NetworkAgentInfo;
 PLcom/android/server/ConnectivityService$ConnectivityReportEvent;->access$8200(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;)J
 HSPLcom/android/server/ConnectivityService$Dependencies;-><init>()V
@@ -1761,7 +1796,6 @@
 HSPLcom/android/server/ConnectivityService$NetworkFactoryInfo;-><init>(Ljava/lang/String;Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;I)V
 HSPLcom/android/server/ConnectivityService$NetworkFactoryInfo;-><init>(Ljava/lang/String;Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;ILandroid/os/IBinder$DeathRecipient;)V
 PLcom/android/server/ConnectivityService$NetworkFactoryInfo;->cancelRequest(Landroid/net/NetworkRequest;)V
-HSPLcom/android/server/ConnectivityService$NetworkFactoryInfo;->completeConnection()V
 HSPLcom/android/server/ConnectivityService$NetworkFactoryInfo;->connect(Landroid/content/Context;Landroid/os/Handler;)V
 HSPLcom/android/server/ConnectivityService$NetworkFactoryInfo;->isLegacyNetworkFactory()Z
 HSPLcom/android/server/ConnectivityService$NetworkFactoryInfo;->requestNetwork(Landroid/net/NetworkRequest;II)V
@@ -1770,9 +1804,9 @@
 HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;-><init>(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$1;)V
 PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->getInterfaceVersion()I
 HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->hideProvisioningNotification()V
-PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyDataStallSuspected(JILandroid/os/PersistableBundle;)V
+HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyDataStallSuspected(JILandroid/os/PersistableBundle;)V
 HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyNetworkTested(ILjava/lang/String;)V
-PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyNetworkTestedWithExtras(ILjava/lang/String;JLandroid/os/PersistableBundle;)V
+HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyNetworkTestedWithExtras(ILjava/lang/String;JLandroid/os/PersistableBundle;)V
 PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyPrivateDnsConfigResolved(Landroid/net/PrivateDnsConfigParcel;)V
 HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyProbeStatusChanged(II)V
 HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->onNetworkMonitorCreated(Landroid/net/INetworkMonitor;)V
@@ -1784,13 +1818,13 @@
 HSPLcom/android/server/ConnectivityService$NetworkProviderInfo;->requestNetwork(Landroid/net/NetworkRequest;II)V
 HSPLcom/android/server/ConnectivityService$NetworkProviderInfo;->sendMessageToNetworkProvider(IIILjava/lang/Object;)V
 HPLcom/android/server/ConnectivityService$NetworkReassignment$NetworkBgStatePair;-><init>(Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
-HPLcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;-><init>(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HSPLcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;-><init>(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;-><init>()V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;-><init>(Lcom/android/server/ConnectivityService$1;)V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->access$6600(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
-PLcom/android/server/ConnectivityService$NetworkReassignment;->access$7200(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
+HSPLcom/android/server/ConnectivityService$NetworkReassignment;->access$7200(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
 HPLcom/android/server/ConnectivityService$NetworkReassignment;->addRematchedNetwork(Lcom/android/server/ConnectivityService$NetworkReassignment$NetworkBgStatePair;)V
-HPLcom/android/server/ConnectivityService$NetworkReassignment;->addRequestReassignment(Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;)V
+HSPLcom/android/server/ConnectivityService$NetworkReassignment;->addRequestReassignment(Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;)V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->getReassignment(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->getRematchedNetworks()Ljava/lang/Iterable;
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->getRequestReassignments()Ljava/lang/Iterable;
@@ -1803,7 +1837,7 @@
 HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Looper;)V
 PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->getCaptivePortalMode()I
 HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->handleNetworkTested(Lcom/android/server/connectivity/NetworkAgentInfo;ILjava/lang/String;)V
+HPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->handleNetworkTested(Lcom/android/server/connectivity/NetworkAgentInfo;ILjava/lang/String;)V
 HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleAsyncChannelMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkAgentInfoMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkAgentMessage(Landroid/os/Message;)V
@@ -1811,10 +1845,10 @@
 HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkMonitorMessage(Landroid/os/Message;)Z
 PLcom/android/server/ConnectivityService$NetworkTestedResults;-><init>(IIJLjava/lang/String;)V
 PLcom/android/server/ConnectivityService$NetworkTestedResults;-><init>(IIJLjava/lang/String;Lcom/android/server/ConnectivityService$1;)V
-PLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2100(Lcom/android/server/ConnectivityService$NetworkTestedResults;)I
-PLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2200(Lcom/android/server/ConnectivityService$NetworkTestedResults;)I
-PLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2300(Lcom/android/server/ConnectivityService$NetworkTestedResults;)Ljava/lang/String;
-PLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2400(Lcom/android/server/ConnectivityService$NetworkTestedResults;)J
+HPLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2100(Lcom/android/server/ConnectivityService$NetworkTestedResults;)I
+HPLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2200(Lcom/android/server/ConnectivityService$NetworkTestedResults;)I
+HPLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2300(Lcom/android/server/ConnectivityService$NetworkTestedResults;)Ljava/lang/String;
+HPLcom/android/server/ConnectivityService$NetworkTestedResults;->access$2400(Lcom/android/server/ConnectivityService$NetworkTestedResults;)J
 HSPLcom/android/server/ConnectivityService$SettingsObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 HSPLcom/android/server/ConnectivityService$SettingsObserver;->observe(Landroid/net/Uri;I)V
 PLcom/android/server/ConnectivityService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
@@ -1828,7 +1862,7 @@
 PLcom/android/server/ConnectivityService;->access$100(Lcom/android/server/ConnectivityService;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 HSPLcom/android/server/ConnectivityService;->access$1000(Lcom/android/server/ConnectivityService;)Ljava/util/HashMap;
 HPLcom/android/server/ConnectivityService;->access$1000(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
-HSPLcom/android/server/ConnectivityService;->access$1100()Z
+PLcom/android/server/ConnectivityService;->access$1100()Z
 PLcom/android/server/ConnectivityService;->access$1100(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
 HSPLcom/android/server/ConnectivityService;->access$1200()Z
 HPLcom/android/server/ConnectivityService;->access$1400(Lcom/android/server/ConnectivityService;ILcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;)V
@@ -1838,7 +1872,7 @@
 HPLcom/android/server/ConnectivityService;->access$1600(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkScore;)V
 HPLcom/android/server/ConnectivityService;->access$1700(I)Z
 PLcom/android/server/ConnectivityService;->access$1700(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkScore;)V
-PLcom/android/server/ConnectivityService;->access$1800(I)Z
+HPLcom/android/server/ConnectivityService;->access$1800(I)Z
 PLcom/android/server/ConnectivityService;->access$1800(Lcom/android/server/ConnectivityService;)Lcom/android/server/connectivity/KeepaliveTracker;
 PLcom/android/server/ConnectivityService;->access$1900(Lcom/android/server/ConnectivityService;)Lcom/android/server/connectivity/KeepaliveTracker;
 PLcom/android/server/ConnectivityService;->access$1900(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;)V
@@ -1850,7 +1884,7 @@
 PLcom/android/server/ConnectivityService;->access$2200(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->access$2300(Lcom/android/server/ConnectivityService;)Lcom/android/server/connectivity/NetworkNotificationManager;
 PLcom/android/server/ConnectivityService;->access$2300(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->access$2400(Lcom/android/server/ConnectivityService;)Lcom/android/server/connectivity/NetworkNotificationManager;
+HPLcom/android/server/ConnectivityService;->access$2400(Lcom/android/server/ConnectivityService;)Lcom/android/server/connectivity/NetworkNotificationManager;
 PLcom/android/server/ConnectivityService;->access$2400(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->access$2500(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
 PLcom/android/server/ConnectivityService;->access$2500(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
@@ -1861,6 +1895,7 @@
 PLcom/android/server/ConnectivityService;->access$2800(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/shared/PrivateDnsConfig;)V
 PLcom/android/server/ConnectivityService;->access$2900(Lcom/android/server/ConnectivityService;)Landroid/content/Context;
 PLcom/android/server/ConnectivityService;->access$2900(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$Dependencies;
+PLcom/android/server/ConnectivityService;->access$2900(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/shared/PrivateDnsConfig;)V
 HSPLcom/android/server/ConnectivityService;->access$300(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$InternalHandler;
 HPLcom/android/server/ConnectivityService;->access$300(Lcom/android/server/ConnectivityService;IZJ)V
 PLcom/android/server/ConnectivityService;->access$3000(Lcom/android/server/ConnectivityService;)Landroid/content/Context;
@@ -1871,11 +1906,12 @@
 HPLcom/android/server/ConnectivityService;->access$3200(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
 HPLcom/android/server/ConnectivityService;->access$3200(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
 PLcom/android/server/ConnectivityService;->access$3200(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
+HPLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
 PLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
 PLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
 PLcom/android/server/ConnectivityService;->access$3400(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
 PLcom/android/server/ConnectivityService;->access$3400(Lcom/android/server/ConnectivityService;)V
+PLcom/android/server/ConnectivityService;->access$3400(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 PLcom/android/server/ConnectivityService;->access$3500(Lcom/android/server/ConnectivityService;)Landroid/content/Context;
 PLcom/android/server/ConnectivityService;->access$3500(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$3500(Lcom/android/server/ConnectivityService;I)V
@@ -1893,6 +1929,7 @@
 PLcom/android/server/ConnectivityService;->access$400(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$InternalHandler;
 HSPLcom/android/server/ConnectivityService;->access$4000(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 PLcom/android/server/ConnectivityService;->access$4000(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
+PLcom/android/server/ConnectivityService;->access$4100(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$4100(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
 HSPLcom/android/server/ConnectivityService;->access$4100(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 PLcom/android/server/ConnectivityService;->access$4200(Lcom/android/server/ConnectivityService;I)V
@@ -1902,11 +1939,12 @@
 PLcom/android/server/ConnectivityService;->access$4300(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 PLcom/android/server/ConnectivityService;->access$4400(Lcom/android/server/ConnectivityService;Landroid/app/PendingIntent;I)V
 HPLcom/android/server/ConnectivityService;->access$4400(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
-PLcom/android/server/ConnectivityService;->access$4400(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkProviderInfo;)V
+HSPLcom/android/server/ConnectivityService;->access$4400(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkProviderInfo;)V
 HPLcom/android/server/ConnectivityService;->access$4500(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
 PLcom/android/server/ConnectivityService;->access$4500(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;)V
+PLcom/android/server/ConnectivityService;->access$4600(Lcom/android/server/ConnectivityService;Landroid/net/Network;ZZ)V
 PLcom/android/server/ConnectivityService;->access$4600(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
-PLcom/android/server/ConnectivityService;->access$4700(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
+HSPLcom/android/server/ConnectivityService;->access$4700(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 HSPLcom/android/server/ConnectivityService;->access$4800(Lcom/android/server/ConnectivityService;)V
 HSPLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;)V
 HPLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;Landroid/net/Network;IZ)V
@@ -1917,7 +1955,7 @@
 HPLcom/android/server/ConnectivityService;->access$5100(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
 HSPLcom/android/server/ConnectivityService;->access$5200(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$5200(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
-PLcom/android/server/ConnectivityService;->access$5300(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService;->access$5300(Lcom/android/server/ConnectivityService;)V
 HSPLcom/android/server/ConnectivityService;->access$5300(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$5400(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$5500(Lcom/android/server/ConnectivityService;)V
@@ -1935,8 +1973,9 @@
 PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
+PLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;I)V
 HSPLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
-PLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
+HSPLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
 HSPLcom/android/server/ConnectivityService;->access$6200(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
 HSPLcom/android/server/ConnectivityService;->access$6200(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
 HSPLcom/android/server/ConnectivityService;->access$6300(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
@@ -1944,16 +1983,16 @@
 PLcom/android/server/ConnectivityService;->access$6500(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->access$6600(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->access$6700(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
-PLcom/android/server/ConnectivityService;->access$6800(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
-PLcom/android/server/ConnectivityService;->access$6900(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
+HSPLcom/android/server/ConnectivityService;->access$6800(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
+HSPLcom/android/server/ConnectivityService;->access$6900(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
 HPLcom/android/server/ConnectivityService;->access$700(Lcom/android/server/ConnectivityService;)Landroid/net/NetworkRequest;
 PLcom/android/server/ConnectivityService;->access$700(Lcom/android/server/ConnectivityService;IZLjava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->access$7600(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$ConnectivityReportEvent;Landroid/os/PersistableBundle;)V
 PLcom/android/server/ConnectivityService;->access$7700(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;JILandroid/os/PersistableBundle;)V
-PLcom/android/server/ConnectivityService;->access$7800(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
+HPLcom/android/server/ConnectivityService;->access$7800(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
 PLcom/android/server/ConnectivityService;->access$800(Lcom/android/server/ConnectivityService;IZLjava/lang/String;I)V
-HSPLcom/android/server/ConnectivityService;->access$800(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
-HSPLcom/android/server/ConnectivityService;->access$900(Lcom/android/server/ConnectivityService;)Ljava/util/HashMap;
+HPLcom/android/server/ConnectivityService;->access$800(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
+HPLcom/android/server/ConnectivityService;->access$900(Lcom/android/server/ConnectivityService;)Ljava/util/HashMap;
 HSPLcom/android/server/ConnectivityService;->access$900(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
 HPLcom/android/server/ConnectivityService;->addLegacyRouteToHost(Landroid/net/LinkProperties;Ljava/net/InetAddress;II)Z
 HPLcom/android/server/ConnectivityService;->addNetworkToLegacyTypeTracker(Lcom/android/server/connectivity/NetworkAgentInfo;)V
@@ -1966,7 +2005,8 @@
 HPLcom/android/server/ConnectivityService;->checkNetworkStackPermission()Z
 HSPLcom/android/server/ConnectivityService;->checkSettingsPermission()Z
 HPLcom/android/server/ConnectivityService;->checkSettingsPermission(II)Z
-HPLcom/android/server/ConnectivityService;->computeInitialReassignment()Lcom/android/server/ConnectivityService$NetworkReassignment;
+HSPLcom/android/server/ConnectivityService;->computeInitialReassignment()Lcom/android/server/ConnectivityService$NetworkReassignment;
+HPLcom/android/server/ConnectivityService;->computeRequestReassignmentForNetwork(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/util/ArrayMap;
 HPLcom/android/server/ConnectivityService;->computeRequestReassignmentForNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/util/ArrayMap;
 HSPLcom/android/server/ConnectivityService;->createDefaultInternetRequestForTransport(ILandroid/net/NetworkRequest$Type;)Landroid/net/NetworkRequest;
 HSPLcom/android/server/ConnectivityService;->createDefaultNetworkCapabilitiesForUid(I)Landroid/net/NetworkCapabilities;
@@ -2004,6 +2044,7 @@
 HSPLcom/android/server/ConnectivityService;->ensureRequestableCapabilities(Landroid/net/NetworkCapabilities;)V
 HSPLcom/android/server/ConnectivityService;->ensureRunningOnConnectivityServiceThread()V
 HSPLcom/android/server/ConnectivityService;->ensureSufficientPermissionsForRequest(Landroid/net/NetworkCapabilities;II)V
+HSPLcom/android/server/ConnectivityService;->ensureSufficientPermissionsForRequest(Landroid/net/NetworkCapabilities;IILjava/lang/String;)V
 HSPLcom/android/server/ConnectivityService;->ensureValid(Landroid/net/NetworkCapabilities;)V
 HSPLcom/android/server/ConnectivityService;->ensureValidNetworkSpecifier(Landroid/net/NetworkCapabilities;)V
 PLcom/android/server/ConnectivityService;->establishVpn(Lcom/android/internal/net/VpnConfig;)Landroid/os/ParcelFileDescriptor;
@@ -2027,11 +2068,11 @@
 HSPLcom/android/server/ConnectivityService;->getDnsResolver()Landroid/net/IDnsResolver;
 HPLcom/android/server/ConnectivityService;->getFilteredNetworkState(II)Landroid/net/NetworkState;
 PLcom/android/server/ConnectivityService;->getGlobalProxy()Landroid/net/ProxyInfo;
-PLcom/android/server/ConnectivityService;->getLegacyVpnInfo(I)Lcom/android/internal/net/LegacyVpnInfo;
+HPLcom/android/server/ConnectivityService;->getLegacyVpnInfo(I)Lcom/android/internal/net/LegacyVpnInfo;
 HPLcom/android/server/ConnectivityService;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
 HPLcom/android/server/ConnectivityService;->getLinkProperties(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/LinkProperties;
 HPLcom/android/server/ConnectivityService;->getLinkPropertiesProxyInfo(Landroid/net/Network;)Landroid/net/ProxyInfo;
-PLcom/android/server/ConnectivityService;->getMatchingPermissionedCallbacks(Lcom/android/server/connectivity/NetworkAgentInfo;)Ljava/util/List;
+HPLcom/android/server/ConnectivityService;->getMatchingPermissionedCallbacks(Lcom/android/server/connectivity/NetworkAgentInfo;)Ljava/util/List;
 PLcom/android/server/ConnectivityService;->getMultipathPreference(Landroid/net/Network;)I
 PLcom/android/server/ConnectivityService;->getNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/Network;
 HPLcom/android/server/ConnectivityService;->getNetworkAgentInfoForNetId(I)Lcom/android/server/connectivity/NetworkAgentInfo;
@@ -2057,12 +2098,12 @@
 HPLcom/android/server/ConnectivityService;->handleAsyncChannelDisconnected(Landroid/os/Message;)V
 HSPLcom/android/server/ConnectivityService;->handleAsyncChannelHalfConnect(Landroid/os/Message;)V
 HSPLcom/android/server/ConnectivityService;->handleConfigureAlwaysOnNetworks()V
-PLcom/android/server/ConnectivityService;->handleDataStallSuspected(Lcom/android/server/connectivity/NetworkAgentInfo;JILandroid/os/PersistableBundle;)V
-PLcom/android/server/ConnectivityService;->handleFreshlyValidatedNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService;->handleDataStallSuspected(Lcom/android/server/connectivity/NetworkAgentInfo;JILandroid/os/PersistableBundle;)V
+HPLcom/android/server/ConnectivityService;->handleFreshlyValidatedNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->handleLingerComplete(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->handleNat64PrefixEvent(IZLjava/lang/String;I)V
-PLcom/android/server/ConnectivityService;->handleNetworkConnectivityReported(Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
-PLcom/android/server/ConnectivityService;->handleNetworkTestedWithExtras(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;Landroid/os/PersistableBundle;)V
+HPLcom/android/server/ConnectivityService;->handleNetworkConnectivityReported(Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
+HPLcom/android/server/ConnectivityService;->handleNetworkTestedWithExtras(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;Landroid/os/PersistableBundle;)V
 HPLcom/android/server/ConnectivityService;->handleNetworkUnvalidated(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 PLcom/android/server/ConnectivityService;->handlePerNetworkPrivateDnsConfig(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/shared/PrivateDnsConfig;)V
 HPLcom/android/server/ConnectivityService;->handlePrivateDnsValidationUpdate(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
@@ -2105,6 +2146,7 @@
 PLcom/android/server/ConnectivityService;->lambda$startCaptivePortalAppInternal$4$ConnectivityService(Landroid/content/Intent;)V
 HPLcom/android/server/ConnectivityService;->linkPropertiesRestrictedForCallerPermissions(Landroid/net/LinkProperties;II)Landroid/net/LinkProperties;
 HSPLcom/android/server/ConnectivityService;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
+HSPLcom/android/server/ConnectivityService;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/NetworkRequest;
 HSPLcom/android/server/ConnectivityService;->log(Ljava/lang/String;)V
 PLcom/android/server/ConnectivityService;->logNetworkEvent(Lcom/android/server/connectivity/NetworkAgentInfo;I)V
 PLcom/android/server/ConnectivityService;->loge(Ljava/lang/String;)V
@@ -2127,8 +2169,9 @@
 HPLcom/android/server/ConnectivityService;->notifyNetworkAvailable(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 HPLcom/android/server/ConnectivityService;->notifyNetworkCallbacks(Lcom/android/server/connectivity/NetworkAgentInfo;I)V
 HPLcom/android/server/ConnectivityService;->notifyNetworkCallbacks(Lcom/android/server/connectivity/NetworkAgentInfo;II)V
+PLcom/android/server/ConnectivityService;->notifyNetworkLosing(Lcom/android/server/connectivity/NetworkAgentInfo;J)V
 HPLcom/android/server/ConnectivityService;->onPackageAdded(Ljava/lang/String;I)V
-HPLcom/android/server/ConnectivityService;->onPackageRemoved(Ljava/lang/String;IZ)V
+HSPLcom/android/server/ConnectivityService;->onPackageRemoved(Ljava/lang/String;IZ)V
 PLcom/android/server/ConnectivityService;->onPackageReplaced(Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/ConnectivityService;->onUserAdded(I)V
@@ -2137,6 +2180,7 @@
 PLcom/android/server/ConnectivityService;->onUserStop(I)V
 PLcom/android/server/ConnectivityService;->onUserUnlocked(I)V
 PLcom/android/server/ConnectivityService;->pendingRequestForNetwork(Landroid/net/NetworkCapabilities;Landroid/app/PendingIntent;)Landroid/net/NetworkRequest;
+PLcom/android/server/ConnectivityService;->pendingRequestForNetwork(Landroid/net/NetworkCapabilities;Landroid/app/PendingIntent;Ljava/lang/String;)Landroid/net/NetworkRequest;
 HPLcom/android/server/ConnectivityService;->prepareVpn(Ljava/lang/String;Ljava/lang/String;I)Z
 HPLcom/android/server/ConnectivityService;->processListenRequests(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->processNewlyLostListenRequests(Lcom/android/server/connectivity/NetworkAgentInfo;)V
@@ -2157,14 +2201,16 @@
 PLcom/android/server/ConnectivityService;->rematchForAvoidBadWifiUpdate()V
 HPLcom/android/server/ConnectivityService;->rematchNetworkAndRequests(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/connectivity/NetworkAgentInfo;J)V
 HPLcom/android/server/ConnectivityService;->rematchNetworkAndRequests(Lcom/android/server/connectivity/NetworkAgentInfo;J)V
-PLcom/android/server/ConnectivityService;->removeDataActivityTracking(Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService;->removeDataActivityTracking(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->reportNetworkConnectivity(Landroid/net/Network;Z)V
 HSPLcom/android/server/ConnectivityService;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
+HPLcom/android/server/ConnectivityService;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;ILjava/lang/String;)Landroid/net/NetworkRequest;
 HPLcom/android/server/ConnectivityService;->requestRouteToHostAddress(I[B)Z
 PLcom/android/server/ConnectivityService;->requestsSortedById()[Lcom/android/server/ConnectivityService$NetworkRequestInfo;
 HPLcom/android/server/ConnectivityService;->requiresVpnIsolation(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)Z
 HSPLcom/android/server/ConnectivityService;->restrictBackgroundRequestForCaller(Landroid/net/NetworkCapabilities;)V
 HSPLcom/android/server/ConnectivityService;->restrictRequestUidsForCaller(Landroid/net/NetworkCapabilities;)V
+HSPLcom/android/server/ConnectivityService;->restrictRequestUidsForCallerAndSetRequestorInfo(Landroid/net/NetworkCapabilities;ILjava/lang/String;)V
 HPLcom/android/server/ConnectivityService;->scheduleReleaseNetworkTransitionWakelock()V
 HPLcom/android/server/ConnectivityService;->scheduleUnvalidatedPrompt(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HSPLcom/android/server/ConnectivityService;->sendAllRequestsToFactory(Lcom/android/server/ConnectivityService$NetworkFactoryInfo;)V
@@ -2213,6 +2259,7 @@
 HPLcom/android/server/ConnectivityService;->updateInterfaces(Landroid/net/LinkProperties;Landroid/net/LinkProperties;ILandroid/net/NetworkCapabilities;I)V
 HSPLcom/android/server/ConnectivityService;->updateLegacyTypeTrackerAndVpnLockdownForRematch(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;[Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->updateLingerState(Lcom/android/server/connectivity/NetworkAgentInfo;J)V
+HPLcom/android/server/ConnectivityService;->updateLingerState(Lcom/android/server/connectivity/NetworkAgentInfo;J)Z
 HPLcom/android/server/ConnectivityService;->updateLinkProperties(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
 HSPLcom/android/server/ConnectivityService;->updateLockdownVpn()Z
 HPLcom/android/server/ConnectivityService;->updateMtu(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
@@ -2222,6 +2269,7 @@
 PLcom/android/server/ConnectivityService;->updatePrivateDns(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/shared/PrivateDnsConfig;)V
 HPLcom/android/server/ConnectivityService;->updateProxy(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
 HPLcom/android/server/ConnectivityService;->updateRoutes(Landroid/net/LinkProperties;Landroid/net/LinkProperties;I)Z
+HPLcom/android/server/ConnectivityService;->updateSatisfiersForRematchRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;J)V
 HPLcom/android/server/ConnectivityService;->updateSignalStrengthThresholds(Lcom/android/server/connectivity/NetworkAgentInfo;Ljava/lang/String;Landroid/net/NetworkRequest;)V
 HPLcom/android/server/ConnectivityService;->updateTcpBufferSizes(Ljava/lang/String;)V
 HPLcom/android/server/ConnectivityService;->updateUids(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities;)V
@@ -2243,9 +2291,9 @@
 HSPLcom/android/server/CountryDetectorService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/CountryDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 PLcom/android/server/CountryDetectorService;->access$000(Lcom/android/server/CountryDetectorService;Landroid/os/IBinder;)V
-PLcom/android/server/CountryDetectorService;->addCountryListener(Landroid/location/ICountryListener;)V
+HPLcom/android/server/CountryDetectorService;->addCountryListener(Landroid/location/ICountryListener;)V
 HPLcom/android/server/CountryDetectorService;->addListener(Landroid/location/ICountryListener;)V
-HPLcom/android/server/CountryDetectorService;->detectCountry()Landroid/location/Country;
+HSPLcom/android/server/CountryDetectorService;->detectCountry()Landroid/location/Country;
 PLcom/android/server/CountryDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/CountryDetectorService;->initialize()V
 PLcom/android/server/CountryDetectorService;->lambda$initialize$1$CountryDetectorService(Landroid/location/Country;)V
@@ -2256,11 +2304,11 @@
 PLcom/android/server/CountryDetectorService;->notifyReceivers(Landroid/location/Country;)V
 HPLcom/android/server/CountryDetectorService;->removeListener(Landroid/os/IBinder;)V
 PLcom/android/server/CountryDetectorService;->run()V
-PLcom/android/server/CountryDetectorService;->setCountryListener(Landroid/location/CountryListener;)V
+HPLcom/android/server/CountryDetectorService;->setCountryListener(Landroid/location/CountryListener;)V
 HSPLcom/android/server/CountryDetectorService;->systemRunning()V
 HSPLcom/android/server/DiskStatsService;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/DiskStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/DiskStatsService;->getRecentPerf()I
+HPLcom/android/server/DiskStatsService;->getRecentPerf()I
 PLcom/android/server/DiskStatsService;->hasOption([Ljava/lang/String;Ljava/lang/String;)Z
 HPLcom/android/server/DiskStatsService;->reportCachedValues(Ljava/io/PrintWriter;)V
 HPLcom/android/server/DiskStatsService;->reportCachedValuesProto(Landroid/util/proto/ProtoOutputStream;)V
@@ -2369,10 +2417,10 @@
 HPLcom/android/server/EventLogTags;->writeDeviceIdleLight(ILjava/lang/String;)V
 HPLcom/android/server/EventLogTags;->writeDeviceIdleLightStep()V
 HPLcom/android/server/EventLogTags;->writeDeviceIdleOffComplete()V
-PLcom/android/server/EventLogTags;->writeDeviceIdleOffPhase(Ljava/lang/String;)V
+HPLcom/android/server/EventLogTags;->writeDeviceIdleOffPhase(Ljava/lang/String;)V
 HPLcom/android/server/EventLogTags;->writeDeviceIdleOffStart(Ljava/lang/String;)V
 PLcom/android/server/EventLogTags;->writeDeviceIdleOnComplete()V
-PLcom/android/server/EventLogTags;->writeDeviceIdleOnPhase(Ljava/lang/String;)V
+HPLcom/android/server/EventLogTags;->writeDeviceIdleOnPhase(Ljava/lang/String;)V
 PLcom/android/server/EventLogTags;->writeDeviceIdleOnStart()V
 PLcom/android/server/EventLogTags;->writeDeviceIdleStep()V
 PLcom/android/server/EventLogTags;->writeDeviceIdleWakeFromIdle(ILjava/lang/String;)V
@@ -2484,9 +2532,9 @@
 PLcom/android/server/GnssManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
 HSPLcom/android/server/GnssManagerService;->updateListenersOnForegroundChangedLocked(Landroid/util/ArrayMap;Lcom/android/server/location/RemoteListenerHelper;Ljava/util/function/Function;IZ)V
 HSPLcom/android/server/GraphicsStatsService$1;-><init>(Lcom/android/server/GraphicsStatsService;)V
-PLcom/android/server/GraphicsStatsService$1;->handleMessage(Landroid/os/Message;)Z
+HPLcom/android/server/GraphicsStatsService$1;->handleMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/GraphicsStatsService$ActiveBuffer;-><init>(Lcom/android/server/GraphicsStatsService;Landroid/view/IGraphicsStatsCallback;IILjava/lang/String;J)V
-PLcom/android/server/GraphicsStatsService$ActiveBuffer;->binderDied()V
+HPLcom/android/server/GraphicsStatsService$ActiveBuffer;->binderDied()V
 PLcom/android/server/GraphicsStatsService$ActiveBuffer;->closeAllBuffers()V
 HSPLcom/android/server/GraphicsStatsService$BufferInfo;-><init>(Lcom/android/server/GraphicsStatsService;Ljava/lang/String;JJ)V
 HPLcom/android/server/GraphicsStatsService$HistoricalBuffer;-><init>(Lcom/android/server/GraphicsStatsService;Lcom/android/server/GraphicsStatsService$ActiveBuffer;)V
@@ -2508,7 +2556,7 @@
 HSPLcom/android/server/GraphicsStatsService;->normalizeDate(J)Ljava/util/Calendar;
 PLcom/android/server/GraphicsStatsService;->onAlarm()V
 HPLcom/android/server/GraphicsStatsService;->pathForApp(Lcom/android/server/GraphicsStatsService$BufferInfo;)Ljava/io/File;
-PLcom/android/server/GraphicsStatsService;->processDied(Lcom/android/server/GraphicsStatsService$ActiveBuffer;)V
+HPLcom/android/server/GraphicsStatsService;->processDied(Lcom/android/server/GraphicsStatsService$ActiveBuffer;)V
 HSPLcom/android/server/GraphicsStatsService;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor;
 HSPLcom/android/server/GraphicsStatsService;->requestBufferForProcessLocked(Landroid/view/IGraphicsStatsCallback;IILjava/lang/String;J)Landroid/os/ParcelFileDescriptor;
 HPLcom/android/server/GraphicsStatsService;->saveBuffer(Lcom/android/server/GraphicsStatsService$HistoricalBuffer;)V
@@ -2516,7 +2564,7 @@
 HSPLcom/android/server/HardwarePropertiesManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/HardwarePropertiesManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(Ljava/lang/String;Ljava/io/PrintWriter;ILjava/lang/String;)V
-PLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(Ljava/lang/String;Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(Ljava/lang/String;Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/HardwarePropertiesManagerService;->enforceHardwarePropertiesRetrievalAllowed(Ljava/lang/String;)V
 PLcom/android/server/HardwarePropertiesManagerService;->getCallingPackageName()Ljava/lang/String;
 PLcom/android/server/HardwarePropertiesManagerService;->getCpuUsages(Ljava/lang/String;)[Landroid/os/CpuUsageInfo;
@@ -2524,10 +2572,10 @@
 PLcom/android/server/HardwarePropertiesManagerService;->getFanSpeeds(Ljava/lang/String;)[F
 HSPLcom/android/server/IntentResolver$1;-><init>()V
 HSPLcom/android/server/IntentResolver$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/IntentResolver$IteratorWrapper;-><init>(Lcom/android/server/IntentResolver;Ljava/util/Iterator;)V
-HPLcom/android/server/IntentResolver$IteratorWrapper;->hasNext()Z
-HPLcom/android/server/IntentResolver$IteratorWrapper;->next()Landroid/content/IntentFilter;
-HPLcom/android/server/IntentResolver$IteratorWrapper;->next()Ljava/lang/Object;
+HSPLcom/android/server/IntentResolver$IteratorWrapper;-><init>(Lcom/android/server/IntentResolver;Ljava/util/Iterator;)V
+HSPLcom/android/server/IntentResolver$IteratorWrapper;->hasNext()Z
+HSPLcom/android/server/IntentResolver$IteratorWrapper;->next()Landroid/content/IntentFilter;
+HSPLcom/android/server/IntentResolver$IteratorWrapper;->next()Ljava/lang/Object;
 HSPLcom/android/server/IntentResolver;-><clinit>()V
 HSPLcom/android/server/IntentResolver;-><init>()V
 HSPLcom/android/server/IntentResolver;->addFilter(Landroid/content/IntentFilter;)V
@@ -2540,7 +2588,7 @@
 HPLcom/android/server/IntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
 HPLcom/android/server/IntentResolver;->dumpMap(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArrayMap;Ljava/lang/String;ZZ)Z
 HSPLcom/android/server/IntentResolver;->filterEquals(Landroid/content/IntentFilter;Landroid/content/IntentFilter;)Z
-PLcom/android/server/IntentResolver;->filterIterator()Ljava/util/Iterator;
+HSPLcom/android/server/IntentResolver;->filterIterator()Ljava/util/Iterator;
 HSPLcom/android/server/IntentResolver;->filterResults(Ljava/util/List;)V
 HSPLcom/android/server/IntentResolver;->filterSet()Ljava/util/Set;
 HSPLcom/android/server/IntentResolver;->findFilters(Landroid/content/IntentFilter;)Ljava/util/ArrayList;
@@ -2580,9 +2628,10 @@
 HSPLcom/android/server/IpSecService;->systemReady()V
 HSPLcom/android/server/LocationManagerService$1;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService$1;->lambda$onOpChanged$0$LocationManagerService$1()V
+HPLcom/android/server/LocationManagerService$1;->lambda$onOpChanged$0$LocationManagerService$1(Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService$1;->onOpChanged(ILjava/lang/String;)V
 HSPLcom/android/server/LocationManagerService$2;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService$2;->onPackageDisappeared(Ljava/lang/String;I)V
+HSPLcom/android/server/LocationManagerService$2;->onPackageDisappeared(Ljava/lang/String;I)V
 HSPLcom/android/server/LocationManagerService$3;-><init>(Lcom/android/server/LocationManagerService;)V
 HPLcom/android/server/LocationManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/LocationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
@@ -2590,15 +2639,17 @@
 HSPLcom/android/server/LocationManagerService$Lifecycle;->onStart()V
 HSPLcom/android/server/LocationManagerService$LocalService;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService$LocalService;-><init>(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$1;)V
+HPLcom/android/server/LocationManagerService$LocalService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
 HPLcom/android/server/LocationManagerService$LocalService;->isProviderPackage(Ljava/lang/String;)Z
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Lcom/android/server/LocationManagerService$1;)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->attachLocked(Lcom/android/server/location/AbstractLocationProvider;)V
 PLcom/android/server/LocationManagerService$LocationProviderManager;->dump(Ljava/io/FileDescriptor;Lcom/android/internal/util/IndentingPrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/LocationManagerService$LocationProviderManager;->dumpLocked(Ljava/io/FileDescriptor;Lcom/android/internal/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/LocationManagerService$LocationProviderManager;->getLastCoarseLocation(I)Landroid/location/Location;
+HPLcom/android/server/LocationManagerService$LocationProviderManager;->getLastFineLocation(I)Landroid/location/Location;
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->getName()Ljava/lang/String;
 HPLcom/android/server/LocationManagerService$LocationProviderManager;->getPackages()Ljava/util/Set;
-PLcom/android/server/LocationManagerService$LocationProviderManager;->getPackagesLocked()Ljava/util/List;
 PLcom/android/server/LocationManagerService$LocationProviderManager;->getProperties()Lcom/android/internal/location/ProviderProperties;
 PLcom/android/server/LocationManagerService$LocationProviderManager;->getPropertiesLocked()Lcom/android/internal/location/ProviderProperties;
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->isEnabled()Z
@@ -2616,7 +2667,10 @@
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->onSetProperties(Lcom/android/internal/location/ProviderProperties;)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->onStateChanged(Lcom/android/server/location/AbstractLocationProvider$State;Lcom/android/server/location/AbstractLocationProvider$State;)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->onUseableChangedLocked(I)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->onUserStarted(I)V
+PLcom/android/server/LocationManagerService$LocationProviderManager;->onUserStopped(I)V
 PLcom/android/server/LocationManagerService$LocationProviderManager;->sendExtraCommand(IILjava/lang/String;Landroid/os/Bundle;)V
+HPLcom/android/server/LocationManagerService$LocationProviderManager;->setLastLocation(Landroid/location/Location;I)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->setRealProvider(Lcom/android/server/location/AbstractLocationProvider;)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->setRequest(Lcom/android/internal/location/ProviderRequest;)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
@@ -2632,7 +2686,6 @@
 HSPLcom/android/server/LocationManagerService$Receiver;->access$3000(Lcom/android/server/LocationManagerService$Receiver;)I
 PLcom/android/server/LocationManagerService$Receiver;->access$3000(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
 HSPLcom/android/server/LocationManagerService$Receiver;->access$3100(Lcom/android/server/LocationManagerService$Receiver;)I
-PLcom/android/server/LocationManagerService$Receiver;->access$3100(Lcom/android/server/LocationManagerService$Receiver;)V
 PLcom/android/server/LocationManagerService$Receiver;->access$3200(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
 HSPLcom/android/server/LocationManagerService$Receiver;->access$3300(Lcom/android/server/LocationManagerService$Receiver;)I
 PLcom/android/server/LocationManagerService$Receiver;->access$3900(Lcom/android/server/LocationManagerService$Receiver;)Ljava/lang/Object;
@@ -2676,6 +2729,7 @@
 PLcom/android/server/LocationManagerService$UpdateRecord;->access$4402(Lcom/android/server/LocationManagerService$UpdateRecord;Landroid/location/Location;)Landroid/location/Location;
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$900(Lcom/android/server/LocationManagerService$UpdateRecord;)Lcom/android/server/LocationManagerService$Receiver;
 HPLcom/android/server/LocationManagerService$UpdateRecord;->disposeLocked(Z)V
+PLcom/android/server/LocationManagerService$UpdateRecord;->lambda$new$0(Ljava/lang/String;)Ljava/util/ArrayList;
 HPLcom/android/server/LocationManagerService$UpdateRecord;->toString()Ljava/lang/String;
 PLcom/android/server/LocationManagerService$UpdateRecord;->updateForeground(Z)V
 HSPLcom/android/server/LocationManagerService;-><clinit>()V
@@ -2684,25 +2738,31 @@
 HSPLcom/android/server/LocationManagerService;->access$100(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService;->access$1300(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 HSPLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
+PLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationFudger;
 HPLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HSPLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;)I
+HSPLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/UserInfoHelper;
 HPLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 PLcom/android/server/LocationManagerService;->access$1600(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/PassiveProvider;
 HSPLcom/android/server/LocationManagerService;->access$1600(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/UserInfoHelper;
 HSPLcom/android/server/LocationManagerService;->access$1600(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/UserInfoStore;
+PLcom/android/server/LocationManagerService;->access$1600(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;Landroid/location/Location;Landroid/location/Location;)V
 HSPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationSettingsStore;
 HSPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/SettingsHelper;
 HSPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/UserInfoStore;
 HPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HSPLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 HSPLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationSettingsStore;
+HSPLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/SettingsHelper;
 PLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
+PLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 PLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
 PLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
 HSPLcom/android/server/LocationManagerService;->access$200(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;)Ljava/util/ArrayList;
 PLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
 HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;Z)V
 HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;I)Z
 HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;II)I
 HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
@@ -2723,12 +2783,12 @@
 PLcom/android/server/LocationManagerService;->access$2600(Lcom/android/server/LocationManagerService;I)Ljava/lang/String;
 PLcom/android/server/LocationManagerService;->access$2700(Lcom/android/server/LocationManagerService;I)Ljava/lang/String;
 PLcom/android/server/LocationManagerService;->access$2700(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$Receiver;)V
-PLcom/android/server/LocationManagerService;->access$2700(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$UpdateRecord;)Z
 PLcom/android/server/LocationManagerService;->access$2800(Lcom/android/server/LocationManagerService;)Landroid/app/AppOpsManager;
 PLcom/android/server/LocationManagerService;->access$2800(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$Receiver;)V
 HSPLcom/android/server/LocationManagerService;->access$300(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/LocationManagerService;->access$300(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService;->access$3200(Lcom/android/server/LocationManagerService;)Landroid/app/ActivityManager;
+PLcom/android/server/LocationManagerService;->access$3200(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/AppForegroundHelper;
 HSPLcom/android/server/LocationManagerService;->access$3300(Lcom/android/server/LocationManagerService;)Landroid/app/ActivityManager;
 HSPLcom/android/server/LocationManagerService;->access$3300(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/AppForegroundHelper;
 HSPLcom/android/server/LocationManagerService;->access$3300(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
@@ -2742,19 +2802,22 @@
 HSPLcom/android/server/LocationManagerService;->access$3700(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationRequestStatistics;
 HSPLcom/android/server/LocationManagerService;->access$400(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/LocationManagerService;->access$400(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
+PLcom/android/server/LocationManagerService;->access$4200(Lcom/android/server/LocationManagerService;)Ljava/util/concurrent/CopyOnWriteArrayList;
 PLcom/android/server/LocationManagerService;->access$4300(Lcom/android/server/LocationManagerService;)Ljava/util/concurrent/CopyOnWriteArrayList;
 HSPLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
+HPLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;I)V
 PLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
 HPLcom/android/server/LocationManagerService;->access$800(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService;->access$800(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->access$800(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
 PLcom/android/server/LocationManagerService;->access$900(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/LocationManagerService;->addGnssMeasurementsListener(Landroid/location/GnssRequest;Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/LocationManagerService;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/LocationManagerService;->addProviderLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HSPLcom/android/server/LocationManagerService;->applyRequirementsLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
@@ -2785,10 +2848,11 @@
 HSPLcom/android/server/LocationManagerService;->getMinimumResolutionLevelForProviderUseLocked(Ljava/lang/String;)I
 HPLcom/android/server/LocationManagerService;->getProviderProperties(Ljava/lang/String;)Lcom/android/internal/location/ProviderProperties;
 HPLcom/android/server/LocationManagerService;->getProviders(Landroid/location/Criteria;Z)Ljava/util/List;
-PLcom/android/server/LocationManagerService;->getReceiverLocked(Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)Lcom/android/server/LocationManagerService$Receiver;
+HPLcom/android/server/LocationManagerService;->getReceiverLocked(Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)Lcom/android/server/LocationManagerService$Receiver;
 HSPLcom/android/server/LocationManagerService;->getReceiverLocked(Landroid/location/ILocationListener;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)Lcom/android/server/LocationManagerService$Receiver;
 PLcom/android/server/LocationManagerService;->getResolutionPermission(I)Ljava/lang/String;
 HPLcom/android/server/LocationManagerService;->handleLocationChangedLocked(Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+HPLcom/android/server/LocationManagerService;->handleLocationChangedLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;Landroid/location/Location;Landroid/location/Location;)V
 HSPLcom/android/server/LocationManagerService;->initializeProvidersLocked()V
 PLcom/android/server/LocationManagerService;->injectGnssMeasurementCorrections(Landroid/location/GnssMeasurementCorrections;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->isCurrentProfileLocked(I)Z
@@ -2802,6 +2866,8 @@
 HSPLcom/android/server/LocationManagerService;->isThrottlingExemptLocked(Lcom/android/server/location/CallerIdentity;)Z
 HPLcom/android/server/LocationManagerService;->isValidWorkSource(Landroid/os/WorkSource;)Z
 HSPLcom/android/server/LocationManagerService;->lambda$AgevX9G4cx2TbNzr7MYT3YPtASs(Lcom/android/server/LocationManagerService;IZ)V
+PLcom/android/server/LocationManagerService;->lambda$DgmGqZVwms-Y6rAmZybXkZVgJ-Q(Lcom/android/server/LocationManagerService;II)V
+PLcom/android/server/LocationManagerService;->lambda$KXKNxpIZDrysWhFilQxLdYekB3M(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/LocationManagerService;->lambda$getCurrentLocation$13$LocationManagerService(Landroid/location/ILocationListener;Ljava/lang/String;)V
 PLcom/android/server/LocationManagerService;->lambda$getCurrentLocation$6$LocationManagerService(Landroid/location/ILocationListener;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->lambda$new$0$LocationManagerService(I)[Ljava/lang/String;
@@ -2821,14 +2887,16 @@
 PLcom/android/server/LocationManagerService;->lambda$onSystemReady$9$LocationManagerService()V
 HPLcom/android/server/LocationManagerService;->locationCallbackFinished(Landroid/location/ILocationListener;)V
 HSPLcom/android/server/LocationManagerService;->onAppForegroundChanged(IZ)V
+HPLcom/android/server/LocationManagerService;->onAppOpChanged(Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->onAppOpChangedLocked()V
+PLcom/android/server/LocationManagerService;->onBackgroundThrottleIntervalChanged()V
 PLcom/android/server/LocationManagerService;->onBackgroundThrottleIntervalChangedLocked()V
 PLcom/android/server/LocationManagerService;->onBatterySaverModeChangedLocked(I)V
 PLcom/android/server/LocationManagerService;->onIgnoreSettingsWhitelistChanged()V
 PLcom/android/server/LocationManagerService;->onIgnoreSettingsWhitelistChangedLocked()V
 HPLcom/android/server/LocationManagerService;->onLocationModeChanged(I)V
 HSPLcom/android/server/LocationManagerService;->onLocationModeChangedLocked(I)V
-HPLcom/android/server/LocationManagerService;->onPackageDisappearedLocked(Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->onPackageDisappearedLocked(Ljava/lang/String;)V
 HPLcom/android/server/LocationManagerService;->onPermissionsChangedLocked()V
 HPLcom/android/server/LocationManagerService;->onScreenStateChangedLocked()V
 HSPLcom/android/server/LocationManagerService;->onSystemReady()V
@@ -2845,24 +2913,29 @@
 HPLcom/android/server/LocationManagerService;->reportLocationAccessNoThrow(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Z
 PLcom/android/server/LocationManagerService;->requestGeofence(Landroid/location/LocationRequest;Landroid/location/Geofence;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/LocationManagerService;->requestLocationUpdatesLocked(Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;)V
 HSPLcom/android/server/LocationManagerService;->requestLocationUpdatesLocked(Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;ILjava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->resolutionLevelToOp(I)I
 PLcom/android/server/LocationManagerService;->resolutionLevelToOpStr(I)Ljava/lang/String;
 PLcom/android/server/LocationManagerService;->sendExtraCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Z
 PLcom/android/server/LocationManagerService;->setExtraLocationControllerPackage(Ljava/lang/String;)V
 HPLcom/android/server/LocationManagerService;->setExtraLocationControllerPackageEnabled(Z)V
+PLcom/android/server/LocationManagerService;->setLocationEnabledForUser(ZI)V
 HPLcom/android/server/LocationManagerService;->shouldBroadcastSafeLocked(Landroid/location/Location;Landroid/location/Location;Lcom/android/server/LocationManagerService$UpdateRecord;J)Z
 PLcom/android/server/LocationManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
 HPLcom/android/server/LocationManagerService;->updateLastLocationLocked(Landroid/location/Location;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->updateProviderEnabledLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+HSPLcom/android/server/LocationManagerService;->updateProviderEnabledLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;Z)V
 HSPLcom/android/server/LocationManagerService;->updateProviderUseableLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+PLcom/android/server/LocationManagerServiceUtils$LinkedListener;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Lcom/android/server/location/CallerIdentity;Ljava/util/function/Consumer;)V
 PLcom/android/server/LocationManagerServiceUtils$LinkedListener;-><init>(Ljava/lang/Object;Ljava/lang/String;Lcom/android/server/location/CallerIdentity;Ljava/util/function/Consumer;)V
 PLcom/android/server/LocationManagerServiceUtils$LinkedListener;->binderDied()V
+HPLcom/android/server/LocationManagerServiceUtils$LinkedListener;->getRequest()Ljava/lang/Object;
 HSPLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;-><init>(Lcom/android/server/location/CallerIdentity;Ljava/lang/String;)V
 PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->getCallerIdentity()Lcom/android/server/location/CallerIdentity;
 HSPLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->linkToListenerDeathNotificationLocked(Landroid/os/IBinder;)Z
 PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->toString()Ljava/lang/String;
-PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->unlinkFromListenerDeathNotificationLocked(Landroid/os/IBinder;)V
+HPLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->unlinkFromListenerDeathNotificationLocked(Landroid/os/IBinder;)V
 HPLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->unlinkFromListenerDeathNotificationLocked(Landroid/os/IBinder;)Z
 HSPLcom/android/server/LocationManagerServiceUtils;-><clinit>()V
 PLcom/android/server/LocationManagerServiceUtils;->access$000()Z
@@ -2907,7 +2980,7 @@
 PLcom/android/server/MmsServiceBroker$BinderService;->downloadMessage(ILjava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
 PLcom/android/server/MmsServiceBroker$BinderService;->downloadMessage(ILjava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;J)V
 HPLcom/android/server/MmsServiceBroker$BinderService;->sendMessage(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
-PLcom/android/server/MmsServiceBroker$BinderService;->sendMessage(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/PendingIntent;J)V
+HPLcom/android/server/MmsServiceBroker$BinderService;->sendMessage(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/PendingIntent;J)V
 HSPLcom/android/server/MmsServiceBroker;-><clinit>()V
 HSPLcom/android/server/MmsServiceBroker;-><init>(Landroid/content/Context;)V
 PLcom/android/server/MmsServiceBroker;->access$000(Lcom/android/server/MmsServiceBroker;)V
@@ -2927,7 +3000,7 @@
 PLcom/android/server/MountServiceIdler$1;-><init>(Lcom/android/server/MountServiceIdler;)V
 HPLcom/android/server/MountServiceIdler$1;->run()V
 HSPLcom/android/server/MountServiceIdler;-><clinit>()V
-PLcom/android/server/MountServiceIdler;-><init>()V
+HPLcom/android/server/MountServiceIdler;-><init>()V
 PLcom/android/server/MountServiceIdler;->access$000(Lcom/android/server/MountServiceIdler;)Ljava/lang/Runnable;
 PLcom/android/server/MountServiceIdler;->access$100(Lcom/android/server/MountServiceIdler;)Z
 PLcom/android/server/MountServiceIdler;->access$102(Lcom/android/server/MountServiceIdler;Z)Z
@@ -2952,6 +3025,7 @@
 HSPLcom/android/server/NativeDaemonConnector;->isShuttingDown()Z
 HSPLcom/android/server/NativeDaemonConnector;->listenToSocket()V
 PLcom/android/server/NativeDaemonConnector;->log(Ljava/lang/String;)V
+PLcom/android/server/NativeDaemonConnector;->loge(Ljava/lang/String;)V
 HPLcom/android/server/NativeDaemonConnector;->makeCommand(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;ILjava/lang/String;[Ljava/lang/Object;)V
 HSPLcom/android/server/NativeDaemonConnector;->run()V
 PLcom/android/server/NativeDaemonConnector;->uptimeMillisInt()I
@@ -3009,7 +3083,7 @@
 HSPLcom/android/server/NetworkManagementService;-><clinit>()V
 HSPLcom/android/server/NetworkManagementService;-><init>(Landroid/content/Context;Lcom/android/server/NetworkManagementService$SystemServices;)V
 HSPLcom/android/server/NetworkManagementService;->access$1000(Lcom/android/server/NetworkManagementService;Ljava/lang/String;J[Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService;->access$1100(Lcom/android/server/NetworkManagementService;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/NetworkManagementService;->access$1100(Lcom/android/server/NetworkManagementService;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/NetworkManagementService;->access$1200(Lcom/android/server/NetworkManagementService;IZJIZ)V
 HSPLcom/android/server/NetworkManagementService;->access$1300(Lcom/android/server/NetworkManagementService;)Landroid/net/INetd;
 HSPLcom/android/server/NetworkManagementService;->access$1400(Lcom/android/server/NetworkManagementService;I)Z
@@ -3027,6 +3101,7 @@
 PLcom/android/server/NetworkManagementService;->addVpnUidRanges(I[Landroid/net/UidRange;)V
 PLcom/android/server/NetworkManagementService;->allowProtect(I)V
 PLcom/android/server/NetworkManagementService;->applyUidCleartextNetworkPolicy(II)V
+PLcom/android/server/NetworkManagementService;->clearDefaultNetId()V
 HSPLcom/android/server/NetworkManagementService;->closeSocketsForFirewallChainLocked(ILjava/lang/String;)V
 HSPLcom/android/server/NetworkManagementService;->connectNativeNetdService()V
 HSPLcom/android/server/NetworkManagementService;->create(Landroid/content/Context;)Lcom/android/server/NetworkManagementService;
@@ -3050,7 +3125,7 @@
 HSPLcom/android/server/NetworkManagementService;->isBandwidthControlEnabled()Z
 HPLcom/android/server/NetworkManagementService;->isNetworkActive()Z
 HSPLcom/android/server/NetworkManagementService;->isNetworkRestrictedInternal(I)Z
-PLcom/android/server/NetworkManagementService;->lambda$addIdleTimer$12$NetworkManagementService(I)V
+HPLcom/android/server/NetworkManagementService;->lambda$addIdleTimer$12$NetworkManagementService(I)V
 HSPLcom/android/server/NetworkManagementService;->lambda$notifyAddressRemoved$8(Ljava/lang/String;Landroid/net/LinkAddress;Landroid/net/INetworkManagementEventObserver;)V
 HSPLcom/android/server/NetworkManagementService;->lambda$notifyAddressUpdated$7(Ljava/lang/String;Landroid/net/LinkAddress;Landroid/net/INetworkManagementEventObserver;)V
 HSPLcom/android/server/NetworkManagementService;->lambda$notifyInterfaceAdded$2(Ljava/lang/String;Landroid/net/INetworkManagementEventObserver;)V
@@ -3061,7 +3136,7 @@
 HPLcom/android/server/NetworkManagementService;->lambda$notifyLimitReached$4(Ljava/lang/String;Ljava/lang/String;Landroid/net/INetworkManagementEventObserver;)V
 HSPLcom/android/server/NetworkManagementService;->lambda$notifyRouteChange$10(Landroid/net/RouteInfo;Landroid/net/INetworkManagementEventObserver;)V
 HSPLcom/android/server/NetworkManagementService;->lambda$notifyRouteChange$11(Landroid/net/RouteInfo;Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/NetworkManagementService;->lambda$removeIdleTimer$13$NetworkManagementService(Lcom/android/server/NetworkManagementService$IdleTimerParams;)V
+HPLcom/android/server/NetworkManagementService;->lambda$removeIdleTimer$13$NetworkManagementService(Lcom/android/server/NetworkManagementService$IdleTimerParams;)V
 HSPLcom/android/server/NetworkManagementService;->listInterfaces()[Ljava/lang/String;
 PLcom/android/server/NetworkManagementService;->makeUidRangeParcel(II)Landroid/net/UidRangeParcel;
 HPLcom/android/server/NetworkManagementService;->modifyInterfaceInNetwork(ZILjava/lang/String;)V
@@ -3082,7 +3157,7 @@
 HPLcom/android/server/NetworkManagementService;->removeIdleTimer(Ljava/lang/String;)V
 PLcom/android/server/NetworkManagementService;->removeInterfaceFromNetwork(Ljava/lang/String;I)V
 HPLcom/android/server/NetworkManagementService;->removeInterfaceQuota(Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService;->removeRoute(ILandroid/net/RouteInfo;)V
+HPLcom/android/server/NetworkManagementService;->removeRoute(ILandroid/net/RouteInfo;)V
 PLcom/android/server/NetworkManagementService;->removeVpnUidRanges(I[Landroid/net/UidRange;)V
 HPLcom/android/server/NetworkManagementService;->reportNetworkActive()V
 HSPLcom/android/server/NetworkManagementService;->setDataSaverModeEnabled(Z)Z
@@ -3130,7 +3205,7 @@
 HPLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->accept(Landroid/net/INetworkScoreCache;Ljava/lang/Object;)V
 PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->create(Landroid/content/Context;Ljava/util/List;I)Lcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;
-PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->filterScores(Ljava/util/List;I)Ljava/util/List;
+HPLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->filterScores(Ljava/util/List;I)Ljava/util/List;
 HSPLcom/android/server/NetworkScoreService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/NetworkScoreService$Lifecycle;->onBootPhase(I)V
 HSPLcom/android/server/NetworkScoreService$Lifecycle;->onStart()V
@@ -3232,7 +3307,7 @@
 PLcom/android/server/NetworkTimeUpdateService$MyHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/NetworkTimeUpdateService$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateService;)V
 HSPLcom/android/server/NetworkTimeUpdateService$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateService;Lcom/android/server/NetworkTimeUpdateService$1;)V
-PLcom/android/server/NetworkTimeUpdateService$NetworkTimeUpdateCallback;->onAvailable(Landroid/net/Network;)V
+HPLcom/android/server/NetworkTimeUpdateService$NetworkTimeUpdateCallback;->onAvailable(Landroid/net/Network;)V
 PLcom/android/server/NetworkTimeUpdateService$NetworkTimeUpdateCallback;->onLost(Landroid/net/Network;)V
 HSPLcom/android/server/NetworkTimeUpdateService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/NetworkTimeUpdateService;->access$100(Lcom/android/server/NetworkTimeUpdateService;)Landroid/os/Handler;
@@ -3240,10 +3315,10 @@
 PLcom/android/server/NetworkTimeUpdateService;->access$300(Lcom/android/server/NetworkTimeUpdateService;)Landroid/net/Network;
 PLcom/android/server/NetworkTimeUpdateService;->access$302(Lcom/android/server/NetworkTimeUpdateService;Landroid/net/Network;)Landroid/net/Network;
 PLcom/android/server/NetworkTimeUpdateService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/NetworkTimeUpdateService;->onPollNetworkTime(I)V
+HPLcom/android/server/NetworkTimeUpdateService;->onPollNetworkTime(I)V
 HPLcom/android/server/NetworkTimeUpdateService;->onPollNetworkTimeUnderWakeLock(I)V
 HSPLcom/android/server/NetworkTimeUpdateService;->registerForAlarms()V
-PLcom/android/server/NetworkTimeUpdateService;->resetAlarm(J)V
+HPLcom/android/server/NetworkTimeUpdateService;->resetAlarm(J)V
 HSPLcom/android/server/NetworkTimeUpdateService;->systemRunning()V
 HSPLcom/android/server/NetworkTimeUpdateServiceImpl$1;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
 PLcom/android/server/NetworkTimeUpdateServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -3287,7 +3362,7 @@
 PLcom/android/server/NsdService$ClientInfo;->access$2400(Lcom/android/server/NsdService$ClientInfo;I)I
 PLcom/android/server/NsdService$ClientInfo;->access$2500(Lcom/android/server/NsdService$ClientInfo;)Lcom/android/internal/util/AsyncChannel;
 PLcom/android/server/NsdService$ClientInfo;->access$500(Lcom/android/server/NsdService$ClientInfo;)V
-PLcom/android/server/NsdService$ClientInfo;->expungeAllRequests()V
+HPLcom/android/server/NsdService$ClientInfo;->expungeAllRequests()V
 PLcom/android/server/NsdService$ClientInfo;->getClientId(I)I
 PLcom/android/server/NsdService$ClientInfo;->toString()Ljava/lang/String;
 HSPLcom/android/server/NsdService$DaemonConnection;-><init>(Lcom/android/server/NsdService$NativeCallbackReceiver;)V
@@ -3313,7 +3388,7 @@
 HSPLcom/android/server/NsdService$NsdStateMachine$EnabledState;-><init>(Lcom/android/server/NsdService$NsdStateMachine;)V
 HSPLcom/android/server/NsdService$NsdStateMachine$EnabledState;->enter()V
 HPLcom/android/server/NsdService$NsdStateMachine$EnabledState;->handleNativeEvent(ILjava/lang/String;[Ljava/lang/String;)Z
-PLcom/android/server/NsdService$NsdStateMachine$EnabledState;->processMessage(Landroid/os/Message;)Z
+HPLcom/android/server/NsdService$NsdStateMachine$EnabledState;->processMessage(Landroid/os/Message;)Z
 PLcom/android/server/NsdService$NsdStateMachine$EnabledState;->removeRequestMap(IILcom/android/server/NsdService$ClientInfo;)V
 PLcom/android/server/NsdService$NsdStateMachine$EnabledState;->requestLimitReached(Lcom/android/server/NsdService$ClientInfo;)Z
 PLcom/android/server/NsdService$NsdStateMachine$EnabledState;->storeRequestMap(IILcom/android/server/NsdService$ClientInfo;I)V
@@ -3329,6 +3404,8 @@
 PLcom/android/server/NsdService;->access$1800(Lcom/android/server/NsdService;I)Z
 PLcom/android/server/NsdService;->access$1900(Lcom/android/server/NsdService;Landroid/os/Message;I)V
 HSPLcom/android/server/NsdService;->access$200(Lcom/android/server/NsdService;)Lcom/android/server/NsdService$NsdSettings;
+PLcom/android/server/NsdService;->access$2000(Lcom/android/server/NsdService;ILandroid/net/nsd/NsdServiceInfo;)Z
+PLcom/android/server/NsdService;->access$2100(Lcom/android/server/NsdService;I)Z
 PLcom/android/server/NsdService;->access$2300(Lcom/android/server/NsdService;ILandroid/net/nsd/NsdServiceInfo;)Z
 PLcom/android/server/NsdService;->access$2600(Lcom/android/server/NsdService;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/NsdService;->access$2700(Lcom/android/server/NsdService;I)Z
@@ -3343,10 +3420,11 @@
 PLcom/android/server/NsdService;->discoverServices(ILjava/lang/String;)Z
 PLcom/android/server/NsdService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/NsdService;->getAddrInfo(ILjava/lang/String;)Z
-PLcom/android/server/NsdService;->getMessenger()Landroid/os/Messenger;
+HPLcom/android/server/NsdService;->getMessenger()Landroid/os/Messenger;
 PLcom/android/server/NsdService;->getUniqueId()I
 HSPLcom/android/server/NsdService;->isNsdEnabled()Z
 PLcom/android/server/NsdService;->obtainMessage(Landroid/os/Message;)Landroid/os/Message;
+PLcom/android/server/NsdService;->registerService(ILandroid/net/nsd/NsdServiceInfo;)Z
 PLcom/android/server/NsdService;->replyToMessage(Landroid/os/Message;I)V
 PLcom/android/server/NsdService;->replyToMessage(Landroid/os/Message;ILjava/lang/Object;)V
 PLcom/android/server/NsdService;->resolveService(ILandroid/net/nsd/NsdServiceInfo;)Z
@@ -3355,6 +3433,7 @@
 PLcom/android/server/NsdService;->stopResolveService(I)Z
 PLcom/android/server/NsdService;->stopServiceDiscovery(I)Z
 HPLcom/android/server/NsdService;->unescape(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/NsdService;->unregisterService(I)Z
 HSPLcom/android/server/PackageWatchdog$BootThreshold;-><init>(IJ)V
 HSPLcom/android/server/PackageWatchdog$BootThreshold;->getCount()I
 HSPLcom/android/server/PackageWatchdog$BootThreshold;->getStart()J
@@ -3378,7 +3457,7 @@
 PLcom/android/server/PackageWatchdog$MonitoredPackage;->onFailureLocked()Z
 HPLcom/android/server/PackageWatchdog$MonitoredPackage;->setHealthCheckActiveLocked(J)I
 PLcom/android/server/PackageWatchdog$MonitoredPackage;->toPositive(J)J
-PLcom/android/server/PackageWatchdog$MonitoredPackage;->toString(I)Ljava/lang/String;
+HPLcom/android/server/PackageWatchdog$MonitoredPackage;->toString(I)Ljava/lang/String;
 HPLcom/android/server/PackageWatchdog$MonitoredPackage;->tryPassHealthCheckLocked()I
 HPLcom/android/server/PackageWatchdog$MonitoredPackage;->updateHealthCheckStateLocked()I
 HPLcom/android/server/PackageWatchdog$MonitoredPackage;->writeLocked(Lorg/xmlpull/v1/XmlSerializer;)V
@@ -3441,7 +3520,7 @@
 HPLcom/android/server/PendingIntentUtils;->createDontSendToRestrictedAppsBundle(Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLcom/android/server/PersistentDataBlockService$1;-><init>(Lcom/android/server/PersistentDataBlockService;)V
 HPLcom/android/server/PersistentDataBlockService$1;->getFlashLockState()I
-PLcom/android/server/PersistentDataBlockService$1;->getMaximumDataBlockSize()J
+HPLcom/android/server/PersistentDataBlockService$1;->getMaximumDataBlockSize()J
 HPLcom/android/server/PersistentDataBlockService$1;->read()[B
 HPLcom/android/server/PersistentDataBlockService$1;->write([B)I
 HSPLcom/android/server/PersistentDataBlockService$2;-><init>(Lcom/android/server/PersistentDataBlockService;)V
@@ -3479,12 +3558,12 @@
 HSPLcom/android/server/PersistentDataBlockService;->getBlockDeviceSize()J
 HSPLcom/android/server/PersistentDataBlockService;->getFrpCredentialDataOffset()J
 HSPLcom/android/server/PersistentDataBlockService;->getTestHarnessModeDataOffset()J
-PLcom/android/server/PersistentDataBlockService;->getTotalDataSizeLocked(Ljava/io/DataInputStream;)I
+HPLcom/android/server/PersistentDataBlockService;->getTotalDataSizeLocked(Ljava/io/DataInputStream;)I
 HSPLcom/android/server/PersistentDataBlockService;->lambda$onStart$0$PersistentDataBlockService()V
 HSPLcom/android/server/PersistentDataBlockService;->onBootPhase(I)V
 HSPLcom/android/server/PersistentDataBlockService;->onStart()V
 HSPLcom/android/server/PinnerService$1;-><init>(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/PinnerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/PinnerService$2;-><init>(Lcom/android/server/PinnerService;Landroid/os/Handler;Landroid/net/Uri;)V
 PLcom/android/server/PinnerService$2;->onChange(ZLandroid/net/Uri;)V
 HSPLcom/android/server/PinnerService$3;-><init>(Lcom/android/server/PinnerService;)V
@@ -3494,7 +3573,7 @@
 HSPLcom/android/server/PinnerService$3;->onUidGone(IZ)V
 HSPLcom/android/server/PinnerService$BinderService;-><init>(Lcom/android/server/PinnerService;)V
 HSPLcom/android/server/PinnerService$BinderService;-><init>(Lcom/android/server/PinnerService;Lcom/android/server/PinnerService$1;)V
-PLcom/android/server/PinnerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/PinnerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/PinnerService$PinRange;-><init>()V
 HSPLcom/android/server/PinnerService$PinRangeSource;-><init>()V
 HSPLcom/android/server/PinnerService$PinRangeSource;-><init>(Lcom/android/server/PinnerService$1;)V
@@ -3673,9 +3752,9 @@
 PLcom/android/server/ServiceWatcher;->lambda$onServiceDisconnected$4$ServiceWatcher(Landroid/content/ComponentName;)V
 HSPLcom/android/server/ServiceWatcher;->lambda$register$0$ServiceWatcher()V
 HSPLcom/android/server/ServiceWatcher;->lambda$runOnBinder$1$ServiceWatcher(Lcom/android/server/ServiceWatcher$BinderRunner;)V
-PLcom/android/server/ServiceWatcher;->lambda$runOnBinder$2$ServiceWatcher(Lcom/android/server/ServiceWatcher$BinderRunner;)V
+HPLcom/android/server/ServiceWatcher;->lambda$runOnBinder$2$ServiceWatcher(Lcom/android/server/ServiceWatcher$BinderRunner;)V
 PLcom/android/server/ServiceWatcher;->lambda$runOnBinderBlocking$2$ServiceWatcher(Ljava/lang/Object;Lcom/android/server/ServiceWatcher$BlockingBinderRunner;)Ljava/lang/Object;
-PLcom/android/server/ServiceWatcher;->lambda$runOnBinderBlocking$3$ServiceWatcher(Ljava/lang/Object;Lcom/android/server/ServiceWatcher$BlockingBinderRunner;)Ljava/lang/Object;
+HPLcom/android/server/ServiceWatcher;->lambda$runOnBinderBlocking$3$ServiceWatcher(Ljava/lang/Object;Lcom/android/server/ServiceWatcher$BlockingBinderRunner;)Ljava/lang/Object;
 HSPLcom/android/server/ServiceWatcher;->lambda$start$0$ServiceWatcher()V
 HSPLcom/android/server/ServiceWatcher;->onBestServiceChanged(Z)V
 PLcom/android/server/ServiceWatcher;->onBind()V
@@ -3689,7 +3768,7 @@
 HSPLcom/android/server/ServiceWatcher;->rebind(Lcom/android/server/ServiceWatcher$ServiceInfo;)V
 HSPLcom/android/server/ServiceWatcher;->register()Z
 HSPLcom/android/server/ServiceWatcher;->runOnBinder(Lcom/android/server/ServiceWatcher$BinderRunner;)V
-PLcom/android/server/ServiceWatcher;->runOnBinderBlocking(Lcom/android/server/ServiceWatcher$BlockingBinderRunner;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/ServiceWatcher;->runOnBinderBlocking(Lcom/android/server/ServiceWatcher$BlockingBinderRunner;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/ServiceWatcher;->runOnHandler(Ljava/lang/Runnable;)V
 HPLcom/android/server/ServiceWatcher;->runOnHandlerBlocking(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
 HSPLcom/android/server/ServiceWatcher;->start()Z
@@ -3752,6 +3831,12 @@
 PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onReset(Landroid/os/IVold;)V
 HSPLcom/android/server/StorageManagerService$StorageManagerServiceHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
 HSPLcom/android/server/StorageManagerService$StorageManagerServiceHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/StorageManagerService$WatchedLockedUsers;-><init>(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/StorageManagerService$WatchedLockedUsers;->append(I)V
+HSPLcom/android/server/StorageManagerService$WatchedLockedUsers;->contains(I)Z
+PLcom/android/server/StorageManagerService$WatchedLockedUsers;->invalidateIsUserUnlockedCache()V
+PLcom/android/server/StorageManagerService$WatchedLockedUsers;->remove(I)V
+PLcom/android/server/StorageManagerService$WatchedLockedUsers;->toString()Ljava/lang/String;
 HSPLcom/android/server/StorageManagerService;-><clinit>()V
 HSPLcom/android/server/StorageManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/StorageManagerService;->abortIdleMaint(Ljava/lang/Runnable;)V
@@ -3797,7 +3882,7 @@
 HSPLcom/android/server/StorageManagerService;->access$5100(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I
 HSPLcom/android/server/StorageManagerService;->access$5200(Lcom/android/server/StorageManagerService;II)V
 PLcom/android/server/StorageManagerService;->access$600(Lcom/android/server/StorageManagerService;I)V
-PLcom/android/server/StorageManagerService;->access$6000(Lcom/android/server/StorageManagerService;)Z
+HPLcom/android/server/StorageManagerService;->access$6000(Lcom/android/server/StorageManagerService;)Z
 PLcom/android/server/StorageManagerService;->access$700(Lcom/android/server/StorageManagerService;I)V
 HSPLcom/android/server/StorageManagerService;->addInternalVolumeLocked()V
 PLcom/android/server/StorageManagerService;->addUserKeyAuth(II[B[B)V
@@ -3859,7 +3944,7 @@
 HPLcom/android/server/StorageManagerService;->onAwakeStateChanged(Z)V
 PLcom/android/server/StorageManagerService;->onCleanupUser(I)V
 HSPLcom/android/server/StorageManagerService;->onDaemonConnected()V
-HPLcom/android/server/StorageManagerService;->onKeyguardStateChanged(Z)V
+HSPLcom/android/server/StorageManagerService;->onKeyguardStateChanged(Z)V
 PLcom/android/server/StorageManagerService;->onStopUser(I)V
 PLcom/android/server/StorageManagerService;->onUnlockUser(I)V
 PLcom/android/server/StorageManagerService;->onVolumeCreatedLocked(Landroid/os/storage/VolumeInfo;)V
@@ -4024,7 +4109,6 @@
 HSPLcom/android/server/TelephonyRegistry;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
 HPLcom/android/server/TelephonyRegistry;->broadcastCallStateChanged(ILjava/lang/String;II)V
 HPLcom/android/server/TelephonyRegistry;->broadcastDataConnectionStateChanged(ILjava/lang/String;II)V
-PLcom/android/server/TelephonyRegistry;->broadcastDataConnectionStateChanged(ILjava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/TelephonyRegistry;->broadcastDataConnectionStateChanged(IZLjava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ZI)V
 HPLcom/android/server/TelephonyRegistry;->broadcastServiceStateChanged(Landroid/telephony/ServiceState;II)V
 HPLcom/android/server/TelephonyRegistry;->broadcastSignalStrengthChanged(Landroid/telephony/SignalStrength;II)V
@@ -4037,6 +4121,7 @@
 HPLcom/android/server/TelephonyRegistry;->checkPossibleMissNotify(Lcom/android/server/TelephonyRegistry$Record;I)V
 HSPLcom/android/server/TelephonyRegistry;->createCallQuality()Landroid/telephony/CallQuality;
 HSPLcom/android/server/TelephonyRegistry;->createPreciseCallState()Landroid/telephony/PreciseCallState;
+PLcom/android/server/TelephonyRegistry;->cutListToSize(Ljava/util/List;I)V
 HPLcom/android/server/TelephonyRegistry;->dataStateToString(I)Ljava/lang/String;
 HPLcom/android/server/TelephonyRegistry;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/TelephonyRegistry;->fillInSignalStrengthNotifierBundle(Landroid/telephony/SignalStrength;Landroid/os/Bundle;)V
@@ -4066,7 +4151,6 @@
 HPLcom/android/server/TelephonyRegistry;->notifyDataConnectionFailedForSubscriber(III)V
 HPLcom/android/server/TelephonyRegistry;->notifyDataConnectionForSubscriber(IIILandroid/telephony/PreciseDataConnectionState;)V
 HPLcom/android/server/TelephonyRegistry;->notifyDataConnectionForSubscriber(IIIZLjava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
-HPLcom/android/server/TelephonyRegistry;->notifyDataConnectionForSubscriber(IILjava/lang/String;Landroid/telephony/PreciseDataConnectionState;)V
 HPLcom/android/server/TelephonyRegistry;->notifyDisconnectCause(IIII)V
 HPLcom/android/server/TelephonyRegistry;->notifyEmergencyNumberList(II)V
 HPLcom/android/server/TelephonyRegistry;->notifyImsDisconnectCause(ILandroid/telephony/ims/ImsReasonInfo;)V
@@ -4105,8 +4189,8 @@
 PLcom/android/server/UiModeManagerService$10;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/UiModeManagerService$10;->enableCarMode(IILjava/lang/String;)V
 HSPLcom/android/server/UiModeManagerService$10;->getCurrentModeType()I
-PLcom/android/server/UiModeManagerService$10;->getCustomNightModeEnd()J
-PLcom/android/server/UiModeManagerService$10;->getCustomNightModeStart()J
+HPLcom/android/server/UiModeManagerService$10;->getCustomNightModeEnd()J
+HPLcom/android/server/UiModeManagerService$10;->getCustomNightModeStart()J
 HPLcom/android/server/UiModeManagerService$10;->getNightMode()I
 PLcom/android/server/UiModeManagerService$10;->isNightModeLocked()Z
 PLcom/android/server/UiModeManagerService$10;->isUiModeLocked()Z
@@ -4148,6 +4232,7 @@
 PLcom/android/server/UiModeManagerService$Shell;->access$2200(I)Ljava/lang/String;
 PLcom/android/server/UiModeManagerService$Shell;->access$2300(I)Ljava/lang/String;
 PLcom/android/server/UiModeManagerService$Shell;->access$2900(I)Ljava/lang/String;
+PLcom/android/server/UiModeManagerService$Shell;->access$3000(I)Ljava/lang/String;
 PLcom/android/server/UiModeManagerService$Shell;->nightModeToStr(I)Ljava/lang/String;
 HSPLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;)V
 HSPLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;Lcom/android/server/UiModeManagerService$1;)V
@@ -4159,34 +4244,45 @@
 HSPLcom/android/server/UiModeManagerService;->access$1100(Lcom/android/server/UiModeManagerService;Landroid/content/Context;Landroid/content/res/Resources;I)Z
 HSPLcom/android/server/UiModeManagerService;->access$1200(Lcom/android/server/UiModeManagerService;Landroid/content/Context;Landroid/content/res/Resources;I)Z
 PLcom/android/server/UiModeManagerService;->access$1300()Ljava/lang/String;
+PLcom/android/server/UiModeManagerService;->access$1300(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$1400()Ljava/lang/String;
 PLcom/android/server/UiModeManagerService;->access$1400(Lcom/android/server/UiModeManagerService;)Ljava/util/Map;
+PLcom/android/server/UiModeManagerService;->access$1500()Ljava/lang/String;
 PLcom/android/server/UiModeManagerService;->access$1500(Lcom/android/server/UiModeManagerService;)Ljava/util/Map;
 PLcom/android/server/UiModeManagerService;->access$1502(Lcom/android/server/UiModeManagerService;I)I
+PLcom/android/server/UiModeManagerService;->access$1600(Lcom/android/server/UiModeManagerService;)Ljava/util/Map;
 PLcom/android/server/UiModeManagerService;->access$1600(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$1600(Lcom/android/server/UiModeManagerService;)Z
+PLcom/android/server/UiModeManagerService;->access$1700(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$1700(Lcom/android/server/UiModeManagerService;I)V
 PLcom/android/server/UiModeManagerService;->access$1702(Lcom/android/server/UiModeManagerService;I)I
 PLcom/android/server/UiModeManagerService;->access$1800(Lcom/android/server/UiModeManagerService;)Z
+PLcom/android/server/UiModeManagerService;->access$1802(Lcom/android/server/UiModeManagerService;I)I
 PLcom/android/server/UiModeManagerService;->access$1900(Lcom/android/server/UiModeManagerService;)Z
 PLcom/android/server/UiModeManagerService;->access$1900(Lcom/android/server/UiModeManagerService;I)V
 PLcom/android/server/UiModeManagerService;->access$2000(Lcom/android/server/UiModeManagerService;)Z
+PLcom/android/server/UiModeManagerService;->access$2000(Lcom/android/server/UiModeManagerService;I)V
 HSPLcom/android/server/UiModeManagerService;->access$202(Lcom/android/server/UiModeManagerService;Z)Z
 PLcom/android/server/UiModeManagerService;->access$2100(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$2100(Lcom/android/server/UiModeManagerService;)Z
 PLcom/android/server/UiModeManagerService;->access$2200(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$2200(Lcom/android/server/UiModeManagerService;)Z
+PLcom/android/server/UiModeManagerService;->access$2300(Lcom/android/server/UiModeManagerService;)Z
 PLcom/android/server/UiModeManagerService;->access$2400(Lcom/android/server/UiModeManagerService;)Landroid/content/res/Configuration;
 PLcom/android/server/UiModeManagerService;->access$2400(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$2500(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$2600(Lcom/android/server/UiModeManagerService;)Ljava/time/LocalTime;
+PLcom/android/server/UiModeManagerService;->access$2600(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$2602(Lcom/android/server/UiModeManagerService;Ljava/time/LocalTime;)Ljava/time/LocalTime;
+PLcom/android/server/UiModeManagerService;->access$2700(Lcom/android/server/UiModeManagerService;)Ljava/time/LocalTime;
 PLcom/android/server/UiModeManagerService;->access$2700(Lcom/android/server/UiModeManagerService;I)V
 PLcom/android/server/UiModeManagerService;->access$2800(Lcom/android/server/UiModeManagerService;)Ljava/time/LocalTime;
 PLcom/android/server/UiModeManagerService;->access$2802(Lcom/android/server/UiModeManagerService;Ljava/time/LocalTime;)Ljava/time/LocalTime;
+PLcom/android/server/UiModeManagerService;->access$2900(Lcom/android/server/UiModeManagerService;)Ljava/time/LocalTime;
 PLcom/android/server/UiModeManagerService;->access$300(Lcom/android/server/UiModeManagerService;)I
 PLcom/android/server/UiModeManagerService;->access$3000(Lcom/android/server/UiModeManagerService;)Landroid/content/res/Configuration;
 PLcom/android/server/UiModeManagerService;->access$302(Lcom/android/server/UiModeManagerService;I)I
+PLcom/android/server/UiModeManagerService;->access$3100(Lcom/android/server/UiModeManagerService;)Landroid/content/res/Configuration;
 PLcom/android/server/UiModeManagerService;->access$400(Lcom/android/server/UiModeManagerService;)Z
 PLcom/android/server/UiModeManagerService;->access$500(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService;->access$600(Lcom/android/server/UiModeManagerService;)V
@@ -4195,7 +4291,7 @@
 HPLcom/android/server/UiModeManagerService;->adjustStatusBarCarModeLocked()V
 HSPLcom/android/server/UiModeManagerService;->applyConfigurationExternallyLocked()V
 PLcom/android/server/UiModeManagerService;->buildHomeIntent(Ljava/lang/String;)Landroid/content/Intent;
-PLcom/android/server/UiModeManagerService;->cancelCustomAlarm()V
+HPLcom/android/server/UiModeManagerService;->cancelCustomAlarm()V
 HPLcom/android/server/UiModeManagerService;->computeCustomNightMode()Z
 HPLcom/android/server/UiModeManagerService;->disableCarMode(IILjava/lang/String;)V
 HPLcom/android/server/UiModeManagerService;->dumpImpl(Ljava/io/PrintWriter;)V
@@ -4232,6 +4328,7 @@
 PLcom/android/server/UiModeManagerService;->updateCustomTimeLocked()V
 HSPLcom/android/server/UiModeManagerService;->updateLocked(II)V
 HSPLcom/android/server/UiModeManagerService;->updateNightModeFromSettings(Landroid/content/Context;Landroid/content/res/Resources;I)Z
+HSPLcom/android/server/UiModeManagerService;->updateSystemProperties()V
 HSPLcom/android/server/UiModeManagerService;->verifySetupWizardCompleted()V
 HSPLcom/android/server/UiThread;-><init>()V
 HSPLcom/android/server/UiThread;->ensureThreadLocked()V
@@ -4323,7 +4420,7 @@
 PLcom/android/server/VibratorService;->access$2400(Lcom/android/server/VibratorService;)I
 PLcom/android/server/VibratorService;->access$2700(Lcom/android/server/VibratorService;)Landroid/content/Context;
 HPLcom/android/server/VibratorService;->access$300(Lcom/android/server/VibratorService;)V
-PLcom/android/server/VibratorService;->access$400(I)Z
+HPLcom/android/server/VibratorService;->access$400(I)Z
 HPLcom/android/server/VibratorService;->access$500(I)Z
 HPLcom/android/server/VibratorService;->access$600(I)Z
 PLcom/android/server/VibratorService;->access$700(I)Z
@@ -4350,36 +4447,36 @@
 HPLcom/android/server/VibratorService;->getCurrentIntensityLocked(Lcom/android/server/VibratorService$Vibration;)I
 PLcom/android/server/VibratorService;->getFallbackEffect(I)Landroid/os/VibrationEffect;
 HSPLcom/android/server/VibratorService;->getLongIntArray(Landroid/content/res/Resources;I)[J
+PLcom/android/server/VibratorService;->hasAmplitudeControl()Z
 PLcom/android/server/VibratorService;->hasCapability(J)Z
 HPLcom/android/server/VibratorService;->hasPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/VibratorService;->hasVibrator()Z
 HPLcom/android/server/VibratorService;->intensityToEffectStrength(I)I
 PLcom/android/server/VibratorService;->isAlarm(I)Z
-PLcom/android/server/VibratorService;->isAllowedToVibrateLocked(Lcom/android/server/VibratorService$Vibration;)Z
-PLcom/android/server/VibratorService;->isHapticFeedback(I)Z
+HPLcom/android/server/VibratorService;->isAllowedToVibrateLocked(Lcom/android/server/VibratorService$Vibration;)Z
+HPLcom/android/server/VibratorService;->isHapticFeedback(I)Z
 HPLcom/android/server/VibratorService;->isNotification(I)Z
 HPLcom/android/server/VibratorService;->isRepeatingVibration(Landroid/os/VibrationEffect;)Z
 HPLcom/android/server/VibratorService;->isRingtone(I)Z
 HPLcom/android/server/VibratorService;->linkVibration(Lcom/android/server/VibratorService$Vibration;)V
 HPLcom/android/server/VibratorService;->noteVibratorOffLocked()V
 HPLcom/android/server/VibratorService;->noteVibratorOnLocked(IJ)V
+HPLcom/android/server/VibratorService;->notifyStateListenersLocked()V
 PLcom/android/server/VibratorService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
 HPLcom/android/server/VibratorService;->onVibrationFinished()V
 HPLcom/android/server/VibratorService;->reportFinishVibrationLocked()V
-PLcom/android/server/VibratorService;->setAlwaysOnEffect(ILandroid/os/VibrationEffect;Landroid/media/AudioAttributes;)Z
 PLcom/android/server/VibratorService;->setAlwaysOnEffect(ILandroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)Z
 PLcom/android/server/VibratorService;->setAlwaysOnEffect(ILjava/lang/String;ILandroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)Z
 PLcom/android/server/VibratorService;->setVibratorUnderExternalControl(Z)V
 PLcom/android/server/VibratorService;->shouldBypassDnd(Landroid/media/AudioAttributes;)Z
 HPLcom/android/server/VibratorService;->shouldBypassDnd(Landroid/os/VibrationAttributes;)Z
 HPLcom/android/server/VibratorService;->shouldVibrate(Lcom/android/server/VibratorService$Vibration;I)Z
-PLcom/android/server/VibratorService;->shouldVibrateForRingtone()Z
+HPLcom/android/server/VibratorService;->shouldVibrateForRingtone()Z
 HPLcom/android/server/VibratorService;->startVibrationInnerLocked(Lcom/android/server/VibratorService$Vibration;)V
 HPLcom/android/server/VibratorService;->startVibrationLocked(Lcom/android/server/VibratorService$Vibration;)V
 HSPLcom/android/server/VibratorService;->systemReady()V
-PLcom/android/server/VibratorService;->unlinkVibration(Lcom/android/server/VibratorService$Vibration;)V
+HPLcom/android/server/VibratorService;->unlinkVibration(Lcom/android/server/VibratorService$Vibration;)V
 HSPLcom/android/server/VibratorService;->updateAlwaysOnLocked()V
-PLcom/android/server/VibratorService;->updateAlwaysOnLocked(ILandroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
 HPLcom/android/server/VibratorService;->updateAlwaysOnLocked(ILandroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)V
 PLcom/android/server/VibratorService;->updateAlwaysOnLocked(ILcom/android/server/VibratorService$Vibration;)V
 HSPLcom/android/server/VibratorService;->updateInputDeviceVibratorsLocked()Z
@@ -4467,6 +4564,7 @@
 PLcom/android/server/accessibility/-$$Lambda$AbiCM6mjSOPpIPMT9CFGL4UAcKY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$49HMbWlhAK8DBFFzhu5wH_-EQaM;-><init>(Ljava/lang/String;)V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$J4pGG-UiTxhxH1VLNWBa7KLTh48;-><init>(Ljava/lang/String;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$J4pGG-UiTxhxH1VLNWBa7KLTh48;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;-><clinit>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;-><init>()V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
@@ -4477,11 +4575,12 @@
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$5vwr6qV-eqdCr73CeDmVnsJlZHM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$BB160fzAC7iBy5jJ5MWjuD3DeD8;-><clinit>()V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$BB160fzAC7iBy5jJ5MWjuD3DeD8;-><init>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$BB160fzAC7iBy5jJ5MWjuD3DeD8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$BX2CMQr5jU9WhPYx7Aaae4zgxf4;-><clinit>()V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$BX2CMQr5jU9WhPYx7Aaae4zgxf4;-><init>()V
 HPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$BX2CMQr5jU9WhPYx7Aaae4zgxf4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;-><clinit>()V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;-><init>()V
+HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;-><clinit>()V
+HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;-><init>()V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;->accept(Ljava/lang/Object;)V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$INvzqadejxj-XxBJAa177LZwIDQ;-><init>(Lcom/android/server/accessibility/AccessibilityUserState;)V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$INvzqadejxj-XxBJAa177LZwIDQ;->test(Ljava/lang/Object;)Z
@@ -4495,9 +4594,12 @@
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$PPQodQ1oFD7RLj5c4axXJBoCbR8;->acceptOrThrow(Ljava/lang/Object;)V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$ZdgJH-YGWmUCqtsR2uYpejEExzw;-><init>(Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/Set;Ljava/util/Set;)V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$ZdgJH-YGWmUCqtsR2uYpejEExzw;->accept(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$eskhivxnBVBZCLZ0d5oWdhYVtfs;-><clinit>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$eskhivxnBVBZCLZ0d5oWdhYVtfs;-><init>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$eskhivxnBVBZCLZ0d5oWdhYVtfs;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;-><clinit>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;-><init>()V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$heq1MRdQjg8BGWFbpV3PEpnDVcg;-><clinit>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$heq1MRdQjg8BGWFbpV3PEpnDVcg;-><init>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$heq1MRdQjg8BGWFbpV3PEpnDVcg;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -4535,6 +4637,9 @@
 PLcom/android/server/accessibility/-$$Lambda$X8i00nfnUx_qUoIgZixkfu6ddSY;-><clinit>()V
 PLcom/android/server/accessibility/-$$Lambda$X8i00nfnUx_qUoIgZixkfu6ddSY;-><init>()V
 HPLcom/android/server/accessibility/-$$Lambda$X8i00nfnUx_qUoIgZixkfu6ddSY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/-$$Lambda$iE9JplYHP8mrOjjadf_Oh8XKSE4;-><clinit>()V
+PLcom/android/server/accessibility/-$$Lambda$iE9JplYHP8mrOjjadf_Oh8XKSE4;-><init>()V
+PLcom/android/server/accessibility/-$$Lambda$iE9JplYHP8mrOjjadf_Oh8XKSE4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$1;-><init>(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;Landroid/os/Looper;)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$1;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;-><init>(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;Landroid/os/Looper;)V
@@ -4551,6 +4656,7 @@
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->access$300(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;ILandroid/graphics/Region;FFF)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->access$500(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;I)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->access$600(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;Z)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->access$700(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->canReceiveEventsLocked()Z
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->ensureWindowsAvailableTimedLocked(I)V
@@ -4561,9 +4667,9 @@
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getComponentName()Landroid/content/ComponentName;
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getMagnificationRegion(I)Landroid/graphics/Region;
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getMagnificationScale(I)F
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getRelevantEventTypes()I
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getServiceInterfaceSafely()Landroid/accessibilityservice/IAccessibilityServiceClient;
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getRelevantEventTypes()I
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getServiceInterfaceSafely()Landroid/accessibilityservice/IAccessibilityServiceClient;
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getWindow(I)Landroid/view/accessibility/AccessibilityWindowInfo;
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getWindows()Landroid/view/accessibility/AccessibilityWindowInfo$WindowListSparseArray;
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getWindowsByDisplayLocked(I)Ljava/util/List;
@@ -4578,11 +4684,13 @@
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyAccessibilityEventInternal(ILandroid/view/accessibility/AccessibilityEvent;Z)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyClearAccessibilityCacheInternal()V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyClearAccessibilityNodeInfoCache()V
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyClearAccessibilityNodeInfoCache()V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyGesture(Landroid/accessibilityservice/AccessibilityGestureEvent;)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyGestureInternal(Landroid/accessibilityservice/AccessibilityGestureEvent;)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyMagnificationChangedInternal(ILandroid/graphics/Region;FFF)V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyMagnificationChangedLocked(ILandroid/graphics/Region;FFF)V
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyMagnificationChangedLocked(ILandroid/graphics/Region;FFF)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifySystemActionsChangedInternal()V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifySystemActionsChangedLocked()V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->onAdded()V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->onDisplayAdded(I)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->onDisplayRemoved(I)V
@@ -4590,6 +4698,7 @@
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->onRemoved()V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->performAccessibilityAction(IJILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)Z
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->performAccessibilityActionInternal(IIJILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IJ)Z
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->performGlobalAction(I)Z
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->registerMagnificationIfNeeded(ILcom/android/server/accessibility/MagnificationController;)Z
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->replaceCallbackIfNeeded(Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIIJ)Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->resetLocked()V
@@ -4626,8 +4735,10 @@
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->getEventStreamState(Landroid/view/InputEvent;)Lcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->handleMotionEvent(Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->isDisplayIdValid(I)Z
+PLcom/android/server/accessibility/AccessibilityInputFilter;->notifyAccessibilityButtonClicked(I)V
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->notifyAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
-PLcom/android/server/accessibility/AccessibilityInputFilter;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+HPLcom/android/server/accessibility/AccessibilityInputFilter;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->onDisplayChanged()V
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->onInputEvent(Landroid/view/InputEvent;I)V
 PLcom/android/server/accessibility/AccessibilityInputFilter;->onInstalled()V
 PLcom/android/server/accessibility/AccessibilityInputFilter;->onKeyEvent(Landroid/view/KeyEvent;I)V
@@ -4638,10 +4749,11 @@
 PLcom/android/server/accessibility/AccessibilityInputFilter;->resetStreamState()V
 PLcom/android/server/accessibility/AccessibilityInputFilter;->setUserAndEnabledFeatures(II)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$1;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$1;->lambda$onPackageUpdateFinished$1(Ljava/lang/String;Landroid/content/ComponentName;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService$1;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
-HPLcom/android/server/accessibility/AccessibilityManagerService$1;->onPackageRemoved(Ljava/lang/String;I)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$1;->onPackageRemoved(Ljava/lang/String;I)V
 PLcom/android/server/accessibility/AccessibilityManagerService$1;->onPackageUpdateFinished(Ljava/lang/String;I)V
-HPLcom/android/server/accessibility/AccessibilityManagerService$1;->onSomePackagesChanged()V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$1;->onSomePackagesChanged()V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$2;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Handler;)V
@@ -4682,7 +4794,7 @@
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$1800(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/wm/WindowManagerInternal;
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$1900(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/AccessibilityWindowManager;
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$1900(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/SystemActionPerformer;
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$200(Lcom/android/server/accessibility/AccessibilityManagerService;)I
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$200(Lcom/android/server/accessibility/AccessibilityManagerService;)I
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$2000(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/AccessibilityWindowManager;
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$2100(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/wm/ActivityTaskManagerInternal;
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$2200(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
@@ -4694,23 +4806,27 @@
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$2500(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$2600(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$2700(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$300(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/AccessibilityUserState;
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$300(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/AccessibilityUserState;
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$3000(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$3300(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$400(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->access$3400(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$400(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$500(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$600(Lcom/android/server/accessibility/AccessibilityManagerService;I)Lcom/android/server/accessibility/AccessibilityUserState;
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$600(Lcom/android/server/accessibility/AccessibilityManagerService;I)Lcom/android/server/accessibility/AccessibilityUserState;
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$700(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$700(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Ljava/lang/String;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$800(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$900(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/os/IBinder;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
 HPLcom/android/server/accessibility/AccessibilityManagerService;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
 PLcom/android/server/accessibility/AccessibilityManagerService;->announceNewUserIfNeeded()V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->broadcastToClients(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/function/Consumer;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->canRequestAndRequestsTouchExplorationLocked(Lcom/android/server/accessibility/AccessibilityServiceConnection;Lcom/android/server/accessibility/AccessibilityUserState;)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->computeRelevantEventTypesLocked(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
+PLcom/android/server/accessibility/AccessibilityManagerService;->disableAccessibilityServiceLocked(Landroid/content/ComponentName;I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->enableAccessibilityServiceLocked(Landroid/content/ComponentName;I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->getAccessibilityShortcutTargets(I)Ljava/util/List;
 HPLcom/android/server/accessibility/AccessibilityManagerService;->getAccessibilityShortcutTargetsInternal(I)Ljava/util/List;
 PLcom/android/server/accessibility/AccessibilityManagerService;->getActiveWindowId()I
@@ -4737,11 +4853,13 @@
 PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$BX2CMQr5jU9WhPYx7Aaae4zgxf4(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/AccessibilityEvent;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$Gu-W_dQ2mWyy8l4tm19TzFxGbeM(Lcom/android/server/accessibility/AccessibilityManagerService;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->lambda$NCeV24lEcO5W6ZZr1GqGK-ylU9g(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$eskhivxnBVBZCLZ0d5oWdhYVtfs(Lcom/android/server/accessibility/AccessibilityManagerService;IILjava/lang/String;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->lambda$heq1MRdQjg8BGWFbpV3PEpnDVcg(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/RemoteCallbackList;J)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->lambda$luI_C3QiJWsM08i8m3lx484SyyY(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$migrateAccessibilityButtonSettingsIfNecessaryLocked$13(Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;Ljava/lang/String;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$migrateAccessibilityButtonSettingsIfNecessaryLocked$14(Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/Set;Ljava/util/Set;Landroid/content/ComponentName;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->lambda$notifyClientsOfServicesStateChange$6(JLandroid/view/accessibility/IAccessibilityManagerClient;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$persistComponentNamesToSettingLocked$4(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$readAccessibilityButtonSettingsLocked$8(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$readAccessibilityShortcutKeySettingLocked$7(Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/accessibility/AccessibilityManagerService;->lambda$readComponentNamesFromSettingLocked$2(Ljava/lang/String;)Landroid/content/ComponentName;
@@ -4753,9 +4871,10 @@
 PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$zXJtauhUptSkQJSF-M55-grAVbo(Lcom/android/server/accessibility/AccessibilityManagerService;II)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->migrateAccessibilityButtonSettingsIfNecessaryLocked(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/lang/String;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonClicked(I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonClicked(ILjava/lang/String;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonClickedLocked(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChanged(Z)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChangedLocked(Z)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChangedLocked(Z)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityServicesDelayedLocked(Landroid/view/accessibility/AccessibilityEvent;Z)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyClearAccessibilityCacheLocked()V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->notifyClientsOfServicesStateChange(Landroid/os/RemoteCallbackList;J)V
@@ -4772,6 +4891,11 @@
 PLcom/android/server/accessibility/AccessibilityManagerService;->onTouchInteractionEnd()V
 PLcom/android/server/accessibility/AccessibilityManagerService;->onTouchInteractionStart()V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->onUserStateChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityFrameworkFeature(Landroid/content/ComponentName;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcut(Ljava/lang/String;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcutInternal(IILjava/lang/String;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcutTargetActivity(ILandroid/content/ComponentName;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcutTargetService(IILandroid/content/ComponentName;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->performActionOnAccessibilityFocusedItem(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->persistColonDelimitedSetToSettingLocked(Ljava/lang/String;ILjava/util/Set;Ljava/util/function/Function;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->persistComponentNamesToSettingLocked(Ljava/lang/String;Ljava/util/Set;I)V
@@ -4799,6 +4923,7 @@
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateClientsIfNeededLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateFingerprintGestureHandling(Lcom/android/server/accessibility/AccessibilityUserState;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateInputFilter(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityButtonToInputFilter(I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEventForCurrentUserLocked(Landroid/view/accessibility/AccessibilityEvent;)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEventLocked(Landroid/view/accessibility/AccessibilityEvent;I)V
@@ -4810,6 +4935,7 @@
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->sendStateToClients(ILandroid/os/RemoteCallbackList;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->setMotionEventInjectors(Landroid/util/SparseArray;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->showAccessibilityTargetsSelection(II)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->switchUser(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->unlockUser(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->unregisterUiTestAutomationService(Landroid/accessibilityservice/IAccessibilityServiceClient;)V
@@ -4846,20 +4972,20 @@
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->hasPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isCallerInteractingAcrossUsers(I)Z
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isRetrievalAllowingWindowLocked(II)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isShellAllowedToRetrieveWindowLocked(II)Z
+HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isShellAllowedToRetrieveWindowLocked(II)Z
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isValidPackageForUid(Ljava/lang/String;I)Z
 HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveCallingUserIdEnforcingPermissionsLocked(I)I
 HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveProfileParentLocked(I)I
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveValidReportedPackageLocked(Ljava/lang/CharSequence;II)Ljava/lang/String;
 HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setAccessibilityWindowManager(Lcom/android/server/accessibility/AccessibilityWindowManager;)V
 HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setAppWidgetManager(Landroid/appwidget/AppWidgetManagerInternal;)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->updateEventSourceLocked(Landroid/view/accessibility/AccessibilityEvent;)V
+HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->updateEventSourceLocked(Landroid/view/accessibility/AccessibilityEvent;)V
 PLcom/android/server/accessibility/AccessibilityServiceConnection;-><init>(Lcom/android/server/accessibility/AccessibilityUserState;Landroid/content/Context;Landroid/content/ComponentName;Landroid/accessibilityservice/AccessibilityServiceInfo;ILandroid/os/Handler;Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$SystemSupport;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;Lcom/android/server/wm/ActivityTaskManagerInternal;)V
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->bindLocked()V
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->binderDied()V
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->canRetrieveInteractiveWindowsLocked()Z
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->disableSelf()V
-PLcom/android/server/accessibility/AccessibilityServiceConnection;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
+HPLcom/android/server/accessibility/AccessibilityServiceConnection;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
 HPLcom/android/server/accessibility/AccessibilityServiceConnection;->hasRightsToCurrentUserLocked()Z
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->initializeService()V
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->isAccessibilityButtonAvailable()Z
@@ -4883,6 +5009,7 @@
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getLastSentClientStateLocked()I
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getNonInteractiveUiTimeoutLocked()I
 PLcom/android/server/accessibility/AccessibilityUserState;->getServiceAssignedToAccessibilityButtonLocked()Landroid/content/ComponentName;
+PLcom/android/server/accessibility/AccessibilityUserState;->getServiceConnectionLocked(Landroid/content/ComponentName;)Lcom/android/server/accessibility/AccessibilityServiceConnection;
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getShortcutTargetsLocked(I)Landroid/util/ArraySet;
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getUserInteractiveUiTimeoutLocked()I
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getUserNonInteractiveUiTimeoutLocked()I
@@ -4941,7 +5068,7 @@
 PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getRemote()Landroid/view/accessibility/IAccessibilityInteractionConnection;
 PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getUid()I
 HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->linkToDeath()V
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->unlinkToDeath()V
+HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->unlinkToDeath()V
 HSPLcom/android/server/accessibility/AccessibilityWindowManager;-><init>(Ljava/lang/Object;Landroid/os/Handler;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/AccessibilityWindowManager$AccessibilityEventSender;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->access$000(Lcom/android/server/accessibility/AccessibilityWindowManager;)Lcom/android/server/wm/WindowManagerInternal;
 PLcom/android/server/accessibility/AccessibilityWindowManager;->access$100(Lcom/android/server/accessibility/AccessibilityWindowManager;)Lcom/android/server/accessibility/AccessibilityWindowManager$AccessibilityEventSender;
@@ -4960,10 +5087,12 @@
 PLcom/android/server/accessibility/AccessibilityWindowManager;->access$702(Lcom/android/server/accessibility/AccessibilityWindowManager;I)I
 PLcom/android/server/accessibility/AccessibilityWindowManager;->access$802(Lcom/android/server/accessibility/AccessibilityWindowManager;I)I
 PLcom/android/server/accessibility/AccessibilityWindowManager;->access$900(Lcom/android/server/accessibility/AccessibilityWindowManager;)Z
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/os/IBinder;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
 PLcom/android/server/accessibility/AccessibilityWindowManager;->clearAccessibilityFocusLocked(I)V
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->clearAccessibilityFocusMainThread(II)V
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->computePartialInteractiveRegionForWindowLocked(ILandroid/graphics/Region;)Z
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->disassociateLocked(Landroid/os/IBinder;)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->findA11yWindowInfoByIdLocked(I)Landroid/view/accessibility/AccessibilityWindowInfo;
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->findFocusedWindowId(I)I
@@ -4975,8 +5104,11 @@
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->getDisplayListLocked()Ljava/util/ArrayList;
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->getDisplayWindowObserverByWindowIdLocked(I)Lcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;
 PLcom/android/server/accessibility/AccessibilityWindowManager;->getFocusedWindowId(I)I
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->getHostTokenLocked(Landroid/os/IBinder;)Landroid/os/IBinder;
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->getInteractionConnectionsForUserLocked(I)Landroid/util/SparseArray;
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->getPictureInPictureActionReplacingConnection()Lcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->getTokenLocked(I)Landroid/os/IBinder;
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowIdLocked(Landroid/os/IBinder;)I
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowListLocked(I)Ljava/util/List;
 PLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowOwnerUserId(Landroid/os/IBinder;)I
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowTokenForUserAndWindowIdLocked(II)Landroid/os/IBinder;
@@ -4987,17 +5119,21 @@
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->isValidUserForWindowTokensLocked(I)Z
 PLcom/android/server/accessibility/AccessibilityWindowManager;->lambda$Ky3Q5Gg_NEaXwBlFb7wxyjIUci0(Lcom/android/server/accessibility/AccessibilityWindowManager;II)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->notifyOutsideTouch(II)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->onAccessibilityInteractionConnectionRemovedLocked(ILandroid/os/IBinder;)V
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->onAccessibilityInteractionConnectionRemovedLocked(ILandroid/os/IBinder;)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->onTouchInteractionEnd()V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->onTouchInteractionStart()V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->registerIdLocked(Landroid/os/IBinder;I)V
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->removeAccessibilityInteractionConnectionInternalLocked(Landroid/os/IBinder;Landroid/util/SparseArray;Landroid/util/SparseArray;)I
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->removeAccessibilityInteractionConnectionLocked(II)V
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->resolveParentWindowIdLocked(I)I
+PLcom/android/server/accessibility/AccessibilityWindowManager;->resolveTopParentTokenLocked(Landroid/os/IBinder;)Landroid/os/IBinder;
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->setAccessibilityFocusedWindowLocked(I)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->setActiveWindowLocked(I)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->startTrackingWindows(I)V
 HSPLcom/android/server/accessibility/AccessibilityWindowManager;->stopTrackingWindows(I)V
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->unregisterIdLocked(I)V
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->updateActiveAndAccessibilityFocusedWindowLocked(IIJII)V
 PLcom/android/server/accessibility/ActionReplacingCallback;-><init>(Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;Landroid/view/accessibility/IAccessibilityInteractionConnection;IIJ)V
 PLcom/android/server/accessibility/ActionReplacingCallback;->recycleReplaceActionNodesLocked()V
@@ -5007,7 +5143,7 @@
 PLcom/android/server/accessibility/BaseEventStreamTransformation;-><init>()V
 HPLcom/android/server/accessibility/BaseEventStreamTransformation;->getNext()Lcom/android/server/accessibility/EventStreamTransformation;
 PLcom/android/server/accessibility/BaseEventStreamTransformation;->setNext(Lcom/android/server/accessibility/EventStreamTransformation;)V
-PLcom/android/server/accessibility/EventStreamTransformation;->clearEvents(I)V
+HPLcom/android/server/accessibility/EventStreamTransformation;->clearEvents(I)V
 HPLcom/android/server/accessibility/EventStreamTransformation;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 PLcom/android/server/accessibility/EventStreamTransformation;->onDestroy()V
 PLcom/android/server/accessibility/EventStreamTransformation;->onKeyEvent(Landroid/view/KeyEvent;I)V
@@ -5015,22 +5151,27 @@
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DelegatingState;-><init>(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DelegatingState;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;-><init>(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Landroid/content/Context;)V
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->afterLongTapTimeoutTransitionToDraggingState(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->afterMultiTapTimeoutTransitionToDelegatingState()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->cacheDelayedMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->clear()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->clearDelayedMotionEvents()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->handleMessage(Landroid/os/Message;)Z
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->isFingerDown()Z
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->isMultiTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)Z
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->isMultiTapTriggered(I)Z
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->isTapOutOfDistanceSlop()Z
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->onTripleTap(Landroid/view/MotionEvent;)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->removePendingDelayedMessages()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->sendDelayedMotionEvents()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->setShortcutTriggered(Z)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->tapCount()I
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->timeBetween(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)J
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->timeOf(Landroid/view/MotionEvent;)J
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->toggleShortcutTriggered()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->transitionToDelegatingStateAndClear()V
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->transitionToViewportDraggingStateAndClear(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;-><clinit>()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;-><init>()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->access$600(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;)Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;
@@ -5045,29 +5186,39 @@
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->access$000(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;)Landroid/view/GestureDetector;
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->access$100(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;)Landroid/view/ScaleGestureDetector;
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->clear()V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->onScale(Landroid/view/ScaleGestureDetector;)Z
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->onScaleBegin(Landroid/view/ScaleGestureDetector;)Z
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->onScaleEnd(Landroid/view/ScaleGestureDetector;)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->persistScaleAndTransitionTo(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ScreenStateReceiver;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ScreenStateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ScreenStateReceiver;->register()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ScreenStateReceiver;->unregister()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ViewportDraggingState;-><init>(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ViewportDraggingState;->clear()V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ViewportDraggingState;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/MagnificationController;ZZI)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$200(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$300(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)I
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$400(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$500(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$700(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$800(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;FF)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$900(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->clearAndTransitionToStateDetecting()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->clearEvents(I)V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->dispatchTransformedEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->dispatchTransformedEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->handleEventWith(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->notifyShortcutTriggered()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->onDestroy()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->onMotionEventInternal(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->recycleAndNullify(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->transitionTo(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;)V
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->zoomOff()V
+PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->zoomOn(FF)V
 PLcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;-><init>()V
 PLcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;-><init>(Lcom/android/server/accessibility/KeyEventDispatcher$1;)V
 PLcom/android/server/accessibility/KeyEventDispatcher;-><init>(Landroid/os/Handler;ILjava/lang/Object;Landroid/os/PowerManager;)V
@@ -5088,17 +5239,24 @@
 PLcom/android/server/accessibility/KeyboardInterceptor;->onKeyEvent(Landroid/view/KeyEvent;I)V
 PLcom/android/server/accessibility/KeyboardInterceptor;->processQueuedEvents()V
 PLcom/android/server/accessibility/KeyboardInterceptor;->scheduleProcessQueuedEvents()V
+PLcom/android/server/accessibility/MagnificationController$1;-><init>(Lcom/android/server/accessibility/MagnificationController;FI)V
+PLcom/android/server/accessibility/MagnificationController$1;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/accessibility/MagnificationController$1;->doInBackground([Ljava/lang/Void;)Ljava/lang/Void;
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/wm/WindowManagerInternal;Landroid/os/Handler;J)V
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getAms()Lcom/android/server/accessibility/AccessibilityManagerService;
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getAnimationDuration()J
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getContext()Landroid/content/Context;
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getHandler()Landroid/os/Handler;
+PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getMagnificationScale(I)F
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getWindowManager()Lcom/android/server/wm/WindowManagerInternal;
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->newValueAnimator()Landroid/animation/ValueAnimator;
+PLcom/android/server/accessibility/MagnificationController$ControllerContext;->putMagnificationScale(FI)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;-><init>(Lcom/android/server/accessibility/MagnificationController;I)V
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getCenterX()F
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getCenterY()F
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMagnificationBounds(Landroid/graphics/Rect;)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMagnificationRegion(Landroid/graphics/Region;)V
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMagnifiedFrameInContentCoordsLocked(Landroid/graphics/Rect;)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMaxOffsetXLocked()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMaxOffsetYLocked()F
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMinOffsetXLocked()F
@@ -5106,27 +5264,41 @@
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getOffsetX()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getOffsetY()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getScale()F
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getSentOffsetX()F
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getSentOffsetY()F
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getSentScale()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->isMagnifying()Z
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->isRegistered()Z
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->magnificationRegionContains(FF)Z
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onMagnificationChangedLocked()V
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->offsetMagnifiedRegion(FFI)V
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onMagnificationChangedLocked()V
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onMagnificationRegionChanged(Landroid/graphics/Region;)V
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onRectangleOnScreenRequested(IIII)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onRotationChanged(I)V
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onUserContextChanged()V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->register()Z
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->sendSpecToAnimation(Landroid/view/MagnificationSpec;Z)V
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setScaleAndCenter(FFFZI)Z
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->requestRectangleOnScreen(IIII)V
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->reset(Z)Z
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->sendSpecToAnimation(Landroid/view/MagnificationSpec;Z)V
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setForceShowMagnifiableBounds(Z)V
+PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setScale(FFFZI)Z
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setScaleAndCenter(FFFZI)Z
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->unregister(Z)V
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->updateCurrentSpecWithOffsetsLocked(FF)Z
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->updateCurrentSpecWithOffsetsLocked(FF)Z
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->updateMagnificationRegion(Landroid/graphics/Region;)V
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->updateMagnificationSpecLocked(FFF)Z
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->updateMagnificationSpecLocked(FFF)Z
 PLcom/android/server/accessibility/MagnificationController$ScreenStateObserver;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/MagnificationController;)V
 PLcom/android/server/accessibility/MagnificationController$ScreenStateObserver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/accessibility/MagnificationController$ScreenStateObserver;->registerIfNecessary()V
 PLcom/android/server/accessibility/MagnificationController$ScreenStateObserver;->unregister()V
 PLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;-><init>(Lcom/android/server/accessibility/MagnificationController$ControllerContext;Ljava/lang/Object;I)V
 PLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;-><init>(Lcom/android/server/accessibility/MagnificationController$ControllerContext;Ljava/lang/Object;ILcom/android/server/accessibility/MagnificationController$1;)V
+PLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->access$400(Lcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;)Landroid/view/MagnificationSpec;
+PLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->animateMagnificationSpecLocked(Landroid/view/MagnificationSpec;)V
+HPLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
 PLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->setEnabled(Z)V
-PLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->updateSentSpecMainThread(Landroid/view/MagnificationSpec;Z)V
+HPLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->setMagnificationSpecLocked(Landroid/view/MagnificationSpec;)V
+HPLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->updateSentSpecMainThread(Landroid/view/MagnificationSpec;Z)V
 PLcom/android/server/accessibility/MagnificationController;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/MagnificationController;-><init>(Lcom/android/server/accessibility/MagnificationController$ControllerContext;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/MagnificationController;->access$000(Lcom/android/server/accessibility/MagnificationController;)Lcom/android/server/accessibility/MagnificationController$ControllerContext;
@@ -5135,29 +5307,39 @@
 PLcom/android/server/accessibility/MagnificationController;->access$500(Lcom/android/server/accessibility/MagnificationController;)J
 PLcom/android/server/accessibility/MagnificationController;->access$600(Lcom/android/server/accessibility/MagnificationController;)V
 PLcom/android/server/accessibility/MagnificationController;->getMagnificationRegion(ILandroid/graphics/Region;)V
+PLcom/android/server/accessibility/MagnificationController;->getPersistedScale()F
 PLcom/android/server/accessibility/MagnificationController;->getScale(I)F
 HPLcom/android/server/accessibility/MagnificationController;->isMagnifying(I)Z
 PLcom/android/server/accessibility/MagnificationController;->isRegistered(I)Z
 PLcom/android/server/accessibility/MagnificationController;->lambda$UxSkaR2uzdX0ekJv4Wtodc8tuMY(Lcom/android/server/accessibility/MagnificationController;Z)V
 HPLcom/android/server/accessibility/MagnificationController;->magnificationRegionContains(IFF)Z
+HPLcom/android/server/accessibility/MagnificationController;->offsetMagnifiedRegion(IFFI)V
+PLcom/android/server/accessibility/MagnificationController;->onDisplayRemoved(I)V
 PLcom/android/server/accessibility/MagnificationController;->onScreenTurnedOff()V
+PLcom/android/server/accessibility/MagnificationController;->persistScale()V
 PLcom/android/server/accessibility/MagnificationController;->register(I)V
+PLcom/android/server/accessibility/MagnificationController;->reset(IZ)Z
 PLcom/android/server/accessibility/MagnificationController;->resetAllIfNeeded(I)V
 PLcom/android/server/accessibility/MagnificationController;->resetAllIfNeeded(Z)V
 PLcom/android/server/accessibility/MagnificationController;->resetIfNeeded(II)Z
 PLcom/android/server/accessibility/MagnificationController;->resetIfNeeded(IZ)Z
+HPLcom/android/server/accessibility/MagnificationController;->setCenter(IFFZI)Z
+PLcom/android/server/accessibility/MagnificationController;->setForceShowMagnifiableBounds(IZ)V
+PLcom/android/server/accessibility/MagnificationController;->setScale(IFFFZI)Z
 PLcom/android/server/accessibility/MagnificationController;->setScaleAndCenter(IFFFZI)Z
 PLcom/android/server/accessibility/MagnificationController;->setUserId(I)V
 PLcom/android/server/accessibility/MagnificationController;->unregister(I)V
+PLcom/android/server/accessibility/MagnificationController;->unregisterAll()V
 PLcom/android/server/accessibility/MagnificationController;->unregisterCallbackLocked(IZ)V
 PLcom/android/server/accessibility/MagnificationController;->unregisterLocked(IZ)V
 HSPLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;)V
 HSPLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;Ljava/util/function/Supplier;Lcom/android/server/accessibility/SystemActionPerformer$SystemActionsChangedListener;)V
-PLcom/android/server/accessibility/SystemActionPerformer;->registerSystemAction(ILandroid/app/RemoteAction;)V
+PLcom/android/server/accessibility/SystemActionPerformer;->performSystemAction(I)Z
+HPLcom/android/server/accessibility/SystemActionPerformer;->registerSystemAction(ILandroid/app/RemoteAction;)V
 HSPLcom/android/server/accessibility/UiAutomationManager$1;-><init>(Lcom/android/server/accessibility/UiAutomationManager;)V
 PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;-><init>(Lcom/android/server/accessibility/UiAutomationManager;Landroid/content/Context;Landroid/accessibilityservice/AccessibilityServiceInfo;ILandroid/os/Handler;Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$SystemSupport;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;)V
 PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->connectServiceUnknownThread()V
-PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->hasRightsToCurrentUserLocked()Z
+HPLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->hasRightsToCurrentUserLocked()Z
 PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->lambda$connectServiceUnknownThread$0$UiAutomationManager$UiAutomationService()V
 PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->supportsFlagForNotImportantViews(Landroid/accessibilityservice/AccessibilityServiceInfo;)Z
 HSPLcom/android/server/accessibility/UiAutomationManager;-><clinit>()V
@@ -5170,7 +5352,7 @@
 HSPLcom/android/server/accessibility/UiAutomationManager;->isTouchExplorationEnabledLocked()Z
 HSPLcom/android/server/accessibility/UiAutomationManager;->isUiAutomationRunningLocked()Z
 PLcom/android/server/accessibility/UiAutomationManager;->registerUiTestAutomationServiceLocked(Landroid/os/IBinder;Landroid/accessibilityservice/IAccessibilityServiceClient;Landroid/content/Context;Landroid/accessibilityservice/AccessibilityServiceInfo;ILandroid/os/Handler;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$SystemSupport;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;I)V
-PLcom/android/server/accessibility/UiAutomationManager;->sendAccessibilityEventLocked(Landroid/view/accessibility/AccessibilityEvent;)V
+HPLcom/android/server/accessibility/UiAutomationManager;->sendAccessibilityEventLocked(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLcom/android/server/accessibility/UiAutomationManager;->suppressingAccessibilityServicesLocked()Z
 PLcom/android/server/accessibility/UiAutomationManager;->unregisterUiTestAutomationServiceLocked(Landroid/accessibilityservice/IAccessibilityServiceClient;)V
 PLcom/android/server/accessibility/gestures/EventDispatcher;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/EventStreamTransformation;Lcom/android/server/accessibility/gestures/TouchState;)V
@@ -5182,6 +5364,7 @@
 HPLcom/android/server/accessibility/gestures/EventDispatcher;->updateState(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/gestures/GestureManifold;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/gestures/GestureManifold$Listener;Lcom/android/server/accessibility/gestures/TouchState;)V
 HPLcom/android/server/accessibility/gestures/GestureManifold;->clear()V
+PLcom/android/server/accessibility/gestures/GestureManifold;->isMultiFingerGesturesEnabled()Z
 PLcom/android/server/accessibility/gestures/GestureManifold;->onGestureCompleted(I)V
 HPLcom/android/server/accessibility/gestures/GestureManifold;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)Z
 HPLcom/android/server/accessibility/gestures/GestureManifold;->onStateChanged(IILandroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
@@ -5207,27 +5390,42 @@
 PLcom/android/server/accessibility/gestures/GestureMatcher;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/GestureMatcher;->setState(ILandroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/GestureMatcher;->startGesture(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
-PLcom/android/server/accessibility/gestures/GestureUtils;->distance(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)D
+PLcom/android/server/accessibility/gestures/GestureUtils;-><clinit>()V
+HPLcom/android/server/accessibility/gestures/GestureUtils;->distance(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)D
+PLcom/android/server/accessibility/gestures/GestureUtils;->eventsWithinTimeAndDistanceSlop(Landroid/view/MotionEvent;Landroid/view/MotionEvent;II)Z
+PLcom/android/server/accessibility/gestures/GestureUtils;->getActionIndex(Landroid/view/MotionEvent;)I
+PLcom/android/server/accessibility/gestures/GestureUtils;->isDraggingGesture(FFFFFFFFF)Z
+PLcom/android/server/accessibility/gestures/GestureUtils;->isMultiTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;II)Z
 PLcom/android/server/accessibility/gestures/GestureUtils;->isTimedOut(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)Z
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;-><init>(Landroid/content/Context;IIILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->clear()V
+PLcom/android/server/accessibility/gestures/MultiFingerSwipe;-><init>(Landroid/content/Context;IIILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
+PLcom/android/server/accessibility/gestures/MultiFingerSwipe;->clear()V
 PLcom/android/server/accessibility/gestures/MultiTap;-><init>(Landroid/content/Context;IILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
 PLcom/android/server/accessibility/gestures/MultiTap;->clear()V
 HPLcom/android/server/accessibility/gestures/MultiTap;->isInsideSlop(Landroid/view/MotionEvent;I)Z
 HPLcom/android/server/accessibility/gestures/MultiTap;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTap;->onMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiTap;->onPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTap;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTapAndHold;-><init>(Landroid/content/Context;IILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
 PLcom/android/server/accessibility/gestures/MultiTapAndHold;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTapAndHold;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;-><init>(Landroid/content/Context;IILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
 PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;->clear()V
+PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;->isSecondFingerInsideSlop(Landroid/view/MotionEvent;I)Z
 PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;->onMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;->onPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/Swipe;-><init>(Landroid/content/Context;IIILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
 PLcom/android/server/accessibility/gestures/Swipe;-><init>(Landroid/content/Context;IILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
 PLcom/android/server/accessibility/gestures/Swipe;-><init>(Landroid/content/Context;[IILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
 HPLcom/android/server/accessibility/gestures/Swipe;->cancelAfterDelay(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/Swipe;->cancelAfterPauseThreshold(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/Swipe;->clear()V
 HPLcom/android/server/accessibility/gestures/Swipe;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/Swipe;->onMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/Swipe;->onPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/Swipe;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/Swipe;->recognizeGesture(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/Swipe;->recognizeGesturePath(Landroid/view/MotionEvent;Landroid/view/MotionEvent;ILjava/util/ArrayList;)V
@@ -5263,19 +5461,24 @@
 PLcom/android/server/accessibility/gestures/TouchExplorer;->access$500(Lcom/android/server/accessibility/gestures/TouchExplorer;)I
 PLcom/android/server/accessibility/gestures/TouchExplorer;->access$600(Lcom/android/server/accessibility/gestures/TouchExplorer;)Lcom/android/server/accessibility/gestures/TouchExplorer$SendAccessibilityEventDelayed;
 PLcom/android/server/accessibility/gestures/TouchExplorer;->access$700(Lcom/android/server/accessibility/gestures/TouchExplorer;)Lcom/android/server/accessibility/gestures/TouchExplorer$SendAccessibilityEventDelayed;
+HPLcom/android/server/accessibility/gestures/TouchExplorer;->adjustEventLocationForDrag(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->clear()V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->clearEvents(I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->endGestureDetection(Z)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionMoveStateTouchExploring(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
-PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionMoveStateTouchInteracting(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionMoveStateTouchInteracting(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateClear(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateDragging(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateTouchExploring(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateTouchInteracting(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/TouchExplorer;->isDraggingGesture(Landroid/view/MotionEvent;)Z
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->onDestroy()V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->onDoubleTap()Z
+PLcom/android/server/accessibility/gestures/TouchExplorer;->onDoubleTapAndHold()V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->onGestureCancelled(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)Z
 PLcom/android/server/accessibility/gestures/TouchExplorer;->onGestureCompleted(Landroid/accessibilityservice/AccessibilityGestureEvent;)Z
 PLcom/android/server/accessibility/gestures/TouchExplorer;->onGestureStarted()Z
@@ -5284,11 +5487,16 @@
 PLcom/android/server/accessibility/gestures/TouchExplorer;->sendTouchExplorationGestureStartAndHoverEnterIfNeeded(I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->setNext(Lcom/android/server/accessibility/EventStreamTransformation;)V
 HPLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;-><init>(Lcom/android/server/accessibility/gestures/TouchState;)V
+PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->access$000(Lcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;)F
+PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->access$100(Lcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;)F
 PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->clear()V
 PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->set(FFJ)V
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;-><init>(Lcom/android/server/accessibility/gestures/TouchState;)V
 HPLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->clear()V
+PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getLastReceivedDownEdgeFlags()I
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getPrimaryPointerId()I
+PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getReceivedPointerDownX(I)F
+PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getReceivedPointerDownY(I)F
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->handleReceivedPointerDown(ILandroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->handleReceivedPointerUp(ILandroid/view/MotionEvent;)V
 HPLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->onMotionEvent(Landroid/view/MotionEvent;)V
@@ -5305,6 +5513,7 @@
 PLcom/android/server/accessibility/gestures/TouchState;->onInjectedAccessibilityEvent(I)V
 HPLcom/android/server/accessibility/gestures/TouchState;->onReceivedMotionEvent(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/gestures/TouchState;->setState(I)V
+PLcom/android/server/accessibility/gestures/TouchState;->startDragging()V
 PLcom/android/server/accessibility/gestures/TouchState;->startGestureDetecting()V
 PLcom/android/server/accessibility/gestures/TouchState;->startTouchExploring()V
 PLcom/android/server/accessibility/gestures/TouchState;->startTouchInteracting()V
@@ -5337,6 +5546,8 @@
 PLcom/android/server/accounts/AccountManagerService$14;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;ZZLjava/lang/String;ZZLandroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/accounts/AccountManagerService$14;->run()V
 PLcom/android/server/accounts/AccountManagerService$18;-><init>(Lcom/android/server/accounts/AccountManagerService;Landroid/accounts/Account;ILjava/lang/String;Landroid/os/RemoteCallback;)V
+PLcom/android/server/accounts/AccountManagerService$18;->handleAuthenticatorResponse(Z)V
+PLcom/android/server/accounts/AccountManagerService$18;->onResult(Landroid/os/Bundle;)V
 HSPLcom/android/server/accounts/AccountManagerService$1;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
 PLcom/android/server/accounts/AccountManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/accounts/AccountManagerService$1LogRecordTask;-><init>(Lcom/android/server/accounts/AccountManagerService;Ljava/lang/String;Ljava/lang/String;JLcom/android/server/accounts/AccountManagerService$UserAccounts;IJ)V
@@ -5389,7 +5600,7 @@
 HSPLcom/android/server/accounts/AccountManagerService$NotificationId;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/server/accounts/AccountManagerService$NotificationId;->access$3600(Lcom/android/server/accounts/AccountManagerService$NotificationId;)I
 PLcom/android/server/accounts/AccountManagerService$RemoveAccountSession;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Z)V
-PLcom/android/server/accounts/AccountManagerService$RemoveAccountSession;->onResult(Landroid/os/Bundle;)V
+HPLcom/android/server/accounts/AccountManagerService$RemoveAccountSession;->onResult(Landroid/os/Bundle;)V
 PLcom/android/server/accounts/AccountManagerService$RemoveAccountSession;->run()V
 HPLcom/android/server/accounts/AccountManagerService$Session;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;ZZLjava/lang/String;Z)V
 HPLcom/android/server/accounts/AccountManagerService$Session;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;ZZLjava/lang/String;ZZ)V
@@ -5401,7 +5612,7 @@
 HPLcom/android/server/accounts/AccountManagerService$Session;->close()V
 HPLcom/android/server/accounts/AccountManagerService$Session;->getResponseAndClose()Landroid/accounts/IAccountManagerResponse;
 HPLcom/android/server/accounts/AccountManagerService$Session;->isExportedSystemActivity(Landroid/content/pm/ActivityInfo;)Z
-PLcom/android/server/accounts/AccountManagerService$Session;->onError(ILjava/lang/String;)V
+HPLcom/android/server/accounts/AccountManagerService$Session;->onError(ILjava/lang/String;)V
 PLcom/android/server/accounts/AccountManagerService$Session;->onRequestContinued()V
 HPLcom/android/server/accounts/AccountManagerService$Session;->onResult(Landroid/os/Bundle;)V
 HPLcom/android/server/accounts/AccountManagerService$Session;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
@@ -5417,7 +5628,7 @@
 PLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1000(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
 HPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1100(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
 HPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1200(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
-PLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1300(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Lcom/android/server/accounts/TokenCache;
+HPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1300(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Lcom/android/server/accounts/TokenCache;
 PLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1400(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/HashMap;
 HSPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1600(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/HashMap;
 HPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$2200(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/HashMap;
@@ -5433,8 +5644,11 @@
 PLcom/android/server/accounts/AccountManagerService;->access$200(Lcom/android/server/accounts/AccountManagerService;Ljava/lang/String;)V
 PLcom/android/server/accounts/AccountManagerService;->access$2000(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;[BLjava/lang/String;Ljava/lang/String;J)V
 PLcom/android/server/accounts/AccountManagerService;->access$2100(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/CharSequence;Landroid/content/Intent;Ljava/lang/String;I)V
+PLcom/android/server/accounts/AccountManagerService;->access$2500(Lcom/android/server/accounts/AccountManagerService;Landroid/accounts/Account;Ljava/lang/String;I)Lcom/android/server/accounts/AccountManagerService$NotificationId;
+PLcom/android/server/accounts/AccountManagerService;->access$2600(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$NotificationId;Ljava/lang/String;Landroid/os/UserHandle;)V
 HPLcom/android/server/accounts/AccountManagerService;->access$2800(Lcom/android/server/accounts/AccountManagerService;)Ljava/util/LinkedHashMap;
 PLcom/android/server/accounts/AccountManagerService;->access$2900(Lcom/android/server/accounts/AccountManagerService;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->access$3000(Lcom/android/server/accounts/AccountManagerService;Landroid/accounts/Account;)Z
 HPLcom/android/server/accounts/AccountManagerService;->access$3100(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Lcom/android/server/accounts/AccountManagerService$NotificationId;
 HPLcom/android/server/accounts/AccountManagerService;->access$3200(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$NotificationId;Landroid/os/UserHandle;)V
 HPLcom/android/server/accounts/AccountManagerService;->access$3300(Lcom/android/server/accounts/AccountManagerService;)Lcom/android/server/accounts/IAccountAuthenticatorCache;
@@ -5454,8 +5668,8 @@
 PLcom/android/server/accounts/AccountManagerService;->addAccount(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;)V
 PLcom/android/server/accounts/AccountManagerService;->addAccountAsUser(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;I)V
 PLcom/android/server/accounts/AccountManagerService;->addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Z
-PLcom/android/server/accounts/AccountManagerService;->addAccountExplicitlyWithVisibility(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/Map;)Z
-PLcom/android/server/accounts/AccountManagerService;->addAccountInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ILjava/util/Map;)Z
+HPLcom/android/server/accounts/AccountManagerService;->addAccountExplicitlyWithVisibility(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/Map;)Z
+HPLcom/android/server/accounts/AccountManagerService;->addAccountInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ILjava/util/Map;)Z
 PLcom/android/server/accounts/AccountManagerService;->addAccountToLinkedRestrictedUsers(Landroid/accounts/Account;I)V
 HPLcom/android/server/accounts/AccountManagerService;->calculatePackageSignatureDigest(Ljava/lang/String;)[B
 PLcom/android/server/accounts/AccountManagerService;->canHaveProfile(I)Z
@@ -5583,7 +5797,7 @@
 PLcom/android/server/accounts/AccountManagerService;->scanArgs([Ljava/lang/String;Ljava/lang/String;)Z
 HPLcom/android/server/accounts/AccountManagerService;->sendAccountRemovedBroadcast(Landroid/accounts/Account;Ljava/lang/String;I)V
 PLcom/android/server/accounts/AccountManagerService;->sendAccountsChangedBroadcast(I)V
-PLcom/android/server/accounts/AccountManagerService;->sendNotificationAccountUpdated(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+HPLcom/android/server/accounts/AccountManagerService;->sendNotificationAccountUpdated(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
 PLcom/android/server/accounts/AccountManagerService;->setAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;I)Z
 HPLcom/android/server/accounts/AccountManagerService;->setAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;IZLcom/android/server/accounts/AccountManagerService$UserAccounts;)Z
 HPLcom/android/server/accounts/AccountManagerService;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
@@ -5599,6 +5813,7 @@
 PLcom/android/server/accounts/AccountManagerService;->updateAccountVisibilityLocked(Landroid/accounts/Account;Ljava/lang/String;ILcom/android/server/accounts/AccountManagerService$UserAccounts;)Z
 PLcom/android/server/accounts/AccountManagerService;->updateAppPermission(Landroid/accounts/Account;Ljava/lang/String;IZ)V
 PLcom/android/server/accounts/AccountManagerService;->updateCredentials(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V
+PLcom/android/server/accounts/AccountManagerService;->updateLastAuthenticatedTime(Landroid/accounts/Account;)Z
 PLcom/android/server/accounts/AccountManagerService;->validateAccounts(I)V
 HSPLcom/android/server/accounts/AccountManagerService;->validateAccountsInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Z)V
 HPLcom/android/server/accounts/AccountManagerService;->writeAuthTokenIntoCacheLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
@@ -5654,7 +5869,7 @@
 HSPLcom/android/server/accounts/AccountsDb;->findAllUidGrants()Ljava/util/List;
 HSPLcom/android/server/accounts/AccountsDb;->findAllVisibilityValues()Ljava/util/Map;
 HPLcom/android/server/accounts/AccountsDb;->findAuthTokensByAccount(Landroid/accounts/Account;)Ljava/util/Map;
-PLcom/android/server/accounts/AccountsDb;->findAuthtokenForAllAccounts(Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+HPLcom/android/server/accounts/AccountsDb;->findAuthtokenForAllAccounts(Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 PLcom/android/server/accounts/AccountsDb;->findCeAccountId(Landroid/accounts/Account;)J
 PLcom/android/server/accounts/AccountsDb;->findCeAccountsNotInDe()Ljava/util/List;
 HPLcom/android/server/accounts/AccountsDb;->findDeAccountId(Landroid/accounts/Account;)J
@@ -5675,6 +5890,7 @@
 PLcom/android/server/accounts/AccountsDb;->reserveDebugDbInsertionPoint()J
 PLcom/android/server/accounts/AccountsDb;->setAccountVisibility(JLjava/lang/String;I)Z
 HPLcom/android/server/accounts/AccountsDb;->setTransactionSuccessful()V
+PLcom/android/server/accounts/AccountsDb;->updateAccountLastAuthenticatedTime(Landroid/accounts/Account;)Z
 PLcom/android/server/accounts/AccountsDb;->updateCeAccountPassword(JLjava/lang/String;)I
 HPLcom/android/server/accounts/AccountsDb;->updateExtra(JLjava/lang/String;)Z
 HPLcom/android/server/accounts/TokenCache$Key;-><init>(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;[B)V
@@ -5685,7 +5901,7 @@
 HPLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;->evict()V
 HSPLcom/android/server/accounts/TokenCache$TokenLruCache;-><init>()V
 HPLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLcom/android/server/accounts/TokenCache$Key;Lcom/android/server/accounts/TokenCache$Value;Lcom/android/server/accounts/TokenCache$Value;)V
-PLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/accounts/TokenCache$TokenLruCache;->evict(Landroid/accounts/Account;)V
 HPLcom/android/server/accounts/TokenCache$TokenLruCache;->evict(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/accounts/TokenCache$TokenLruCache;->putToken(Lcom/android/server/accounts/TokenCache$Key;Lcom/android/server/accounts/TokenCache$Value;)V
@@ -5788,6 +6004,9 @@
 PLcom/android/server/adb/AdbService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/adb/AdbService;->setAdbEnabled(Z)V
 HSPLcom/android/server/adb/AdbService;->systemReady()V
+PLcom/android/server/am/-$$Lambda$1WA8m3qLmGLM_p471nun2GeoDvg;-><clinit>()V
+PLcom/android/server/am/-$$Lambda$1WA8m3qLmGLM_p471nun2GeoDvg;-><init>()V
+PLcom/android/server/am/-$$Lambda$1WA8m3qLmGLM_p471nun2GeoDvg;->accept(Ljava/lang/Object;)V
 PLcom/android/server/am/-$$Lambda$5hokEl5hcign5FXeGZdl53qh2zg;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/am/-$$Lambda$5hokEl5hcign5FXeGZdl53qh2zg;->run()V
 PLcom/android/server/am/-$$Lambda$8usf6utdff9V7wtRbjhmjrLif-w;-><clinit>()V
@@ -5800,7 +6019,7 @@
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$5$BegFiGFfKLYS7VRmiWluczgOC5k;-><init>()V
 HPLcom/android/server/am/-$$Lambda$ActivityManagerService$5$BegFiGFfKLYS7VRmiWluczgOC5k;->needed(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$Fbs0C_KjUpE0imxFftpdBfeTJpg;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/lang/String;ILandroid/os/RemoteCallback;)V
-PLcom/android/server/am/-$$Lambda$ActivityManagerService$Fbs0C_KjUpE0imxFftpdBfeTJpg;->onResult(Landroid/os/Bundle;)V
+HPLcom/android/server/am/-$$Lambda$ActivityManagerService$Fbs0C_KjUpE0imxFftpdBfeTJpg;->onResult(Landroid/os/Bundle;)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$LocalService$4G_pzvRw9NHuN5SCKHrZRQVBK5M;-><init>(Lcom/android/server/am/ActivityManagerService$LocalService;Lcom/android/server/wm/ActivityServiceConnectionsHolder;)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$LocalService$4G_pzvRw9NHuN5SCKHrZRQVBK5M;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$Z3G4KWA2tlTOhqhFtAvVby1SjyQ;-><init>(Lcom/android/server/am/ActivityManagerService;)V
@@ -5813,6 +6032,7 @@
 HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$edxAPEC3muKzJql6X4RKsKcgmvo;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$edxAPEC3muKzJql6X4RKsKcgmvo;->onLimitReached(I)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$fS1-94oynjazWAe2OWfx5p-HXUQ;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/-$$Lambda$ActivityManagerService$fS1-94oynjazWAe2OWfx5p-HXUQ;->onLimitReached(I)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$qLjSm9VDxOdlZwBZT-qc8uDXM_o;-><clinit>()V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$qLjSm9VDxOdlZwBZT-qc8uDXM_o;-><init>()V
 HPLcom/android/server/am/-$$Lambda$ActivityManagerService$qLjSm9VDxOdlZwBZT-qc8uDXM_o;->needed(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
@@ -5876,7 +6096,7 @@
 HSPLcom/android/server/am/-$$Lambda$OomAdjuster$OVkqAAacT5-taN3pgDzyZj3Ymvk;->handleMessage(Landroid/os/Message;)Z
 PLcom/android/server/am/-$$Lambda$PendingIntentController$pDmmJDvS20vSAAXh9qdzbN0P8N0;-><clinit>()V
 PLcom/android/server/am/-$$Lambda$PendingIntentController$pDmmJDvS20vSAAXh9qdzbN0P8N0;-><init>()V
-PLcom/android/server/am/-$$Lambda$PendingIntentController$pDmmJDvS20vSAAXh9qdzbN0P8N0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/am/-$$Lambda$PendingIntentController$pDmmJDvS20vSAAXh9qdzbN0P8N0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/am/-$$Lambda$PendingIntentController$sPmaborOkBSSEP2wiimxXw-eYDQ;-><clinit>()V
 PLcom/android/server/am/-$$Lambda$PendingIntentController$sPmaborOkBSSEP2wiimxXw-eYDQ;-><init>()V
 PLcom/android/server/am/-$$Lambda$PendingIntentController$sPmaborOkBSSEP2wiimxXw-eYDQ;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -5972,7 +6192,7 @@
 HSPLcom/android/server/am/ActiveServices;->appRestrictedAnyInBackground(ILjava/lang/String;)Z
 HSPLcom/android/server/am/ActiveServices;->attachApplicationLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)Z
 HSPLcom/android/server/am/ActiveServices;->bindServiceLocked(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/am/ActiveServices;->bringDownDisabledPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;IZZ)Z
+HSPLcom/android/server/am/ActiveServices;->bringDownDisabledPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;IZZ)Z
 HSPLcom/android/server/am/ActiveServices;->bringDownServiceIfNeededLocked(Lcom/android/server/am/ServiceRecord;ZZ)V
 HSPLcom/android/server/am/ActiveServices;->bringDownServiceLocked(Lcom/android/server/am/ServiceRecord;)V
 HSPLcom/android/server/am/ActiveServices;->bringUpServiceLocked(Lcom/android/server/am/ServiceRecord;IZZZ)Ljava/lang/String;
@@ -5980,13 +6200,13 @@
 HSPLcom/android/server/am/ActiveServices;->cancelForegroundNotificationLocked(Lcom/android/server/am/ServiceRecord;)V
 HPLcom/android/server/am/ActiveServices;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
 HPLcom/android/server/am/ActiveServices;->clearRestartingIfNeededLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->collectPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;ZZLandroid/util/ArrayMap;)Z
+HSPLcom/android/server/am/ActiveServices;->collectPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;ZZLandroid/util/ArrayMap;)Z
 HPLcom/android/server/am/ActiveServices;->decActiveForegroundAppLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Lcom/android/server/am/ServiceRecord;)V
 HPLcom/android/server/am/ActiveServices;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HPLcom/android/server/am/ActiveServices;->dumpService(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZ)Z
 HPLcom/android/server/am/ActiveServices;->dumpService(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ServiceRecord;[Ljava/lang/String;Z)V
 HPLcom/android/server/am/ActiveServices;->findServiceLocked(Landroid/content/ComponentName;Landroid/os/IBinder;I)Lcom/android/server/am/ServiceRecord;
-HPLcom/android/server/am/ActiveServices;->forceStopPackageLocked(Ljava/lang/String;I)V
+HSPLcom/android/server/am/ActiveServices;->forceStopPackageLocked(Ljava/lang/String;I)V
 HPLcom/android/server/am/ActiveServices;->foregroundAppShownEnoughLocked(Lcom/android/server/am/ActiveServices$ActiveForegroundApp;J)Z
 HPLcom/android/server/am/ActiveServices;->foregroundServiceProcStateChangedLocked(Lcom/android/server/am/UidRecord;)V
 HSPLcom/android/server/am/ActiveServices;->getAllowMode(Landroid/content/Intent;Ljava/lang/String;)I
@@ -6010,6 +6230,7 @@
 HSPLcom/android/server/am/ActiveServices;->requestServiceBindingLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;ZZ)Z
 HSPLcom/android/server/am/ActiveServices;->requestServiceBindingsLocked(Lcom/android/server/am/ServiceRecord;Z)V
 HSPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;ILandroid/content/Intent;ZI)Z
+HPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;ILandroid/content/Intent;ZI)Z
 HPLcom/android/server/am/ActiveServices;->requestUpdateActiveForegroundAppsLocked(Lcom/android/server/am/ActiveServices$ServiceMap;J)V
 HSPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;
 HPLcom/android/server/am/ActiveServices;->scheduleServiceForegroundTransitionTimeoutLocked(Lcom/android/server/am/ServiceRecord;)V
@@ -6030,6 +6251,8 @@
 HSPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Landroid/content/Intent;Lcom/android/server/am/ServiceRecord;ZZ)Landroid/content/ComponentName;
 HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;I)Landroid/content/ComponentName;
 HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;IZ)Landroid/content/ComponentName;
+PLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
+HPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;IZ)Landroid/content/ComponentName;
 HPLcom/android/server/am/ActiveServices;->stopAllForegroundServicesLocked(ILjava/lang/String;)V
 HSPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V
 HPLcom/android/server/am/ActiveServices;->stopServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
@@ -6086,7 +6309,7 @@
 PLcom/android/server/am/ActivityManagerService$13;->run()V
 PLcom/android/server/am/ActivityManagerService$14;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HPLcom/android/server/am/ActivityManagerService$15;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/am/ActivityManagerService$15;->run()V
+HPLcom/android/server/am/ActivityManagerService$15;->run()V
 PLcom/android/server/am/ActivityManagerService$17;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/ActivityManagerService$17;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 HSPLcom/android/server/am/ActivityManagerService$18;-><init>(Lcom/android/server/am/ActivityManagerService;)V
@@ -6113,7 +6336,7 @@
 PLcom/android/server/am/ActivityManagerService$22;->compare(Lcom/android/server/am/ActivityManagerService$MemItem;Lcom/android/server/am/ActivityManagerService$MemItem;)I
 HPLcom/android/server/am/ActivityManagerService$22;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/am/ActivityManagerService$23;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$23;-><init>(Z)V
+HPLcom/android/server/am/ActivityManagerService$23;-><init>(Z)V
 HPLcom/android/server/am/ActivityManagerService$23;->compare(Lcom/android/server/am/ActivityManagerService$MemItem;Lcom/android/server/am/ActivityManagerService$MemItem;)I
 HSPLcom/android/server/am/ActivityManagerService$23;->compare(Lcom/android/server/am/ProcessMemInfo;Lcom/android/server/am/ProcessMemInfo;)I
 HSPLcom/android/server/am/ActivityManagerService$23;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
@@ -6123,7 +6346,7 @@
 PLcom/android/server/am/ActivityManagerService$25;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/ActivityManagerService$25;->run()V
 HSPLcom/android/server/am/ActivityManagerService$2;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$2;->onActivityLaunchCancelled([B)V
+HSPLcom/android/server/am/ActivityManagerService$2;->onActivityLaunchCancelled([B)V
 HPLcom/android/server/am/ActivityManagerService$2;->onActivityLaunchFinished([BJ)V
 HSPLcom/android/server/am/ActivityManagerService$2;->onActivityLaunched([BI)V
 HPLcom/android/server/am/ActivityManagerService$2;->onIntentFailed()V
@@ -6134,8 +6357,8 @@
 HSPLcom/android/server/am/ActivityManagerService$4;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
 HSPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Lcom/android/server/am/BroadcastFilter;Ljava/util/List;)Z
-HPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
-HPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/am/BroadcastFilter;)Z
+HSPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
+HSPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/am/BroadcastFilter;)Z
 HSPLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Lcom/android/server/am/BroadcastFilter;
 HSPLcom/android/server/am/ActivityManagerService$4;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
@@ -6177,13 +6400,14 @@
 HSPLcom/android/server/am/ActivityManagerService$Injector;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/am/ActivityManagerService$Injector;->ensureHasNetworkManagementInternal()Z
 HSPLcom/android/server/am/ActivityManagerService$Injector;->getAppOpsService(Ljava/io/File;Landroid/os/Handler;)Lcom/android/server/appop/AppOpsService;
+HSPLcom/android/server/am/ActivityManagerService$Injector;->getContext()Landroid/content/Context;
 HSPLcom/android/server/am/ActivityManagerService$Injector;->getProcessList(Lcom/android/server/am/ActivityManagerService;)Lcom/android/server/am/ProcessList;
 HSPLcom/android/server/am/ActivityManagerService$Injector;->getUiHandler(Lcom/android/server/am/ActivityManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/am/ActivityManagerService$Injector;->isNetworkRestrictedForUid(I)Z
 HSPLcom/android/server/am/ActivityManagerService$IntentFirewallInterface;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/ActivityManagerService$IntentFirewallInterface;->getAMSLock()Ljava/lang/Object;
 HSPLcom/android/server/am/ActivityManagerService$ItemMatcher;-><init>()V
-PLcom/android/server/am/ActivityManagerService$ItemMatcher;->build(Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService$ItemMatcher;->build(Ljava/lang/String;)V
 HSPLcom/android/server/am/ActivityManagerService$ItemMatcher;->build([Ljava/lang/String;I)I
 HSPLcom/android/server/am/ActivityManagerService$ItemMatcher;->match(Ljava/lang/Object;Landroid/content/ComponentName;)Z
 HSPLcom/android/server/am/ActivityManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
@@ -6196,6 +6420,7 @@
 HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastCloseSystemDialogs(Ljava/lang/String;)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastGlobalConfigurationChanged(IZ)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
+PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/am/ActivityManagerService$LocalService;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->clearPendingBackup(I)V
@@ -6206,11 +6431,11 @@
 PLcom/android/server/am/ActivityManagerService$LocalService;->ensureNotSpecialUser(I)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->finishBooting()V
 PLcom/android/server/am/ActivityManagerService$LocalService;->getActivityInfoForUser(Landroid/content/pm/ActivityInfo;I)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/am/ActivityManagerService$LocalService;->getActivityPresentationInfo(Landroid/os/IBinder;)Landroid/content/pm/ActivityPresentationInfo;
+HPLcom/android/server/am/ActivityManagerService$LocalService;->getActivityPresentationInfo(Landroid/os/IBinder;)Landroid/content/pm/ActivityPresentationInfo;
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentProfileIds()[I
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentUserId()I
 HPLcom/android/server/am/ActivityManagerService$LocalService;->getMemoryStateForProcesses()Ljava/util/List;
-PLcom/android/server/am/ActivityManagerService$LocalService;->getTaskIdForActivity(Landroid/os/IBinder;Z)I
+HPLcom/android/server/am/ActivityManagerService$LocalService;->getTaskIdForActivity(Landroid/os/IBinder;Z)I
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->getUidProcessState(I)I
 HPLcom/android/server/am/ActivityManagerService$LocalService;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->hasStartedUserState(I)Z
@@ -6231,6 +6456,7 @@
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->isUserRunning(II)Z
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->killAllBackgroundProcessesExcept(II)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->killForegroundAppsForUser(I)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->killProcess(Ljava/lang/String;ILjava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->killProcessesForRemovedTask(Ljava/util/ArrayList;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->lambda$disconnectActivityFromServices$1$ActivityManagerService$LocalService(Lcom/android/server/wm/ActivityServiceConnectionsHolder;Ljava/lang/Object;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->monitor()V
@@ -6238,7 +6464,7 @@
 HPLcom/android/server/am/ActivityManagerService$LocalService;->onWakefulnessChanged(I)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->prepareForPossibleShutdown()V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
-HPLcom/android/server/am/ActivityManagerService$LocalService;->reportCurKeyguardUsageEvent(Z)V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->reportCurKeyguardUsageEvent(Z)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->scheduleAppGcs()V
 PLcom/android/server/am/ActivityManagerService$LocalService;->sendForegroundProfileChanged(I)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->setBooted(Z)V
@@ -6255,14 +6481,15 @@
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->startIsolatedProcess(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Runnable;)Z
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->startProcess(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZZLjava/lang/String;Landroid/content/ComponentName;)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->startServiceInPackage(ILandroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;IZ)Landroid/content/ComponentName;
+HPLcom/android/server/am/ActivityManagerService$LocalService;->startServiceInPackage(ILandroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;IZ)Landroid/content/ComponentName;
 HPLcom/android/server/am/ActivityManagerService$LocalService;->tempWhitelistForPendingIntent(IIIJLjava/lang/String;)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->trimApplications()V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateActivityUsageStats(Landroid/content/ComponentName;IILandroid/os/IBinder;Landroid/content/ComponentName;)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateBatteryStats(Landroid/content/ComponentName;IIZ)V
-HPLcom/android/server/am/ActivityManagerService$LocalService;->updateCpuStats()V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateCpuStats()V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->updateDeviceIdleTempWhitelist([IIZ)V
-HPLcom/android/server/am/ActivityManagerService$LocalService;->updateForegroundTimeIfOnBattery(Ljava/lang/String;IJ)V
-HPLcom/android/server/am/ActivityManagerService$LocalService;->updateOomAdj()V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateForegroundTimeIfOnBattery(Ljava/lang/String;IJ)V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateOomAdj()V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateOomLevelsForDisplay(I)V
 HSPLcom/android/server/am/ActivityManagerService$MainHandler$1;-><init>(Lcom/android/server/am/ActivityManagerService$MainHandler;Ljava/util/ArrayList;)V
 HSPLcom/android/server/am/ActivityManagerService$MainHandler$1;->run()V
@@ -6332,7 +6559,8 @@
 HSPLcom/android/server/am/ActivityManagerService;->access$200(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/ActivityManagerService;->access$300(Lcom/android/server/am/ActivityManagerService;II)V
 PLcom/android/server/am/ActivityManagerService;->access$400(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->access$500(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ActivityManagerService;->access$500(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ActivityManagerService;->access$600(Lcom/android/server/am/ActivityManagerService;)Z
 PLcom/android/server/am/ActivityManagerService;->access$702(Lcom/android/server/am/ActivityManagerService;Z)Z
 HSPLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
@@ -6371,8 +6599,12 @@
 PLcom/android/server/am/ActivityManagerService;->bootAnimationComplete()V
 HSPLcom/android/server/am/ActivityManagerService;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
 HPLcom/android/server/am/ActivityManagerService;->broadcastIntentInPackage(Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
+HPLcom/android/server/am/ActivityManagerService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
 HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
 HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIIZ)I
+HPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
+HPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIIZ)I
+HPLcom/android/server/am/ActivityManagerService;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
 HSPLcom/android/server/am/ActivityManagerService;->broadcastQueueForIntent(Landroid/content/Intent;)Lcom/android/server/am/BroadcastQueue;
 HPLcom/android/server/am/ActivityManagerService;->canClearIdentity(III)Z
 HPLcom/android/server/am/ActivityManagerService;->canGcNowLocked()Z
@@ -6388,7 +6620,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->checkPermission(Ljava/lang/String;II)I
 HPLcom/android/server/am/ActivityManagerService;->checkPermissionWithToken(Ljava/lang/String;IILandroid/os/IBinder;)I
 HSPLcom/android/server/am/ActivityManagerService;->checkTime(JLjava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
+HSPLcom/android/server/am/ActivityManagerService;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
 HSPLcom/android/server/am/ActivityManagerService;->cleanUpApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;ZZIZ)Z
 HSPLcom/android/server/am/ActivityManagerService;->cleanupAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;Z)Z
 HPLcom/android/server/am/ActivityManagerService;->cleanupDisabledPackageComponentsLocked(Ljava/lang/String;I[Ljava/lang/String;)V
@@ -6400,7 +6632,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->collectReceiverComponents(Landroid/content/Intent;Ljava/lang/String;I[I)Ljava/util/List;
 HSPLcom/android/server/am/ActivityManagerService;->compatibilityInfoForPackage(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
 PLcom/android/server/am/ActivityManagerService;->crashApplication(IILjava/lang/String;ILjava/lang/String;Z)V
-PLcom/android/server/am/ActivityManagerService;->createAnrDumpFile(Ljava/io/File;)Ljava/io/File;
+HPLcom/android/server/am/ActivityManagerService;->createAnrDumpFile(Ljava/io/File;)Ljava/io/File;
 HPLcom/android/server/am/ActivityManagerService;->decProviderCountLocked(Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ContentProviderRecord;Landroid/os/IBinder;Z)Z
 PLcom/android/server/am/ActivityManagerService;->demoteSystemServerRenderThread(I)V
 HSPLcom/android/server/am/ActivityManagerService;->dispatchProcessDied(II)V
@@ -6463,11 +6695,12 @@
 PLcom/android/server/am/ActivityManagerService;->forceStopAppZygoteLocked(Ljava/lang/String;II)V
 HPLcom/android/server/am/ActivityManagerService;->forceStopPackage(Ljava/lang/String;I)V
 PLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;ILjava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;IZZZZZILjava/lang/String;)Z
+HSPLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;IZZZZZILjava/lang/String;)Z
 HSPLcom/android/server/am/ActivityManagerService;->generateApplicationProvidersLocked(Lcom/android/server/am/ProcessRecord;)Ljava/util/List;
 PLcom/android/server/am/ActivityManagerService;->getActivityInfoForUser(Landroid/content/pm/ActivityInfo;I)Landroid/content/pm/ActivityInfo;
 PLcom/android/server/am/ActivityManagerService;->getAppId(Ljava/lang/String;)I
 HSPLcom/android/server/am/ActivityManagerService;->getAppInfoForUser(Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/am/ActivityManagerService;->getAppOpsManager()Landroid/app/AppOpsManager;
 HSPLcom/android/server/am/ActivityManagerService;->getAppOpsService()Lcom/android/internal/app/IAppOpsService;
 HSPLcom/android/server/am/ActivityManagerService;->getAppStartModeLocked(ILjava/lang/String;IIZZZ)I
 HSPLcom/android/server/am/ActivityManagerService;->getBackgroundLaunchBroadcasts()Landroid/util/ArraySet;
@@ -6480,6 +6713,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->getCurrentUser()Landroid/content/pm/UserInfo;
 HPLcom/android/server/am/ActivityManagerService;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent;
 HSPLcom/android/server/am/ActivityManagerService;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
+HPLcom/android/server/am/ActivityManagerService;->getIntentSenderWithFeature(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
 HSPLcom/android/server/am/ActivityManagerService;->getKsmInfo()[J
 PLcom/android/server/am/ActivityManagerService;->getLaunchedFromPackage(Landroid/os/IBinder;)Ljava/lang/String;
 PLcom/android/server/am/ActivityManagerService;->getLaunchedFromUid(Landroid/os/IBinder;)I
@@ -6510,7 +6744,7 @@
 HPLcom/android/server/am/ActivityManagerService;->getTasks(I)Ljava/util/List;
 HSPLcom/android/server/am/ActivityManagerService;->getTopAppLocked()Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->getUidForIntentSender(Landroid/content/IIntentSender;)I
-HPLcom/android/server/am/ActivityManagerService;->getUidFromIntent(Landroid/content/Intent;)I
+HSPLcom/android/server/am/ActivityManagerService;->getUidFromIntent(Landroid/content/Intent;)I
 HSPLcom/android/server/am/ActivityManagerService;->getUidProcessState(ILjava/lang/String;)I
 HSPLcom/android/server/am/ActivityManagerService;->getUidState(I)I
 HSPLcom/android/server/am/ActivityManagerService;->grantImplicitAccess(ILandroid/content/Intent;II)V
@@ -6544,7 +6778,7 @@
 HPLcom/android/server/am/ActivityManagerService;->isIntentSenderABroadcast(Landroid/content/IIntentSender;)Z
 HPLcom/android/server/am/ActivityManagerService;->isIntentSenderAForegroundService(Landroid/content/IIntentSender;)Z
 HPLcom/android/server/am/ActivityManagerService;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
-PLcom/android/server/am/ActivityManagerService;->isIntentSenderTargetedToPackage(Landroid/content/IIntentSender;)Z
+HPLcom/android/server/am/ActivityManagerService;->isIntentSenderTargetedToPackage(Landroid/content/IIntentSender;)Z
 HSPLcom/android/server/am/ActivityManagerService;->isOnDeviceIdleWhitelistLocked(IZ)Z
 HSPLcom/android/server/am/ActivityManagerService;->isOnOffloadQueue(I)Z
 HSPLcom/android/server/am/ActivityManagerService;->isPendingBroadcastProcessLocked(I)Z
@@ -6559,7 +6793,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->killAllBackgroundProcessesExcept(II)V
 PLcom/android/server/am/ActivityManagerService;->killAppAtUsersRequest(Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/ActivityManagerService;->killAppAtUsersRequest(Lcom/android/server/am/ProcessRecord;Landroid/app/Dialog;)V
-HPLcom/android/server/am/ActivityManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->killApplicationProcess(Ljava/lang/String;I)V
 PLcom/android/server/am/ActivityManagerService;->killBackgroundProcesses(Ljava/lang/String;I)V
 HPLcom/android/server/am/ActivityManagerService;->killUid(IILjava/lang/String;)V
@@ -6571,6 +6805,7 @@
 PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$1$ActivityManagerService(Landroid/os/PowerSaveState;)V
 PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$2$ActivityManagerService(I)V
 PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$2$ActivityManagerService(Landroid/os/PowerSaveState;)V
+PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$3$ActivityManagerService(I)V
 PLcom/android/server/am/ActivityManagerService;->launchBugReportHandlerApp()Z
 HSPLcom/android/server/am/ActivityManagerService;->logStrictModeViolationToDropBox(Lcom/android/server/am/ProcessRecord;Landroid/os/StrictMode$ViolationInfo;)V
 PLcom/android/server/am/ActivityManagerService;->makeHeapDumpUri(Ljava/lang/String;)Landroid/net/Uri;
@@ -6605,7 +6840,8 @@
 HPLcom/android/server/am/ActivityManagerService;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
-PLcom/android/server/am/ActivityManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+HPLcom/android/server/am/ActivityManagerService;->registerReceiverWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
+HPLcom/android/server/am/ActivityManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->removeContentProvider(Landroid/os/IBinder;Z)V
@@ -6614,7 +6850,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/ActivityManagerService;->removePidIfNoThread(Lcom/android/server/am/ProcessRecord;)Z
 HSPLcom/android/server/am/ActivityManagerService;->removePidLocked(Lcom/android/server/am/ProcessRecord;)V
-HSPLcom/android/server/am/ActivityManagerService;->removeReceiverLocked(Lcom/android/server/am/ReceiverList;)V
+HPLcom/android/server/am/ActivityManagerService;->removeReceiverLocked(Lcom/android/server/am/ReceiverList;)V
 HSPLcom/android/server/am/ActivityManagerService;->reportCurWakefulnessUsageEventLocked()V
 HSPLcom/android/server/am/ActivityManagerService;->reportGlobalUsageEventLocked(I)V
 HPLcom/android/server/am/ActivityManagerService;->reportLmkKillAtOrBelow(Ljava/io/PrintWriter;I)Z
@@ -6637,7 +6873,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->scheduleAppGcsLocked()V
 HSPLcom/android/server/am/ActivityManagerService;->scheduleApplicationInfoChanged(Ljava/util/List;I)V
 HPLcom/android/server/am/ActivityManagerService;->sendIntentSender(Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
-HPLcom/android/server/am/ActivityManagerService;->sendPackageBroadcastLocked(I[Ljava/lang/String;I)V
+HSPLcom/android/server/am/ActivityManagerService;->sendPackageBroadcastLocked(I[Ljava/lang/String;I)V
 HSPLcom/android/server/am/ActivityManagerService;->sendPendingBroadcastsLocked(Lcom/android/server/am/ProcessRecord;)Z
 HSPLcom/android/server/am/ActivityManagerService;->serviceDoneExecuting(Landroid/os/IBinder;III)V
 PLcom/android/server/am/ActivityManagerService;->setActivityController(Landroid/app/IActivityController;Z)V
@@ -6676,9 +6912,10 @@
 HSPLcom/android/server/am/ActivityManagerService;->startPersistentApps(I)V
 HSPLcom/android/server/am/ActivityManagerService;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;ZZZ)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
+HPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
 PLcom/android/server/am/ActivityManagerService;->startUserInBackground(I)Z
 PLcom/android/server/am/ActivityManagerService;->startUserInBackgroundWithListener(ILandroid/os/IProgressListener;)Z
-PLcom/android/server/am/ActivityManagerService;->stopAppSwitches()V
+HPLcom/android/server/am/ActivityManagerService;->stopAppSwitches()V
 HSPLcom/android/server/am/ActivityManagerService;->stopAssociationLocked(ILjava/lang/String;IJLandroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
 HPLcom/android/server/am/ActivityManagerService;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
@@ -6697,8 +6934,8 @@
 HPLcom/android/server/am/ActivityManagerService;->unbroadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;I)V
 PLcom/android/server/am/ActivityManagerService;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
 HPLcom/android/server/am/ActivityManagerService;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
-HSPLcom/android/server/am/ActivityManagerService;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
-PLcom/android/server/am/ActivityManagerService;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
+HPLcom/android/server/am/ActivityManagerService;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
+HPLcom/android/server/am/ActivityManagerService;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
 HPLcom/android/server/am/ActivityManagerService;->unregisterUidObserver(Landroid/app/IUidObserver;)V
 HPLcom/android/server/am/ActivityManagerService;->unregisterUserSwitchObserver(Landroid/app/IUserSwitchObserver;)V
 HPLcom/android/server/am/ActivityManagerService;->unstableProviderDied(Landroid/os/IBinder;)V
@@ -6810,7 +7047,7 @@
 PLcom/android/server/am/AppErrorDialog;->access$000(Lcom/android/server/am/AppErrorDialog;I)V
 PLcom/android/server/am/AppErrorDialog;->dismiss()V
 PLcom/android/server/am/AppErrorDialog;->onClick(Landroid/view/View;)V
-PLcom/android/server/am/AppErrorDialog;->onCreate(Landroid/os/Bundle;)V
+HPLcom/android/server/am/AppErrorDialog;->onCreate(Landroid/os/Bundle;)V
 PLcom/android/server/am/AppErrorDialog;->onStart()V
 PLcom/android/server/am/AppErrorDialog;->onStop()V
 PLcom/android/server/am/AppErrorDialog;->setResult(I)V
@@ -6840,7 +7077,7 @@
 HSPLcom/android/server/am/AppErrors;->loadAppsNotReportingCrashesFromConfigLocked(Ljava/lang/String;)V
 HPLcom/android/server/am/AppErrors;->makeAppCrashingLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/am/AppErrorDialog$Data;)Z
 HSPLcom/android/server/am/AppErrors;->resetProcessCrashTimeLocked(Landroid/content/pm/ApplicationInfo;)V
-HPLcom/android/server/am/AppErrors;->resetProcessCrashTimeLocked(ZII)V
+HSPLcom/android/server/am/AppErrors;->resetProcessCrashTimeLocked(ZII)V
 HPLcom/android/server/am/AppErrors;->scheduleAppCrashLocked(IILjava/lang/String;ILjava/lang/String;Z)V
 HSPLcom/android/server/am/AppExitInfoTracker$1;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
 PLcom/android/server/am/AppExitInfoTracker$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -7022,12 +7259,12 @@
 HSPLcom/android/server/am/BatteryStatsService;->getService()Lcom/android/internal/app/IBatteryStats;
 PLcom/android/server/am/BatteryStatsService;->getServiceType()I
 PLcom/android/server/am/BatteryStatsService;->getStatistics()[B
-PLcom/android/server/am/BatteryStatsService;->getStatisticsStream()Landroid/os/ParcelFileDescriptor;
+HPLcom/android/server/am/BatteryStatsService;->getStatisticsStream()Landroid/os/ParcelFileDescriptor;
 HSPLcom/android/server/am/BatteryStatsService;->getSubsystemLowPowerStats()Ljava/lang/String;
 HPLcom/android/server/am/BatteryStatsService;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
 HSPLcom/android/server/am/BatteryStatsService;->initPowerManagement()V
 HPLcom/android/server/am/BatteryStatsService;->isCharging()Z
-PLcom/android/server/am/BatteryStatsService;->isOnBattery()Z
+HSPLcom/android/server/am/BatteryStatsService;->isOnBattery()Z
 HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$0$BatteryStatsService(IIIIIIII)V
 HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$1$BatteryStatsService(IIIIIIII)V
 HPLcom/android/server/am/BatteryStatsService;->noteAlarmFinish(Ljava/lang/String;Landroid/os/WorkSource;I)V
@@ -7057,7 +7294,7 @@
 HPLcom/android/server/am/BatteryStatsService;->noteNetworkInterfaceType(Ljava/lang/String;I)V
 HSPLcom/android/server/am/BatteryStatsService;->noteNetworkStatsEnabled()V
 HPLcom/android/server/am/BatteryStatsService;->notePackageInstalled(Ljava/lang/String;J)V
-HPLcom/android/server/am/BatteryStatsService;->notePackageUninstalled(Ljava/lang/String;)V
+HSPLcom/android/server/am/BatteryStatsService;->notePackageUninstalled(Ljava/lang/String;)V
 HPLcom/android/server/am/BatteryStatsService;->notePhoneDataConnectionState(IZI)V
 PLcom/android/server/am/BatteryStatsService;->notePhoneOff()V
 PLcom/android/server/am/BatteryStatsService;->notePhoneOn()V
@@ -7093,8 +7330,8 @@
 HPLcom/android/server/am/BatteryStatsService;->noteVibratorOn(IJ)V
 HPLcom/android/server/am/BatteryStatsService;->noteWakeUp(Ljava/lang/String;I)V
 HPLcom/android/server/am/BatteryStatsService;->noteWakupAlarm(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
-PLcom/android/server/am/BatteryStatsService;->noteWifiMulticastDisabled(I)V
-PLcom/android/server/am/BatteryStatsService;->noteWifiMulticastEnabled(I)V
+HPLcom/android/server/am/BatteryStatsService;->noteWifiMulticastDisabled(I)V
+HPLcom/android/server/am/BatteryStatsService;->noteWifiMulticastEnabled(I)V
 PLcom/android/server/am/BatteryStatsService;->noteWifiOff()V
 HSPLcom/android/server/am/BatteryStatsService;->noteWifiOn()V
 HPLcom/android/server/am/BatteryStatsService;->noteWifiRadioPowerState(IJI)V
@@ -7107,7 +7344,7 @@
 PLcom/android/server/am/BatteryStatsService;->onLowPowerModeChanged(Landroid/os/PowerSaveState;)V
 HSPLcom/android/server/am/BatteryStatsService;->publish()V
 HSPLcom/android/server/am/BatteryStatsService;->removeIsolatedUid(II)V
-PLcom/android/server/am/BatteryStatsService;->removeUid(I)V
+HSPLcom/android/server/am/BatteryStatsService;->removeUid(I)V
 HSPLcom/android/server/am/BatteryStatsService;->scheduleWriteToDisk()V
 HSPLcom/android/server/am/BatteryStatsService;->setBatteryState(IIIIIIII)V
 HPLcom/android/server/am/BatteryStatsService;->setChargingStateUpdateDelayMillis(I)Z
@@ -7145,9 +7382,9 @@
 PLcom/android/server/am/BroadcastDispatcher;->access$502(Lcom/android/server/am/BroadcastDispatcher;Z)Z
 HPLcom/android/server/am/BroadcastDispatcher;->addDeferredBroadcast(ILcom/android/server/am/BroadcastRecord;)V
 PLcom/android/server/am/BroadcastDispatcher;->calculateDeferral(J)J
-HPLcom/android/server/am/BroadcastDispatcher;->cleanupBroadcastListDisabledReceiversLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/util/Set;IZ)Z
-HPLcom/android/server/am/BroadcastDispatcher;->cleanupDeferralsListDisabledReceiversLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/util/Set;IZ)Z
-HPLcom/android/server/am/BroadcastDispatcher;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
+HSPLcom/android/server/am/BroadcastDispatcher;->cleanupBroadcastListDisabledReceiversLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/util/Set;IZ)Z
+HSPLcom/android/server/am/BroadcastDispatcher;->cleanupDeferralsListDisabledReceiversLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/util/Set;IZ)Z
+HSPLcom/android/server/am/BroadcastDispatcher;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
 HPLcom/android/server/am/BroadcastDispatcher;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HPLcom/android/server/am/BroadcastDispatcher;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/text/SimpleDateFormat;)Z
 HSPLcom/android/server/am/BroadcastDispatcher;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
@@ -7170,6 +7407,7 @@
 HSPLcom/android/server/am/BroadcastDispatcher;->start()V
 HPLcom/android/server/am/BroadcastDispatcher;->startDeferring(I)V
 HSPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;IIZZ)V
+HPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZ)V
 PLcom/android/server/am/BroadcastFilter;->dumpBrief(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/am/BroadcastFilter;->dumpBroadcastFilterState(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/am/BroadcastFilter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
@@ -7185,7 +7423,7 @@
 HPLcom/android/server/am/BroadcastQueue;->backgroundServicesFinishedLocked(I)V
 HPLcom/android/server/am/BroadcastQueue;->broadcastTimeoutLocked(Z)V
 HSPLcom/android/server/am/BroadcastQueue;->cancelBroadcastTimeoutLocked()V
-HPLcom/android/server/am/BroadcastQueue;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
+HSPLcom/android/server/am/BroadcastQueue;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
 HSPLcom/android/server/am/BroadcastQueue;->createBroadcastTraceTitle(Lcom/android/server/am/BroadcastRecord;I)Ljava/lang/String;
 HSPLcom/android/server/am/BroadcastQueue;->deliverToRegisteredReceiverLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;ZI)V
 HPLcom/android/server/am/BroadcastQueue;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
@@ -7222,6 +7460,7 @@
 PLcom/android/server/am/BroadcastQueue;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/BroadcastRecord;-><clinit>()V
 HSPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZZ)V
+HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZZ)V
 HSPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastRecord;Landroid/content/Intent;)V
 HPLcom/android/server/am/BroadcastRecord;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
 HPLcom/android/server/am/BroadcastRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/text/SimpleDateFormat;)V
@@ -7231,7 +7470,7 @@
 HPLcom/android/server/am/BroadcastRecord;->splitRecipientsLocked(II)Lcom/android/server/am/BroadcastRecord;
 HPLcom/android/server/am/BroadcastRecord;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/BroadcastStats$1;-><init>()V
-PLcom/android/server/am/BroadcastStats$1;->compare(Lcom/android/server/am/BroadcastStats$ActionEntry;Lcom/android/server/am/BroadcastStats$ActionEntry;)I
+HPLcom/android/server/am/BroadcastStats$1;->compare(Lcom/android/server/am/BroadcastStats$ActionEntry;Lcom/android/server/am/BroadcastStats$ActionEntry;)I
 HPLcom/android/server/am/BroadcastStats$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/am/BroadcastStats$ActionEntry;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/am/BroadcastStats$PackageEntry;-><init>()V
@@ -7255,6 +7494,11 @@
 HPLcom/android/server/am/CachedAppOptimizer$1;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/am/CachedAppOptimizer$2;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
 HPLcom/android/server/am/CachedAppOptimizer$2;->removeEldestEntry(Ljava/util/Map$Entry;)Z
+HSPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
+HSPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$1;)V
+HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->freezeProcess(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->unfreezeProcess(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/CachedAppOptimizer$LastCompactionStats;-><init>([J)V
 HPLcom/android/server/am/CachedAppOptimizer$LastCompactionStats;->getRssAfterCompaction()[J
 HSPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
@@ -7294,10 +7538,13 @@
 HPLcom/android/server/am/CachedAppOptimizer;->compactAppPersistent(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/CachedAppOptimizer;->compactAppSome(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/CachedAppOptimizer;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/CachedAppOptimizer;->freezeAppAsync(Lcom/android/server/am/ProcessRecord;)V
 HSPLcom/android/server/am/CachedAppOptimizer;->init()V
+HSPLcom/android/server/am/CachedAppOptimizer;->isFreezerSupported()Z
 HSPLcom/android/server/am/CachedAppOptimizer;->parseProcStateThrottle(Ljava/lang/String;)Z
 HPLcom/android/server/am/CachedAppOptimizer;->shouldCompactBFGS(Lcom/android/server/am/ProcessRecord;J)Z
 HPLcom/android/server/am/CachedAppOptimizer;->shouldCompactPersistent(Lcom/android/server/am/ProcessRecord;J)Z
+PLcom/android/server/am/CachedAppOptimizer;->unfreezeAppAsync(Lcom/android/server/am/ProcessRecord;)V
 HSPLcom/android/server/am/CachedAppOptimizer;->updateCompactStatsdSampleRate()V
 HSPLcom/android/server/am/CachedAppOptimizer;->updateCompactionActions()V
 HSPLcom/android/server/am/CachedAppOptimizer;->updateCompactionThrottles()V
@@ -7323,7 +7570,7 @@
 HSPLcom/android/server/am/ContentProviderConnection;-><init>(Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
 HSPLcom/android/server/am/ContentProviderConnection;->startAssociationIfNeeded()V
 HPLcom/android/server/am/ContentProviderConnection;->stopAssociation()V
-PLcom/android/server/am/ContentProviderConnection;->toClientString()Ljava/lang/String;
+HPLcom/android/server/am/ContentProviderConnection;->toClientString()Ljava/lang/String;
 HPLcom/android/server/am/ContentProviderConnection;->toClientString(Ljava/lang/StringBuilder;)V
 HPLcom/android/server/am/ContentProviderConnection;->toShortString()Ljava/lang/String;
 HPLcom/android/server/am/ContentProviderConnection;->toShortString(Ljava/lang/StringBuilder;)V
@@ -7365,7 +7612,7 @@
 HPLcom/android/server/am/EventLogTags;->writeAmPss(IILjava/lang/String;JJJJIIJ)V
 PLcom/android/server/am/EventLogTags;->writeAmStopIdleService(ILjava/lang/String;)V
 HSPLcom/android/server/am/EventLogTags;->writeAmUidActive(I)V
-PLcom/android/server/am/EventLogTags;->writeAmUidIdle(I)V
+HPLcom/android/server/am/EventLogTags;->writeAmUidIdle(I)V
 HSPLcom/android/server/am/EventLogTags;->writeAmUidRunning(I)V
 HSPLcom/android/server/am/EventLogTags;->writeAmUidStopped(I)V
 PLcom/android/server/am/EventLogTags;->writeAmUserStateChanged(II)V
@@ -7434,7 +7681,7 @@
 HSPLcom/android/server/am/MemoryStatUtil;->hasMemcg()Z
 HPLcom/android/server/am/MemoryStatUtil;->parseMemoryStatFromProcfs(Ljava/lang/String;)Lcom/android/server/am/MemoryStatUtil$MemoryStat;
 HPLcom/android/server/am/MemoryStatUtil;->readFileContents(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/am/MemoryStatUtil;->readMemoryStatFromFilesystem(II)Lcom/android/server/am/MemoryStatUtil$MemoryStat;
+HPLcom/android/server/am/MemoryStatUtil;->readMemoryStatFromFilesystem(II)Lcom/android/server/am/MemoryStatUtil$MemoryStat;
 HPLcom/android/server/am/MemoryStatUtil;->readMemoryStatFromProcfs(I)Lcom/android/server/am/MemoryStatUtil$MemoryStat;
 PLcom/android/server/am/NativeCrashListener$NativeCrashReporter;-><init>(Lcom/android/server/am/NativeCrashListener;Lcom/android/server/am/ProcessRecord;ILjava/lang/String;)V
 PLcom/android/server/am/NativeCrashListener$NativeCrashReporter;->run()V
@@ -7503,16 +7750,18 @@
 PLcom/android/server/am/PendingIntentController;->clearPendingResultForActivity(Landroid/os/IBinder;Ljava/lang/ref/WeakReference;)V
 HPLcom/android/server/am/PendingIntentController;->dumpPendingIntents(Ljava/io/PrintWriter;ZLjava/lang/String;)V
 HSPLcom/android/server/am/PendingIntentController;->getIntentSender(ILjava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/server/am/PendingIntentRecord;
+HPLcom/android/server/am/PendingIntentController;->getIntentSender(ILjava/lang/String;Ljava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/server/am/PendingIntentRecord;
 HPLcom/android/server/am/PendingIntentController;->handlePendingIntentCancelled(Landroid/os/RemoteCallbackList;)V
 PLcom/android/server/am/PendingIntentController;->lambda$pDmmJDvS20vSAAXh9qdzbN0P8N0(Lcom/android/server/am/PendingIntentController;Landroid/os/RemoteCallbackList;)V
 PLcom/android/server/am/PendingIntentController;->lambda$sPmaborOkBSSEP2wiimxXw-eYDQ(Lcom/android/server/am/PendingIntentController;Landroid/os/IBinder;Ljava/lang/ref/WeakReference;)V
 HPLcom/android/server/am/PendingIntentController;->makeIntentSenderCanceled(Lcom/android/server/am/PendingIntentRecord;)V
 HSPLcom/android/server/am/PendingIntentController;->onActivityManagerInternalAdded()V
 HPLcom/android/server/am/PendingIntentController;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
-HPLcom/android/server/am/PendingIntentController;->removePendingIntentsForPackage(Ljava/lang/String;IIZ)Z
+HSPLcom/android/server/am/PendingIntentController;->removePendingIntentsForPackage(Ljava/lang/String;IIZ)Z
 HPLcom/android/server/am/PendingIntentController;->setPendingIntentWhitelistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;J)V
 HPLcom/android/server/am/PendingIntentController;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
 HSPLcom/android/server/am/PendingIntentRecord$Key;-><init>(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;I)V
+HPLcom/android/server/am/PendingIntentRecord$Key;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;I)V
 HSPLcom/android/server/am/PendingIntentRecord$Key;->equals(Ljava/lang/Object;)Z
 HSPLcom/android/server/am/PendingIntentRecord$Key;->hashCode()I
 HPLcom/android/server/am/PendingIntentRecord$Key;->typeName()Ljava/lang/String;
@@ -7559,6 +7808,7 @@
 PLcom/android/server/am/PersistentConnection;->bindInnerLocked(Z)V
 PLcom/android/server/am/PersistentConnection;->cleanUpConnectionLocked()V
 PLcom/android/server/am/PersistentConnection;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/am/PersistentConnection;->getUserId()I
 PLcom/android/server/am/PersistentConnection;->injectPostAtTime(Ljava/lang/Runnable;J)V
 PLcom/android/server/am/PersistentConnection;->injectRemoveCallbacks(Ljava/lang/Runnable;)V
 PLcom/android/server/am/PersistentConnection;->injectUptimeMillis()J
@@ -7646,9 +7896,9 @@
 HSPLcom/android/server/am/ProcessList;->killAllBackgroundProcessesExceptLocked(II)V
 HPLcom/android/server/am/ProcessList;->killAppZygoteIfNeededLocked(Landroid/os/AppZygote;)V
 HPLcom/android/server/am/ProcessList;->killAppZygoteIfNeededLocked(Landroid/os/AppZygote;Z)V
-HPLcom/android/server/am/ProcessList;->killAppZygotesLocked(Ljava/lang/String;IIZ)V
+HSPLcom/android/server/am/ProcessList;->killAppZygotesLocked(Ljava/lang/String;IIZ)V
 HPLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIILjava/lang/String;)Z
-HPLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIIZZZZZLjava/lang/String;)Z
+HSPLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIIZZZZZLjava/lang/String;)Z
 HPLcom/android/server/am/ProcessList;->killProcAndWaitIfNecessaryLocked(Lcom/android/server/am/ProcessRecord;ZZLjava/lang/String;J)V
 HSPLcom/android/server/am/ProcessList;->killProcessGroup(II)V
 HSPLcom/android/server/am/ProcessList;->lambda$hjUwwFAIhoht4KRKnKeUve_Kcto(Lcom/android/server/am/ProcessList;Ljava/io/FileDescriptor;I)I
@@ -7671,7 +7921,7 @@
 HPLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZLjava/lang/String;I)Z
 HSPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ProcessList;->sendPackageBroadcastLocked(I[Ljava/lang/String;I)V
+HSPLcom/android/server/am/ProcessList;->sendPackageBroadcastLocked(I[Ljava/lang/String;I)V
 HPLcom/android/server/am/ProcessList;->setAllHttpProxy()V
 HSPLcom/android/server/am/ProcessList;->setOomAdj(III)V
 HSPLcom/android/server/am/ProcessList;->shouldIsolateAppData(Lcom/android/server/am/ProcessRecord;)Z
@@ -7757,7 +8007,7 @@
 HSPLcom/android/server/am/ProcessRecord;->getReportedProcState()I
 HPLcom/android/server/am/ProcessRecord;->getSetAdjWithServices()I
 PLcom/android/server/am/ProcessRecord;->getShowBackground()Z
-PLcom/android/server/am/ProcessRecord;->getWhenUnimportant()J
+HPLcom/android/server/am/ProcessRecord;->getWhenUnimportant()J
 HSPLcom/android/server/am/ProcessRecord;->getWindowProcessController()Lcom/android/server/wm/WindowProcessController;
 HSPLcom/android/server/am/ProcessRecord;->hasActivities()Z
 HSPLcom/android/server/am/ProcessRecord;->hasActivitiesOrRecentTasks()Z
@@ -7772,7 +8022,7 @@
 HSPLcom/android/server/am/ProcessRecord;->isCached()Z
 HSPLcom/android/server/am/ProcessRecord;->isCrashing()Z
 PLcom/android/server/am/ProcessRecord;->isDebugging()Z
-PLcom/android/server/am/ProcessRecord;->isInterestingForBackgroundTraces()Z
+HPLcom/android/server/am/ProcessRecord;->isInterestingForBackgroundTraces()Z
 HPLcom/android/server/am/ProcessRecord;->isInterestingToUserLocked()Z
 PLcom/android/server/am/ProcessRecord;->isMonitorCpuUsage()Z
 HPLcom/android/server/am/ProcessRecord;->isNotResponding()Z
@@ -7781,7 +8031,7 @@
 PLcom/android/server/am/ProcessRecord;->isSilentAnr()Z
 HSPLcom/android/server/am/ProcessRecord;->isUsingWrapper()Z
 HPLcom/android/server/am/ProcessRecord;->kill(Ljava/lang/String;IIZ)V
-PLcom/android/server/am/ProcessRecord;->kill(Ljava/lang/String;IZ)V
+HPLcom/android/server/am/ProcessRecord;->kill(Ljava/lang/String;IZ)V
 HPLcom/android/server/am/ProcessRecord;->kill(Ljava/lang/String;Z)V
 HSPLcom/android/server/am/ProcessRecord;->makeActive(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessStatsService;)V
 HSPLcom/android/server/am/ProcessRecord;->makeAdjReason()Ljava/lang/String;
@@ -7819,7 +8069,7 @@
 HPLcom/android/server/am/ProcessRecord;->setRunningRemoteAnimation(Z)V
 HSPLcom/android/server/am/ProcessRecord;->setStartParams(ILcom/android/server/am/HostingRecord;Ljava/lang/String;J)V
 HSPLcom/android/server/am/ProcessRecord;->setUsingWrapper(Z)V
-HPLcom/android/server/am/ProcessRecord;->setWhenUnimportant(J)V
+HSPLcom/android/server/am/ProcessRecord;->setWhenUnimportant(J)V
 PLcom/android/server/am/ProcessRecord;->startAppProblemLocked()V
 HSPLcom/android/server/am/ProcessRecord;->toShortString()Ljava/lang/String;
 HSPLcom/android/server/am/ProcessRecord;->toShortString(Ljava/lang/StringBuilder;)V
@@ -7864,8 +8114,8 @@
 HPLcom/android/server/am/ProcessStatsService;->writeStateLocked(ZZ)V
 PLcom/android/server/am/ProcessStatsService;->writeStateSyncLocked()V
 HSPLcom/android/server/am/ProviderMap;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZILjava/util/ArrayList;)Z
-HPLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZLjava/util/HashMap;Ljava/util/ArrayList;)Z
+HSPLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZILjava/util/ArrayList;)Z
+HSPLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZLjava/util/HashMap;Ljava/util/ArrayList;)Z
 HPLcom/android/server/am/ProviderMap;->dumpProvider(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZ)Z
 HPLcom/android/server/am/ProviderMap;->dumpProvider(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ContentProviderRecord;[Ljava/lang/String;Z)V
 PLcom/android/server/am/ProviderMap;->dumpProviderProto(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;)Z
@@ -7877,7 +8127,7 @@
 HSPLcom/android/server/am/ProviderMap;->getProviderByName(Ljava/lang/String;I)Lcom/android/server/am/ContentProviderRecord;
 HSPLcom/android/server/am/ProviderMap;->getProvidersByClass(I)Ljava/util/HashMap;
 HSPLcom/android/server/am/ProviderMap;->getProvidersByName(I)Ljava/util/HashMap;
-PLcom/android/server/am/ProviderMap;->getProvidersForName(Ljava/lang/String;)Ljava/util/ArrayList;
+HPLcom/android/server/am/ProviderMap;->getProvidersForName(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLcom/android/server/am/ProviderMap;->putProviderByClass(Landroid/content/ComponentName;Lcom/android/server/am/ContentProviderRecord;)V
 HSPLcom/android/server/am/ProviderMap;->putProviderByName(Ljava/lang/String;Lcom/android/server/am/ContentProviderRecord;)V
 HPLcom/android/server/am/ProviderMap;->removeProviderByClass(Landroid/content/ComponentName;I)V
@@ -7888,7 +8138,7 @@
 HPLcom/android/server/am/ReceiverList;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/am/ReceiverList;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HPLcom/android/server/am/ReceiverList;->dumpLocal(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HSPLcom/android/server/am/ReceiverList;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/am/ReceiverList;->equals(Ljava/lang/Object;)Z
 HSPLcom/android/server/am/ReceiverList;->hashCode()I
 HPLcom/android/server/am/ReceiverList;->toString()Ljava/lang/String;
 HPLcom/android/server/am/ServiceRecord$1;-><init>(Lcom/android/server/am/ServiceRecord;Landroid/app/Notification;Ljava/lang/String;IIILcom/android/server/am/ServiceRecord;)V
@@ -7896,9 +8146,9 @@
 HPLcom/android/server/am/ServiceRecord$2;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;III)V
 HPLcom/android/server/am/ServiceRecord$2;->run()V
 PLcom/android/server/am/ServiceRecord$3;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;II)V
-PLcom/android/server/am/ServiceRecord$3;->run()V
+HPLcom/android/server/am/ServiceRecord$3;->run()V
 HSPLcom/android/server/am/ServiceRecord$StartItem;-><init>(Lcom/android/server/am/ServiceRecord;ZILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;I)V
-HPLcom/android/server/am/ServiceRecord$StartItem;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJ)V
+PLcom/android/server/am/ServiceRecord$StartItem;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJ)V
 PLcom/android/server/am/ServiceRecord$StartItem;->removeUriPermissionsLocked()V
 PLcom/android/server/am/ServiceRecord$StartItem;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/ServiceRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;ILandroid/content/Intent$FilterComparison;Landroid/content/pm/ServiceInfo;ZLjava/lang/Runnable;)V
@@ -7926,7 +8176,7 @@
 HPLcom/android/server/am/ServiceRecord;->setHasBindingWhitelistingBgActivityStarts(Z)V
 PLcom/android/server/am/ServiceRecord;->setHasStartedWhitelistingBgActivityStarts(Z)V
 HSPLcom/android/server/am/ServiceRecord;->setProcess(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ServiceRecord;->stripForegroundServiceFlagFromNotification()V
+HPLcom/android/server/am/ServiceRecord;->stripForegroundServiceFlagFromNotification()V
 HSPLcom/android/server/am/ServiceRecord;->toString()Ljava/lang/String;
 HPLcom/android/server/am/ServiceRecord;->updateHasBindingWhitelistingBgActivityStarts()V
 HPLcom/android/server/am/ServiceRecord;->updateParentProcessBgActivityStartsWhitelistingToken()V
@@ -8046,7 +8296,7 @@
 HSPLcom/android/server/am/UserController;->getUsers()[I
 PLcom/android/server/am/UserController;->getUsersToStopLU(I)[I
 HSPLcom/android/server/am/UserController;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/am/UserController;->handleMessage(Landroid/os/Message;)Z
+HPLcom/android/server/am/UserController;->handleMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/am/UserController;->hasStartedUserState(I)Z
 PLcom/android/server/am/UserController;->hasUserRestriction(Ljava/lang/String;I)Z
 HPLcom/android/server/am/UserController;->isCurrentProfile(I)Z
@@ -8184,9 +8434,15 @@
 PLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;-><clinit>()V
 PLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;-><init>()V
 PLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;-><clinit>()V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;-><init>()V
+HPLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;-><clinit>()V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;-><init>()V
 HPLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;-><clinit>()V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;-><init>()V
+HPLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;-><clinit>()V
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;-><init>()V
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -8198,6 +8454,9 @@
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$GUeKjlbzT65s86vaxy5gvOajuhw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$JHjaGTUaQHugMX7TLydyaTrbPFw;-><init>(Landroid/os/RemoteCallback;)V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$JHjaGTUaQHugMX7TLydyaTrbPFw;->run()V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$NDUi03ZZuuR42-RDEIQ0UELKycc;-><clinit>()V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$NDUi03ZZuuR42-RDEIQ0UELKycc;-><init>()V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$NDUi03ZZuuR42-RDEIQ0UELKycc;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;-><clinit>()V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;-><init>()V
 HPLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -8219,7 +8478,7 @@
 PLcom/android/server/appop/AppOpsService$4;->getPackageTrustedToInstallApps(Ljava/lang/String;I)I
 HPLcom/android/server/appop/AppOpsService$ActiveCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsActiveCallback;III)V
 PLcom/android/server/appop/AppOpsService$ActiveCallback;->binderDied()V
-PLcom/android/server/appop/AppOpsService$ActiveCallback;->destroy()V
+HPLcom/android/server/appop/AppOpsService$ActiveCallback;->destroy()V
 PLcom/android/server/appop/AppOpsService$ActiveCallback;->toString()Ljava/lang/String;
 HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;-><init>(Lcom/android/server/appop/AppOpsService;)V
 HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$1;)V
@@ -8243,10 +8502,9 @@
 HSPLcom/android/server/appop/AppOpsService$Constants;->startMonitoring(Landroid/content/ContentResolver;)V
 HSPLcom/android/server/appop/AppOpsService$Constants;->updateConstants()V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;-><init>(Lcom/android/server/appop/AppOpsService$Op;)V
-HSPLcom/android/server/appop/AppOpsService$FeatureOp;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$Op;)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Lcom/android/server/appop/AppOpsService$Op;)V
 HPLcom/android/server/appop/AppOpsService$FeatureOp;->access$1200(Lcom/android/server/appop/AppOpsService$FeatureOp;)Landroid/util/ArrayMap;
-HPLcom/android/server/appop/AppOpsService$FeatureOp;->access$1300(Lcom/android/server/appop/AppOpsService$FeatureOp;)Landroid/util/ArrayMap;
+HSPLcom/android/server/appop/AppOpsService$FeatureOp;->access$1300(Lcom/android/server/appop/AppOpsService$FeatureOp;)Landroid/util/ArrayMap;
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->accessed(ILjava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->accessed(JILjava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->accessed(JJILjava/lang/String;Ljava/lang/String;II)V
@@ -8286,6 +8544,7 @@
 HSPLcom/android/server/appop/AppOpsService$InProgressStartOpEventPool;-><init>(Lcom/android/server/appop/AppOpsService;)V
 HSPLcom/android/server/appop/AppOpsService$InProgressStartOpEventPool;->acquire(JJLandroid/os/IBinder;Ljava/lang/Runnable;I)Lcom/android/server/appop/AppOpsService$InProgressStartOpEvent;
 HSPLcom/android/server/appop/AppOpsService$ModeCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsCallback;IIII)V
+HSPLcom/android/server/appop/AppOpsService$ModeCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsCallback;IIIII)V
 HPLcom/android/server/appop/AppOpsService$ModeCallback;->binderDied()V
 HSPLcom/android/server/appop/AppOpsService$ModeCallback;->isWatchingUid(I)Z
 HPLcom/android/server/appop/AppOpsService$ModeCallback;->toString()Ljava/lang/String;
@@ -8321,10 +8580,11 @@
 HSPLcom/android/server/appop/AppOpsService$UidState;->maybeShowWhileInUseDebugToast(II)V
 HSPLcom/android/server/appop/AppOpsService;-><clinit>()V
 HSPLcom/android/server/appop/AppOpsService;-><init>(Ljava/io/File;Landroid/os/Handler;)V
+HSPLcom/android/server/appop/AppOpsService;-><init>(Ljava/io/File;Landroid/os/Handler;Landroid/content/Context;)V
 PLcom/android/server/appop/AppOpsService;->access$1000()[I
 PLcom/android/server/appop/AppOpsService;->access$1100()[I
 PLcom/android/server/appop/AppOpsService;->access$1100(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->access$1200(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->access$1200(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
 PLcom/android/server/appop/AppOpsService;->access$1900(Lcom/android/server/appop/AppOpsService;Landroid/util/SparseArray;Z)V
 PLcom/android/server/appop/AppOpsService;->access$2000(Lcom/android/server/appop/AppOpsService;IIILcom/android/internal/app/IAppOpsCallback;)V
 PLcom/android/server/appop/AppOpsService;->access$2100(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
@@ -8385,9 +8645,12 @@
 HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Ljava/lang/String;Z)Z
 HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Z)Z
 HPLcom/android/server/appop/AppOpsService;->isOperationActive(IILjava/lang/String;)Z
+HPLcom/android/server/appop/AppOpsService;->lambda$1CB62TNmPVdrHvls01D5LKYSp4w(Lcom/android/server/appop/AppOpsService;IIZLcom/android/internal/app/IAppOpsCallback;)V
 HPLcom/android/server/appop/AppOpsService;->lambda$AfBLuTvVESlqN91IyRX84hMV5nE(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;I)V
+HPLcom/android/server/appop/AppOpsService;->lambda$CVMS-lLMRyZYA1tmqvyuOloKBu0(Lcom/android/server/appop/AppOpsService;JI)V
 HSPLcom/android/server/appop/AppOpsService;->lambda$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$ModeCallback;IILjava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->lambda$GUeKjlbzT65s86vaxy5gvOajuhw(Lcom/android/server/appop/AppOpsService;II)V
+PLcom/android/server/appop/AppOpsService;->lambda$NDUi03ZZuuR42-RDEIQ0UELKycc(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
 HPLcom/android/server/appop/AppOpsService;->lambda$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;Z)V
 PLcom/android/server/appop/AppOpsService;->lambda$getHistoricalOps$1(Landroid/os/RemoteCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->lambda$systemReady$0$AppOpsService(Ljava/lang/String;Ljava/lang/String;I)V
@@ -8403,12 +8666,14 @@
 HPLcom/android/server/appop/AppOpsService;->notifyOpActiveChanged(Landroid/util/ArraySet;IILjava/lang/String;Z)V
 HPLcom/android/server/appop/AppOpsService;->notifyOpChanged(Landroid/util/ArraySet;IILjava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->notifyOpChanged(Lcom/android/server/appop/AppOpsService$ModeCallback;IILjava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService;->notifyOpChangedForAllPkgsInUid(IIZLcom/android/internal/app/IAppOpsCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->notifyOpChangedSync(IILjava/lang/String;I)V
 HPLcom/android/server/appop/AppOpsService;->notifyOpChecked(Landroid/util/ArraySet;IILjava/lang/String;I)V
 HSPLcom/android/server/appop/AppOpsService;->notifyWatchersOfChange(II)V
 PLcom/android/server/appop/AppOpsService;->onClientDeath(Lcom/android/server/appop/AppOpsService$FeatureOp;Landroid/os/IBinder;)V
-HPLcom/android/server/appop/AppOpsService;->packageRemoved(ILjava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService;->packageRemoved(ILjava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->permissionToOpCode(Ljava/lang/String;)I
+HSPLcom/android/server/appop/AppOpsService;->publish()V
 HSPLcom/android/server/appop/AppOpsService;->publish(Landroid/content/Context;)V
 HSPLcom/android/server/appop/AppOpsService;->readFeatureOp(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->readOp(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;Z)V
@@ -8429,9 +8694,9 @@
 HSPLcom/android/server/appop/AppOpsService;->setAudioRestriction(IIII[Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->setCameraAudioRestriction(I)V
 HPLcom/android/server/appop/AppOpsService;->setMode(IILjava/lang/String;I)V
-PLcom/android/server/appop/AppOpsService;->setMode(IILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
+HPLcom/android/server/appop/AppOpsService;->setMode(IILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->setUidMode(III)V
-HPLcom/android/server/appop/AppOpsService;->setUidMode(IIILcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/server/appop/AppOpsService;->setUidMode(IIILcom/android/internal/app/IAppOpsCallback;)V
 HPLcom/android/server/appop/AppOpsService;->setUserRestriction(IZLandroid/os/IBinder;I[Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->setUserRestrictionNoCheck(IZLandroid/os/IBinder;I[Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->setUserRestrictions(Landroid/os/Bundle;Landroid/os/IBinder;I)V
@@ -8447,8 +8712,10 @@
 HPLcom/android/server/appop/AppOpsService;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
 PLcom/android/server/appop/AppOpsService;->stopWatchingNoted(Lcom/android/internal/app/IAppOpsNotedCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->systemReady()V
-HPLcom/android/server/appop/AppOpsService;->uidRemoved(I)V
+HSPLcom/android/server/appop/AppOpsService;->uidRemoved(I)V
 HPLcom/android/server/appop/AppOpsService;->updateAppWidgetVisibility(Landroid/util/SparseArray;Z)V
+HPLcom/android/server/appop/AppOpsService;->updatePendingState(JI)V
+HSPLcom/android/server/appop/AppOpsService;->updatePendingStateIfNeededLocked(Lcom/android/server/appop/AppOpsService$UidState;)V
 HSPLcom/android/server/appop/AppOpsService;->updatePermissionRevokedCompat(III)V
 HSPLcom/android/server/appop/AppOpsService;->updateUidProcState(III)V
 HSPLcom/android/server/appop/AppOpsService;->upgradeLocked(I)V
@@ -8515,7 +8782,7 @@
 HSPLcom/android/server/appop/HistoricalRegistry;-><clinit>()V
 HSPLcom/android/server/appop/HistoricalRegistry;-><init>(Ljava/lang/Object;)V
 PLcom/android/server/appop/HistoricalRegistry;->clearHistory()V
-PLcom/android/server/appop/HistoricalRegistry;->clearHistory(ILjava/lang/String;)V
+HSPLcom/android/server/appop/HistoricalRegistry;->clearHistory(ILjava/lang/String;)V
 PLcom/android/server/appop/HistoricalRegistry;->clearHistoryOnDiskDLocked()V
 HPLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJILandroid/os/RemoteCallback;)V
 PLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;[Ljava/lang/String;JJILandroid/os/RemoteCallback;)V
@@ -8540,7 +8807,7 @@
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$3-HMCieo6-UZfG43p_6ip1hrL0k;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$40EK4qcr-rG55ENTthOaXAXWDA4;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$40EK4qcr-rG55ENTthOaXAXWDA4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$NmwmTMZXXS4S7viVNKzU2genXA8;-><init>(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$NmwmTMZXXS4S7viVNKzU2genXA8;->accept(Ljava/lang/Object;)V
@@ -8568,8 +8835,8 @@
 PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$V2_zSuJJPrke_XrPl6iB-Ekw1Z4;->run(Landroid/os/IInterface;)V
 PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$dsYLGE9YRnrxNNkC1jG8ymCUr5Q;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
 PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$dsYLGE9YRnrxNNkC1jG8ymCUr5Q;->run(Landroid/os/IInterface;)V
-PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$qroIh2ewx0BLP-J9XIAX2CaX8J4;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
-PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$qroIh2ewx0BLP-J9XIAX2CaX8J4;->run(Landroid/os/IInterface;)V
+HPLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$qroIh2ewx0BLP-J9XIAX2CaX8J4;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$qroIh2ewx0BLP-J9XIAX2CaX8J4;->run(Landroid/os/IInterface;)V
 PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$sQgYVaCXRIosCYaNa7w5ZuNn7u8;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$sQgYVaCXRIosCYaNa7w5ZuNn7u8;->run(Landroid/os/IInterface;)V
 HSPLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;-><init>(Lcom/android/server/appprediction/AppPredictionManagerService;)V
@@ -8583,12 +8850,13 @@
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->lambda$requestPredictionUpdate$6(Landroid/app/prediction/AppPredictionSessionId;Lcom/android/server/appprediction/AppPredictionPerUserService;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->lambda$sortAppTargets$3(Landroid/app/prediction/AppPredictionSessionId;Landroid/content/pm/ParceledListSlice;Landroid/app/prediction/IPredictionCallback;Lcom/android/server/appprediction/AppPredictionPerUserService;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->lambda$unregisterPredictionUpdates$5(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Lcom/android/server/appprediction/AppPredictionPerUserService;)V
-PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->notifyLaunchLocationShown(Landroid/app/prediction/AppPredictionSessionId;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->onDestroyPredictionSession(Landroid/app/prediction/AppPredictionSessionId;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->registerPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 HPLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->requestPredictionUpdate(Landroid/app/prediction/AppPredictionSessionId;)V
+HPLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->runForUserLocked(Ljava/lang/String;Landroid/app/prediction/AppPredictionSessionId;Ljava/util/function/Consumer;)V
 HPLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->runForUserLocked(Ljava/lang/String;Ljava/util/function/Consumer;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->sortAppTargets(Landroid/app/prediction/AppPredictionSessionId;Landroid/content/pm/ParceledListSlice;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->unregisterPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
@@ -8614,7 +8882,7 @@
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo$1;->onCallbackDied(Landroid/os/IInterface;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppPredictionContext;Landroid/content/ComponentName;Ljava/util/function/Consumer;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppPredictionContext;Ljava/util/function/Consumer;)V
-PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$000(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/content/ComponentName;
+HPLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$000(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/content/ComponentName;
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$000(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/os/RemoteCallbackList;
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$100(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/os/RemoteCallbackList;
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->addCallbackLocked(Landroid/app/prediction/IPredictionCallback;)V
@@ -8657,10 +8925,10 @@
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$onCreatePredictionSession$0(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$onDestroyPredictionSession$7(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$registerPredictionUpdates$4(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
-PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$requestPredictionUpdate$6(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
+HPLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$requestPredictionUpdate$6(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$sortAppTargets$3(Landroid/app/prediction/AppPredictionSessionId;Landroid/content/pm/ParceledListSlice;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$unregisterPredictionUpdates$5(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
-PLcom/android/server/appprediction/RemoteAppPredictionService;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLcom/android/server/appprediction/RemoteAppPredictionService;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->notifyLaunchLocationShown(Landroid/app/prediction/AppPredictionSessionId;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->onCreatePredictionSession(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->onDestroyPredictionSession(Landroid/app/prediction/AppPredictionSessionId;)V
@@ -8703,7 +8971,7 @@
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$Host;->isInPackageForUser(Ljava/lang/String;I)Z
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$HostId;-><init>(IILjava/lang/String;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$HostId;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/appwidget/AppWidgetServiceImpl$HostId;->toString()Ljava/lang/String;
+HPLcom/android/server/appwidget/AppWidgetServiceImpl$HostId;->toString()Ljava/lang/String;
 PLcom/android/server/appwidget/AppWidgetServiceImpl$LoadedWidgetState;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;II)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;-><init>()V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
@@ -8732,6 +9000,7 @@
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getGroupParent(I)I
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getProfileParent(I)I
 PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->hasCallerBindPermissionOrBindWhiteListedLocked(Ljava/lang/String;)Z
+PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isCallerBindAppWidgetWhiteListedLocked(Ljava/lang/String;)Z
 HPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isCallerInstantAppLocked()Z
 PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isEnabledGroupProfile(I)Z
 PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isHostAccessingProvider(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;ILjava/lang/String;)Z
@@ -8762,7 +9031,10 @@
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2000(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;IIJ)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2100(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/os/UserManager;
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2200(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/content/pm/IPackageManager;
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2300(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/app/AppOpsManager;
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2300(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/app/AppOpsManager;
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2400(Lcom/android/server/appwidget/AppWidgetServiceImpl;Ljava/lang/String;I)I
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2500(Lcom/android/server/appwidget/AppWidgetServiceImpl;I)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2600(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/util/ArraySet;
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2700(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/app/admin/DevicePolicyManagerInternal;
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2800(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Lcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2900(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews;
@@ -8786,7 +9058,7 @@
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->cancelBroadcastsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->clearProvidersAndHostsTagsLocked()V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/appwidget/AppWidgetProviderInfo;)Landroid/appwidget/AppWidgetProviderInfo;
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/os/Bundle;)Landroid/os/Bundle;
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/os/Bundle;)Landroid/os/Bundle;
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews;
 HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->computeMaximumWidgetBitmapMemory()V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->createAppWidgetConfigIntentSender(Ljava/lang/String;II)Landroid/content/IntentSender;
@@ -8873,7 +9145,7 @@
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->removeWidgetsForPackageLocked(Ljava/lang/String;II)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->resolveHostUidLocked(Ljava/lang/String;I)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->restoreFinished(I)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->saveGroupStateAsync(I)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->saveGroupStateAsync(I)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->saveStateLocked(I)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyAppWidgetRemovedLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyAppWidgetViewDataChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;I)V
@@ -8889,6 +9161,7 @@
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeAppWidget(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeHost(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeProvider(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->setBindAppWidgetPermission(Ljava/lang/String;IZ)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->setMinAppWidgetIdLocked(II)V
 HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->setSafeMode(Z)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->startListening(Lcom/android/internal/appwidget/IAppWidgetHost;Ljava/lang/String;I[I)Landroid/content/pm/ParceledListSlice;
@@ -8900,7 +9173,7 @@
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;Z)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetInstanceLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;Landroid/widget/RemoteViews;Z)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetOptions(Ljava/lang/String;ILandroid/os/Bundle;)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetOptions(Ljava/lang/String;ILandroid/os/Bundle;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetProvider(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetProviderInfo(Landroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateProvidersForPackageLocked(Ljava/lang/String;ILjava/util/Set;)Z
@@ -8912,14 +9185,15 @@
 PLcom/android/server/attention/-$$Lambda$AttentionManagerService$UserState$2cc0P7pJchsigKpbEq7IoxYFsSM;->run()V
 PLcom/android/server/attention/AttentionManagerService$1;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$UserState;Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)V
 PLcom/android/server/attention/AttentionManagerService$1;->onFailure(I)V
-PLcom/android/server/attention/AttentionManagerService$1;->onSuccess(IJ)V
-PLcom/android/server/attention/AttentionManagerService$AttentionCheck;-><init>(Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;Landroid/service/attention/IAttentionCallback;)V
+HPLcom/android/server/attention/AttentionManagerService$1;->onSuccess(IJ)V
+HPLcom/android/server/attention/AttentionManagerService$AttentionCheck;-><init>(Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;Landroid/service/attention/IAttentionCallback;)V
 PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->access$1100(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;)Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;
 PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->access$700(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;)Z
 PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->access$702(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;Z)Z
 PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->access$800(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;)Z
 PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->access$802(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;Z)Z
 PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->access$900(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;)Landroid/service/attention/IAttentionCallback;
+PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->cancelInternal()V
 PLcom/android/server/attention/AttentionManagerService$AttentionCheckCache;-><init>(JIJ)V
 PLcom/android/server/attention/AttentionManagerService$AttentionCheckCache;->access$400(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)J
 PLcom/android/server/attention/AttentionManagerService$AttentionCheckCache;->access$500(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)I
@@ -8928,7 +9202,7 @@
 PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;->add(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)V
 PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;->getLast()Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;
 HSPLcom/android/server/attention/AttentionManagerService$AttentionHandler;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
-PLcom/android/server/attention/AttentionManagerService$AttentionHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/attention/AttentionManagerService$AttentionHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand$TestableAttentionCallbackInternal;-><init>(Lcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;)V
 HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
 HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$1;)V
@@ -8938,7 +9212,7 @@
 HSPLcom/android/server/attention/AttentionManagerService$LocalService;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
 HSPLcom/android/server/attention/AttentionManagerService$LocalService;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$1;)V
 PLcom/android/server/attention/AttentionManagerService$LocalService;->cancelAttentionCheck(Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)V
-PLcom/android/server/attention/AttentionManagerService$LocalService;->checkAttention(JLandroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)Z
+HPLcom/android/server/attention/AttentionManagerService$LocalService;->checkAttention(JLandroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)Z
 HPLcom/android/server/attention/AttentionManagerService$LocalService;->isAttentionServiceSupported()Z
 HSPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
 HSPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$1;)V
@@ -8948,7 +9222,7 @@
 PLcom/android/server/attention/AttentionManagerService$UserState$AttentionServiceConnection;->cleanupService()V
 PLcom/android/server/attention/AttentionManagerService$UserState$AttentionServiceConnection;->init(Landroid/service/attention/IAttentionService;)V
 PLcom/android/server/attention/AttentionManagerService$UserState$AttentionServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/attention/AttentionManagerService$UserState;-><init>(ILandroid/content/Context;Ljava/lang/Object;Landroid/os/Handler;Landroid/content/ComponentName;)V
+HPLcom/android/server/attention/AttentionManagerService$UserState;-><init>(ILandroid/content/Context;Ljava/lang/Object;Landroid/os/Handler;Landroid/content/ComponentName;)V
 PLcom/android/server/attention/AttentionManagerService$UserState;->access$1600(Lcom/android/server/attention/AttentionManagerService$UserState;)Ljava/lang/Object;
 PLcom/android/server/attention/AttentionManagerService$UserState;->access$1702(Lcom/android/server/attention/AttentionManagerService$UserState;Z)Z
 PLcom/android/server/attention/AttentionManagerService$UserState;->access$1800(Lcom/android/server/attention/AttentionManagerService$UserState;)V
@@ -8957,7 +9231,7 @@
 PLcom/android/server/attention/AttentionManagerService$UserState;->access$300(Lcom/android/server/attention/AttentionManagerService$UserState;)V
 PLcom/android/server/attention/AttentionManagerService$UserState;->bindLocked()V
 PLcom/android/server/attention/AttentionManagerService$UserState;->handlePendingCallbackLocked()V
-PLcom/android/server/attention/AttentionManagerService$UserState;->lambda$bindLocked$0$AttentionManagerService$UserState()V
+HPLcom/android/server/attention/AttentionManagerService$UserState;->lambda$bindLocked$0$AttentionManagerService$UserState()V
 HSPLcom/android/server/attention/AttentionManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/attention/AttentionManagerService;-><init>(Landroid/content/Context;Landroid/os/PowerManager;Ljava/lang/Object;Lcom/android/server/attention/AttentionManagerService$AttentionHandler;)V
 PLcom/android/server/attention/AttentionManagerService;->access$1000(Lcom/android/server/attention/AttentionManagerService;)Ljava/lang/Object;
@@ -8968,14 +9242,14 @@
 PLcom/android/server/attention/AttentionManagerService;->access$2700(Lcom/android/server/attention/AttentionManagerService;Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/attention/AttentionManagerService;->cancel(Lcom/android/server/attention/AttentionManagerService$UserState;)V
 PLcom/android/server/attention/AttentionManagerService;->cancelAfterTimeoutLocked(J)V
-PLcom/android/server/attention/AttentionManagerService;->cancelAndUnbindLocked(Lcom/android/server/attention/AttentionManagerService$UserState;)V
+HPLcom/android/server/attention/AttentionManagerService;->cancelAndUnbindLocked(Lcom/android/server/attention/AttentionManagerService$UserState;)V
 PLcom/android/server/attention/AttentionManagerService;->cancelAttentionCheck(Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)V
-PLcom/android/server/attention/AttentionManagerService;->checkAttention(JLandroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)Z
+HPLcom/android/server/attention/AttentionManagerService;->checkAttention(JLandroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)Z
 PLcom/android/server/attention/AttentionManagerService;->createAttentionCheck(Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;Lcom/android/server/attention/AttentionManagerService$UserState;)Lcom/android/server/attention/AttentionManagerService$AttentionCheck;
 PLcom/android/server/attention/AttentionManagerService;->dumpInternal(Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/attention/AttentionManagerService;->freeIfInactiveLocked()V
+HPLcom/android/server/attention/AttentionManagerService;->freeIfInactiveLocked()V
 PLcom/android/server/attention/AttentionManagerService;->getOrCreateCurrentUserStateLocked()Lcom/android/server/attention/AttentionManagerService$UserState;
-PLcom/android/server/attention/AttentionManagerService;->getOrCreateUserStateLocked(I)Lcom/android/server/attention/AttentionManagerService$UserState;
+HPLcom/android/server/attention/AttentionManagerService;->getOrCreateUserStateLocked(I)Lcom/android/server/attention/AttentionManagerService$UserState;
 HSPLcom/android/server/attention/AttentionManagerService;->getServiceConfigPackage(Landroid/content/Context;)Ljava/lang/String;
 PLcom/android/server/attention/AttentionManagerService;->getStaleAfterMillis()J
 HPLcom/android/server/attention/AttentionManagerService;->isAttentionServiceSupported()Z
@@ -8993,6 +9267,7 @@
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$7CtpUHI2aS8Sdar40vc2ScvU1zA;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$7CtpUHI2aS8Sdar40vc2ScvU1zA;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$A06w_GDNkrLVK3IhlqiuSJkZdos;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$A06w_GDNkrLVK3IhlqiuSJkZdos;->accept(Ljava/lang/Object;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$BMFj2tw2PdB9dFQB6gMjDjefzwg;-><init>(Landroid/util/ArraySet;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$BMFj2tw2PdB9dFQB6gMjDjefzwg;->accept(Ljava/lang/Object;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Jg62meZgoWI_a0zxOvpWdJWRPfI;-><init>(Lcom/android/server/audio/AudioDeviceInventory;I)V
@@ -9001,10 +9276,12 @@
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Kq15BolmuFXaWWabjDNQiScRxjo;->accept(Ljava/lang/Object;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Nads7_S1eD53QDofbK9CuYO9Fok;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$OBWGV1RNEso-eo8dzWjaFhEjC0A;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$UmkUL-MFA5dvtoCrFM9PQ16P_Xo;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$YxgcWZ4jspoxzltUgvW9l8k40io;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$YxgcWZ4jspoxzltUgvW9l8k40io;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$_CdHBhvBDErZWSm39GafCXJiOqQ;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$_CdHBhvBDErZWSm39GafCXJiOqQ;->test(Ljava/lang/Object;)Z
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$h1GPmbcUbwoqYD48NKy02S7bsyg;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><clinit>()V
 HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><init>()V
 HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;->applyAsInt(Ljava/lang/Object;)I
@@ -9115,6 +9392,7 @@
 PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dp$4(Landroid/util/ArraySet;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V
 PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dp$5$AudioDeviceInventory(ILjava/lang/String;)V
 PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dpSink$6(Landroid/util/ArraySet;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V
+PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dpSink$7$AudioDeviceInventory(Ljava/lang/String;)V
 PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectHearingAid$8(Landroid/util/ArraySet;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V
 PLcom/android/server/audio/AudioDeviceInventory;->lambda$dump$1(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V
 PLcom/android/server/audio/AudioDeviceInventory;->lambda$dump$2(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)V
@@ -9123,6 +9401,7 @@
 PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceUnavailableLater(Ljava/lang/String;I)V
 HPLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceUnavailableNow(Ljava/lang/String;I)V
 PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpSrcAvailable(Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpSrcUnavailable(Ljava/lang/String;)V
 HPLcom/android/server/audio/AudioDeviceInventory;->onBluetoothA2dpActiveDeviceChange(Lcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;I)V
 PLcom/android/server/audio/AudioDeviceInventory;->onMakeA2dpDeviceUnavailableNow(Ljava/lang/String;I)V
 HPLcom/android/server/audio/AudioDeviceInventory;->onReportNewRoutes()V
@@ -9149,7 +9428,7 @@
 HSPLcom/android/server/audio/AudioService$1;->onError(I)V
 HSPLcom/android/server/audio/AudioService$2;-><init>(Lcom/android/server/audio/AudioService;)V
 HSPLcom/android/server/audio/AudioService$3;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$4;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IVolumeController;)V
+HSPLcom/android/server/audio/AudioService$4;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IVolumeController;)V
 PLcom/android/server/audio/AudioService$4;->binderDied()V
 HSPLcom/android/server/audio/AudioService$5;-><init>(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService$AsdProxy;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IAudioServerStateDispatcher;)V
@@ -9161,7 +9440,7 @@
 PLcom/android/server/audio/AudioService$AudioHandler;->persistRingerMode(I)V
 HPLcom/android/server/audio/AudioService$AudioHandler;->persistVolume(Lcom/android/server/audio/AudioService$VolumeStreamState;I)V
 HSPLcom/android/server/audio/AudioService$AudioHandler;->setAllVolumes(Lcom/android/server/audio/AudioService$VolumeStreamState;)V
-PLcom/android/server/audio/AudioService$AudioPolicyProxy;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZZLandroid/media/projection/IMediaProjection;)V
+HPLcom/android/server/audio/AudioService$AudioPolicyProxy;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZZLandroid/media/projection/IMediaProjection;)V
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->addMixes(Ljava/util/ArrayList;)I
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->binderDied()V
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->connectMixes()I
@@ -9173,7 +9452,7 @@
 HSPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$1;)V
 HSPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/audio/AudioService$AudioServiceInternal;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$AudioServiceInternal;->adjustSuggestedStreamVolumeForUid(IIILjava/lang/String;I)V
+HPLcom/android/server/audio/AudioService$AudioServiceInternal;->adjustSuggestedStreamVolumeForUid(IIILjava/lang/String;I)V
 HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->getRingerModeInternal()I
 HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->setAccessibilityServiceUids(Landroid/util/IntArray;)V
 HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->setRingerModeDelegate(Landroid/media/AudioManagerInternal$RingerModeDelegate;)V
@@ -9190,7 +9469,7 @@
 PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;->hasVolumeIndex()Z
 HPLcom/android/server/audio/AudioService$ForceControlStreamClient;-><init>(Lcom/android/server/audio/AudioService;Landroid/os/IBinder;)V
 PLcom/android/server/audio/AudioService$ForceControlStreamClient;->getBinder()Landroid/os/IBinder;
-PLcom/android/server/audio/AudioService$ForceControlStreamClient;->release()V
+HPLcom/android/server/audio/AudioService$ForceControlStreamClient;->release()V
 HSPLcom/android/server/audio/AudioService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/audio/AudioService$Lifecycle;->onBootPhase(I)V
 HSPLcom/android/server/audio/AudioService$Lifecycle;->onStart()V
@@ -9214,15 +9493,15 @@
 HSPLcom/android/server/audio/AudioService$SettingsObserver;->onChange(Z)V
 HSPLcom/android/server/audio/AudioService$SettingsObserver;->updateEncodedSurroundOutput()V
 HSPLcom/android/server/audio/AudioService$VolumeController;-><init>()V
-PLcom/android/server/audio/AudioService$VolumeController;->asBinder()Landroid/os/IBinder;
-HPLcom/android/server/audio/AudioService$VolumeController;->binder(Landroid/media/IVolumeController;)Landroid/os/IBinder;
-HPLcom/android/server/audio/AudioService$VolumeController;->isSameBinder(Landroid/media/IVolumeController;)Z
+HSPLcom/android/server/audio/AudioService$VolumeController;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/server/audio/AudioService$VolumeController;->binder(Landroid/media/IVolumeController;)Landroid/os/IBinder;
+HSPLcom/android/server/audio/AudioService$VolumeController;->isSameBinder(Landroid/media/IVolumeController;)Z
 HSPLcom/android/server/audio/AudioService$VolumeController;->loadSettings(Landroid/content/ContentResolver;)V
-PLcom/android/server/audio/AudioService$VolumeController;->postDismiss()V
+HSPLcom/android/server/audio/AudioService$VolumeController;->postDismiss()V
 PLcom/android/server/audio/AudioService$VolumeController;->postDisplaySafeVolumeWarning(I)V
 HPLcom/android/server/audio/AudioService$VolumeController;->postVolumeChanged(II)V
 PLcom/android/server/audio/AudioService$VolumeController;->setA11yMode(I)V
-PLcom/android/server/audio/AudioService$VolumeController;->setController(Landroid/media/IVolumeController;)V
+HSPLcom/android/server/audio/AudioService$VolumeController;->setController(Landroid/media/IVolumeController;)V
 HSPLcom/android/server/audio/AudioService$VolumeController;->setLayoutDirection(I)V
 PLcom/android/server/audio/AudioService$VolumeController;->setVisible(Z)V
 HPLcom/android/server/audio/AudioService$VolumeController;->suppressAdjustment(IIZ)Z
@@ -9374,16 +9653,16 @@
 HSPLcom/android/server/audio/AudioService;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
 PLcom/android/server/audio/AudioService;->getHearingAidStreamType(I)I
 HSPLcom/android/server/audio/AudioService;->getIndexRange(I)I
-HPLcom/android/server/audio/AudioService;->getLastAudibleStreamVolume(I)I
+HSPLcom/android/server/audio/AudioService;->getLastAudibleStreamVolume(I)I
 HSPLcom/android/server/audio/AudioService;->getMode()I
 PLcom/android/server/audio/AudioService;->getModeOwnerPid()I
-PLcom/android/server/audio/AudioService;->getNewRingerMode(III)I
+HPLcom/android/server/audio/AudioService;->getNewRingerMode(III)I
 HSPLcom/android/server/audio/AudioService;->getRingerModeExternal()I
 HSPLcom/android/server/audio/AudioService;->getRingerModeInternal()I
 HPLcom/android/server/audio/AudioService;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
 HSPLcom/android/server/audio/AudioService;->getSafeUsbMediaVolumeIndex()I
-HPLcom/android/server/audio/AudioService;->getStreamMaxVolume(I)I
-HPLcom/android/server/audio/AudioService;->getStreamMinVolume(I)I
+HSPLcom/android/server/audio/AudioService;->getStreamMaxVolume(I)I
+HSPLcom/android/server/audio/AudioService;->getStreamMinVolume(I)I
 HSPLcom/android/server/audio/AudioService;->getStreamVolume(I)I
 HPLcom/android/server/audio/AudioService;->getUiSoundsStreamType()I
 HSPLcom/android/server/audio/AudioService;->getVibrateSetting(I)I
@@ -9412,12 +9691,12 @@
 HPLcom/android/server/audio/AudioService;->isSpeakerphoneOn()Z
 HSPLcom/android/server/audio/AudioService;->isStreamAffectedByMute(I)Z
 HSPLcom/android/server/audio/AudioService;->isStreamAffectedByRingerMode(I)Z
-HPLcom/android/server/audio/AudioService;->isStreamMute(I)Z
+HSPLcom/android/server/audio/AudioService;->isStreamMute(I)Z
 HSPLcom/android/server/audio/AudioService;->isStreamMutedByRingerOrZenMode(I)Z
 HSPLcom/android/server/audio/AudioService;->isSystem(I)Z
 PLcom/android/server/audio/AudioService;->isValidAudioAttributesUsage(Landroid/media/AudioAttributes;)Z
 HSPLcom/android/server/audio/AudioService;->isValidRingerMode(I)Z
-PLcom/android/server/audio/AudioService;->isVoiceCommunicationPlaybackCaptureMix(Landroid/media/audiopolicy/AudioMix;)Z
+HPLcom/android/server/audio/AudioService;->isVoiceCommunicationPlaybackCaptureMix(Landroid/media/audiopolicy/AudioMix;)Z
 PLcom/android/server/audio/AudioService;->makeAlsaAddressString(II)Ljava/lang/String;
 PLcom/android/server/audio/AudioService;->maybeSendSystemAudioStatusCommand(Z)V
 PLcom/android/server/audio/AudioService;->maybeVibrate(Landroid/os/VibrationEffect;Ljava/lang/String;)Z
@@ -9426,13 +9705,13 @@
 HSPLcom/android/server/audio/AudioService;->observeDevicesForStreams(I)V
 HSPLcom/android/server/audio/AudioService;->onAccessibilityServicesStateChanged(Landroid/view/accessibility/AccessibilityManager;)V
 HPLcom/android/server/audio/AudioService;->onAccessoryPlugMediaUnmute(I)V
-PLcom/android/server/audio/AudioService;->onAudioServerDied()V
+HPLcom/android/server/audio/AudioService;->onAudioServerDied()V
 HPLcom/android/server/audio/AudioService;->onCheckMusicActive(Ljava/lang/String;)V
 HSPLcom/android/server/audio/AudioService;->onConfigureSafeVolume(ZLjava/lang/String;)V
 PLcom/android/server/audio/AudioService;->onDispatchAudioServerStateChange(Z)V
 HSPLcom/android/server/audio/AudioService;->onIndicateSystemReady()V
 PLcom/android/server/audio/AudioService;->onObserveDevicesForAllStreams()V
-PLcom/android/server/audio/AudioService;->onSetStreamVolume(IIIILjava/lang/String;)V
+HPLcom/android/server/audio/AudioService;->onSetStreamVolume(IIIILjava/lang/String;)V
 HPLcom/android/server/audio/AudioService;->onSetVolumeIndexOnDevice(Lcom/android/server/audio/AudioService$DeviceVolumeUpdate;)V
 HSPLcom/android/server/audio/AudioService;->onSystemReady()V
 PLcom/android/server/audio/AudioService;->onTouchExplorationStateChanged(Z)V
@@ -9452,7 +9731,7 @@
 HSPLcom/android/server/audio/AudioService;->readPersistedSettings()V
 HSPLcom/android/server/audio/AudioService;->readUserRestrictions()V
 HPLcom/android/server/audio/AudioService;->recorderEvent(II)V
-PLcom/android/server/audio/AudioService;->registerAudioPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZZLandroid/media/projection/IMediaProjection;)Ljava/lang/String;
+HPLcom/android/server/audio/AudioService;->registerAudioPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZZLandroid/media/projection/IMediaProjection;)Ljava/lang/String;
 PLcom/android/server/audio/AudioService;->registerAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
 HSPLcom/android/server/audio/AudioService;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
 PLcom/android/server/audio/AudioService;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
@@ -9495,8 +9774,8 @@
 HPLcom/android/server/audio/AudioService;->setStreamVolumeInt(IIIZLjava/lang/String;)V
 HSPLcom/android/server/audio/AudioService;->setSystemAudioMute(Z)V
 HPLcom/android/server/audio/AudioService;->setSystemAudioVolume(IIII)V
-PLcom/android/server/audio/AudioService;->setVolumeController(Landroid/media/IVolumeController;)V
-PLcom/android/server/audio/AudioService;->setVolumePolicy(Landroid/media/VolumePolicy;)V
+HSPLcom/android/server/audio/AudioService;->setVolumeController(Landroid/media/IVolumeController;)V
+HSPLcom/android/server/audio/AudioService;->setVolumePolicy(Landroid/media/VolumePolicy;)V
 PLcom/android/server/audio/AudioService;->setWiredDeviceConnectionState(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/audio/AudioService;->shouldZenMuteStream(I)Z
 PLcom/android/server/audio/AudioService;->silenceRingerModeInternal(Ljava/lang/String;)V
@@ -9515,7 +9794,7 @@
 PLcom/android/server/audio/AudioService;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
 PLcom/android/server/audio/AudioService;->unregisterRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
 HSPLcom/android/server/audio/AudioService;->updateA11yVolumeAlias(Z)V
-PLcom/android/server/audio/AudioService;->updateAbsVolumeMultiModeDevices(II)V
+HPLcom/android/server/audio/AudioService;->updateAbsVolumeMultiModeDevices(II)V
 HSPLcom/android/server/audio/AudioService;->updateAssistantUId(Z)V
 HSPLcom/android/server/audio/AudioService;->updateAudioHalPids()V
 HSPLcom/android/server/audio/AudioService;->updateDefaultStreamOverrideDelay(Z)V
@@ -9576,6 +9855,7 @@
 PLcom/android/server/audio/BtHelper;->access$502(Lcom/android/server/audio/BtHelper;I)I
 PLcom/android/server/audio/BtHelper;->access$600(Lcom/android/server/audio/BtHelper;)Landroid/bluetooth/BluetoothDevice;
 PLcom/android/server/audio/BtHelper;->access$700(Lcom/android/server/audio/BtHelper;)Landroid/bluetooth/BluetoothHeadset;
+PLcom/android/server/audio/BtHelper;->access$800(Lcom/android/server/audio/BtHelper;)Z
 PLcom/android/server/audio/BtHelper;->access$900(Landroid/bluetooth/BluetoothHeadset;Landroid/bluetooth/BluetoothDevice;I)Z
 HSPLcom/android/server/audio/BtHelper;->broadcastScoConnectionState(I)V
 PLcom/android/server/audio/BtHelper;->checkScoAudioState()V
@@ -9656,9 +9936,9 @@
 HSPLcom/android/server/audio/MediaFocusControl;->getCurrentAudioFocus()I
 HSPLcom/android/server/audio/MediaFocusControl;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
 PLcom/android/server/audio/MediaFocusControl;->hasAudioFocusUsers()Z
-PLcom/android/server/audio/MediaFocusControl;->isLockedFocusOwner(Lcom/android/server/audio/FocusRequester;)Z
+HPLcom/android/server/audio/MediaFocusControl;->isLockedFocusOwner(Lcom/android/server/audio/FocusRequester;)Z
 PLcom/android/server/audio/MediaFocusControl;->mustNotifyFocusOwnerOnDuck()Z
-PLcom/android/server/audio/MediaFocusControl;->noFocusForSuspendedApp(Ljava/lang/String;I)V
+HPLcom/android/server/audio/MediaFocusControl;->noFocusForSuspendedApp(Ljava/lang/String;I)V
 PLcom/android/server/audio/MediaFocusControl;->notifyExtPolicyCurrentFocusAsync(Landroid/media/audiopolicy/IAudioPolicyCallback;)V
 HPLcom/android/server/audio/MediaFocusControl;->notifyExtPolicyFocusGrant_syncAf(Landroid/media/AudioFocusInfo;I)V
 HPLcom/android/server/audio/MediaFocusControl;->notifyExtPolicyFocusLoss_syncAf(Landroid/media/AudioFocusInfo;Z)V
@@ -9675,7 +9955,7 @@
 PLcom/android/server/audio/PlaybackActivityMonitor$AudioAttrEvent;->eventToString()Ljava/lang/String;
 PLcom/android/server/audio/PlaybackActivityMonitor$DuckEvent;-><init>(Landroid/media/AudioPlaybackConfiguration;Z)V
 HPLcom/android/server/audio/PlaybackActivityMonitor$DuckEvent;->eventToString()Ljava/lang/String;
-PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager$DuckedApp;-><init>(I)V
+HPLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager$DuckedApp;-><init>(I)V
 HPLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager$DuckedApp;->addDuck(Landroid/media/AudioPlaybackConfiguration;Z)V
 PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager$DuckedApp;->removeReleased(Landroid/media/AudioPlaybackConfiguration;)V
 HPLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager$DuckedApp;->removeUnduckAll(Ljava/util/HashMap;)V
@@ -9708,15 +9988,16 @@
 HPLcom/android/server/audio/PlaybackActivityMonitor;->duckPlayers(Lcom/android/server/audio/FocusRequester;Lcom/android/server/audio/FocusRequester;Z)Z
 HPLcom/android/server/audio/PlaybackActivityMonitor;->dump(Ljava/io/PrintWriter;)V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->getActivePlaybackConfigurations(Z)Ljava/util/List;
+PLcom/android/server/audio/PlaybackActivityMonitor;->getAllAllowedCapturePolicies()Ljava/util/HashMap;
 HPLcom/android/server/audio/PlaybackActivityMonitor;->mutePlayersForCall([I)V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->playerAttributes(ILandroid/media/AudioAttributes;I)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->playerDeath(I)V
+HPLcom/android/server/audio/PlaybackActivityMonitor;->playerDeath(I)V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->playerEvent(III)V
 HSPLcom/android/server/audio/PlaybackActivityMonitor;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;Z)V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->releasePlayer(II)V
 PLcom/android/server/audio/PlaybackActivityMonitor;->setAllowedCapturePolicy(II)V
 HSPLcom/android/server/audio/PlaybackActivityMonitor;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
-PLcom/android/server/audio/PlaybackActivityMonitor;->unduckPlayers(Lcom/android/server/audio/FocusRequester;)V
+HPLcom/android/server/audio/PlaybackActivityMonitor;->unduckPlayers(Lcom/android/server/audio/FocusRequester;)V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->unmutePlayersForCall()V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
 PLcom/android/server/audio/PlaybackActivityMonitor;->updateAllowedCapturePolicy(Landroid/media/AudioPlaybackConfiguration;I)V
@@ -9789,8 +10070,11 @@
 HSPLcom/android/server/audio/SoundEffectsHelper;->access$500(Lcom/android/server/audio/SoundEffectsHelper;)Landroid/media/SoundPool;
 HSPLcom/android/server/audio/SoundEffectsHelper;->access$600(Lcom/android/server/audio/SoundEffectsHelper;)Ljava/util/List;
 HSPLcom/android/server/audio/SoundEffectsHelper;->access$700(Lcom/android/server/audio/SoundEffectsHelper;Ljava/lang/String;)V
+PLcom/android/server/audio/SoundEffectsHelper;->access$800(Lcom/android/server/audio/SoundEffectsHelper;I)Lcom/android/server/audio/SoundEffectsHelper$Resource;
+PLcom/android/server/audio/SoundEffectsHelper;->access$900(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$Resource;)Ljava/lang/String;
 PLcom/android/server/audio/SoundEffectsHelper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/audio/SoundEffectsHelper;->findOrAddResourceByFileName(Ljava/lang/String;)I
+PLcom/android/server/audio/SoundEffectsHelper;->findResourceBySampleId(I)Lcom/android/server/audio/SoundEffectsHelper$Resource;
 HSPLcom/android/server/audio/SoundEffectsHelper;->getResourceFilePath(Lcom/android/server/audio/SoundEffectsHelper$Resource;)Ljava/lang/String;
 HSPLcom/android/server/audio/SoundEffectsHelper;->loadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
 HSPLcom/android/server/audio/SoundEffectsHelper;->loadTouchSoundAssetDefaults()V
@@ -9799,13 +10083,13 @@
 HSPLcom/android/server/audio/SoundEffectsHelper;->onLoadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
 HPLcom/android/server/audio/SoundEffectsHelper;->onPlaySoundEffect(II)V
 PLcom/android/server/audio/SoundEffectsHelper;->onUnloadSoundEffects()V
-PLcom/android/server/audio/SoundEffectsHelper;->playSoundEffect(II)V
+HPLcom/android/server/audio/SoundEffectsHelper;->playSoundEffect(II)V
 HSPLcom/android/server/audio/SoundEffectsHelper;->sendMsg(IIILjava/lang/Object;I)V
 HSPLcom/android/server/audio/SoundEffectsHelper;->startWorker()V
 PLcom/android/server/audio/SoundEffectsHelper;->unloadSoundEffects()V
 PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;-><init>()V
-PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;->visit(Ljava/lang/Object;)V
+HPLcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;->visit(Ljava/lang/Object;)V
 HSPLcom/android/server/autofill/-$$Lambda$AutofillManagerService$6afarI-dhLaYDLGebVyDMPu2nok;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
 HSPLcom/android/server/autofill/-$$Lambda$AutofillManagerService$AjdnAnVaegTp2pojE30m5yjqZx8;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
 PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$AjdnAnVaegTp2pojE30m5yjqZx8;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
@@ -9826,7 +10110,11 @@
 HPLcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;-><init>()V
-PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;->runNoResult(Ljava/lang/Object;)V
+HPLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;->runNoResult(Ljava/lang/Object;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W9MFEqI1G5VhYWyyGXoQi5u38XU;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;ILandroid/view/autofill/IAutoFillManagerClient;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W9MFEqI1G5VhYWyyGXoQi5u38XU;->autofill(Landroid/service/autofill/Dataset;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$czxU3POY1ZMrxelRDPCI0bVKR-c;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;Ljava/util/concurrent/atomic/AtomicReference;)V
+HPLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$czxU3POY1ZMrxelRDPCI0bVKR-c;->run(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;->runNoResult(Ljava/lang/Object;)V
@@ -9840,11 +10128,11 @@
 HPLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$zt04rV6kTquQwdDYqT9tjLbRn14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/autofill/-$$Lambda$RemoteFillService$KkKWdeiLv0uNTtyjP9VumTTYr-A;-><init>(Lcom/android/server/autofill/RemoteFillService;Landroid/service/autofill/SaveRequest;)V
 PLcom/android/server/autofill/-$$Lambda$RemoteFillService$KkKWdeiLv0uNTtyjP9VumTTYr-A;->run(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/autofill/-$$Lambda$RemoteFillService$MaYOnIAubd8qKbTq0eWkOchXAJk;-><init>(Lcom/android/server/autofill/RemoteFillService;Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;)V
+HPLcom/android/server/autofill/-$$Lambda$RemoteFillService$MaYOnIAubd8qKbTq0eWkOchXAJk;-><init>(Lcom/android/server/autofill/RemoteFillService;Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;)V
 HPLcom/android/server/autofill/-$$Lambda$RemoteFillService$MaYOnIAubd8qKbTq0eWkOchXAJk;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/autofill/-$$Lambda$RemoteFillService$RkgpxnfvOIHus8aiIIO_Tqgio1E;-><init>(Lcom/android/server/autofill/RemoteFillService;Ljava/lang/Throwable;Landroid/service/autofill/FillRequest;Landroid/service/autofill/FillResponse;Ljava/util/concurrent/atomic/AtomicReference;)V
 HPLcom/android/server/autofill/-$$Lambda$RemoteFillService$RkgpxnfvOIHus8aiIIO_Tqgio1E;->run()V
-PLcom/android/server/autofill/-$$Lambda$RemoteFillService$V3RTZXH5ru6fNYPwjZcEmEQQ9-4;-><init>(Lcom/android/server/autofill/RemoteFillService;Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V
+HPLcom/android/server/autofill/-$$Lambda$RemoteFillService$V3RTZXH5ru6fNYPwjZcEmEQQ9-4;-><init>(Lcom/android/server/autofill/RemoteFillService;Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V
 HPLcom/android/server/autofill/-$$Lambda$RemoteFillService$V3RTZXH5ru6fNYPwjZcEmEQQ9-4;->run(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/autofill/-$$Lambda$RemoteFillService$adrL6UDQX3d0e-QQL11h9TWJcM4;-><init>(Lcom/android/server/autofill/RemoteFillService;Ljava/lang/Throwable;Landroid/content/IntentSender;)V
 PLcom/android/server/autofill/-$$Lambda$RemoteFillService$adrL6UDQX3d0e-QQL11h9TWJcM4;->run()V
@@ -9856,6 +10144,8 @@
 PLcom/android/server/autofill/-$$Lambda$Session$LM4xf4dbxH_NTutQzBkaQNxKbV0;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$Session$LM4xf4dbxH_NTutQzBkaQNxKbV0;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$Session$LM4xf4dbxH_NTutQzBkaQNxKbV0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/autofill/-$$Lambda$Session$Llx808TSLfk504RH3XZNeG5LjG0;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
+PLcom/android/server/autofill/-$$Lambda$Session$Llx808TSLfk504RH3XZNeG5LjG0;->run()V
 PLcom/android/server/autofill/-$$Lambda$Session$NtvZwhlT1c4eLjg2qI6EER2oCtY;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$Session$NtvZwhlT1c4eLjg2qI6EER2oCtY;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$Session$NtvZwhlT1c4eLjg2qI6EER2oCtY;->accept(Ljava/lang/Object;)V
@@ -9864,6 +10154,7 @@
 PLcom/android/server/autofill/-$$Lambda$Session$cYu1t6lYVopApYW-vct82-7slZk;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
 PLcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;->run()V
+HPLcom/android/server/autofill/-$$Lambda$Session$rwjX85PTamn0L4a8CS_Nzf7He0g;-><init>(Lcom/android/server/autofill/Session;)V
 PLcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;->accept(Ljava/lang/Object;)V
@@ -9890,8 +10181,8 @@
 HPLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->isWhitelisted(ILandroid/content/ComponentName;)Z
 HSPLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->setServiceInfo(ILjava/lang/String;Z)V
 HSPLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
-PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V
-PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->cancelSession(II)V
+HPLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V
+HPLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->cancelSession(II)V
 PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->disableOwnedAutofillServices(I)V
 PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->finishSession(II)V
@@ -9900,7 +10191,7 @@
 HPLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->isServiceEnabled(ILjava/lang/String;Lcom/android/internal/os/IResultReceiver;)V
 PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->isServiceSupported(ILcom/android/internal/os/IResultReceiver;)V
 PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->removeClient(Landroid/view/autofill/IAutoFillManagerClient;I)V
-PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->restoreSession(ILandroid/os/IBinder;Landroid/os/IBinder;Lcom/android/internal/os/IResultReceiver;)V
+HPLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->restoreSession(ILandroid/os/IBinder;Landroid/os/IBinder;Lcom/android/internal/os/IResultReceiver;)V
 PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->setAugmentedAutofillWhitelist(Ljava/util/List;Ljava/util/List;Lcom/android/internal/os/IResultReceiver;)V
 PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->setAuthenticationResult(Landroid/os/Bundle;III)V
 HPLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->setHasCallback(IIZ)V
@@ -9919,10 +10210,10 @@
 HSPLcom/android/server/autofill/AutofillManagerService$LocalService;-><init>(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/server/autofill/AutofillManagerService$1;)V
 HSPLcom/android/server/autofill/AutofillManagerService$LocalService;->getAutofillOptions(Ljava/lang/String;JI)Landroid/content/AutofillOptions;
 HSPLcom/android/server/autofill/AutofillManagerService$LocalService;->injectDisableAppInfo(Landroid/content/AutofillOptions;ILjava/lang/String;)V
-PLcom/android/server/autofill/AutofillManagerService$LocalService;->isAugmentedAutofillServiceForUser(II)Z
+HPLcom/android/server/autofill/AutofillManagerService$LocalService;->isAugmentedAutofillServiceForUser(II)Z
 HPLcom/android/server/autofill/AutofillManagerService$LocalService;->onBackKeyPressed()V
 PLcom/android/server/autofill/AutofillManagerService$PackageCompatState;-><init>(J[Ljava/lang/String;)V
-PLcom/android/server/autofill/AutofillManagerService$PackageCompatState;->access$1200(Lcom/android/server/autofill/AutofillManagerService$PackageCompatState;)J
+HPLcom/android/server/autofill/AutofillManagerService$PackageCompatState;->access$1200(Lcom/android/server/autofill/AutofillManagerService$PackageCompatState;)J
 PLcom/android/server/autofill/AutofillManagerService$PackageCompatState;->access$1300(Lcom/android/server/autofill/AutofillManagerService$PackageCompatState;)[Ljava/lang/String;
 PLcom/android/server/autofill/AutofillManagerService$PackageCompatState;->toString()Ljava/lang/String;
 HSPLcom/android/server/autofill/AutofillManagerService;-><clinit>()V
@@ -9931,7 +10222,7 @@
 HSPLcom/android/server/autofill/AutofillManagerService;->access$1000(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/autofill/AutofillManagerService;->access$1100(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/autofill/AutofillManagerService;->access$1400(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
-PLcom/android/server/autofill/AutofillManagerService;->access$1500(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HPLcom/android/server/autofill/AutofillManagerService;->access$1500(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 HPLcom/android/server/autofill/AutofillManagerService;->access$1600(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/internal/os/IResultReceiver;I)V
 PLcom/android/server/autofill/AutofillManagerService;->access$1700(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
 PLcom/android/server/autofill/AutofillManagerService;->access$1800(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
@@ -9946,8 +10237,8 @@
 HPLcom/android/server/autofill/AutofillManagerService;->access$2600(Lcom/android/server/autofill/AutofillManagerService;)Z
 HPLcom/android/server/autofill/AutofillManagerService;->access$2700(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/internal/os/IResultReceiver;II)V
 PLcom/android/server/autofill/AutofillManagerService;->access$2800(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
-PLcom/android/server/autofill/AutofillManagerService;->access$2900(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/autofill/AutofillManagerService;->access$300(Lcom/android/server/autofill/AutofillManagerService;)Lcom/android/server/autofill/ui/AutoFillUI;
+HPLcom/android/server/autofill/AutofillManagerService;->access$2900(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HPLcom/android/server/autofill/AutofillManagerService;->access$300(Lcom/android/server/autofill/AutofillManagerService;)Lcom/android/server/autofill/ui/AutoFillUI;
 PLcom/android/server/autofill/AutofillManagerService;->access$3000(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/internal/os/IResultReceiver;Landroid/os/Parcelable;)V
 PLcom/android/server/autofill/AutofillManagerService;->access$3600(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
 PLcom/android/server/autofill/AutofillManagerService;->access$3700(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
@@ -9983,7 +10274,7 @@
 PLcom/android/server/autofill/AutofillManagerService;->access$7600(Lcom/android/server/autofill/AutofillManagerService;)Landroid/util/LocalLog;
 PLcom/android/server/autofill/AutofillManagerService;->access$7700(Lcom/android/server/autofill/AutofillManagerService;)Landroid/util/LocalLog;
 PLcom/android/server/autofill/AutofillManagerService;->access$800(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
-PLcom/android/server/autofill/AutofillManagerService;->access$900(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HPLcom/android/server/autofill/AutofillManagerService;->access$900(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 HSPLcom/android/server/autofill/AutofillManagerService;->addCompatibilityModeRequestsLocked(Lcom/android/server/autofill/AutofillManagerServiceImpl;I)V
 PLcom/android/server/autofill/AutofillManagerService;->getPartitionMaxCount()I
 HSPLcom/android/server/autofill/AutofillManagerService;->getServiceSettingsProperty()Ljava/lang/String;
@@ -10009,7 +10300,7 @@
 HSPLcom/android/server/autofill/AutofillManagerService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
 HPLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;I)V
 PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;II)V
-PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;Landroid/os/Bundle;)V
+HPLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;Landroid/os/Bundle;)V
 PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;Landroid/os/Parcelable;)V
 HPLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;Z)V
 HSPLcom/android/server/autofill/AutofillManagerService;->setDeviceConfigProperties()V
@@ -10018,7 +10309,10 @@
 HSPLcom/android/server/autofill/AutofillManagerService;->setMaxPartitionsFromSettings()V
 HSPLcom/android/server/autofill/AutofillManagerService;->setMaxVisibleDatasetsFromSettings()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl$1;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$1;->logAugmentedAutofillSelected(ILjava/lang/String;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$1;->logAugmentedAutofillShown(I)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl$1;->resetLastResponse()V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$1;->setLastResponse(I)V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/AutofillManagerServiceImpl$1;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
@@ -10030,7 +10324,7 @@
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$400(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$500(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Landroid/util/SparseArray;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$600(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Ljava/lang/Object;
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->addClientLocked(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;)I
+HPLcom/android/server/autofill/AutofillManagerServiceImpl;->addClientLocked(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;)I
 HPLcom/android/server/autofill/AutofillManagerServiceImpl;->assertCallerLocked(Landroid/content/ComponentName;Z)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->cancelSessionLocked(II)V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl;->createSessionByTokenLocked(Landroid/os/IBinder;IILandroid/os/IBinder;ZLandroid/content/ComponentName;ZZZI)Lcom/android/server/autofill/Session;
@@ -10040,7 +10334,7 @@
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->destroySessionsLocked()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->disableAutofillForApp(Ljava/lang/String;JIZ)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->disableOwnedAutofillServicesLocked(I)V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HPLcom/android/server/autofill/AutofillManagerServiceImpl;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->finishSessionLocked(II)V
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getAppDisabledActivitiesLocked(Ljava/lang/String;)Landroid/util/ArrayMap;
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getAppDisabledExpirationLocked(Ljava/lang/String;)J
@@ -10057,21 +10351,23 @@
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->handleSessionSave(Lcom/android/server/autofill/Session;)V
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->isAugmentedAutofillServiceAvailableLocked()Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isAugmentedAutofillServiceForUserLocked(I)Z
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->isAutofillDisabledLocked(Landroid/content/ComponentName;)Z
+HPLcom/android/server/autofill/AutofillManagerServiceImpl;->isAutofillDisabledLocked(Landroid/content/ComponentName;)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isCalledByAugmentedAutofillServiceLocked(Ljava/lang/String;I)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isCalledByServiceLocked(Ljava/lang/String;I)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isFieldClassificationEnabledLocked()Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isInlineSuggestionsEnabled()Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isValidEventLocked(Ljava/lang/String;I)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isWhitelistedForAugmentedAutofillLocked(Landroid/content/ComponentName;)Z
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->logAugmentedAutofillSelected(ILjava/lang/String;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->logAugmentedAutofillShown(I)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->logContextCommittedLocked(ILandroid/os/Bundle;Ljava/util/ArrayList;Landroid/util/ArraySet;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/content/ComponentName;Z)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->logDatasetAuthenticationSelected(Ljava/lang/String;ILandroid/os/Bundle;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->logDatasetSelected(Ljava/lang/String;ILandroid/os/Bundle;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->logDatasetShown(ILandroid/os/Bundle;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->logSaveShown(ILandroid/os/Bundle;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->onBackKeyPressed()V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->pruneAbandonedSessionsLocked()V
+HPLcom/android/server/autofill/AutofillManagerServiceImpl;->onBackKeyPressed()V
+HPLcom/android/server/autofill/AutofillManagerServiceImpl;->pruneAbandonedSessionsLocked()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->removeClientLocked(Landroid/view/autofill/IAutoFillManagerClient;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->removeSessionLocked(I)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetAugmentedAutofillWhitelistLocked()V
@@ -10079,11 +10375,13 @@
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetLastAugmentedAutofillResponse()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetLastResponse()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->restoreSession(IILandroid/os/IBinder;Landroid/os/IBinder;)Z
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->sendActivityAssistDataToContentCapture(Landroid/os/IBinder;Landroid/os/Bundle;)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->sendStateToClients(Z)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->setAugmentedAutofillWhitelistLocked(Ljava/util/List;Ljava/util/List;I)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->setAuthenticationResultLocked(Landroid/os/Bundle;III)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->setAuthenticationSelected(ILandroid/os/Bundle;)V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl;->setHasCallback(IIZ)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->setLastAugmentedAutofillResponse(I)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->setLastResponse(ILandroid/service/autofill/FillResponse;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->setUserData(ILandroid/service/autofill/UserData;)V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl;->startSessionLocked(Landroid/os/IBinder;IILandroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;ZLandroid/content/ComponentName;ZZI)J
@@ -10123,16 +10421,30 @@
 HPLcom/android/server/autofill/Helper;->newLogMaker(ILandroid/content/ComponentName;Ljava/lang/String;IZ)Landroid/metrics/LogMaker;
 HPLcom/android/server/autofill/Helper;->newLogMaker(ILjava/lang/String;IZ)Landroid/metrics/LogMaker;
 PLcom/android/server/autofill/Helper;->newLogMaker(ILjava/lang/String;Ljava/lang/String;IZ)Landroid/metrics/LogMaker;
+PLcom/android/server/autofill/Helper;->printlnRedactedText(Ljava/io/PrintWriter;Ljava/lang/CharSequence;)V
 PLcom/android/server/autofill/Helper;->sanitizeUrlBar(Landroid/app/assist/AssistStructure;[Ljava/lang/String;)Landroid/app/assist/AssistStructure$ViewNode;
 PLcom/android/server/autofill/Helper;->toArray(Landroid/util/ArraySet;)[Landroid/view/autofill/AutofillId;
+HPLcom/android/server/autofill/InlineSuggestionSession$ImeResponse;-><init>(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
+HPLcom/android/server/autofill/InlineSuggestionSession$ImeResponse;->getCallback()Lcom/android/internal/view/IInlineSuggestionsResponseCallback;
+HPLcom/android/server/autofill/InlineSuggestionSession$ImeResponse;->getRequest()Landroid/view/inputmethod/InlineSuggestionsRequest;
+PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;-><init>(Ljava/util/concurrent/CompletableFuture;Lcom/android/server/autofill/InlineSuggestionSession$1;)V
+HPLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInlineSuggestionsRequest(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
+PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInlineSuggestionsUnsupported()V
+HPLcom/android/server/autofill/InlineSuggestionSession;-><init>(Lcom/android/server/inputmethod/InputMethodManagerInternal;ILandroid/content/ComponentName;)V
+PLcom/android/server/autofill/InlineSuggestionSession;->cancelCurrentRequest()V
+HPLcom/android/server/autofill/InlineSuggestionSession;->createRequest(Landroid/view/autofill/AutofillId;)V
+HPLcom/android/server/autofill/InlineSuggestionSession;->getPendingImeResponse()Ljava/util/concurrent/CompletableFuture;
+HPLcom/android/server/autofill/InlineSuggestionSession;->waitAndGetImeResponse()Lcom/android/server/autofill/InlineSuggestionSession$ImeResponse;
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService$1;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->cancel()V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->isCompleted()Z
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onCancellable(Landroid/os/ICancellationSignal;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess()V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess([Landroid/service/autofill/Dataset;)V
-PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess([Landroid/service/autofill/Dataset;Landroid/os/Bundle;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess([Landroid/service/autofill/Dataset;Landroid/os/Bundle;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Lcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;Lcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;->send(ILandroid/os/Bundle;)V
 HSPLcom/android/server/autofill/RemoteAugmentedAutofillService;-><clinit>()V
@@ -10140,32 +10452,39 @@
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$000(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)Lcom/android/server/autofill/RemoteAugmentedAutofillService$RemoteAugmentedAutofillServiceCallbacks;
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$000(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$000(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$100(Lcom/android/server/autofill/RemoteAugmentedAutofillService;ILandroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$100(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Landroid/os/Bundle;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$100(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->dispatchCancellation(Landroid/os/ICancellationSignal;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->getAutoDisconnectTimeoutMs()J
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->getComponentName()Landroid/content/ComponentName;
 HSPLcom/android/server/autofill/RemoteAugmentedAutofillService;->getComponentName(Ljava/lang/String;IZ)Landroid/util/Pair;
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$dispatchCancellation$2(Landroid/os/ICancellationSignal;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$maybeRequestShowInlineSuggestions$3$RemoteAugmentedAutofillService(ILandroid/view/autofill/IAutoFillManagerClient;Landroid/service/autofill/Dataset;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onDestroyAutofillWindowsRequest$3(Landroid/service/autofill/augmented/IAugmentedAutofillService;)V
-PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onDestroyAutofillWindowsRequest$4(Landroid/service/autofill/augmented/IAugmentedAutofillService;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onDestroyAutofillWindowsRequest$4(Landroid/service/autofill/augmented/IAugmentedAutofillService;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLjava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$1$RemoteAugmentedAutofillService(Ljava/util/concurrent/atomic/AtomicReference;Landroid/content/ComponentName;ILjava/lang/Void;Ljava/lang/Throwable;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeHandleInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeHandleInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
-PLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Landroid/os/Bundle;)V
-PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onDestroyAutofillWindowsRequest()V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(ILandroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Landroid/os/Bundle;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onDestroyAutofillWindowsRequest()V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onServiceConnectionStatusChanged(Landroid/service/autofill/augmented/IAugmentedAutofillService;Z)V
-PLcom/android/server/autofill/RemoteAugmentedAutofillService;->toString()Ljava/lang/String;
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->toString()Ljava/lang/String;
 HPLcom/android/server/autofill/RemoteFillService$1;-><init>(Lcom/android/server/autofill/RemoteFillService;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CompletableFuture;)V
 HPLcom/android/server/autofill/RemoteFillService$1;->onCancellable(Landroid/os/ICancellationSignal;)V
 HPLcom/android/server/autofill/RemoteFillService$1;->onSuccess(Landroid/service/autofill/FillResponse;)V
 PLcom/android/server/autofill/RemoteFillService$2;-><init>(Lcom/android/server/autofill/RemoteFillService;Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/autofill/RemoteFillService$2;->onSuccess(Landroid/content/IntentSender;)V
-PLcom/android/server/autofill/RemoteFillService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;ILcom/android/server/autofill/RemoteFillService$FillServiceCallbacks;Z)V
+HPLcom/android/server/autofill/RemoteFillService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;ILcom/android/server/autofill/RemoteFillService$FillServiceCallbacks;Z)V
 PLcom/android/server/autofill/RemoteFillService;->access$000(Lcom/android/server/autofill/RemoteFillService;Landroid/os/ICancellationSignal;)V
 HPLcom/android/server/autofill/RemoteFillService;->addLast(Lcom/android/internal/infra/ServiceConnector$Job;)V
 HPLcom/android/server/autofill/RemoteFillService;->addLast(Ljava/lang/Object;)V
@@ -10199,10 +10518,11 @@
 HPLcom/android/server/autofill/Session;->access$1200(Lcom/android/server/autofill/Session;Landroid/service/autofill/FillContext;I)V
 HPLcom/android/server/autofill/Session;->access$1300(Lcom/android/server/autofill/Session;Z)Ljava/util/ArrayList;
 PLcom/android/server/autofill/Session;->access$1400(Lcom/android/server/autofill/Session;)Landroid/os/Bundle;
-PLcom/android/server/autofill/Session;->access$1400(Lcom/android/server/autofill/Session;)Landroid/view/inputmethod/InlineSuggestionsRequest;
+PLcom/android/server/autofill/Session;->access$1400(Lcom/android/server/autofill/Session;)Lcom/android/server/autofill/InlineSuggestionSession;
 HPLcom/android/server/autofill/Session;->access$1400(Lcom/android/server/autofill/Session;)Lcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;
 PLcom/android/server/autofill/Session;->access$1500(Lcom/android/server/autofill/Session;)Landroid/os/Bundle;
 HPLcom/android/server/autofill/Session;->access$1600(Lcom/android/server/autofill/Session;)Landroid/os/Bundle;
+PLcom/android/server/autofill/Session;->access$1600(Lcom/android/server/autofill/Session;)Landroid/os/IBinder;
 HPLcom/android/server/autofill/Session;->access$300(Lcom/android/server/autofill/Session;)Landroid/view/autofill/AutofillId;
 HPLcom/android/server/autofill/Session;->access$400(Lcom/android/server/autofill/Session;)Ljava/lang/Object;
 HPLcom/android/server/autofill/Session;->access$500(Lcom/android/server/autofill/Session;)Z
@@ -10216,18 +10536,18 @@
 PLcom/android/server/autofill/Session;->autoFill(IILandroid/service/autofill/Dataset;Z)V
 PLcom/android/server/autofill/Session;->autoFillApp(Landroid/service/autofill/Dataset;)V
 PLcom/android/server/autofill/Session;->callSaveLocked()V
-PLcom/android/server/autofill/Session;->cancelAugmentedAutofillLocked()V
-PLcom/android/server/autofill/Session;->cancelCurrentRequestLocked()V
+HPLcom/android/server/autofill/Session;->cancelAugmentedAutofillLocked()V
+HPLcom/android/server/autofill/Session;->cancelCurrentRequestLocked()V
 PLcom/android/server/autofill/Session;->cancelSave()V
 PLcom/android/server/autofill/Session;->createAuthFillInIntentLocked(ILandroid/os/Bundle;)Landroid/content/Intent;
 PLcom/android/server/autofill/Session;->createOrUpdateViewStateLocked(Landroid/view/autofill/AutofillId;ILandroid/view/autofill/AutofillValue;)Lcom/android/server/autofill/ViewState;
-PLcom/android/server/autofill/Session;->createSanitizers(Landroid/service/autofill/SaveInfo;)Landroid/util/ArrayMap;
+HPLcom/android/server/autofill/Session;->createSanitizers(Landroid/service/autofill/SaveInfo;)Landroid/util/ArrayMap;
 HPLcom/android/server/autofill/Session;->destroyAugmentedAutofillWindowsLocked()V
 HPLcom/android/server/autofill/Session;->destroyLocked()Lcom/android/server/autofill/RemoteFillService;
 PLcom/android/server/autofill/Session;->doStartIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;)V
 HPLcom/android/server/autofill/Session;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
 PLcom/android/server/autofill/Session;->dumpNumericValue(Ljava/io/PrintWriter;Landroid/metrics/LogMaker;Ljava/lang/String;I)V
-PLcom/android/server/autofill/Session;->dumpRequestLog(Ljava/io/PrintWriter;Landroid/metrics/LogMaker;)V
+HPLcom/android/server/autofill/Session;->dumpRequestLog(Ljava/io/PrintWriter;Landroid/metrics/LogMaker;)V
 PLcom/android/server/autofill/Session;->fill(IILandroid/service/autofill/Dataset;)V
 HPLcom/android/server/autofill/Session;->fillContextWithAllowedValuesLocked(Landroid/service/autofill/FillContext;I)V
 PLcom/android/server/autofill/Session;->findByAutofillId(Landroid/view/autofill/AutofillId;)Ljava/lang/String;
@@ -10239,8 +10559,6 @@
 PLcom/android/server/autofill/Session;->getClient()Landroid/view/autofill/IAutoFillManagerClient;
 HPLcom/android/server/autofill/Session;->getFillContextByRequestIdLocked(I)Landroid/service/autofill/FillContext;
 HPLcom/android/server/autofill/Session;->getIdsOfAllViewStatesLocked()[Landroid/view/autofill/AutofillId;
-PLcom/android/server/autofill/Session;->getInlineSuggestionsRequest()Landroid/view/inputmethod/InlineSuggestionsRequest;
-PLcom/android/server/autofill/Session;->getInlineSuggestionsResponseCallback()Lcom/android/internal/view/IInlineSuggestionsResponseCallback;
 HPLcom/android/server/autofill/Session;->getLastResponseIndexLocked()I
 HPLcom/android/server/autofill/Session;->getLastResponseLocked(Ljava/lang/String;)Landroid/service/autofill/FillResponse;
 PLcom/android/server/autofill/Session;->getSanitizedValue(Landroid/util/ArrayMap;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;)Landroid/view/autofill/AutofillValue;
@@ -10259,8 +10577,9 @@
 PLcom/android/server/autofill/Session;->lambda$NtvZwhlT1c4eLjg2qI6EER2oCtY(Lcom/android/server/autofill/Session;)V
 PLcom/android/server/autofill/Session;->lambda$cYu1t6lYVopApYW-vct82-7slZk(Lcom/android/server/autofill/Session;)V
 HPLcom/android/server/autofill/Session;->lambda$logFieldClassificationScore$1$Session(I[Landroid/view/autofill/AutofillId;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/os/Bundle;)V
-PLcom/android/server/autofill/Session;->lambda$setClientLocked$0$Session()V
+HPLcom/android/server/autofill/Session;->lambda$setClientLocked$0$Session()V
 PLcom/android/server/autofill/Session;->lambda$triggerAugmentedAutofillLocked$2(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
+PLcom/android/server/autofill/Session;->lambda$triggerAugmentedAutofillLocked$4(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
 PLcom/android/server/autofill/Session;->lambda$v6ZVyksJuHdWgJ1F8aoa_1LJWPo(Lcom/android/server/autofill/Session;)V
 PLcom/android/server/autofill/Session;->logAuthenticationStatusLocked(II)V
 PLcom/android/server/autofill/Session;->logContextCommitted()V
@@ -10269,18 +10588,18 @@
 PLcom/android/server/autofill/Session;->logFieldClassificationScore(Lcom/android/server/autofill/FieldClassificationStrategy;Landroid/service/autofill/FieldClassificationUserData;)V
 PLcom/android/server/autofill/Session;->logSaveShown()V
 HPLcom/android/server/autofill/Session;->maybeRequestInlineSuggestionsRequestThenFillLocked(Lcom/android/server/autofill/ViewState;II)V
-PLcom/android/server/autofill/Session;->mergePreviousSessionLocked(Z)Ljava/util/ArrayList;
+HPLcom/android/server/autofill/Session;->mergePreviousSessionLocked(Z)Ljava/util/ArrayList;
 PLcom/android/server/autofill/Session;->newLogMaker(I)Landroid/metrics/LogMaker;
 HPLcom/android/server/autofill/Session;->newLogMaker(ILjava/lang/String;)Landroid/metrics/LogMaker;
 PLcom/android/server/autofill/Session;->notifyDisableAutofillToClient(JLandroid/content/ComponentName;)V
 PLcom/android/server/autofill/Session;->notifyUnavailableToClient(ILjava/util/ArrayList;)V
 PLcom/android/server/autofill/Session;->onFillReady(Landroid/service/autofill/FillResponse;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;)V
 PLcom/android/server/autofill/Session;->onFillRequestFailure(ILjava/lang/CharSequence;)V
-PLcom/android/server/autofill/Session;->onFillRequestFailureOrTimeout(IZLjava/lang/CharSequence;)V
+HPLcom/android/server/autofill/Session;->onFillRequestFailureOrTimeout(IZLjava/lang/CharSequence;)V
 HPLcom/android/server/autofill/Session;->onFillRequestSuccess(ILandroid/service/autofill/FillResponse;Ljava/lang/String;I)V
 PLcom/android/server/autofill/Session;->onFillRequestTimeout(I)V
 PLcom/android/server/autofill/Session;->onSaveRequestSuccess(Ljava/lang/String;Landroid/content/IntentSender;)V
-PLcom/android/server/autofill/Session;->processNullResponseLocked(II)V
+HPLcom/android/server/autofill/Session;->processNullResponseLocked(II)V
 PLcom/android/server/autofill/Session;->processResponseLocked(Landroid/service/autofill/FillResponse;Landroid/os/Bundle;I)V
 PLcom/android/server/autofill/Session;->removeSelf()V
 PLcom/android/server/autofill/Session;->removeSelfLocked()V
@@ -10292,20 +10611,20 @@
 PLcom/android/server/autofill/Session;->requestShowFillUi(Landroid/view/autofill/AutofillId;IILandroid/view/autofill/IAutofillWindowPresenter;)V
 PLcom/android/server/autofill/Session;->save()V
 PLcom/android/server/autofill/Session;->setAuthenticationResultLocked(Landroid/os/Bundle;I)V
-PLcom/android/server/autofill/Session;->setClientLocked(Landroid/os/IBinder;)V
+HPLcom/android/server/autofill/Session;->setClientLocked(Landroid/os/IBinder;)V
 PLcom/android/server/autofill/Session;->setHasCallbackLocked(Z)V
 PLcom/android/server/autofill/Session;->setViewStatesLocked(Landroid/service/autofill/FillResponse;IZ)V
 HPLcom/android/server/autofill/Session;->setViewStatesLocked(Landroid/service/autofill/FillResponse;Landroid/service/autofill/Dataset;IZ)V
-PLcom/android/server/autofill/Session;->shouldStartNewPartitionLocked(Landroid/view/autofill/AutofillId;)Z
+HPLcom/android/server/autofill/Session;->shouldStartNewPartitionLocked(Landroid/view/autofill/AutofillId;)Z
 PLcom/android/server/autofill/Session;->showSaveLocked()Z
 PLcom/android/server/autofill/Session;->startAuthentication(ILandroid/content/IntentSender;Landroid/content/Intent;)V
 PLcom/android/server/autofill/Session;->startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;)V
 PLcom/android/server/autofill/Session;->startIntentSenderAndFinishSession(Landroid/content/IntentSender;)V
 PLcom/android/server/autofill/Session;->switchActivity(Landroid/os/IBinder;Landroid/os/IBinder;)V
 HPLcom/android/server/autofill/Session;->triggerAugmentedAutofillLocked()Ljava/lang/Runnable;
-PLcom/android/server/autofill/Session;->unlinkClientVultureLocked()V
+HPLcom/android/server/autofill/Session;->unlinkClientVultureLocked()V
 HPLcom/android/server/autofill/Session;->updateLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V
-PLcom/android/server/autofill/Session;->updateTrackedIdsLocked()V
+HPLcom/android/server/autofill/Session;->updateTrackedIdsLocked()V
 PLcom/android/server/autofill/Session;->updateValuesForSaveLocked()V
 PLcom/android/server/autofill/Session;->writeLog(I)V
 PLcom/android/server/autofill/Session;->wtf(Ljava/lang/Exception;Ljava/lang/String;[Ljava/lang/Object;)V
@@ -10343,8 +10662,10 @@
 HPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$N1Kl8ql4a5Um06QDzh6Q59ZwYO4;->run()V
 PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$S44U_U0PT4w7o-A7hRXjwt9pKXg;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Lcom/android/server/autofill/ui/PendingUi;Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;Ljava/lang/String;Landroid/content/ComponentName;Landroid/service/autofill/SaveInfo;Landroid/service/autofill/ValueFinder;Landroid/metrics/LogMaker;ZZ)V
 PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$S44U_U0PT4w7o-A7hRXjwt9pKXg;->run()V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$S8lqjy9BKKn2SSfu43iaVPGD6rg;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Ljava/lang/CharSequence;)V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$S8lqjy9BKKn2SSfu43iaVPGD6rg;->run()V
 HPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$VF2EbGE70QNyGDbklN9Uz5xHqyQ;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
-PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$VF2EbGE70QNyGDbklN9Uz5xHqyQ;->run()V
+HPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$VF2EbGE70QNyGDbklN9Uz5xHqyQ;->run()V
 HSPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$XWhvh2-Jd9NLMoEos-e8RkZdQaI;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
 HSPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$XWhvh2-Jd9NLMoEos-e8RkZdQaI;->run()V
 HPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$Z-Di7CGd-L0nOI4i7_RO1FYbhgU;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
@@ -10371,6 +10692,12 @@
 PLcom/android/server/autofill/ui/-$$Lambda$FillUi$TUHYXtyYjvn8kBKxh1vyXjC9x84;->onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V
 PLcom/android/server/autofill/ui/-$$Lambda$FillUi$h0jT24YuSGGDnoZ6Tf22n1QRkO8;-><init>(Lcom/android/server/autofill/ui/FillUi;Landroid/service/autofill/FillResponse;)V
 PLcom/android/server/autofill/ui/-$$Lambda$FillUi$h0jT24YuSGGDnoZ6Tf22n1QRkO8;->onClick(Landroid/view/View;)V
+PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$1$4sWDEOdokeeolTOnOnHGWWOLgn8;-><init>(Lcom/android/server/autofill/ui/InlineSuggestionUi;Landroid/service/autofill/InlinePresentation;IILandroid/view/View$OnClickListener;Lcom/android/internal/view/inline/IInlineContentCallback;)V
+PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$1$4sWDEOdokeeolTOnOnHGWWOLgn8;->run()V
+PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$20Xpxfm8UCdjf-klcBqO784Dbdg;-><init>(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;)V
+PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$20Xpxfm8UCdjf-klcBqO784Dbdg;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$HUQuYhrTG8enbhukk4IiDs7rF0c;-><init>(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Landroid/service/autofill/Dataset;)V
+PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$HUQuYhrTG8enbhukk4IiDs7rF0c;->onClick(Landroid/view/View;)V
 PLcom/android/server/autofill/ui/-$$Lambda$SaveUi$9E3wVcFykoYBpXtez_dJMd6U_Nw;-><init>(Lcom/android/server/autofill/ui/SaveUi;)V
 PLcom/android/server/autofill/ui/-$$Lambda$SaveUi$E9O26NP1L_DDYBfaO7fQ0hhPAx8;-><init>(Lcom/android/server/autofill/ui/SaveUi;Landroid/service/autofill/SaveInfo;)V
 PLcom/android/server/autofill/ui/-$$Lambda$SaveUi$E9O26NP1L_DDYBfaO7fQ0hhPAx8;->onClick(Landroid/view/View;)V
@@ -10408,7 +10735,7 @@
 HPLcom/android/server/autofill/ui/AutoFillUI;->hideAllUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
 PLcom/android/server/autofill/ui/AutoFillUI;->hideFillUi(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
 HSPLcom/android/server/autofill/ui/AutoFillUI;->hideFillUiUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
-PLcom/android/server/autofill/ui/AutoFillUI;->hideSaveUiUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)Lcom/android/server/autofill/ui/PendingUi;
+HPLcom/android/server/autofill/ui/AutoFillUI;->hideSaveUiUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)Lcom/android/server/autofill/ui/PendingUi;
 PLcom/android/server/autofill/ui/AutoFillUI;->isSaveUiShowing()Z
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$clearCallback$1$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
 HSPLcom/android/server/autofill/ui/AutoFillUI;->lambda$destroyAll$11$AutoFillUI(Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
@@ -10418,11 +10745,14 @@
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$hideAll$8$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$hideFillUi$3$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$setCallback$0$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
+PLcom/android/server/autofill/ui/AutoFillUI;->lambda$showError$2$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Ljava/lang/CharSequence;)V
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$showFillUi$5$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Landroid/service/autofill/FillResponse;Landroid/view/autofill/AutofillId;Ljava/lang/String;Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;Landroid/metrics/LogMaker;)V
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$showFillUi$7$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Landroid/service/autofill/FillResponse;Landroid/view/autofill/AutofillId;Ljava/lang/String;Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;Landroid/metrics/LogMaker;)V
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$showSaveUi$6$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Lcom/android/server/autofill/ui/PendingUi;Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;Ljava/lang/String;Landroid/content/ComponentName;Landroid/service/autofill/SaveInfo;Landroid/service/autofill/ValueFinder;Landroid/metrics/LogMaker;ZZ)V
 PLcom/android/server/autofill/ui/AutoFillUI;->lambda$showSaveUi$8$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Lcom/android/server/autofill/ui/PendingUi;Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;Ljava/lang/String;Landroid/content/ComponentName;Landroid/service/autofill/SaveInfo;Landroid/service/autofill/ValueFinder;Landroid/metrics/LogMaker;ZZ)V
 HPLcom/android/server/autofill/ui/AutoFillUI;->setCallback(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
+PLcom/android/server/autofill/ui/AutoFillUI;->showError(ILcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
+PLcom/android/server/autofill/ui/AutoFillUI;->showError(Ljava/lang/CharSequence;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
 PLcom/android/server/autofill/ui/AutoFillUI;->showFillUi(Landroid/view/autofill/AutofillId;Landroid/service/autofill/FillResponse;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;IZ)V
 PLcom/android/server/autofill/ui/AutoFillUI;->showSaveUi(Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;Ljava/lang/String;Landroid/service/autofill/SaveInfo;Landroid/service/autofill/ValueFinder;Landroid/content/ComponentName;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Lcom/android/server/autofill/ui/PendingUi;ZZ)V
 PLcom/android/server/autofill/ui/CustomScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
@@ -10480,6 +10810,28 @@
 PLcom/android/server/autofill/ui/FillUi;->updateContentSize()Z
 PLcom/android/server/autofill/ui/FillUi;->updateHeight(Landroid/view/View;Landroid/graphics/Point;)Z
 PLcom/android/server/autofill/ui/FillUi;->updateWidth(Landroid/view/View;Landroid/graphics/Point;)Z
+PLcom/android/server/autofill/ui/InlineSuggestionFactory$1;-><init>(Lcom/android/server/autofill/ui/InlineSuggestionUi;Landroid/service/autofill/InlinePresentation;Landroid/view/View$OnClickListener;)V
+PLcom/android/server/autofill/ui/InlineSuggestionFactory$1;->lambda$provideContent$0(Lcom/android/server/autofill/ui/InlineSuggestionUi;Landroid/service/autofill/InlinePresentation;IILandroid/view/View$OnClickListener;Lcom/android/internal/view/inline/IInlineContentCallback;)V
+PLcom/android/server/autofill/ui/InlineSuggestionFactory$1;->provideContent(IILcom/android/internal/view/inline/IInlineContentCallback;)V
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createAugmentedInlineSuggestionsResponse(Landroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Landroid/content/Context;Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Ljava/lang/Runnable;)Landroid/view/inputmethod/InlineSuggestionsResponse;
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createInlineContentProvider(Landroid/service/autofill/InlinePresentation;Lcom/android/server/autofill/ui/InlineSuggestionUi;Landroid/view/View$OnClickListener;)Lcom/android/internal/view/inline/IInlineContentProvider$Stub;
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createInlineSuggestion(ZLandroid/service/autofill/Dataset;ILandroid/service/autofill/InlinePresentation;Lcom/android/server/autofill/ui/InlineSuggestionUi;Ljava/util/function/BiFunction;)Landroid/view/inputmethod/InlineSuggestion;
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createInlineSuggestionsResponseInternal(ZLandroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Ljava/util/List;Landroid/view/autofill/AutofillId;Landroid/content/Context;Ljava/lang/Runnable;Ljava/util/function/BiFunction;)Landroid/view/inputmethod/InlineSuggestionsResponse;
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->lambda$createAugmentedInlineSuggestionsResponse$0(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Landroid/service/autofill/Dataset;Landroid/view/View;)V
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->lambda$createAugmentedInlineSuggestionsResponse$1(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Landroid/service/autofill/Dataset;Ljava/lang/Integer;)Landroid/view/View$OnClickListener;
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->mergedInlinePresentation(Landroid/view/inputmethod/InlineSuggestionsRequest;ILandroid/service/autofill/InlinePresentation;)Landroid/service/autofill/InlinePresentation;
+PLcom/android/server/autofill/ui/InlineSuggestionRoot;-><clinit>()V
+PLcom/android/server/autofill/ui/InlineSuggestionRoot;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
+PLcom/android/server/autofill/ui/InlineSuggestionRoot;->onTouchEvent(Landroid/view/MotionEvent;)Z
+PLcom/android/server/autofill/ui/InlineSuggestionUi;-><clinit>()V
+PLcom/android/server/autofill/ui/InlineSuggestionUi;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
+PLcom/android/server/autofill/ui/InlineSuggestionUi;->getContextThemeWrapper(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Context;
+PLcom/android/server/autofill/ui/InlineSuggestionUi;->getDefaultContextThemeWrapper(Landroid/content/Context;)Landroid/content/Context;
+PLcom/android/server/autofill/ui/InlineSuggestionUi;->inflate(Landroid/service/autofill/InlinePresentation;IILandroid/view/View$OnClickListener;)Landroid/view/SurfaceControl;
+PLcom/android/server/autofill/ui/InlineSuggestionUi;->renderSlice(Landroid/app/slice/Slice;Landroid/content/Context;)Landroid/view/View;
+PLcom/android/server/autofill/ui/InlineSuggestionUi;->validateBaseTheme(Landroid/content/res/Resources$Theme;I)Z
+PLcom/android/server/autofill/ui/InlineSuggestionUi;->validateFontFamily(Landroid/content/res/Resources$Theme;I)Z
+PLcom/android/server/autofill/ui/InlineSuggestionUi;->validateFontFamilyForTextViewStyles(Landroid/content/res/Resources$Theme;)Z
 HSPLcom/android/server/autofill/ui/OverlayControl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/autofill/ui/OverlayControl;->hideOverlays()V
 PLcom/android/server/autofill/ui/OverlayControl;->setOverlayAllowed(Z)V
@@ -10527,6 +10879,8 @@
 PLcom/android/server/backup/-$$Lambda$TransportManager$Z9ckpFUW2V4jkdHnyXIEiLuAoBc;-><init>()V
 HPLcom/android/server/backup/-$$Lambda$TransportManager$_dxJobf45tWiMkaNlKY-z26kB2Q;-><init>(Ljava/lang/String;)V
 HPLcom/android/server/backup/-$$Lambda$TransportManager$_dxJobf45tWiMkaNlKY-z26kB2Q;->test(Ljava/lang/Object;)Z
+PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$076XriH8-AsUaXKFvRearB4ERls;-><init>(Lcom/android/server/backup/UserBackupManagerService;Landroid/content/ComponentName;Landroid/app/backup/ISelectBackupTransportCallback;)V
+PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$076XriH8-AsUaXKFvRearB4ERls;->run()V
 PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$9w65wn45YYtTkXbyQZdj_7K5LSs;-><init>(Lcom/android/server/backup/UserBackupManagerService$2;Ljava/lang/String;)V
 PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$9w65wn45YYtTkXbyQZdj_7K5LSs;->run()V
 PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$ICUfBQAK1UQkmGSsPDmR00etFBk;-><init>(Lcom/android/server/backup/UserBackupManagerService$2;Ljava/lang/String;)V
@@ -10535,6 +10889,8 @@
 HPLcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$VpHOYQHCWBG618oharjEXEDr57U;->run()V
 PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$9cuIH_XloqtNByp_6hXeGaVars8;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
 PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$9cuIH_XloqtNByp_6hXeGaVars8;->onTransportRegistered(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$C404OP5-rQYG326aUSsvijaNzdg;-><init>(Lcom/android/server/backup/UserBackupManagerService;Ljava/util/List;Ljava/util/List;)V
+PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$C404OP5-rQYG326aUSsvijaNzdg;->accept(Ljava/lang/Object;)V
 PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$TB8LUl0TwUK9CmmdepXioEU4Qxg;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;)V
 PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$TB8LUl0TwUK9CmmdepXioEU4Qxg;->onFinished(Ljava/lang/String;)V
 HPLcom/android/server/backup/-$$Lambda$UserBackupManagerService$W51Aw9Pu9AOsFVYQgIZy31INmwI;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
@@ -10590,6 +10946,9 @@
 HPLcom/android/server/backup/BackupManagerService;->beginFullBackup(ILcom/android/server/backup/FullBackupJob;)Z
 PLcom/android/server/backup/BackupManagerService;->binderGetCallingUid()I
 HSPLcom/android/server/backup/BackupManagerService;->binderGetCallingUserId()I
+PLcom/android/server/backup/BackupManagerService;->cancelBackups()V
+PLcom/android/server/backup/BackupManagerService;->cancelBackups(I)V
+PLcom/android/server/backup/BackupManagerService;->cancelBackupsForUser(I)V
 HPLcom/android/server/backup/BackupManagerService;->createFile(Ljava/io/File;)V
 HPLcom/android/server/backup/BackupManagerService;->dataChanged(ILjava/lang/String;)V
 HSPLcom/android/server/backup/BackupManagerService;->dataChanged(Ljava/lang/String;)V
@@ -10623,7 +10982,7 @@
 HPLcom/android/server/backup/BackupManagerService;->isBackupEnabled()Z
 HPLcom/android/server/backup/BackupManagerService;->isBackupEnabled(I)Z
 HPLcom/android/server/backup/BackupManagerService;->isBackupEnabledForUser(I)Z
-PLcom/android/server/backup/BackupManagerService;->isBackupServiceActive(I)Z
+HPLcom/android/server/backup/BackupManagerService;->isBackupServiceActive(I)Z
 HSPLcom/android/server/backup/BackupManagerService;->isUserReadyForBackup(I)Z
 PLcom/android/server/backup/BackupManagerService;->lambda$onStopUser$1$BackupManagerService(I)V
 PLcom/android/server/backup/BackupManagerService;->lambda$onUnlockUser$0$BackupManagerService(I)V
@@ -10642,6 +11001,8 @@
 PLcom/android/server/backup/BackupManagerService;->restoreAtInstall(ILjava/lang/String;I)V
 PLcom/android/server/backup/BackupManagerService;->restoreAtInstallForUser(ILjava/lang/String;I)V
 PLcom/android/server/backup/BackupManagerService;->selectBackupTransport(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/backup/BackupManagerService;->selectBackupTransportAsync(ILandroid/content/ComponentName;Landroid/app/backup/ISelectBackupTransportCallback;)V
+PLcom/android/server/backup/BackupManagerService;->selectBackupTransportAsyncForUser(ILandroid/content/ComponentName;Landroid/app/backup/ISelectBackupTransportCallback;)V
 PLcom/android/server/backup/BackupManagerService;->selectBackupTransportForUser(ILjava/lang/String;)Ljava/lang/String;
 PLcom/android/server/backup/BackupManagerService;->setBackupEnabled(IZ)V
 PLcom/android/server/backup/BackupManagerService;->setBackupEnabled(Z)V
@@ -10667,7 +11028,7 @@
 HPLcom/android/server/backup/BackupUtils;->hashSignatureArray([Landroid/content/pm/Signature;)Ljava/util/ArrayList;
 HPLcom/android/server/backup/BackupUtils;->signaturesMatch(Ljava/util/ArrayList;Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageManagerInternal;)Z
 HPLcom/android/server/backup/DataChangedJournal;-><init>(Ljava/io/File;)V
-PLcom/android/server/backup/DataChangedJournal;->addPackage(Ljava/lang/String;)V
+HPLcom/android/server/backup/DataChangedJournal;->addPackage(Ljava/lang/String;)V
 PLcom/android/server/backup/DataChangedJournal;->delete()Z
 HPLcom/android/server/backup/DataChangedJournal;->equals(Ljava/lang/Object;)Z
 HPLcom/android/server/backup/DataChangedJournal;->forEach(Ljava/util/function/Consumer;)V
@@ -10752,8 +11113,9 @@
 PLcom/android/server/backup/TransportManager;->checkCanUseTransport()V
 HPLcom/android/server/backup/TransportManager;->disposeOfTransportClient(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
 PLcom/android/server/backup/TransportManager;->dumpTransportClients(Ljava/io/PrintWriter;)V
+PLcom/android/server/backup/TransportManager;->forEachRegisteredTransport(Ljava/util/function/Consumer;)V
 PLcom/android/server/backup/TransportManager;->fromPackageFilter(Ljava/lang/String;)Ljava/util/function/Predicate;
-PLcom/android/server/backup/TransportManager;->getCurrentTransportClient(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
+HPLcom/android/server/backup/TransportManager;->getCurrentTransportClient(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
 PLcom/android/server/backup/TransportManager;->getCurrentTransportClientOrThrow(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
 PLcom/android/server/backup/TransportManager;->getCurrentTransportName()Ljava/lang/String;
 HPLcom/android/server/backup/TransportManager;->getRegisteredTransportComponentLocked(Ljava/lang/String;)Landroid/content/ComponentName;
@@ -10762,13 +11124,14 @@
 HPLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionOrThrowLocked(Ljava/lang/String;)Lcom/android/server/backup/TransportManager$TransportDescription;
 HPLcom/android/server/backup/TransportManager;->getRegisteredTransportEntryLocked(Ljava/lang/String;)Ljava/util/Map$Entry;
 PLcom/android/server/backup/TransportManager;->getRegisteredTransportNames()[Ljava/lang/String;
-PLcom/android/server/backup/TransportManager;->getTransportClient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
+HPLcom/android/server/backup/TransportManager;->getTransportClient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
 HPLcom/android/server/backup/TransportManager;->getTransportClientOrThrow(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
 PLcom/android/server/backup/TransportManager;->getTransportConfigurationIntent(Ljava/lang/String;)Landroid/content/Intent;
 PLcom/android/server/backup/TransportManager;->getTransportCurrentDestinationString(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/backup/TransportManager;->getTransportDataManagementIntent(Ljava/lang/String;)Landroid/content/Intent;
 PLcom/android/server/backup/TransportManager;->getTransportDirName(Landroid/content/ComponentName;)Ljava/lang/String;
 HPLcom/android/server/backup/TransportManager;->getTransportDirName(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/backup/TransportManager;->getTransportName(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/backup/TransportManager;->getTransportWhitelist()Ljava/util/Set;
 HPLcom/android/server/backup/TransportManager;->isTransportRegistered(Ljava/lang/String;)Z
 PLcom/android/server/backup/TransportManager;->isTransportTrusted(Landroid/content/ComponentName;)Z
@@ -10778,11 +11141,13 @@
 PLcom/android/server/backup/TransportManager;->onPackageAdded(Ljava/lang/String;)V
 HPLcom/android/server/backup/TransportManager;->onPackageChanged(Ljava/lang/String;[Ljava/lang/String;)V
 HPLcom/android/server/backup/TransportManager;->onPackageRemoved(Ljava/lang/String;)V
+PLcom/android/server/backup/TransportManager;->registerAndSelectTransport(Landroid/content/ComponentName;)I
 PLcom/android/server/backup/TransportManager;->registerTransport(Landroid/content/ComponentName;)I
 PLcom/android/server/backup/TransportManager;->registerTransport(Landroid/content/ComponentName;Lcom/android/internal/backup/IBackupTransport;)V
 PLcom/android/server/backup/TransportManager;->registerTransports()V
 HPLcom/android/server/backup/TransportManager;->registerTransportsForIntent(Landroid/content/Intent;Ljava/util/function/Predicate;)V
 HPLcom/android/server/backup/TransportManager;->registerTransportsFromPackage(Ljava/lang/String;Ljava/util/function/Predicate;)V
+PLcom/android/server/backup/TransportManager;->selectTransport(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/backup/TransportManager;->setOnTransportRegisteredListener(Lcom/android/server/backup/transport/OnTransportRegisteredListener;)V
 HPLcom/android/server/backup/TransportManager;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
 PLcom/android/server/backup/UsageStatsBackupHelper;-><init>(Landroid/content/Context;)V
@@ -10835,6 +11200,7 @@
 HPLcom/android/server/backup/UserBackupManagerService;->backupNow()V
 HPLcom/android/server/backup/UserBackupManagerService;->beginFullBackup(Lcom/android/server/backup/FullBackupJob;)Z
 HPLcom/android/server/backup/UserBackupManagerService;->bindToAgentSynchronous(Landroid/content/pm/ApplicationInfo;I)Landroid/app/IBackupAgent;
+HPLcom/android/server/backup/UserBackupManagerService;->cancelBackups()V
 PLcom/android/server/backup/UserBackupManagerService;->clearApplicationDataBeforeRestore(Ljava/lang/String;)V
 PLcom/android/server/backup/UserBackupManagerService;->clearApplicationDataSynchronous(Ljava/lang/String;ZZ)V
 PLcom/android/server/backup/UserBackupManagerService;->clearPendingInits()V
@@ -10867,6 +11233,7 @@
 HPLcom/android/server/backup/UserBackupManagerService;->getCurrentTransport()Ljava/lang/String;
 PLcom/android/server/backup/UserBackupManagerService;->getDataDir()Ljava/io/File;
 PLcom/android/server/backup/UserBackupManagerService;->getDataManagementIntent(Ljava/lang/String;)Landroid/content/Intent;
+PLcom/android/server/backup/UserBackupManagerService;->getExcludedRestoreKeys(Ljava/lang/String;)Ljava/util/Set;
 PLcom/android/server/backup/UserBackupManagerService;->getExcludedRestoreKeys([Ljava/lang/String;)Ljava/util/Map;
 PLcom/android/server/backup/UserBackupManagerService;->getJournal()Lcom/android/server/backup/DataChangedJournal;
 PLcom/android/server/backup/UserBackupManagerService;->getMessageIdForOperationType(I)I
@@ -10899,6 +11266,8 @@
 HPLcom/android/server/backup/UserBackupManagerService;->lambda$parseLeftoverJournals$0$UserBackupManagerService(Ljava/lang/String;)V
 PLcom/android/server/backup/UserBackupManagerService;->lambda$requestBackup$1$UserBackupManagerService(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
 PLcom/android/server/backup/UserBackupManagerService;->lambda$restoreAtInstall$6$UserBackupManagerService(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService;->lambda$selectBackupTransportAsync$5$UserBackupManagerService(Landroid/content/ComponentName;Landroid/app/backup/ISelectBackupTransportCallback;)V
+PLcom/android/server/backup/UserBackupManagerService;->lambda$setBackupEnabled$4$UserBackupManagerService(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
 PLcom/android/server/backup/UserBackupManagerService;->listAllTransports()[Ljava/lang/String;
 HPLcom/android/server/backup/UserBackupManagerService;->logBackupComplete(Ljava/lang/String;)V
 HPLcom/android/server/backup/UserBackupManagerService;->makeMetadataAgent()Landroid/app/backup/BackupAgent;
@@ -10917,6 +11286,7 @@
 HPLcom/android/server/backup/UserBackupManagerService;->resetBackupState(Ljava/io/File;)V
 HPLcom/android/server/backup/UserBackupManagerService;->restoreAtInstall(Ljava/lang/String;I)V
 HPLcom/android/server/backup/UserBackupManagerService;->scheduleNextFullBackupJob(J)V
+PLcom/android/server/backup/UserBackupManagerService;->selectBackupTransportAsync(Landroid/content/ComponentName;Landroid/app/backup/ISelectBackupTransportCallback;)V
 PLcom/android/server/backup/UserBackupManagerService;->setBackupEnabled(Z)V
 PLcom/android/server/backup/UserBackupManagerService;->setBackupRunning(Z)V
 PLcom/android/server/backup/UserBackupManagerService;->setClearingData(Z)V
@@ -10928,14 +11298,16 @@
 HPLcom/android/server/backup/UserBackupManagerService;->setWorkSource(Landroid/os/WorkSource;)V
 HPLcom/android/server/backup/UserBackupManagerService;->tearDownAgentAndKill(Landroid/content/pm/ApplicationInfo;)V
 PLcom/android/server/backup/UserBackupManagerService;->tearDownService()V
-PLcom/android/server/backup/UserBackupManagerService;->unbindAgent(Landroid/content/pm/ApplicationInfo;)V
+HPLcom/android/server/backup/UserBackupManagerService;->unbindAgent(Landroid/content/pm/ApplicationInfo;)V
+PLcom/android/server/backup/UserBackupManagerService;->updateStateForTransport(Ljava/lang/String;)V
 HPLcom/android/server/backup/UserBackupManagerService;->updateTransportAttributes(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
 HPLcom/android/server/backup/UserBackupManagerService;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
 PLcom/android/server/backup/UserBackupManagerService;->waitUntilOperationComplete(I)Z
 HPLcom/android/server/backup/UserBackupManagerService;->writeFullBackupScheduleAsync()V
 HPLcom/android/server/backup/UserBackupManagerService;->writeRestoreTokens()V
-PLcom/android/server/backup/UserBackupManagerService;->writeToJournalLocked(Ljava/lang/String;)V
+HPLcom/android/server/backup/UserBackupManagerService;->writeToJournalLocked(Ljava/lang/String;)V
 PLcom/android/server/backup/UserBackupPreferences;-><init>(Landroid/content/Context;Ljava/io/File;)V
+PLcom/android/server/backup/UserBackupPreferences;->getExcludedRestoreKeysForPackage(Ljava/lang/String;)Ljava/util/Set;
 PLcom/android/server/backup/UserBackupPreferences;->getExcludedRestoreKeysForPackages([Ljava/lang/String;)Ljava/util/Map;
 PLcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$SinglePackageBackupPreflight$hWbC3_rWMPrteAdbbM5aSW2SKD0;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;Landroid/app/IBackupAgent;J)V
 PLcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$SinglePackageBackupPreflight$hWbC3_rWMPrteAdbbM5aSW2SKD0;->call(Ljava/lang/Object;)V
@@ -11015,9 +11387,11 @@
 HPLcom/android/server/backup/keyvalue/-$$Lambda$KeyValueBackupTask$NN2H32cNizGxrUxqHgqPqGldNsA;-><init>(Lcom/android/server/backup/keyvalue/KeyValueBackupTask;Landroid/app/IBackupAgent;JI)V
 PLcom/android/server/backup/keyvalue/-$$Lambda$KeyValueBackupTask$NN2H32cNizGxrUxqHgqPqGldNsA;->call(Ljava/lang/Object;)V
 PLcom/android/server/backup/keyvalue/AgentException;-><init>(Z)V
+PLcom/android/server/backup/keyvalue/AgentException;-><init>(ZLjava/lang/Exception;)V
 PLcom/android/server/backup/keyvalue/AgentException;->isTransitory()Z
 PLcom/android/server/backup/keyvalue/AgentException;->permanent()Lcom/android/server/backup/keyvalue/AgentException;
 PLcom/android/server/backup/keyvalue/AgentException;->transitory()Lcom/android/server/backup/keyvalue/AgentException;
+PLcom/android/server/backup/keyvalue/AgentException;->transitory(Ljava/lang/Exception;)Lcom/android/server/backup/keyvalue/AgentException;
 PLcom/android/server/backup/keyvalue/BackupException;-><init>()V
 PLcom/android/server/backup/keyvalue/BackupException;-><init>(Ljava/lang/Exception;)V
 HPLcom/android/server/backup/keyvalue/BackupRequest;-><init>(Ljava/lang/String;)V
@@ -11028,11 +11402,12 @@
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->getPackageName(Landroid/content/pm/PackageInfo;)Ljava/lang/String;
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentError(Ljava/lang/String;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentFilesReady(Ljava/io/File;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentResultError(Landroid/content/pm/PackageInfo;)V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentResultError(Landroid/content/pm/PackageInfo;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentTimedOut(Landroid/content/pm/PackageInfo;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onBackupFinished(I)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onCallAgentDoBackupError(Ljava/lang/String;ZLjava/lang/Exception;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onEmptyData(Landroid/content/pm/PackageInfo;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onEmptyQueueAtStart()V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onExtractAgentData(Ljava/lang/String;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onExtractPmAgentDataError(Ljava/lang/Exception;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onInitializeTransport(Ljava/lang/String;)V
@@ -11047,6 +11422,7 @@
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onRemoteCallReturned(Lcom/android/server/backup/remote/RemoteResult;Ljava/lang/String;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onRevertTask()V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onSkipBackup()V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onSkipPm()V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onStartFullBackup(Ljava/util/List;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onStartPackageBackup(Ljava/lang/String;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onTaskFinished()V
@@ -11062,7 +11438,7 @@
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->applyStateTransaction(I)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->backupPackage(Ljava/lang/String;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->backupPm()V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->bindAgent(Landroid/content/pm/PackageInfo;)Landroid/app/IBackupAgent;
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->bindAgent(Landroid/content/pm/PackageInfo;)Landroid/app/IBackupAgent;
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->checkAgentResult(Landroid/content/pm/PackageInfo;Lcom/android/server/backup/remote/RemoteResult;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->checkBackupData(Landroid/content/pm/ApplicationInfo;Ljava/io/File;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->cleanUpAgent(I)V
@@ -11084,7 +11460,7 @@
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getTopLevelSuccessStateDirectory(Z)Ljava/io/File;
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->handleTransportStatus(ILjava/lang/String;J)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->informTransportOfUnchangedApps(Ljava/util/Set;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->isEligibleForNoDataCall(Landroid/content/pm/PackageInfo;)Z
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->isEligibleForNoDataCall(Landroid/content/pm/PackageInfo;)Z
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->lambda$extractAgentData$0$KeyValueBackupTask(Landroid/app/IBackupAgent;JILandroid/app/backup/IBackupCallback;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->registerTask()V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->remoteCall(Lcom/android/server/backup/remote/RemoteCallable;JLjava/lang/String;)Lcom/android/server/backup/remote/RemoteResult;
@@ -11110,7 +11486,9 @@
 PLcom/android/server/backup/keyvalue/TaskException;->isStateCompromised()Z
 PLcom/android/server/backup/keyvalue/TaskException;->stateCompromised(Ljava/lang/Exception;)Lcom/android/server/backup/keyvalue/TaskException;
 HPLcom/android/server/backup/params/BackupParams;-><init>(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;ZZ)V
+PLcom/android/server/backup/params/RestoreParams;-><init>(Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLandroid/content/pm/PackageInfo;IZ[Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;)V
 PLcom/android/server/backup/params/RestoreParams;-><init>(Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLandroid/content/pm/PackageInfo;IZ[Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/Map;)V
+PLcom/android/server/backup/params/RestoreParams;->createForRestoreAtInstall(Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLjava/lang/String;ILcom/android/server/backup/internal/OnTaskFinishedListener;)Lcom/android/server/backup/params/RestoreParams;
 PLcom/android/server/backup/params/RestoreParams;->createForRestoreAtInstall(Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLjava/lang/String;ILcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/Map;)Lcom/android/server/backup/params/RestoreParams;
 HPLcom/android/server/backup/remote/-$$Lambda$RemoteCall$UZaEiTGjS9e2j04YYkGl3Y2ltU4;-><init>(Lcom/android/server/backup/remote/RemoteCall;)V
 HPLcom/android/server/backup/remote/-$$Lambda$RemoteCall$UZaEiTGjS9e2j04YYkGl3Y2ltU4;->run()V
@@ -11148,6 +11526,7 @@
 PLcom/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread;-><init>(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)V
 PLcom/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread;->operationComplete(J)V
 HPLcom/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread;->run()V
+PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLandroid/content/pm/PackageInfo;IZ[Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;)V
 PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLandroid/content/pm/PackageInfo;IZ[Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/Map;)V
 PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$000(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)Lcom/android/server/backup/UserBackupManagerService;
 PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$100(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)Landroid/content/pm/PackageInfo;
@@ -11233,7 +11612,7 @@
 PLcom/android/server/backup/transport/TransportClientManager;->dump(Ljava/io/PrintWriter;)V
 HPLcom/android/server/backup/transport/TransportClientManager;->getRealTransportIntent(Landroid/content/ComponentName;)Landroid/content/Intent;
 HPLcom/android/server/backup/transport/TransportClientManager;->getTransportClient(Landroid/content/ComponentName;Landroid/os/Bundle;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
-PLcom/android/server/backup/transport/TransportClientManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
+HPLcom/android/server/backup/transport/TransportClientManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
 HPLcom/android/server/backup/transport/TransportClientManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;)Lcom/android/server/backup/transport/TransportClient;
 HPLcom/android/server/backup/transport/TransportClientManager;->lambda$3-d3ib7qD5oE9G-iWpfeoufnGXc(Landroid/content/ComponentName;)Landroid/content/Intent;
 PLcom/android/server/backup/transport/TransportNotAvailableException;-><init>()V
@@ -11271,9 +11650,9 @@
 HPLcom/android/server/backup/utils/SparseArrayUtils;->union(Landroid/util/SparseArray;)Ljava/util/HashSet;
 PLcom/android/server/backup/utils/TarBackupReader;-><init>(Ljava/io/InputStream;Lcom/android/server/backup/utils/BytesReadListener;Landroid/app/backup/IBackupManagerMonitor;)V
 PLcom/android/server/backup/utils/TarBackupReader;->chooseRestorePolicy(Landroid/content/pm/PackageManager;ZLcom/android/server/backup/FileMetadata;[Landroid/content/pm/Signature;Landroid/content/pm/PackageManagerInternal;I)Lcom/android/server/backup/restore/RestorePolicy;
-PLcom/android/server/backup/utils/TarBackupReader;->extractLine([BI[Ljava/lang/String;)I
+HPLcom/android/server/backup/utils/TarBackupReader;->extractLine([BI[Ljava/lang/String;)I
 HPLcom/android/server/backup/utils/TarBackupReader;->extractRadix([BIII)J
-PLcom/android/server/backup/utils/TarBackupReader;->extractString([BII)Ljava/lang/String;
+HPLcom/android/server/backup/utils/TarBackupReader;->extractString([BII)Ljava/lang/String;
 PLcom/android/server/backup/utils/TarBackupReader;->readAppManifestAndReturnSignatures(Lcom/android/server/backup/FileMetadata;)[Landroid/content/pm/Signature;
 PLcom/android/server/backup/utils/TarBackupReader;->readExactly(Ljava/io/InputStream;[BII)I
 PLcom/android/server/backup/utils/TarBackupReader;->readPaxExtendedHeader(Lcom/android/server/backup/FileMetadata;)Z
@@ -11312,6 +11691,8 @@
 HSPLcom/android/server/biometrics/AuthService$Injector;-><init>()V
 HSPLcom/android/server/biometrics/AuthService$Injector;->getBiometricService()Landroid/hardware/biometrics/IBiometricService;
 HSPLcom/android/server/biometrics/AuthService$Injector;->getConfiguration(Landroid/content/Context;)[Ljava/lang/String;
+HSPLcom/android/server/biometrics/AuthService$Injector;->getFaceService()Landroid/hardware/face/IFaceService;
+HSPLcom/android/server/biometrics/AuthService$Injector;->getFingerprintService()Landroid/hardware/fingerprint/IFingerprintService;
 HSPLcom/android/server/biometrics/AuthService$Injector;->publishBinderService(Lcom/android/server/biometrics/AuthService;Landroid/hardware/biometrics/IAuthService$Stub;)V
 HSPLcom/android/server/biometrics/AuthService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/biometrics/AuthService;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/AuthService$Injector;)V
@@ -11324,18 +11705,20 @@
 HSPLcom/android/server/biometrics/AuthService;->onStart()V
 HSPLcom/android/server/biometrics/AuthService;->registerAuthenticator(Lcom/android/server/biometrics/SensorConfig;)V
 HPLcom/android/server/biometrics/AuthenticationClient;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
+HPLcom/android/server/biometrics/AuthenticationClient;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZLandroid/hardware/biometrics/IBiometricNativeHandle;)V
 PLcom/android/server/biometrics/AuthenticationClient;->binderDied()V
+HPLcom/android/server/biometrics/AuthenticationClient;->destroy()V
 PLcom/android/server/biometrics/AuthenticationClient;->getRequireConfirmation()Z
 PLcom/android/server/biometrics/AuthenticationClient;->getStartTimeMs()J
 HPLcom/android/server/biometrics/AuthenticationClient;->isBiometricPrompt()Z
-PLcom/android/server/biometrics/AuthenticationClient;->isCryptoOperation()Z
+HPLcom/android/server/biometrics/AuthenticationClient;->isCryptoOperation()Z
 HPLcom/android/server/biometrics/AuthenticationClient;->onAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)Z
 HPLcom/android/server/biometrics/AuthenticationClient;->onError(JII)Z
 HPLcom/android/server/biometrics/AuthenticationClient;->start()I
-PLcom/android/server/biometrics/AuthenticationClient;->statsAction()I
+HPLcom/android/server/biometrics/AuthenticationClient;->statsAction()I
 HPLcom/android/server/biometrics/AuthenticationClient;->stop(Z)I
 HSPLcom/android/server/biometrics/BiometricService$1;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/os/Looper;)V
-PLcom/android/server/biometrics/BiometricService$1;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/biometrics/BiometricService$1;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/biometrics/BiometricService$2;-><init>(Lcom/android/server/biometrics/BiometricService;)V
 PLcom/android/server/biometrics/BiometricService$2;->onAcquired(ILjava/lang/String;)V
 PLcom/android/server/biometrics/BiometricService$2;->onAuthenticationFailed()V
@@ -11366,6 +11749,7 @@
 HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->setActiveUser(I)V
 HSPLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
 PLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;->binderDied()V
+PLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;->notify(Landroid/hardware/biometrics/BiometricSourceType;ZI)V
 HSPLcom/android/server/biometrics/BiometricService$Injector;-><init>()V
 HSPLcom/android/server/biometrics/BiometricService$Injector;->getActivityManagerService()Landroid/app/IActivityManager;
 HSPLcom/android/server/biometrics/BiometricService$Injector;->getBiometricStrengthController(Lcom/android/server/biometrics/BiometricService;)Lcom/android/server/biometrics/BiometricStrengthController;
@@ -11380,6 +11764,7 @@
 PLcom/android/server/biometrics/BiometricService$SettingObserver;->getFaceAlwaysRequireConfirmation(I)Z
 HPLcom/android/server/biometrics/BiometricService$SettingObserver;->getFaceEnabledForApps(I)Z
 HSPLcom/android/server/biometrics/BiometricService$SettingObserver;->getFaceEnabledOnKeyguard()Z
+PLcom/android/server/biometrics/BiometricService$SettingObserver;->notifyEnabledOnKeyguardCallbacks(I)V
 HSPLcom/android/server/biometrics/BiometricService$SettingObserver;->onChange(ZLandroid/net/Uri;I)V
 HSPLcom/android/server/biometrics/BiometricService$SettingObserver;->updateContentObserver()V
 HSPLcom/android/server/biometrics/BiometricService;-><init>(Landroid/content/Context;)V
@@ -11391,7 +11776,7 @@
 HSPLcom/android/server/biometrics/BiometricService;->access$1200(Lcom/android/server/biometrics/BiometricService;)V
 PLcom/android/server/biometrics/BiometricService;->access$1300(Lcom/android/server/biometrics/BiometricService;)V
 PLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;ILandroid/os/Bundle;Ljava/lang/String;)Landroid/util/Pair;
-PLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;ILandroid/os/Bundle;Ljava/lang/String;Z)Landroid/util/Pair;
+HPLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;ILandroid/os/Bundle;Ljava/lang/String;Z)Landroid/util/Pair;
 HSPLcom/android/server/biometrics/BiometricService;->access$1500(Lcom/android/server/biometrics/BiometricService;)Lcom/android/server/biometrics/BiometricService$Injector;
 HSPLcom/android/server/biometrics/BiometricService;->access$1600(Lcom/android/server/biometrics/BiometricService;Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/biometrics/BiometricService;->access$200(Lcom/android/server/biometrics/BiometricService;IIII)V
@@ -11400,12 +11785,14 @@
 PLcom/android/server/biometrics/BiometricService;->access$600(Lcom/android/server/biometrics/BiometricService;IZI)V
 PLcom/android/server/biometrics/BiometricService;->access$700(Lcom/android/server/biometrics/BiometricService;Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;III)V
 PLcom/android/server/biometrics/BiometricService;->access$800(Lcom/android/server/biometrics/BiometricService;Landroid/os/IBinder;Ljava/lang/String;)V
-PLcom/android/server/biometrics/BiometricService;->authenticateInternal(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;IIII)V
+HPLcom/android/server/biometrics/BiometricService;->authenticateInternal(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;IIII)V
+PLcom/android/server/biometrics/BiometricService;->biometricStatusToBiometricConstant(I)I
 PLcom/android/server/biometrics/BiometricService;->cancelInternal(Landroid/os/IBinder;Ljava/lang/String;Z)V
 HPLcom/android/server/biometrics/BiometricService;->checkAndGetAuthenticators(ILandroid/os/Bundle;Ljava/lang/String;)Landroid/util/Pair;
 HPLcom/android/server/biometrics/BiometricService;->checkAndGetAuthenticators(ILandroid/os/Bundle;Ljava/lang/String;Z)Landroid/util/Pair;
 HSPLcom/android/server/biometrics/BiometricService;->checkInternalPermission()V
-PLcom/android/server/biometrics/BiometricService;->checkPermission()V
+HPLcom/android/server/biometrics/BiometricService;->checkPermission()V
+HPLcom/android/server/biometrics/BiometricService;->getStatusForBiometricAuthenticator(Lcom/android/server/biometrics/BiometricService$AuthenticatorWrapper;ILjava/lang/String;ZI)Landroid/util/Pair;
 PLcom/android/server/biometrics/BiometricService;->handleAuthenticate(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;III)V
 PLcom/android/server/biometrics/BiometricService;->handleAuthenticationRejected()V
 PLcom/android/server/biometrics/BiometricService;->handleAuthenticationSucceeded(Z[B)V
@@ -11414,7 +11801,7 @@
 PLcom/android/server/biometrics/BiometricService;->handleOnDeviceCredentialPressed()V
 PLcom/android/server/biometrics/BiometricService;->handleOnDismissed(I)V
 PLcom/android/server/biometrics/BiometricService;->handleOnError(IIII)V
-PLcom/android/server/biometrics/BiometricService;->handleOnReadyForAuthentication(IZI)V
+HPLcom/android/server/biometrics/BiometricService;->handleOnReadyForAuthentication(IZI)V
 HPLcom/android/server/biometrics/BiometricService;->isBiometricDisabledByDevicePolicy(II)Z
 HPLcom/android/server/biometrics/BiometricService;->isEnabledForApp(II)Z
 PLcom/android/server/biometrics/BiometricService;->lambda$handleAuthenticate$0$BiometricService(Landroid/os/Bundle;ILjava/lang/String;Landroid/hardware/biometrics/IBiometricServiceReceiver;Landroid/os/IBinder;JIII)V
@@ -11426,9 +11813,10 @@
 HSPLcom/android/server/biometrics/BiometricServiceBase$1;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
 HPLcom/android/server/biometrics/BiometricServiceBase$1;->run()V
 HSPLcom/android/server/biometrics/BiometricServiceBase$2;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
-PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
+HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
+HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZLandroid/hardware/biometrics/IBiometricNativeHandle;)V
 PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->handleFailedAttempt()I
-PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->notifyUserActivity()V
+HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->notifyUserActivity()V
 HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->onStart()V
 HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->onStop()V
 HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->statsClient()I
@@ -11447,8 +11835,8 @@
 HSPLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->getUnknownHALTemplates()Ljava/util/List;
 HSPLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->handleEnumeratedTemplate(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;)V
 HSPLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->onEnumerationResult(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)Z
-HPLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$1;-><init>(Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;)V
-PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$1;->sendResult(Landroid/os/Bundle;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$1;-><init>(Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$1;->sendResult(Landroid/os/Bundle;)V
 HSPLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$2;-><init>(Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;)V
 PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$2;->run()V
 HSPLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
@@ -11491,7 +11879,7 @@
 HSPLcom/android/server/biometrics/BiometricServiceBase;->getEffectiveUserId(I)I
 HSPLcom/android/server/biometrics/BiometricServiceBase;->getUserOrWorkProfileId(Ljava/lang/String;I)I
 HPLcom/android/server/biometrics/BiometricServiceBase;->handleAcquired(JII)V
-PLcom/android/server/biometrics/BiometricServiceBase;->handleAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
+HPLcom/android/server/biometrics/BiometricServiceBase;->handleAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
 PLcom/android/server/biometrics/BiometricServiceBase;->handleEnrollResult(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 HSPLcom/android/server/biometrics/BiometricServiceBase;->handleEnumerate(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 HPLcom/android/server/biometrics/BiometricServiceBase;->handleError(JII)V
@@ -11524,7 +11912,7 @@
 HSPLcom/android/server/biometrics/BiometricServiceBase;->startCleanupUnknownHALTemplates()V
 HSPLcom/android/server/biometrics/BiometricServiceBase;->startClient(Lcom/android/server/biometrics/ClientMonitor;Z)V
 HSPLcom/android/server/biometrics/BiometricServiceBase;->startCurrentClient(I)V
-PLcom/android/server/biometrics/BiometricServiceBase;->userActivity()V
+HPLcom/android/server/biometrics/BiometricServiceBase;->userActivity()V
 HSPLcom/android/server/biometrics/BiometricStrengthController;-><clinit>()V
 HSPLcom/android/server/biometrics/BiometricStrengthController;-><init>(Lcom/android/server/biometrics/BiometricService;)V
 HSPLcom/android/server/biometrics/BiometricStrengthController;->getIdToStrengthMap()Ljava/util/Map;
@@ -11549,7 +11937,7 @@
 HPLcom/android/server/biometrics/ClientMonitor;->blacklistContains(II)Z
 HSPLcom/android/server/biometrics/ClientMonitor;->destroy()V
 HPLcom/android/server/biometrics/ClientMonitor;->finalize()V
-PLcom/android/server/biometrics/ClientMonitor;->getAcquireIgnorelist()[I
+HPLcom/android/server/biometrics/ClientMonitor;->getAcquireIgnorelist()[I
 PLcom/android/server/biometrics/ClientMonitor;->getAcquireVendorIgnorelist()[I
 PLcom/android/server/biometrics/ClientMonitor;->getContext()Landroid/content/Context;
 HSPLcom/android/server/biometrics/ClientMonitor;->getCookie()I
@@ -11580,6 +11968,7 @@
 HPLcom/android/server/biometrics/LoggableMonitor;->logOnAuthenticated(Landroid/content/Context;ZZIZ)V
 PLcom/android/server/biometrics/LoggableMonitor;->logOnEnrolled(IJZ)V
 HPLcom/android/server/biometrics/LoggableMonitor;->logOnError(Landroid/content/Context;III)V
+HPLcom/android/server/biometrics/LoggableMonitor;->sanitizeLatency(J)J
 PLcom/android/server/biometrics/LoggableMonitor;->statsClient()I
 PLcom/android/server/biometrics/RemovalClient;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIIZLjava/lang/String;Lcom/android/server/biometrics/BiometricUtils;)V
 PLcom/android/server/biometrics/RemovalClient;->onRemoved(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)Z
@@ -11588,14 +11977,18 @@
 HSPLcom/android/server/biometrics/SensorConfig;-><init>(Ljava/lang/String;)V
 HPLcom/android/server/biometrics/Utils;->biometricConstantsToBiometricManager(I)I
 PLcom/android/server/biometrics/Utils;->combineAuthenticatorBundles(Landroid/os/Bundle;)V
+PLcom/android/server/biometrics/Utils;->dupNativeHandle(Landroid/hardware/biometrics/IBiometricNativeHandle;)Landroid/os/NativeHandle;
 PLcom/android/server/biometrics/Utils;->getAuthenticationTypeForResult(I)I
 PLcom/android/server/biometrics/Utils;->getPublicBiometricStrength(I)I
 HPLcom/android/server/biometrics/Utils;->getPublicBiometricStrength(Landroid/os/Bundle;)I
 PLcom/android/server/biometrics/Utils;->isAtLeastStrength(II)Z
 PLcom/android/server/biometrics/Utils;->isBiometricAllowed(Landroid/os/Bundle;)Z
+PLcom/android/server/biometrics/Utils;->isBiometricRequested(Landroid/os/Bundle;)Z
+PLcom/android/server/biometrics/Utils;->isCredentialRequested(I)Z
+PLcom/android/server/biometrics/Utils;->isCredentialRequested(Landroid/os/Bundle;)Z
 HPLcom/android/server/biometrics/Utils;->isDebugEnabled(Landroid/content/Context;I)Z
 PLcom/android/server/biometrics/Utils;->isDeviceCredentialAllowed(I)Z
-PLcom/android/server/biometrics/Utils;->isDeviceCredentialAllowed(Landroid/os/Bundle;)Z
+HPLcom/android/server/biometrics/Utils;->isDeviceCredentialAllowed(Landroid/os/Bundle;)Z
 HPLcom/android/server/biometrics/Utils;->isValidAuthenticatorConfig(I)Z
 PLcom/android/server/biometrics/Utils;->isValidAuthenticatorConfig(Landroid/os/Bundle;)Z
 HPLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$7DzDQwoPfgYi40WuB8Xi0hA3qVQ;-><init>(Lcom/android/server/biometrics/face/FaceService$1;JII)V
@@ -11644,7 +12037,7 @@
 PLcom/android/server/biometrics/face/FaceService$1;->lambda$onAuthenticated$2$FaceService$1(IJLjava/util/ArrayList;)V
 PLcom/android/server/biometrics/face/FaceService$1;->lambda$onEnrollResult$0$FaceService$1(IIJI)V
 HSPLcom/android/server/biometrics/face/FaceService$1;->lambda$onEnumerate$5$FaceService$1(Ljava/util/ArrayList;J)V
-PLcom/android/server/biometrics/face/FaceService$1;->lambda$onError$3$FaceService$1(JII)V
+HPLcom/android/server/biometrics/face/FaceService$1;->lambda$onError$3$FaceService$1(JII)V
 HSPLcom/android/server/biometrics/face/FaceService$1;->lambda$onLockoutChanged$6$FaceService$1(J)V
 PLcom/android/server/biometrics/face/FaceService$1;->lambda$onRemoved$4$FaceService$1(Ljava/util/ArrayList;J)V
 HPLcom/android/server/biometrics/face/FaceService$1;->onAcquired(JIII)V
@@ -11654,6 +12047,7 @@
 HSPLcom/android/server/biometrics/face/FaceService$1;->onLockoutChanged(J)V
 HSPLcom/android/server/biometrics/face/FaceService$2;-><init>(Lcom/android/server/biometrics/face/FaceService;)V
 PLcom/android/server/biometrics/face/FaceService$2;->authenticate(JI)I
+PLcom/android/server/biometrics/face/FaceService$2;->authenticate(JILandroid/os/NativeHandle;)I
 PLcom/android/server/biometrics/face/FaceService$2;->cancel()I
 PLcom/android/server/biometrics/face/FaceService$2;->enroll([BIILjava/util/ArrayList;)I
 HSPLcom/android/server/biometrics/face/FaceService$2;->enumerate()I
@@ -11663,12 +12057,13 @@
 HPLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;-><init>(JJZIII)V
 PLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->access$000(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)Z
 PLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->access$100(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)J
-PLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->access$200(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)I
+HPLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->access$200(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)I
 HPLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->toString(Landroid/content/Context;)Ljava/lang/String;
 PLcom/android/server/biometrics/face/FaceService$BiometricPromptServiceListenerImpl;-><init>(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/IBiometricServiceReceiverInternal;)V
 PLcom/android/server/biometrics/face/FaceService$BiometricPromptServiceListenerImpl;->onAcquired(JII)V
 PLcom/android/server/biometrics/face/FaceService$BiometricPromptServiceListenerImpl;->onError(JIII)V
 HPLcom/android/server/biometrics/face/FaceService$FaceAuthClient;-><init>(Lcom/android/server/biometrics/face/FaceService;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
+PLcom/android/server/biometrics/face/FaceService$FaceAuthClient;-><init>(Lcom/android/server/biometrics/face/FaceService;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZLandroid/hardware/biometrics/IBiometricNativeHandle;)V
 HPLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->getAcquireIgnorelist()[I
 HPLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->onAcquired(II)Z
 HPLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->onAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)Z
@@ -11722,6 +12117,8 @@
 HSPLcom/android/server/biometrics/face/FaceService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/biometrics/face/FaceService;->access$1000(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;)J
 HPLcom/android/server/biometrics/face/FaceService;->access$10001(Lcom/android/server/biometrics/face/FaceService;JII)V
+PLcom/android/server/biometrics/face/FaceService;->access$10001(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
+PLcom/android/server/biometrics/face/FaceService;->access$10101(Lcom/android/server/biometrics/face/FaceService;JII)V
 PLcom/android/server/biometrics/face/FaceService;->access$10101(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/face/FaceService;->access$10200(Lcom/android/server/biometrics/face/FaceService;)Ljava/util/Map;
 PLcom/android/server/biometrics/face/FaceService;->access$1100(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
@@ -11739,43 +12136,72 @@
 PLcom/android/server/biometrics/face/FaceService;->access$2300(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$2400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$2500(Lcom/android/server/biometrics/face/FaceService;)Z
+HPLcom/android/server/biometrics/face/FaceService;->access$2500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$2600(Lcom/android/server/biometrics/face/FaceService;)J
+PLcom/android/server/biometrics/face/FaceService;->access$2600(Lcom/android/server/biometrics/face/FaceService;)Z
 PLcom/android/server/biometrics/face/FaceService;->access$2700(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$2700(Lcom/android/server/biometrics/face/FaceService;)J
+PLcom/android/server/biometrics/face/FaceService;->access$2800(Lcom/android/server/biometrics/face/FaceService;)I
 HPLcom/android/server/biometrics/face/FaceService;->access$2800(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$2900(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$2900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$300(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/face/FaceService$UsageStats;
 PLcom/android/server/biometrics/face/FaceService;->access$3000(Lcom/android/server/biometrics/face/FaceService;)J
+PLcom/android/server/biometrics/face/FaceService;->access$3000(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$3100(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$3100(Lcom/android/server/biometrics/face/FaceService;)J
+PLcom/android/server/biometrics/face/FaceService;->access$3200(Lcom/android/server/biometrics/face/FaceService;)I
 PLcom/android/server/biometrics/face/FaceService;->access$3200(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;III)V
+PLcom/android/server/biometrics/face/FaceService;->access$3300(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;III)V
 PLcom/android/server/biometrics/face/FaceService;->access$3300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$3400(Lcom/android/server/biometrics/face/FaceService;I)V
+PLcom/android/server/biometrics/face/FaceService;->access$3400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$3500(Lcom/android/server/biometrics/face/FaceService;I)V
 HPLcom/android/server/biometrics/face/FaceService;->access$3500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$3600(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;)V
+HPLcom/android/server/biometrics/face/FaceService;->access$3600(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$3700(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$3700(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$3800(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
 PLcom/android/server/biometrics/face/FaceService;->access$3900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$400(Lcom/android/server/biometrics/face/FaceService;)[I
 PLcom/android/server/biometrics/face/FaceService;->access$4000(Lcom/android/server/biometrics/face/FaceService;I)V
+PLcom/android/server/biometrics/face/FaceService;->access$4000(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$4100(Lcom/android/server/biometrics/face/FaceService;I)V
 PLcom/android/server/biometrics/face/FaceService;->access$4100(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$4200(Lcom/android/server/biometrics/face/FaceService;)Z
 PLcom/android/server/biometrics/face/FaceService;->access$4300(Lcom/android/server/biometrics/face/FaceService;)J
 PLcom/android/server/biometrics/face/FaceService;->access$4400(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/RemovalClient;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$4900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$500(Lcom/android/server/biometrics/face/FaceService;)[I
+PLcom/android/server/biometrics/face/FaceService;->access$5000(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$5001(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
 PLcom/android/server/biometrics/face/FaceService;->access$5100(Lcom/android/server/biometrics/face/FaceService;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$5101(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
 PLcom/android/server/biometrics/face/FaceService;->access$5200(Lcom/android/server/biometrics/face/FaceService;Ljava/io/PrintWriter;)V
+PLcom/android/server/biometrics/face/FaceService;->access$5300(Lcom/android/server/biometrics/face/FaceService;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$5300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$5400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$5400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HSPLcom/android/server/biometrics/face/FaceService;->access$5500(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+PLcom/android/server/biometrics/face/FaceService;->access$5500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HSPLcom/android/server/biometrics/face/FaceService;->access$5600(Lcom/android/server/biometrics/face/FaceService;)J
+PLcom/android/server/biometrics/face/FaceService;->access$5600(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+PLcom/android/server/biometrics/face/FaceService;->access$5700(Lcom/android/server/biometrics/face/FaceService;)J
 PLcom/android/server/biometrics/face/FaceService;->access$6100(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$6200(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$6200(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HSPLcom/android/server/biometrics/face/FaceService;->access$6300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$6300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
+PLcom/android/server/biometrics/face/FaceService;->access$6400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$6400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HPLcom/android/server/biometrics/face/FaceService;->access$6500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)J
+PLcom/android/server/biometrics/face/FaceService;->access$6500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
+PLcom/android/server/biometrics/face/FaceService;->access$6600(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)J
 PLcom/android/server/biometrics/face/FaceService;->access$6600(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$6700(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$6700(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$6800(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/face/FaceService;->access$6800(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$6900(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/face/FaceService;->access$7000(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
@@ -11789,21 +12215,31 @@
 PLcom/android/server/biometrics/face/FaceService;->access$7800(Lcom/android/server/biometrics/face/FaceService;)I
 PLcom/android/server/biometrics/face/FaceService;->access$7900(Lcom/android/server/biometrics/face/FaceService;)I
 PLcom/android/server/biometrics/face/FaceService;->access$800(Lcom/android/server/biometrics/face/FaceService;)Landroid/app/NotificationManager;
+PLcom/android/server/biometrics/face/FaceService;->access$8000(Lcom/android/server/biometrics/face/FaceService;)I
 PLcom/android/server/biometrics/face/FaceService;->access$8000(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/ClientMonitor;
+PLcom/android/server/biometrics/face/FaceService;->access$8100(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/ClientMonitor;
 PLcom/android/server/biometrics/face/FaceService;->access$8100(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;)I
+PLcom/android/server/biometrics/face/FaceService;->access$8200(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;)I
 PLcom/android/server/biometrics/face/FaceService;->access$8202(Lcom/android/server/biometrics/face/FaceService;Z)Z
+PLcom/android/server/biometrics/face/FaceService;->access$8302(Lcom/android/server/biometrics/face/FaceService;Z)Z
 PLcom/android/server/biometrics/face/FaceService;->access$8400(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/face/FaceService;->access$8500(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/face/FaceService;->access$8600(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$8700(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 HSPLcom/android/server/biometrics/face/FaceService;->access$8800(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$8900(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 HSPLcom/android/server/biometrics/face/FaceService;->access$8902(Lcom/android/server/biometrics/face/FaceService;I)I
 PLcom/android/server/biometrics/face/FaceService;->access$900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$9000(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$9002(Lcom/android/server/biometrics/face/FaceService;I)I
+PLcom/android/server/biometrics/face/FaceService;->access$9100(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 HSPLcom/android/server/biometrics/face/FaceService;->access$9100(Lcom/android/server/biometrics/face/FaceService;)V
+PLcom/android/server/biometrics/face/FaceService;->access$9200(Lcom/android/server/biometrics/face/FaceService;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$9201(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/face/FaceService;->access$9301(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/face/FaceService;->access$9401(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
-PLcom/android/server/biometrics/face/FaceService;->access$9601(Lcom/android/server/biometrics/face/FaceService;JII)V
+HPLcom/android/server/biometrics/face/FaceService;->access$9601(Lcom/android/server/biometrics/face/FaceService;JII)V
+HPLcom/android/server/biometrics/face/FaceService;->access$9701(Lcom/android/server/biometrics/face/FaceService;JII)V
 PLcom/android/server/biometrics/face/FaceService;->access$9702(Lcom/android/server/biometrics/face/FaceService;J)J
 PLcom/android/server/biometrics/face/FaceService;->access$9802(Lcom/android/server/biometrics/face/FaceService;I)I
 PLcom/android/server/biometrics/face/FaceService;->access$9901(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
@@ -11853,37 +12289,41 @@
 PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7-RPI0PwwgOAZtsXq2j72pQWwMc;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;IIJI)V
 PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7-RPI0PwwgOAZtsXq2j72pQWwMc;->run()V
 HPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7nMWCt41OE3k8ihjPNPqB0O8POU;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;IIJLjava/util/ArrayList;)V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7nMWCt41OE3k8ihjPNPqB0O8POU;->run()V
+HPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7nMWCt41OE3k8ihjPNPqB0O8POU;->run()V
 PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$BJntfNoFTejPmUJ_45WFIwis8Nw;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;IIJI)V
 PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$BJntfNoFTejPmUJ_45WFIwis8Nw;->run()V
+HPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$I9ULJAHXA5Q3BYZs4m8TK6v5kUQ;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;JII)V
+HPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$I9ULJAHXA5Q3BYZs4m8TK6v5kUQ;->run()V
 HPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$N1Y2Zwqq-x5yDKQsDTj2KQ5q7g4;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;JII)V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$N1Y2Zwqq-x5yDKQsDTj2KQ5q7g4;->run()V
+HPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$N1Y2Zwqq-x5yDKQsDTj2KQ5q7g4;->run()V
 PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$cO88ecWuvWIBecLAEccxr5yeJK4;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;JII)V
 PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$cO88ecWuvWIBecLAEccxr5yeJK4;->run()V
 HSPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$YOMIOLvco2SvXVeJIulOSVKdX7A;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
 HSPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$YOMIOLvco2SvXVeJIulOSVKdX7A;->run()V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;-><init>(Landroid/hardware/fingerprint/IFingerprintService;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->cancelAuthenticationFromService(Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
-PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->hasEnrolledTemplates(ILjava/lang/String;)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->isHardwareDetected(Ljava/lang/String;)Z
+HPLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->hasEnrolledTemplates(ILjava/lang/String;)Z
+HPLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->isHardwareDetected(Ljava/lang/String;)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->prepareForAuthentication(ZLandroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiverInternal;Ljava/lang/String;IIII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->resetLockout([B)V
 PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->setActiveUser(I)V
 PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->startPreparedClient(I)V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintConstants;-><init>()V
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->acquireVendorCode()I
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->actionBiometricAuth()I
+HPLcom/android/server/biometrics/fingerprint/FingerprintConstants;->acquireVendorCode()I
+HPLcom/android/server/biometrics/fingerprint/FingerprintConstants;->actionBiometricAuth()I
 PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->actionBiometricEnroll()I
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->logTag()Ljava/lang/String;
+HPLcom/android/server/biometrics/fingerprint/FingerprintConstants;->logTag()Ljava/lang/String;
 PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->tagAuthToken()Ljava/lang/String;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$1;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onAcquired$1$FingerprintService$1(JII)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onAcquired_2_2$1$FingerprintService$1(JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onAuthenticated$2$FingerprintService$1(IIJLjava/util/ArrayList;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onEnrollResult$0$FingerprintService$1(IIJI)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onEnumerate$5$FingerprintService$1(IIJI)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onError$3$FingerprintService$1(JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onRemoved$4$FingerprintService$1(IIJI)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->onAcquired(JII)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->onAcquired_2_2(JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->onAuthenticated(JIILjava/util/ArrayList;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->onEnrollResult(JIII)V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$1;->onEnumerate(JIII)V
@@ -11891,6 +12331,7 @@
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->onRemoved(JIII)V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$2;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$2;->authenticate(JI)I
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$2;->authenticate(JILandroid/os/NativeHandle;)I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$2;->cancel()I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$2;->enroll([BIILjava/util/ArrayList;)I
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$2;->enumerate()I
@@ -11899,11 +12340,12 @@
 PLcom/android/server/biometrics/fingerprint/FingerprintService$BiometricPromptServiceListenerImpl;->onAcquired(JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$BiometricPromptServiceListenerImpl;->onError(JIII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZLandroid/hardware/biometrics/IBiometricNativeHandle;)V
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->handleFailedAttempt()I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->isFingerprint()Z
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->resetFailedAttempts()V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->resetFailedAttempts()V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->shouldFrameworkHandleLockout()Z
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->statsModality()I
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->statsModality()I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper$1;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;II[BZLjava/lang/String;[II)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper$1;->shouldVibrate()Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper$1;->statsModality()I
@@ -11913,19 +12355,21 @@
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Lcom/android/server/biometrics/fingerprint/FingerprintService$1;)V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->addLockoutResetCallback(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;Landroid/hardware/biometrics/IBiometricNativeHandle;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->cancelAuthenticationFromService(Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->cancelEnrollment(Landroid/os/IBinder;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->enroll(Landroid/os/IBinder;[BILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->getAuthenticatorId(Ljava/lang/String;)J
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->getAuthenticatorId(Ljava/lang/String;)J
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->getEnrolledFingerprints(ILjava/lang/String;)Ljava/util/List;
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->hasEnrolledFingerprints(ILjava/lang/String;)Z
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->isHardwareDetected(Ljava/lang/String;)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->postEnroll(Landroid/os/IBinder;)I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->preEnroll(Landroid/os/IBinder;)J
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->prepareForAuthentication(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiverInternal;Ljava/lang/String;IIII)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->prepareForAuthentication(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiverInternal;Ljava/lang/String;IIIILandroid/hardware/biometrics/IBiometricNativeHandle;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->remove(Landroid/os/IBinder;IIILandroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->rename(IILjava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->resetTimeout([B)V
@@ -11937,10 +12381,10 @@
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$ResetFailedAttemptsForUserRunnable;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$ResetFailedAttemptsForUserRunnable;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Lcom/android/server/biometrics/fingerprint/FingerprintService$1;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$ResetFailedAttemptsForUserRunnable;->run()V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onAcquired(JII)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onAcquired(JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onAuthenticationFailed(J)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onAuthenticationSucceeded(JLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onAuthenticationSucceeded(JLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onEnrollResult(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onError(JIII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onRemoved(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
@@ -11965,6 +12409,8 @@
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$2400(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$2500(Lcom/android/server/biometrics/fingerprint/FingerprintService;I)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$2600(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$2700(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$2800(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$2900(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$300(Lcom/android/server/biometrics/fingerprint/FingerprintService;I)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$3000(Lcom/android/server/biometrics/fingerprint/FingerprintService;I)V
@@ -11982,16 +12428,16 @@
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4500(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4600(Lcom/android/server/biometrics/fingerprint/FingerprintService;I)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4700(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4800(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;ZIII)Z
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4800(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;ZIII)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4900(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;ZIII)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$500(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/os/IBinder;)J
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5001(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)J
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5001(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)J
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5100(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5200(Lcom/android/server/biometrics/fingerprint/FingerprintService;)I
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$600(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6200(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6400(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6500(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6600(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
@@ -12001,13 +12447,13 @@
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$700(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/os/IBinder;)I
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7001(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7101(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7501(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7601(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7501(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7601(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7701(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$800(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$900(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->cancelLockoutResetForUser(I)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->checkAppOps(ILjava/lang/String;)Z
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->checkAppOps(ILjava/lang/String;)Z
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->checkUseBiometricPermission()V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->dumpInternal(Ljava/io/PrintWriter;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->dumpProto(Ljava/io/FileDescriptor;)V
@@ -12020,7 +12466,7 @@
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutBroadcastPermission()Ljava/lang/String;
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutMode()I
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutResetIntent()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutResetIntentForUser(I)Landroid/app/PendingIntent;
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutResetIntentForUser(I)Landroid/app/PendingIntent;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getManageBiometricPermission()Ljava/lang/String;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getTag()Ljava/lang/String;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->hasEnrolledBiometrics(I)Z
@@ -12135,10 +12581,11 @@
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$0VKz9ecFqvfFXzRrfaz-Pf5wW2s;-><clinit>()V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$0VKz9ecFqvfFXzRrfaz-Pf5wW2s;-><init>()V
 HPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$0VKz9ecFqvfFXzRrfaz-Pf5wW2s;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$2$-LNsQ_6iDwt_SHib_WgAf70VWCI;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$2$-LNsQ_6iDwt_SHib_WgAf70VWCI;-><init>(Ljava/lang/String;)V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$2$-LNsQ_6iDwt_SHib_WgAf70VWCI;->test(Ljava/lang/Object;)Z
-PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$2$dm_CTD4HzQO9qRu6lX0jCG6NMCM;-><init>(Ljava/lang/String;)V
-PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$2$dm_CTD4HzQO9qRu6lX0jCG6NMCM;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$2$dm_CTD4HzQO9qRu6lX0jCG6NMCM;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$2$dm_CTD4HzQO9qRu6lX0jCG6NMCM;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$CompanionDeviceManagerImpl$NreYX1A7ahBgly9jo0iR-2otX-Q;-><init>(ZLjava/lang/String;)V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$CompanionDeviceManagerImpl$bdv3Vfadbb8b9nrSgkARO4oYOXU;-><clinit>()V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$CompanionDeviceManagerImpl$bdv3Vfadbb8b9nrSgkARO4oYOXU;-><init>()V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$CompanionDeviceManagerImpl$m9NLTVY7N8yX_cTeQGMddCEpCU0;-><init>(Landroid/companion/AssociationRequest;Ljava/lang/String;Landroid/companion/IFindDeviceCallback;)V
@@ -12150,9 +12597,9 @@
 HPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$CompanionDeviceManagerImpl$yIqg4YLiQouxnVJakZERWIZnPYU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$_wqnNKMj0AXNyFu-i6lXk6tA3xs;-><init>(Ljava/util/Set;)V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$_wqnNKMj0AXNyFu-i6lXk6tA3xs;->accept(Ljava/lang/Object;)V
-PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;-><clinit>()V
-PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;-><init>()V
-PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;-><clinit>()V
+HSPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;-><init>()V
+HSPLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$d_RLJQyt7Hah5vpYlYLeoWXxACU;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$d_RLJQyt7Hah5vpYlYLeoWXxACU;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$wG7upTzVFwCMCLI1zfTZW4dftak;-><init>(Landroid/companion/Association;)V
@@ -12170,9 +12617,9 @@
 PLcom/android/server/companion/CompanionDeviceManagerService$1;->onPackageModified(Ljava/lang/String;)V
 HSPLcom/android/server/companion/CompanionDeviceManagerService$2;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
 PLcom/android/server/companion/CompanionDeviceManagerService$2;->lambda$onPackageRemoved$0(Ljava/lang/String;Landroid/companion/Association;)Z
-PLcom/android/server/companion/CompanionDeviceManagerService$2;->lambda$onPackageRemoved$1(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
+HSPLcom/android/server/companion/CompanionDeviceManagerService$2;->lambda$onPackageRemoved$1(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
 HPLcom/android/server/companion/CompanionDeviceManagerService$2;->onPackageModified(Ljava/lang/String;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$2;->onPackageRemoved(Ljava/lang/String;I)V
+HSPLcom/android/server/companion/CompanionDeviceManagerService$2;->onPackageRemoved(Ljava/lang/String;I)V
 HSPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->associate(Landroid/companion/AssociationRequest;Landroid/companion/IFindDeviceCallback;Ljava/lang/String;)V
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->checkCallerIsSystemOr(Ljava/lang/String;)V
@@ -12181,15 +12628,16 @@
 HPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->checkUsesFeature(Ljava/lang/String;I)V
 HPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->getAssociations(Ljava/lang/String;I)Ljava/util/List;
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->hasNotificationAccess(Landroid/content/ComponentName;)Z
+PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->isDeviceAssociatedForWifiConnection(Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->lambda$associate$0(Landroid/companion/AssociationRequest;Ljava/lang/String;Landroid/companion/IFindDeviceCallback;Landroid/companion/ICompanionDeviceDiscoveryService;)Ljava/util/concurrent/CompletableFuture;
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->lambda$associate$1$CompanionDeviceManagerService$CompanionDeviceManagerImpl(Landroid/companion/IFindDeviceCallback;Landroid/companion/Association;Ljava/lang/Throwable;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->lambda$getAssociations$2(Landroid/companion/Association;)Ljava/lang/String;
+HPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->lambda$getAssociations$2(Landroid/companion/Association;)Ljava/lang/String;
 HPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->requestNotificationAccess(Landroid/content/ComponentName;)Landroid/app/PendingIntent;
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->stopScan(Landroid/companion/AssociationRequest;Landroid/companion/IFindDeviceCallback;Ljava/lang/String;)V
 HSPLcom/android/server/companion/CompanionDeviceManagerService;-><clinit>()V
 HSPLcom/android/server/companion/CompanionDeviceManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->access$000(Lcom/android/server/companion/CompanionDeviceManagerService;Ljava/util/function/Function;I)V
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->access$000(Lcom/android/server/companion/CompanionDeviceManagerService;Ljava/util/function/Function;I)V
 HPLcom/android/server/companion/CompanionDeviceManagerService;->access$100(Lcom/android/server/companion/CompanionDeviceManagerService;ILjava/lang/String;)Ljava/util/Set;
 HPLcom/android/server/companion/CompanionDeviceManagerService;->access$1000()Z
 HPLcom/android/server/companion/CompanionDeviceManagerService;->access$1100(Lcom/android/server/companion/CompanionDeviceManagerService;)Lcom/android/internal/app/IAppOpsService;
@@ -12208,23 +12656,23 @@
 PLcom/android/server/companion/CompanionDeviceManagerService;->containsEither([Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
 HPLcom/android/server/companion/CompanionDeviceManagerService;->getCallingUserId()I
 HPLcom/android/server/companion/CompanionDeviceManagerService;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/companion/CompanionDeviceManagerService;->getStorageFileForUser(I)Landroid/util/AtomicFile;
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->getStorageFileForUser(I)Landroid/util/AtomicFile;
 HPLcom/android/server/companion/CompanionDeviceManagerService;->isCallerSystem()Z
 HPLcom/android/server/companion/CompanionDeviceManagerService;->lambda$getPackageInfo$1(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Integer;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/companion/CompanionDeviceManagerService;->lambda$getStorageFileForUser$5(Ljava/lang/Integer;)Landroid/util/AtomicFile;
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->lambda$getStorageFileForUser$5(Ljava/lang/Integer;)Landroid/util/AtomicFile;
 PLcom/android/server/companion/CompanionDeviceManagerService;->lambda$recordAssociation$2(Landroid/companion/Association;Ljava/util/Set;)Ljava/util/Set;
 PLcom/android/server/companion/CompanionDeviceManagerService;->lambda$updateAssociations$3(Lorg/xmlpull/v1/XmlSerializer;Landroid/companion/Association;)V
 PLcom/android/server/companion/CompanionDeviceManagerService;->lambda$updateAssociations$4(Ljava/util/Set;Ljava/io/FileOutputStream;)V
 PLcom/android/server/companion/CompanionDeviceManagerService;->lambda$wnUkAY8uXyjMGM59-bNpzLLMJ1I(Lcom/android/server/companion/CompanionDeviceManagerService;Landroid/content/pm/PackageInfo;)V
 HSPLcom/android/server/companion/CompanionDeviceManagerService;->onStart()V
 PLcom/android/server/companion/CompanionDeviceManagerService;->onUnlockUser(I)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->readAllAssociations(I)Ljava/util/Set;
-HPLcom/android/server/companion/CompanionDeviceManagerService;->readAllAssociations(ILjava/lang/String;)Ljava/util/Set;
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->readAllAssociations(I)Ljava/util/Set;
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->readAllAssociations(ILjava/lang/String;)Ljava/util/Set;
 PLcom/android/server/companion/CompanionDeviceManagerService;->recordAssociation(Landroid/companion/Association;)V
 HSPLcom/android/server/companion/CompanionDeviceManagerService;->registerPackageMonitor()V
 PLcom/android/server/companion/CompanionDeviceManagerService;->unlinkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;I)Landroid/os/IInterface;
 PLcom/android/server/companion/CompanionDeviceManagerService;->updateAssociations(Ljava/util/function/Function;)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->updateAssociations(Ljava/util/function/Function;I)V
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->updateAssociations(Ljava/util/function/Function;I)V
 PLcom/android/server/companion/CompanionDeviceManagerService;->updateSpecialAccessPermissionAsSystem(Landroid/content/pm/PackageInfo;)V
 PLcom/android/server/companion/CompanionDeviceManagerService;->updateSpecialAccessPermissionForAssociatedPackage(Ljava/lang/String;I)V
 HSPLcom/android/server/compat/CompatChange;-><init>(Lcom/android/server/compat/config/Change;)V
@@ -12246,7 +12694,8 @@
 HSPLcom/android/server/compat/CompatConfig;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
 HSPLcom/android/server/compat/OverrideValidatorImpl;-><init>(Lcom/android/internal/compat/AndroidBuildClassifier;Landroid/content/Context;Lcom/android/server/compat/CompatConfig;)V
 HSPLcom/android/server/compat/PlatformCompat;-><init>(Landroid/content/Context;)V
-PLcom/android/server/compat/PlatformCompat;->checkCompatChangeLogPermission()V
+HSPLcom/android/server/compat/PlatformCompat;->checkCompatChangeLogPermission()V
+HSPLcom/android/server/compat/PlatformCompat;->checkCompatChangeReadAndLogPermission()V
 HSPLcom/android/server/compat/PlatformCompat;->checkCompatChangeReadPermission()V
 PLcom/android/server/compat/PlatformCompat;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/compat/PlatformCompat;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
@@ -12319,7 +12768,7 @@
 PLcom/android/server/connectivity/DefaultNetworkMetrics;->listEventsAsProto()Ljava/util/List;
 PLcom/android/server/connectivity/DefaultNetworkMetrics;->listEventsAsProto(Ljava/util/List;)V
 HPLcom/android/server/connectivity/DefaultNetworkMetrics;->logCurrentDefaultNetwork(JLcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/connectivity/DefaultNetworkMetrics;->logDefaultNetworkEvent(JLcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/connectivity/DefaultNetworkMetrics;->logDefaultNetworkEvent(JLcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 PLcom/android/server/connectivity/DefaultNetworkMetrics;->logDefaultNetworkValidity(JZ)V
 HSPLcom/android/server/connectivity/DefaultNetworkMetrics;->newDefaultNetwork(JLcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/connectivity/DefaultNetworkMetrics;->printEvent(JLjava/io/PrintWriter;Landroid/net/metrics/DefaultNetworkEvent;)V
@@ -12332,7 +12781,7 @@
 PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->access$100(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;Landroid/net/LinkProperties;)Landroid/net/LinkProperties;
 HPLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->access$200(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
 HPLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->access$400(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;[Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->fillInValidatedPrivateDns(Landroid/net/LinkProperties;)Landroid/net/LinkProperties;
+HPLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->fillInValidatedPrivateDns(Landroid/net/LinkProperties;)Landroid/net/LinkProperties;
 HPLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->hasValidatedServer()Z
 HPLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->lambda$fillInValidatedPrivateDns$0(Landroid/net/LinkProperties;Landroid/util/Pair;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses$ValidationStatus;)V
 HPLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->updateStatus(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
@@ -12348,7 +12797,7 @@
 HPLcom/android/server/connectivity/DnsManager;->getPrivateDnsMode(Landroid/content/ContentResolver;)Ljava/lang/String;
 HSPLcom/android/server/connectivity/DnsManager;->getPrivateDnsSettingsUris()[Landroid/net/Uri;
 HPLcom/android/server/connectivity/DnsManager;->getStringSetting(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/connectivity/DnsManager;->lambda$setDnsConfigurationForNetwork$0(Landroid/net/LinkProperties;Ljava/net/InetAddress;)Z
+HPLcom/android/server/connectivity/DnsManager;->lambda$setDnsConfigurationForNetwork$0(Landroid/net/LinkProperties;Ljava/net/InetAddress;)Z
 HPLcom/android/server/connectivity/DnsManager;->removeNetwork(Landroid/net/Network;)V
 HPLcom/android/server/connectivity/DnsManager;->setDefaultDnsSystemProperties(Ljava/util/Collection;)V
 HPLcom/android/server/connectivity/DnsManager;->setDnsConfigurationForNetwork(ILandroid/net/LinkProperties;Z)V
@@ -12373,7 +12822,7 @@
 PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setIpManagerEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/IpManagerEvent;)V
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setIpReachabilityEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/IpReachabilityEvent;)V
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setNetworkEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/NetworkEvent;)V
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setRaEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/RaEvent;)V
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setRaEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/RaEvent;)V
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setValidationProbeEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/ValidationProbeEvent;)V
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toPairArray(Landroid/util/SparseIntArray;)[Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/ConnectivityMetricsEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
@@ -12382,7 +12831,7 @@
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/DnsEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
 PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/WakeupStats;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Ljava/util/List;)Ljava/util/List;
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->transportToLinkLayer(I)I
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->transportToLinkLayer(I)I
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->transportsToLinkLayer(J)I
 HSPLcom/android/server/connectivity/IpConnectivityMetrics$Impl;-><init>(Lcom/android/server/connectivity/IpConnectivityMetrics;)V
 HSPLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->addNetdEventCallback(ILandroid/net/INetdEventCallback;)Z
@@ -12539,7 +12988,7 @@
 HPLcom/android/server/connectivity/Nat464Xlat;->lambda$interfaceLinkStateChanged$0$Nat464Xlat(Ljava/lang/String;Z)V
 PLcom/android/server/connectivity/Nat464Xlat;->lambda$interfaceRemoved$1$Nat464Xlat(Ljava/lang/String;)V
 HPLcom/android/server/connectivity/Nat464Xlat;->leaveStartedState()V
-PLcom/android/server/connectivity/Nat464Xlat;->makeLinkProperties(Landroid/net/LinkAddress;)Landroid/net/LinkProperties;
+HPLcom/android/server/connectivity/Nat464Xlat;->makeLinkProperties(Landroid/net/LinkAddress;)Landroid/net/LinkProperties;
 HPLcom/android/server/connectivity/Nat464Xlat;->requiresClat(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
 PLcom/android/server/connectivity/Nat464Xlat;->setNat64Prefix(Landroid/net/IpPrefix;)V
 HPLcom/android/server/connectivity/Nat464Xlat;->shouldStartClat(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
@@ -12712,7 +13161,7 @@
 PLcom/android/server/connectivity/PermissionMonitor;->loge(Ljava/lang/String;)V
 PLcom/android/server/connectivity/PermissionMonitor;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
 HPLcom/android/server/connectivity/PermissionMonitor;->onPackageAdded(Ljava/lang/String;I)V
-HPLcom/android/server/connectivity/PermissionMonitor;->onPackageRemoved(I)V
+HSPLcom/android/server/connectivity/PermissionMonitor;->onPackageRemoved(I)V
 PLcom/android/server/connectivity/PermissionMonitor;->onUserAdded(I)V
 PLcom/android/server/connectivity/PermissionMonitor;->onUserRemoved(I)V
 PLcom/android/server/connectivity/PermissionMonitor;->onVpnUidRangesAdded(Ljava/lang/String;Ljava/util/Set;I)V
@@ -12742,6 +13191,7 @@
 PLcom/android/server/connectivity/Vpn$1;->unwanted()V
 HSPLcom/android/server/connectivity/Vpn$2;-><init>(Lcom/android/server/connectivity/Vpn;)V
 HPLcom/android/server/connectivity/Vpn$2;->interfaceRemoved(Ljava/lang/String;)V
+PLcom/android/server/connectivity/Vpn$2;->interfaceStatusChanged(Ljava/lang/String;Z)V
 PLcom/android/server/connectivity/Vpn$Connection;-><init>(Lcom/android/server/connectivity/Vpn;)V
 PLcom/android/server/connectivity/Vpn$Connection;-><init>(Lcom/android/server/connectivity/Vpn;Lcom/android/server/connectivity/Vpn$1;)V
 PLcom/android/server/connectivity/Vpn$Connection;->access$000(Lcom/android/server/connectivity/Vpn$Connection;)Landroid/os/IBinder;
@@ -12751,9 +13201,12 @@
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;-><init>(Lcom/android/server/connectivity/Vpn;Lcom/android/internal/net/VpnConfig;[Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/net/VpnProfile;)V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->access$1000(Lcom/android/server/connectivity/Vpn$LegacyVpnRunner;)Ljava/util/concurrent/atomic/AtomicInteger;
-PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->bringup()V
-PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->checkInterruptAndDelay(Z)V
+PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->access$1100(Lcom/android/server/connectivity/Vpn$LegacyVpnRunner;)Ljava/lang/String;
+HPLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->bringup()V
+PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->check(Ljava/lang/String;)V
+HPLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->checkInterruptAndDelay(Z)V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->exit()V
+PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->exitIfOuterInterfaceIs(Ljava/lang/String;)V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->run()V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->waitForDaemonsToStop()V
 HSPLcom/android/server/connectivity/Vpn$SystemServices;-><init>(Landroid/content/Context;)V
@@ -12761,12 +13214,16 @@
 HSPLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecureGetStringForUser(Ljava/lang/String;I)Ljava/lang/String;
 PLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecurePutIntForUser(Ljava/lang/String;II)V
 PLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecurePutStringForUser(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/connectivity/Vpn$VpnRunner;-><init>(Lcom/android/server/connectivity/Vpn;Ljava/lang/String;)V
 HSPLcom/android/server/connectivity/Vpn;-><clinit>()V
 HSPLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;I)V
 HSPLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;ILcom/android/server/connectivity/Vpn$SystemServices;)V
+PLcom/android/server/connectivity/Vpn;->access$1200(Lcom/android/server/connectivity/Vpn;)Landroid/net/INetworkManagementEventObserver;
 PLcom/android/server/connectivity/Vpn;->access$1300(Lcom/android/server/connectivity/Vpn;)V
 PLcom/android/server/connectivity/Vpn;->access$1400(Lcom/android/server/connectivity/Vpn;)V
 PLcom/android/server/connectivity/Vpn;->access$1500(Lcom/android/server/connectivity/Vpn;)Landroid/net/NetworkInfo;
+PLcom/android/server/connectivity/Vpn;->access$200(Lcom/android/server/connectivity/Vpn;)Lcom/android/server/connectivity/Vpn$LegacyVpnRunner;
+PLcom/android/server/connectivity/Vpn;->access$200(Lcom/android/server/connectivity/Vpn;)Lcom/android/server/connectivity/Vpn$VpnRunner;
 PLcom/android/server/connectivity/Vpn;->access$300(Lcom/android/server/connectivity/Vpn;)Ljava/lang/String;
 PLcom/android/server/connectivity/Vpn;->access$302(Lcom/android/server/connectivity/Vpn;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/connectivity/Vpn;->access$400(Lcom/android/server/connectivity/Vpn;Ljava/lang/String;)I
@@ -12787,15 +13244,15 @@
 PLcom/android/server/connectivity/Vpn;->doesPackageHaveAppop(Landroid/content/Context;Ljava/lang/String;I)Z
 HSPLcom/android/server/connectivity/Vpn;->doesPackageTargetAtLeastQ(Ljava/lang/String;)Z
 HPLcom/android/server/connectivity/Vpn;->enforceControlPermission()V
-PLcom/android/server/connectivity/Vpn;->enforceControlPermissionOrInternalCaller()V
+HPLcom/android/server/connectivity/Vpn;->enforceControlPermissionOrInternalCaller()V
 PLcom/android/server/connectivity/Vpn;->enforceSettingsPermission()V
 HPLcom/android/server/connectivity/Vpn;->establish(Lcom/android/internal/net/VpnConfig;)Landroid/os/ParcelFileDescriptor;
 PLcom/android/server/connectivity/Vpn;->findIPv4DefaultRoute(Landroid/net/LinkProperties;)Landroid/net/RouteInfo;
 PLcom/android/server/connectivity/Vpn;->getAlwaysOnPackage()Ljava/lang/String;
 HSPLcom/android/server/connectivity/Vpn;->getAppUid(Ljava/lang/String;I)I
 PLcom/android/server/connectivity/Vpn;->getAppsUids(Ljava/util/List;I)Ljava/util/SortedSet;
-PLcom/android/server/connectivity/Vpn;->getLegacyVpnInfo()Lcom/android/internal/net/LegacyVpnInfo;
-PLcom/android/server/connectivity/Vpn;->getLegacyVpnInfoPrivileged()Lcom/android/internal/net/LegacyVpnInfo;
+HPLcom/android/server/connectivity/Vpn;->getLegacyVpnInfo()Lcom/android/internal/net/LegacyVpnInfo;
+HPLcom/android/server/connectivity/Vpn;->getLegacyVpnInfoPrivileged()Lcom/android/internal/net/LegacyVpnInfo;
 HPLcom/android/server/connectivity/Vpn;->getLockdown()Z
 HPLcom/android/server/connectivity/Vpn;->getNetId()I
 HPLcom/android/server/connectivity/Vpn;->getUnderlyingNetworks()[Landroid/net/Network;
@@ -12806,6 +13263,7 @@
 HSPLcom/android/server/connectivity/Vpn;->isCurrentPreparedPackage(Ljava/lang/String;)Z
 HSPLcom/android/server/connectivity/Vpn;->isNullOrLegacyVpn(Ljava/lang/String;)Z
 HSPLcom/android/server/connectivity/Vpn;->isRunningLocked()Z
+HPLcom/android/server/connectivity/Vpn;->isSettingsVpnLocked()Z
 PLcom/android/server/connectivity/Vpn;->isVpnPreConsented(Landroid/content/Context;Ljava/lang/String;I)Z
 PLcom/android/server/connectivity/Vpn;->isVpnServicePreConsented(Landroid/content/Context;Ljava/lang/String;)Z
 HPLcom/android/server/connectivity/Vpn;->isVpnUserPreConsented(Ljava/lang/String;)Z
@@ -12832,8 +13290,10 @@
 PLcom/android/server/connectivity/Vpn;->startLegacyVpn(Lcom/android/internal/net/VpnProfile;Landroid/security/KeyStore;Landroid/net/LinkProperties;)V
 PLcom/android/server/connectivity/Vpn;->startLegacyVpnPrivileged(Lcom/android/internal/net/VpnProfile;Landroid/security/KeyStore;Landroid/net/LinkProperties;)V
 PLcom/android/server/connectivity/Vpn;->stopLegacyVpnPrivileged()V
+PLcom/android/server/connectivity/Vpn;->stopVpnRunnerPrivileged()V
 HSPLcom/android/server/connectivity/Vpn;->updateAlwaysOnNotification(Landroid/net/NetworkInfo$DetailedState;)V
 HSPLcom/android/server/connectivity/Vpn;->updateCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
+PLcom/android/server/connectivity/Vpn;->updateLinkPropertiesInPlaceIfPossible(Landroid/net/NetworkAgent;Lcom/android/internal/net/VpnConfig;)Z
 HPLcom/android/server/connectivity/Vpn;->updateState(Landroid/net/NetworkInfo$DetailedState;Ljava/lang/String;)V
 HSPLcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;-><init>(Lcom/android/server/content/ContentService;)V
 HSPLcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;->getPackages(Ljava/lang/String;I)[Ljava/lang/String;
@@ -12847,13 +13307,14 @@
 HPLcom/android/server/content/-$$Lambda$SyncManager$9EoLpTk5JrHZn9R-uS0lqCVrpRw;-><init>(Ljava/lang/StringBuilder;Lcom/android/server/content/SyncManager$PrintTable;)V
 HPLcom/android/server/content/-$$Lambda$SyncManager$9EoLpTk5JrHZn9R-uS0lqCVrpRw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/content/-$$Lambda$SyncManager$BRG-YMU-C9QC6JWVXAvsoEZC6Zc;-><init>(Lcom/android/server/content/SyncManager;Landroid/accounts/AccountAndUser;IILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
+PLcom/android/server/content/-$$Lambda$SyncManager$BRG-YMU-C9QC6JWVXAvsoEZC6Zc;->onResult(Landroid/os/Bundle;)V
 HSPLcom/android/server/content/-$$Lambda$SyncManager$CjX_2uO4O4xJPQnKzeqvGwd87Dc;-><init>(Lcom/android/server/content/SyncManager;I)V
 HSPLcom/android/server/content/-$$Lambda$SyncManager$CjX_2uO4O4xJPQnKzeqvGwd87Dc;->run()V
 HPLcom/android/server/content/-$$Lambda$SyncManager$EMXCZP9LDjgUTYbLsEoVu9Ccntw;-><init>(Lcom/android/server/content/SyncManager;)V
 HPLcom/android/server/content/-$$Lambda$SyncManager$EMXCZP9LDjgUTYbLsEoVu9Ccntw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/content/-$$Lambda$SyncManager$HhiSFjEoPA_Hnv3xYZGfwkalc68;-><init>(Lcom/android/server/content/SyncManager;)V
 PLcom/android/server/content/-$$Lambda$SyncManager$HhiSFjEoPA_Hnv3xYZGfwkalc68;->onAppPermissionChanged(Landroid/accounts/Account;I)V
-PLcom/android/server/content/-$$Lambda$SyncManager$XKEiBZ17uDgUCTwf_kh9_pH7usQ;-><init>(Lcom/android/server/content/SyncManager;Landroid/accounts/AccountAndUser;ILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
+HPLcom/android/server/content/-$$Lambda$SyncManager$XKEiBZ17uDgUCTwf_kh9_pH7usQ;-><init>(Lcom/android/server/content/SyncManager;Landroid/accounts/AccountAndUser;ILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
 PLcom/android/server/content/-$$Lambda$SyncManager$XKEiBZ17uDgUCTwf_kh9_pH7usQ;->onReady()V
 PLcom/android/server/content/-$$Lambda$SyncManager$ag0YGuZ1oL06fytmNlyErbNyYcw;-><clinit>()V
 PLcom/android/server/content/-$$Lambda$SyncManager$ag0YGuZ1oL06fytmNlyErbNyYcw;-><init>()V
@@ -12907,13 +13368,14 @@
 HPLcom/android/server/content/ContentService;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V
 PLcom/android/server/content/ContentService;->cancelSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)V
 HPLcom/android/server/content/ContentService;->cancelSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)V
-HPLcom/android/server/content/ContentService;->checkUriPermission(Landroid/net/Uri;IIII)I
+HSPLcom/android/server/content/ContentService;->checkUriPermission(Landroid/net/Uri;IIII)I
 HPLcom/android/server/content/ContentService;->clampPeriod(J)J
 HPLcom/android/server/content/ContentService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/content/ContentService;->enforceCrossUserPermission(ILjava/lang/String;)V
 HPLcom/android/server/content/ContentService;->enforceNonFullCrossUserPermission(ILjava/lang/String;)V
 HPLcom/android/server/content/ContentService;->findOrCreateCacheLocked(ILjava/lang/String;)Landroid/util/ArrayMap;
 HPLcom/android/server/content/ContentService;->getCache(Ljava/lang/String;Landroid/net/Uri;I)Landroid/os/Bundle;
+PLcom/android/server/content/ContentService;->getCurrentSyncsAsUser(I)Ljava/util/List;
 HPLcom/android/server/content/ContentService;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
 HPLcom/android/server/content/ContentService;->getIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;I)I
 HPLcom/android/server/content/ContentService;->getMasterSyncAutomatically()Z
@@ -12928,6 +13390,7 @@
 HSPLcom/android/server/content/ContentService;->getSyncExemptionAndCleanUpExtrasForCaller(ILandroid/os/Bundle;)I
 HSPLcom/android/server/content/ContentService;->getSyncExemptionForCaller(I)I
 HSPLcom/android/server/content/ContentService;->getSyncManager()Lcom/android/server/content/SyncManager;
+HPLcom/android/server/content/ContentService;->getSyncStatusAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)Landroid/content/SyncStatusInfo;
 HSPLcom/android/server/content/ContentService;->handleIncomingUser(Landroid/net/Uri;IIIZI)I
 HSPLcom/android/server/content/ContentService;->invalidateCacheLocked(ILjava/lang/String;Landroid/net/Uri;)V
 HPLcom/android/server/content/ContentService;->isSyncActive(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Z
@@ -13038,7 +13501,7 @@
 PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck$1;->onUnsyncableAccountDone(Z)V
 HPLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;-><init>(Landroid/content/pm/RegisteredServicesCache$ServiceInfo;Lcom/android/server/content/SyncManager$OnReadyCallback;)V
 HPLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;->access$2400(Lcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;)V
-PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;->onReady()V
+HPLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;->onReady()V
 PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/content/SyncManager$PrintTable;-><init>(I)V
@@ -13092,10 +13555,10 @@
 PLcom/android/server/content/SyncManager;->access$1576(Lcom/android/server/content/SyncManager;I)Z
 PLcom/android/server/content/SyncManager;->access$1600(Lcom/android/server/content/SyncManager;)Z
 HPLcom/android/server/content/SyncManager;->access$1700(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncManager$SyncHandler;
-PLcom/android/server/content/SyncManager;->access$1900(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/content/SyncResult;)V
+HPLcom/android/server/content/SyncManager;->access$1900(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/content/SyncResult;)V
 PLcom/android/server/content/SyncManager;->access$200(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
 HPLcom/android/server/content/SyncManager;->access$2000(Lcom/android/server/content/SyncManager;)Landroid/content/Context;
-PLcom/android/server/content/SyncManager;->access$2100(Lcom/android/server/content/SyncManager;)Lcom/android/internal/app/IBatteryStats;
+HPLcom/android/server/content/SyncManager;->access$2100(Lcom/android/server/content/SyncManager;)Lcom/android/internal/app/IBatteryStats;
 HPLcom/android/server/content/SyncManager;->access$2600(Lcom/android/server/content/SyncManager;)Landroid/os/PowerManager$WakeLock;
 HPLcom/android/server/content/SyncManager;->access$2700(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncOperation;J)V
 PLcom/android/server/content/SyncManager;->access$2800(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
@@ -13177,6 +13640,7 @@
 HSPLcom/android/server/content/SyncManager;->lambda$onStartUser$1$SyncManager(I)V
 PLcom/android/server/content/SyncManager;->lambda$onStopUser$3$SyncManager(I)V
 PLcom/android/server/content/SyncManager;->lambda$onUnlockUser$2$SyncManager(I)V
+PLcom/android/server/content/SyncManager;->lambda$scheduleSync$4$SyncManager(Landroid/accounts/AccountAndUser;IILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/content/SyncManager;->lambda$scheduleSync$5$SyncManager(Landroid/accounts/AccountAndUser;ILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
 PLcom/android/server/content/SyncManager;->lambda$sendOnUnsyncableAccount$12(Landroid/content/Context;Lcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;)V
 HPLcom/android/server/content/SyncManager;->lambda$static$6(Lcom/android/server/content/SyncOperation;Lcom/android/server/content/SyncOperation;)I
@@ -13193,7 +13657,7 @@
 HPLcom/android/server/content/SyncManager;->postScheduleSyncMessage(Lcom/android/server/content/SyncOperation;J)V
 HPLcom/android/server/content/SyncManager;->printTwoDigitNumber(Ljava/lang/StringBuilder;JCZ)Z
 HPLcom/android/server/content/SyncManager;->readDataConnectionState()Z
-PLcom/android/server/content/SyncManager;->readyToSync(I)Z
+HPLcom/android/server/content/SyncManager;->readyToSync(I)Z
 HPLcom/android/server/content/SyncManager;->removePeriodicSync(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;Ljava/lang/String;)V
 PLcom/android/server/content/SyncManager;->removeStaleAccounts()V
 HPLcom/android/server/content/SyncManager;->removeSyncsForAuthority(Lcom/android/server/content/SyncStorageEngine$EndPoint;Ljava/lang/String;)V
@@ -13237,7 +13701,7 @@
 HPLcom/android/server/content/SyncOperation;->extrasToStringBuilder(Landroid/os/Bundle;Ljava/lang/StringBuilder;)V
 PLcom/android/server/content/SyncOperation;->findPriority()I
 PLcom/android/server/content/SyncOperation;->ignoreBackoff()Z
-PLcom/android/server/content/SyncOperation;->isAppStandbyExempted()Z
+HPLcom/android/server/content/SyncOperation;->isAppStandbyExempted()Z
 HPLcom/android/server/content/SyncOperation;->isConflict(Lcom/android/server/content/SyncOperation;)Z
 PLcom/android/server/content/SyncOperation;->isDerivedFromFailedPeriodicSync()Z
 HPLcom/android/server/content/SyncOperation;->isExpedited()Z
@@ -13285,6 +13749,7 @@
 HPLcom/android/server/content/SyncStorageEngine;->getCopyOfAuthorityWithSyncStatus(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Landroid/util/Pair;
 HPLcom/android/server/content/SyncStorageEngine;->getCurrentDayLocked()I
 HPLcom/android/server/content/SyncStorageEngine;->getCurrentSyncs(I)Ljava/util/List;
+PLcom/android/server/content/SyncStorageEngine;->getCurrentSyncsCopy(IZ)Ljava/util/List;
 HPLcom/android/server/content/SyncStorageEngine;->getCurrentSyncsLocked(I)Ljava/util/List;
 PLcom/android/server/content/SyncStorageEngine;->getDayStatistics()[Lcom/android/server/content/SyncStorageEngine$DayStats;
 HPLcom/android/server/content/SyncStorageEngine;->getDelayUntilTime(Lcom/android/server/content/SyncStorageEngine$EndPoint;)J
@@ -13293,6 +13758,7 @@
 HSPLcom/android/server/content/SyncStorageEngine;->getOrCreateAuthorityLocked(Lcom/android/server/content/SyncStorageEngine$EndPoint;IZ)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
 HPLcom/android/server/content/SyncStorageEngine;->getOrCreateSyncStatusLocked(I)Landroid/content/SyncStatusInfo;
 HSPLcom/android/server/content/SyncStorageEngine;->getSingleton()Lcom/android/server/content/SyncStorageEngine;
+HPLcom/android/server/content/SyncStorageEngine;->getStatusByAuthority(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Landroid/content/SyncStatusInfo;
 HPLcom/android/server/content/SyncStorageEngine;->getSyncAutomatically(Landroid/accounts/Account;ILjava/lang/String;)Z
 HPLcom/android/server/content/SyncStorageEngine;->getSyncHistory()Ljava/util/ArrayList;
 HSPLcom/android/server/content/SyncStorageEngine;->init(Landroid/content/Context;Landroid/os/Looper;)V
@@ -13350,14 +13816,16 @@
 PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$6vI15KqJwo_ruaAABrGMvkwVRt4;->run()V
 PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$Qe-DhsP4OR9GyoofNgVlcOk-1so;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;Ljava/lang/String;)V
 PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$Qe-DhsP4OR9GyoofNgVlcOk-1so;->run()V
-PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureServerSession$PKv4-aNj3xMYOeCpzUQZDD2iG0o;-><init>(Lcom/android/server/contentcapture/ContentCaptureServerSession;)V
+HPLcom/android/server/contentcapture/-$$Lambda$ContentCaptureServerSession$PKv4-aNj3xMYOeCpzUQZDD2iG0o;-><init>(Lcom/android/server/contentcapture/ContentCaptureServerSession;)V
 HPLcom/android/server/contentcapture/-$$Lambda$ContentCaptureServerSession$PKv4-aNj3xMYOeCpzUQZDD2iG0o;->binderDied()V
 HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$12wkbjo54EUwTPFKOuEn42KWKFg;-><init>(Landroid/service/contentcapture/ActivityEvent;)V
 HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$12wkbjo54EUwTPFKOuEn42KWKFg;->run(Landroid/os/IInterface;)V
-PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$PMsA3CmwChlM0Qy__Uy6Yr5CFzk;-><init>(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;I)V
+HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$PMsA3CmwChlM0Qy__Uy6Yr5CFzk;-><init>(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;I)V
 HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$PMsA3CmwChlM0Qy__Uy6Yr5CFzk;->run(Landroid/os/IInterface;)V
 HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$QbbzaxOFnxJI34vQptxzLE9Vvog;-><init>(I)V
 HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$QbbzaxOFnxJI34vQptxzLE9Vvog;->run(Landroid/os/IInterface;)V
+PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$WZi4-GWL57wurriOS0cLTQHXrS8;-><init>(ILandroid/service/contentcapture/SnapshotData;)V
+PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$WZi4-GWL57wurriOS0cLTQHXrS8;->run(Landroid/os/IInterface;)V
 PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$haMfPWsaVUWwKcAPgM3AadAkvOQ;-><init>(Landroid/view/contentcapture/DataRemovalRequest;)V
 PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$haMfPWsaVUWwKcAPgM3AadAkvOQ;->run(Landroid/os/IInterface;)V
 HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$yRaGuMutdbjMq9h32e3TC2_1a_A;-><init>(Landroid/service/contentcapture/ActivityEvent;)V
@@ -13368,7 +13836,7 @@
 HPLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->finishSession(I)V
 PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->getContentCaptureConditions(Ljava/lang/String;Lcom/android/internal/os/IResultReceiver;)V
 PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->getServiceComponentName(Lcom/android/internal/os/IResultReceiver;)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->getServiceSettingsActivity(Lcom/android/internal/os/IResultReceiver;)V
+HPLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->getServiceSettingsActivity(Lcom/android/internal/os/IResultReceiver;)V
 PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->lambda$getContentCaptureConditions$2$ContentCaptureManagerService$ContentCaptureManagerServiceStub(Ljava/lang/String;)V
 PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->lambda$getServiceSettingsActivity$1$ContentCaptureManagerService$ContentCaptureManagerServiceStub()V
 PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->removeData(Landroid/view/contentcapture/DataRemovalRequest;)V
@@ -13381,8 +13849,9 @@
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;Lcom/android/server/contentcapture/ContentCaptureManagerService$1;)V
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->getOptionsForPackage(ILjava/lang/String;)Landroid/content/ContentCaptureOptions;
-PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->isContentCaptureServiceForUser(II)Z
+HPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->isContentCaptureServiceForUser(II)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->notifyActivityEvent(ILandroid/content/ComponentName;I)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->sendActivityAssistData(ILandroid/os/IBinder;Landroid/os/Bundle;)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;-><clinit>()V
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$1000(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
@@ -13409,25 +13878,27 @@
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$300(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3000(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3100(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3100(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3100(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3200(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3200(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3300(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3400(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3500(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3500(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3600(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3600(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3700(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$400(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$400(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$4000(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 HPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$4100(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$500(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Z
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$700(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$800(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HPLcom/android/server/contentcapture/ContentCaptureManagerService;->access$800(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$900(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
 HPLcom/android/server/contentcapture/ContentCaptureManagerService;->enforceCallingPermissionForManagement()V
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->getAmInternal()Landroid/app/ActivityManagerInternal;
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDefaultServiceLocked(I)Z
+HPLcom/android/server/contentcapture/ContentCaptureManagerService;->isDefaultServiceLocked(I)Z
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDisabledBySettingsLocked(I)Z
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDisabledLocked(I)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isEnabledBySettings(I)Z
@@ -13476,6 +13947,7 @@
 HPLcom/android/server/contentcapture/ContentCapturePerUserService;->finishSessionLocked(I)V
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->getContentCaptureConditionsLocked(Ljava/lang/String;)Landroid/util/ArraySet;
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->getServiceSettingsActivityLocked()Landroid/content/ComponentName;
+HPLcom/android/server/contentcapture/ContentCapturePerUserService;->getSessionId(Landroid/os/IBinder;)I
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->isContentCaptureServiceForUserLocked(I)Z
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
 HPLcom/android/server/contentcapture/ContentCapturePerUserService;->onActivityEventLocked(Landroid/content/ComponentName;I)V
@@ -13488,6 +13960,7 @@
 HPLcom/android/server/contentcapture/ContentCapturePerUserService;->removeSessionLocked(I)V
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->resetContentCaptureWhitelistLocked()V
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->resurrectSessionsLocked()V
+HPLcom/android/server/contentcapture/ContentCapturePerUserService;->sendActivityAssistDataLocked(Landroid/os/IBinder;Landroid/os/Bundle;)Z
 HPLcom/android/server/contentcapture/ContentCapturePerUserService;->startSessionLocked(Landroid/os/IBinder;Landroid/content/pm/ActivityPresentationInfo;IIILcom/android/internal/os/IResultReceiver;)V
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->updateLocked(Z)Z
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->updateRemoteServiceLocked(Z)V
@@ -13495,12 +13968,14 @@
 HPLcom/android/server/contentcapture/ContentCaptureServerSession;-><init>(Ljava/lang/Object;Landroid/os/IBinder;Lcom/android/server/contentcapture/ContentCapturePerUserService;Landroid/content/ComponentName;Lcom/android/internal/os/IResultReceiver;IIIII)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->destroyLocked(Z)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;->isActivitySession(Landroid/os/IBinder;)Z
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->lambda$new$0$ContentCaptureServerSession()V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->notifySessionStartedLocked(Lcom/android/internal/os/IResultReceiver;)V
 HPLcom/android/server/contentcapture/ContentCaptureServerSession;->onClientDeath()V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->pauseLocked()V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->removeSelfLocked(Z)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->resurrectLocked()V
+HPLcom/android/server/contentcapture/ContentCaptureServerSession;->sendActivitySnapshotLocked(Landroid/service/contentcapture/SnapshotData;)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->setContentCaptureEnabledLocked(Z)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->toString()Ljava/lang/String;
 PLcom/android/server/contentcapture/RemoteContentCaptureService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;Landroid/service/contentcapture/IContentCaptureServiceCallback;ILcom/android/server/contentcapture/ContentCapturePerUserService;ZZI)V
@@ -13511,10 +13986,12 @@
 PLcom/android/server/contentcapture/RemoteContentCaptureService;->handleOnConnectedStateChanged(Z)V
 HPLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onActivityLifecycleEvent$4(Landroid/service/contentcapture/ActivityEvent;Landroid/service/contentcapture/IContentCaptureService;)V
 HPLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onActivityLifecycleEvent$5(Landroid/service/contentcapture/ActivityEvent;Landroid/service/contentcapture/IContentCaptureService;)V
+PLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onActivitySnapshotRequest$2(ILandroid/service/contentcapture/SnapshotData;Landroid/service/contentcapture/IContentCaptureService;)V
 PLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onDataRemovalRequest$3(Landroid/view/contentcapture/DataRemovalRequest;Landroid/service/contentcapture/IContentCaptureService;)V
 HPLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onSessionFinished$1(ILandroid/service/contentcapture/IContentCaptureService;)V
 HPLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onSessionStarted$0(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;ILandroid/service/contentcapture/IContentCaptureService;)V
 HPLcom/android/server/contentcapture/RemoteContentCaptureService;->onActivityLifecycleEvent(Landroid/service/contentcapture/ActivityEvent;)V
+PLcom/android/server/contentcapture/RemoteContentCaptureService;->onActivitySnapshotRequest(ILandroid/service/contentcapture/SnapshotData;)V
 PLcom/android/server/contentcapture/RemoteContentCaptureService;->onDataRemovalRequest(Landroid/view/contentcapture/DataRemovalRequest;)V
 HPLcom/android/server/contentcapture/RemoteContentCaptureService;->onSessionFinished(I)V
 HPLcom/android/server/contentcapture/RemoteContentCaptureService;->onSessionStarted(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;I)V
@@ -13583,8 +14060,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-SLM70h2SesShbP-O5yYa1PYZVw;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0YdFTQIxrgxkEfzJdhGZzP5z4eM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0YdFTQIxrgxkEfzJdhGZzP5z4eM;->runOrThrow()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0xOTapp1kSvojAdqJGdavUtvjqU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0xOTapp1kSvojAdqJGdavUtvjqU;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0xOTapp1kSvojAdqJGdavUtvjqU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0xOTapp1kSvojAdqJGdavUtvjqU;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$19j1Aw89Idv-1enlT4bK5AugL5A;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$19j1Aw89Idv-1enlT4bK5AugL5A;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1_463wML1lyyuhNEcH6YQZBNupk;-><init>(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)V
@@ -13597,6 +14074,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2CZYBzY0RjTtlQvIxYBzaiQE2iI;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2dnwZdGuTZnM6wwcm6xROcqfwb0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2dnwZdGuTZnM6wwcm6xROcqfwb0;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2oZRUqH8940wHaVi7eD5XbqxSUs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I[B)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2oZRUqH8940wHaVi7eD5XbqxSUs;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3L30HmY-8WRZNE3mKrX3xDa7_k8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3L30HmY-8WRZNE3mKrX3xDa7_k8;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3ci-C-bvTQXBAy8k6mmH8aTckko;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V
@@ -13619,12 +14098,12 @@
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8qCcR6mM8qspH7fQ8IbJXDcl-oE;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9BBesRjvUOb0HylcboB6iBXa9rA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9BBesRjvUOb0HylcboB6iBXa9rA;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;->getOrThrow()Ljava/lang/Object;
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BYd2ftVebU2Ktj6tr-DFfrGE5TE;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BYd2ftVebU2Ktj6tr-DFfrGE5TE;-><init>()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CAHsZjsjfTBjSCaXhAqawAZQxAs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CAHsZjsjfTBjSCaXhAqawAZQxAs;->runOrThrow()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CAHsZjsjfTBjSCaXhAqawAZQxAs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CAHsZjsjfTBjSCaXhAqawAZQxAs;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CClEW-CtZQRadOocoqGh0wiKhG4;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CClEW-CtZQRadOocoqGh0wiKhG4;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CiK-O2Bv367FPc0wKJTNYLXtCuE;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;)V
@@ -13635,6 +14114,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CxwsOCiBBPip8s6Ob2djUNKClVQ;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$D4ztnD6BT25lWG-r4PUjRzNR1zs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$D4ztnD6BT25lWG-r4PUjRzNR1zs;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$DYsx0qhBzzOahNRghHJnWkYxnAE;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$DYsx0qhBzzOahNRghHJnWkYxnAE;-><init>()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$E3l49EGA6UCGqdaOZqz6OFNlTrc;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$E3l49EGA6UCGqdaOZqz6OFNlTrc;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$E9awYavFY3fUvYuziaFPn187V2A;-><init>(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)V
@@ -13645,8 +14126,6 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GdvC4eub6BtkkX5BnHuPR5Ob0ag;-><init>()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GrJ2yAyrcr8_uJK0BCe9i4AcIYc;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GrJ2yAyrcr8_uJK0BCe9i4AcIYc;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Hv-tQz9yG7UQN-NW0Pun2vUKT00;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Hv-tQz9yG7UQN-NW0Pun2vUKT00;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IFjmfnHIk0cwZ4cu_jTHWTsMxfc;-><init>(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IFjmfnHIk0cwZ4cu_jTHWTsMxfc;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IMrqSPgnQFlD9AquL6PEMeRT48A;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
@@ -13673,8 +14152,6 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L3XzC2X57y8_uXrsW81Qk8KXQTA;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LocalService$YxQa4ZcUPWKs76meOLw1c_tn1OU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LocalService$YxQa4ZcUPWKs76meOLw1c_tn1OU;->runOrThrow()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LoqX5KbgPsZw5lbWDX6YUnchwpU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
-HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LoqX5KbgPsZw5lbWDX6YUnchwpU;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MTDdFPtPQJRYX737yGn0OzoNDCQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MTDdFPtPQJRYX737yGn0OzoNDCQ;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MX3M3eTWWoV82PMImp1skv1Wm-I;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
@@ -13687,8 +14164,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NzTaj70nEECGXhr52RbDyXK_fPU;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O6O5T5aoG6MmH8aAAGYNwYhbtw8;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O6O5T5aoG6MmH8aAAGYNwYhbtw8;-><init>()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;->runOrThrow()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Ohf5PJQmXjsarWisPAuPB8WECX8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Ohf5PJQmXjsarWisPAuPB8WECX8;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PQxvRo4LWlTe_I8RQ-J5BqZxYGY;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
@@ -13709,10 +14186,6 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T-DYGQoYs3p1_NgKsVcKRX8fTnA;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T4eSwgayOKOYwmmjCYnPFwO28Pw;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T4eSwgayOKOYwmmjCYnPFwO28Pw;->runOrThrow()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T7SRZQOZqOGELBG7YRAkVmxuJh4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T7SRZQOZqOGELBG7YRAkVmxuJh4;->getOrThrow()Ljava/lang/Object;
-HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Tvjb8n7J2l26EpnkgMIAbjrhdu8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Tvjb8n7J2l26EpnkgMIAbjrhdu8;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UPnhCNO69TKnF1hSXENMzK_2NSQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UPnhCNO69TKnF1hSXENMzK_2NSQ;->runOrThrow()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UZoVWdpJJZwABGNhZWHbxPIvMO4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
@@ -13725,6 +14198,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X8P9YSbXKt6AGKQrPiFxyDc-HJQ;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X8ssNAYCaueT78i6KH-xMYuutXA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X8ssNAYCaueT78i6KH-xMYuutXA;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xc3Cc89KBImtyHAgMzs8CxA-vt4;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xc3Cc89KBImtyHAgMzs8CxA-vt4;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Yha2g5948Y6-99_Zk6qnSQ08xaY;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Yha2g5948Y6-99_Zk6qnSQ08xaY;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZKo9wKXbn_FqsEHI_sFpmbOwKZE;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
@@ -13753,10 +14228,12 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$aC4EXkkAMAWYv8qwbTvE24Kub28;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$aVGoq4gaY333M9B5L3o4c3HvuCM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$aVGoq4gaY333M9B5L3o4c3HvuCM;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bNyL67PUDJs3XewKfULpyxiJ0uk;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bNyL67PUDJs3XewKfULpyxiJ0uk;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cF-dIKd2XSk01iZ99bPAGkzvRQ8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/CharSequence;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cF-dIKd2XSk01iZ99bPAGkzvRQ8;->runOrThrow()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cRGrwg6rL1QILp8DpjsAVKsyR7U;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cRGrwg6rL1QILp8DpjsAVKsyR7U;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cRGrwg6rL1QILp8DpjsAVKsyR7U;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cRGrwg6rL1QILp8DpjsAVKsyR7U;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$d08rPNL3sI-Hx7ZpnR_dxsBLZmk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$d08rPNL3sI-Hx7ZpnR_dxsBLZmk;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dhmKG9Egag2TPEwukGPiev6dT70;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
@@ -13773,8 +14250,10 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fU0Evn2qWpzcawqc8Qu9d2hCcoA;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$frL8-y9KUDCjvP_ukJ0uoU1Mk5k;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$frL8-y9KUDCjvP_ukJ0uoU1Mk5k;->getOrThrow()Ljava/lang/Object;
-HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fzxODltoSAVybDWkw84u878Ddso;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fzxODltoSAVybDWkw84u878Ddso;->getOrThrow()Ljava/lang/Object;
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fzxODltoSAVybDWkw84u878Ddso;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fzxODltoSAVybDWkw84u878Ddso;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3VMWQRBCrJWTiiMtWVUi7fOSds;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3VMWQRBCrJWTiiMtWVUi7fOSds;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3pjxXrKbnPToHF_egmYdr2f8-M;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3pjxXrKbnPToHF_egmYdr2f8-M;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gbbZuAsRK_vXaCroy1gj9r0-V4o;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
@@ -13795,10 +14274,14 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$l1-j9XdvuDdp7fQsY_n_Pv6CP3A;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lG9keASbSI5H2nDJOOi-80s_LvI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lG9keASbSI5H2nDJOOi-80s_LvI;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ll5SYJlZ-SYytCFFeQAWfuFB9CQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ll5SYJlZ-SYytCFFeQAWfuFB9CQ;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lmsiKzZN5DKHTzgWChWAyGfrxwk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lmsiKzZN5DKHTzgWChWAyGfrxwk;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m2h-vVM6u7Yweb_QNLSUAbWduj8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m2h-vVM6u7Yweb_QNLSUAbWduj8;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mBXxcFZAZnjzw9sY7LWPSdbiolE;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mBXxcFZAZnjzw9sY7LWPSdbiolE;-><init>()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mF6fAm3fr7FHqqfmNeO86iULgao;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mF6fAm3fr7FHqqfmNeO86iULgao;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mkMQ9WtInWWL27eiU6IDs8Sol8Q;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
@@ -13807,49 +14290,53 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$nBM3fQ_95BD262BpQ3v_i1LTo9o;-><init>()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$p6M2CJuZlA3Rm0CLLTJMm5qd9vU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$p6M2CJuZlA3Rm0CLLTJMm5qd9vU;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$paNWzEukGonqKHGYa2dcIYm1m9I;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$paNWzEukGonqKHGYa2dcIYm1m9I;-><init>()V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qLdZ0ebI9-VES2qOXxipAqDsLtg;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/net/ProxyInfo;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qLdZ0ebI9-VES2qOXxipAqDsLtg;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qViz9I1AJUZv2wUBqL57ZuJyV6w;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qViz9I1AJUZv2wUBqL57ZuJyV6w;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sfvNLjsZ1b42sP7hfi4sIngE1Ok;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sfvNLjsZ1b42sP7hfi4sIngE1Ok;-><init>()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tAgDO0b7hXUD7MGkHfgPTDV4o6g;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tAgDO0b7hXUD7MGkHfgPTDV4o6g;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tN28Me5AH2pjgYHvPnMAsCjK_NU;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tN28Me5AH2pjgYHvPnMAsCjK_NU;-><init>()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tWth7tXYQXpYp5Hzb8E7OMe1xQU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tWth7tXYQXpYp5Hzb8E7OMe1xQU;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tfWVKBTGvhCLutowgY2p1qhI_5k;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tfWVKBTGvhCLutowgY2p1qhI_5k;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uBbMjDj76ovvi3SNe9WwB6bL1bg;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uBbMjDj76ovvi3SNe9WwB6bL1bg;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uD3EtO2DK71MscaG7ykh6GMewyM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uD3EtO2DK71MscaG7ykh6GMewyM;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uSnwuwX0qdERvQ94-2ib1BPYhnQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uSnwuwX0qdERvQ94-2ib1BPYhnQ;->runOrThrow()V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uSnwuwX0qdERvQ94-2ib1BPYhnQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uSnwuwX0qdERvQ94-2ib1BPYhnQ;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ubKPRWVtvdZzQDW6CDEvggHJXRc;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ubKPRWVtvdZzQDW6CDEvggHJXRc;->runOrThrow()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ufUhKIuf-ai14oI_NezHS9qCjh0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ufUhKIuf-ai14oI_NezHS9qCjh0;->runOrThrow()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$v4runHJLxiL3Ks01Uqv-LIy69tA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$v4runHJLxiL3Ks01Uqv-LIy69tA;->runOrThrow()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ufUhKIuf-ai14oI_NezHS9qCjh0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ufUhKIuf-ai14oI_NezHS9qCjh0;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vR-RWtti8ewEGuhsA0IoU86GAmo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vR-RWtti8ewEGuhsA0IoU86GAmo;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vsNaZOHvF-kWqLDfhyiTAaRLpQU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vsNaZOHvF-kWqLDfhyiTAaRLpQU;->runOrThrow()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wdjKJZZQbwUvNkCxj7a-RCOB9p8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wdjKJZZQbwUvNkCxj7a-RCOB9p8;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wdjKJZZQbwUvNkCxj7a-RCOB9p8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wdjKJZZQbwUvNkCxj7a-RCOB9p8;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wynHOghqUtl8CTB8Lp1BnOlWruI;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wynHOghqUtl8CTB8Lp1BnOlWruI;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wynHOghqUtl8CTB8Lp1BnOlWruI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xJ8-hwvSE1cq8C5FtgXnoW_zBZU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xJ8-hwvSE1cq8C5FtgXnoW_zBZU;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xNEzeKxioITjjXluv5fVIH4Ral4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xNEzeKxioITjjXluv5fVIH4Ral4;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$x_XvH7NWMAoRsaUgVX92Cmco4J0;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$x_XvH7NWMAoRsaUgVX92Cmco4J0;-><init>()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xabPm_Q5O8A0hxC5Xhkk4DoTmp8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xabPm_Q5O8A0hxC5Xhkk4DoTmp8;->runOrThrow()V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xabPm_Q5O8A0hxC5Xhkk4DoTmp8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xabPm_Q5O8A0hxC5Xhkk4DoTmp8;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yABzfxLSJsRtIg68zL1wRRuzKQI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yABzfxLSJsRtIg68zL1wRRuzKQI;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ylqQ-0_BWKf5SNKi5IEZksGSyuU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ylqQ-0_BWKf5SNKi5IEZksGSyuU;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$NetworkLoggingHandler$VKC_fB9Ws13yQKJ8zNkiF3Wp0Jk;-><init>(Lcom/android/server/devicepolicy/NetworkLoggingHandler;J)V
@@ -14058,7 +14545,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkDeviceIdentifierAccess(Ljava/lang/String;II)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkDeviceOwnerProvisioningPreCondition(I)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkDeviceOwnerProvisioningPreConditionLocked(Landroid/content/ComponentName;IZZ)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkManagedProfileProvisioningPreCondition(Ljava/lang/String;I)I
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkManagedProfileProvisioningPreCondition(Ljava/lang/String;I)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkPackageSuspensionOnBoot()V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkPackagesInPermittedListOrSystem(Ljava/util/List;Ljava/util/List;I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkProvisioningPreCondition(Ljava/lang/String;Ljava/lang/String;)I
@@ -14089,7 +14576,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceDeviceOwnerOrProfileOwnerOnOrganizationOwnedDevice(Landroid/content/ComponentName;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceFullCrossUsersPermission(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceIndividualAttestationSupportedIfRequested([I)V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceManageUsers()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceManageUsers()V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceManagedProfile(ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceNotManagedProfile(ILjava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceProfileOrDeviceOwner(Landroid/content/ComponentName;)V
@@ -14110,7 +14597,7 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureUnknownSourcesRestrictionForProfileOwnerLocked(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Z)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->findAdmin(Landroid/content/ComponentName;IZ)Landroid/app/admin/DeviceAdminInfo;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->findOwnerComponentIfNecessaryLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->generateKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;ILandroid/security/keymaster/KeymasterCertificateChain;)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->generateKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;ILandroid/security/keymaster/KeymasterCertificateChain;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAcceptedCaCertificates(Landroid/os/UserHandle;)Ljava/util/Set;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAccessibilityManagerForUser(I)Landroid/view/accessibility/AccessibilityManager;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
@@ -14143,7 +14630,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDelegatePackagesInternalLocked(Ljava/lang/String;I)Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerAdminLocked()Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerRemoteBugreportUri()Ljava/lang/String;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerUserId()I
@@ -14159,7 +14646,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumTimeToLock(Landroid/content/ComponentName;IZ)J
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumTimeToLockPolicyFromAdmins(Ljava/util/List;)J
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMeteredDisabledPackagesLocked(I)Ljava/util/Set;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMinimumStrongAuthTimeoutMs()J
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMinimumStrongAuthTimeoutMs()J
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOwnerComponent(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOwnerInstalledCaCerts(Landroid/os/UserHandle;)Landroid/content/pm/StringParceledListSlice;
@@ -14180,7 +14667,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPendingSystemUpdate(Landroid/content/ComponentName;)Landroid/app/admin/SystemUpdateInfo;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermissionPolicy(Landroid/content/ComponentName;)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermittedAccessibilityServicesForUser(I)Ljava/util/List;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermittedAccessibilityServicesForUser(I)Ljava/util/List;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermittedInputMethodsForCurrentUser()Ljava/util/List;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPolicyFileDirectory(I)Ljava/io/File;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
@@ -14200,6 +14687,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getTargetSdk(Ljava/lang/String;I)I
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserData(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserDataUnchecked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserIdToWipeForFailedPasswords(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)I
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserProvisioningState()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserProvisioningState(I)I
@@ -14215,6 +14703,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasIncompatibleAccountsOrNonAdbNoLock(ILandroid/content/ComponentName;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasProfileOwner(I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasUserSetupCompleted(I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isAccessibilityServicePermittedByAdmin(Landroid/content/ComponentName;Ljava/lang/String;I)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isActiveAdminWithPolicyForUserLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;II)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isActivePasswordSufficient(IZ)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isActivePasswordSufficientForUserLocked(ZLandroid/app/admin/PasswordMetrics;IZ)Z
@@ -14227,7 +14716,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCurrentInputMethodSetByOwner()Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCurrentUserDemo()Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwner(Landroid/content/ComponentName;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwner(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwner(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwnerPackage(Ljava/lang/String;I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceProvisioned()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isEncryptionSupported()Z
@@ -14250,10 +14739,10 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Landroid/content/ComponentName;I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerPackage(Ljava/lang/String;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProvisioningAllowed(Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProvisioningAllowed(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isRemovedPackage(Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isRemovingAdmin(Landroid/content/ComponentName;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isResetPasswordTokenActive(Landroid/content/ComponentName;)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isResetPasswordTokenActive(Landroid/content/ComponentName;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isRuntimePermission(Ljava/lang/String;)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSecondaryLockscreenEnabled(I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSecurityLoggingEnabled(Landroid/content/ComponentName;)Z
@@ -14269,33 +14758,30 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$74$DevicePolicyManagerService()Ljava/lang/Boolean;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$80$DevicePolicyManagerService()Ljava/lang/Boolean;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$81$DevicePolicyManagerService()Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$82$DevicePolicyManagerService()Ljava/lang/Boolean;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$82$DevicePolicyManagerService()Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$choosePrivateKeyAlias$23$DevicePolicyManagerService(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$choosePrivateKeyAlias$24$DevicePolicyManagerService(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$104$DevicePolicyManagerService()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$105$DevicePolicyManagerService()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$106$DevicePolicyManagerService()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$ensureMinimumQuality$9$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$ensureMinimumQuality$9$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getAlwaysOnVpnPackage$25$DevicePolicyManagerService(I)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getAlwaysOnVpnPackage$26$DevicePolicyManagerService(I)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationLabel$47$DevicePolicyManagerService(ILjava/lang/String;)Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$53$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$54$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$55$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$56$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$57$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$72$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$57$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$73$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$74$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$76$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$82$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$83$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$84$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$47$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$84$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$48$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$49$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$50$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$50$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPasswordHistoryLength$10(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Ljava/lang/Integer;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$65$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$66$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$67$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$69$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
@@ -14304,14 +14790,13 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$77$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$44$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$45$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$46$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$46$DevicePolicyManagerService(I)Ljava/lang/Integer;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$46$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$47$DevicePolicyManagerService(I)Ljava/lang/Integer;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$48$DevicePolicyManagerService(I)Ljava/lang/Integer;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$49$DevicePolicyManagerService(I)Ljava/lang/Integer;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$49$DevicePolicyManagerService(I)Ljava/lang/Integer;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserDataUnchecked$0$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$17$DevicePolicyManagerService(I)Landroid/content/pm/UserInfo;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$18$DevicePolicyManagerService(I)Landroid/content/pm/UserInfo;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$18$DevicePolicyManagerService(I)Landroid/content/pm/UserInfo;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$67$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$68$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$70$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
@@ -14335,17 +14820,18 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$notifyPendingSystemUpdate$67$DevicePolicyManagerService(Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$notifyPendingSystemUpdate$73$DevicePolicyManagerService(Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$notifyPendingSystemUpdate$74$DevicePolicyManagerService(Landroid/content/Intent;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$notifyPendingSystemUpdate$75$DevicePolicyManagerService(Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$removeActiveAdmin$6$DevicePolicyManagerService(Landroid/content/ComponentName;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$reportSuccessfulPasswordAttempt$30$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$reportSuccessfulPasswordAttempt$31$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$reportSuccessfulPasswordAttempt$32$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$sendChangedNotification$2$DevicePolicyManagerService(Landroid/content/Intent;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setActiveAdmin$3$DevicePolicyManagerService(Landroid/content/ComponentName;IZLandroid/app/admin/DeviceAdminInfo;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;Landroid/os/Bundle;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationHidden$58$DevicePolicyManagerService(Ljava/lang/String;ZI)Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$49$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$50$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$51$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$52$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$53$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$52$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$53$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$41$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$42$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$43$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
@@ -14375,6 +14861,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setRecommendedGlobalProxy$32$DevicePolicyManagerService(Landroid/net/ProxyInfo;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setRecommendedGlobalProxy$33$DevicePolicyManagerService(Landroid/net/ProxyInfo;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setRecommendedGlobalProxy$34$DevicePolicyManagerService(Landroid/net/ProxyInfo;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setResetPasswordToken$87$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I[B)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setResetPasswordToken$88$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I[B)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setSecureSetting$62$DevicePolicyManagerService(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setSecureSetting$63$DevicePolicyManagerService(Ljava/lang/String;ILjava/lang/String;)V
@@ -14383,9 +14870,9 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setSecureSetting$71$DevicePolicyManagerService(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setSecureSetting$72$DevicePolicyManagerService(Ljava/lang/String;ILjava/lang/String;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$19$DevicePolicyManagerService(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$20$DevicePolicyManagerService(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$20$DevicePolicyManagerService(I)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateProfileLockTimeoutLocked$20$DevicePolicyManagerService(ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateProfileLockTimeoutLocked$21$DevicePolicyManagerService(ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateProfileLockTimeoutLocked$21$DevicePolicyManagerService(ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadAdminDataAsync()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadConstants()Lcom/android/server/devicepolicy/DevicePolicyConstants;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadOwners()V
@@ -14409,7 +14896,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->notifyPendingSystemUpdate(Landroid/app/admin/SystemUpdateInfo;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->onInstalledCertificatesChanged(Landroid/os/UserHandle;Ljava/util/Collection;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->onLockSettingsReady()V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->packageHasActiveAdmins(Ljava/lang/String;I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->packageHasActiveAdmins(Ljava/lang/String;I)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->passwordQualityInvocationOrderCheckEnabled(Ljava/lang/String;I)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushActiveAdminPackages()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushActiveAdminPackagesLocked(I)V
@@ -14425,7 +14912,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->removePackageIfRequired(Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->removeUserData(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportFailedBiometricAttempt(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportFailedPasswordAttempt(I)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportFailedPasswordAttempt(I)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportKeyguardDismissed(I)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportKeyguardSecured(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportPasswordChanged(I)V
@@ -14434,13 +14921,13 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->resetGlobalProxyLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->resetInactivePasswordRequirementsIfRPlus(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->resolveDelegateReceiver(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->retrieveNetworkLogs(Landroid/content/ComponentName;Ljava/lang/String;J)Ljava/util/List;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->retrieveNetworkLogs(Landroid/content/ComponentName;Ljava/lang/String;J)Ljava/util/List;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->retrieveSecurityLogs(Landroid/content/ComponentName;)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->revertTransferOwnershipIfNecessaryLocked()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveGlobalProxyLocked(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveSettingsLocked(I)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveUserRestrictionsLocked(IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendActiveAdminCommand(Ljava/lang/String;Landroid/os/Bundle;ILandroid/content/ComponentName;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendActiveAdminCommand(Ljava/lang/String;Landroid/os/Bundle;ILandroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendAdminCommandForLockscreenPoliciesLocked(Ljava/lang/String;II)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendAdminCommandLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendAdminCommandLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Ljava/lang/String;Landroid/content/BroadcastReceiver;)V
@@ -14461,12 +14948,12 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;ZZ)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setAutoTimeRequired(Landroid/content/ComponentName;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setBackupServiceEnabled(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setBackupServiceEnabled(Landroid/content/ComponentName;Z)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCameraDisabled(Landroid/content/ComponentName;ZZ)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCertInstallerPackage(Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDelegatedScopePreO(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceOwnerLockScreenInfo(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
@@ -14477,6 +14964,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setGlobalSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setKeepUninstalledPackages(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setKeyPairCertificate(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;[B[BZ)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setKeyguardDisabled(Landroid/content/ComponentName;Z)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setLockTaskFeatures(Landroid/content/ComponentName;I)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setLockTaskFeaturesLocked(II)V
@@ -14514,7 +15002,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setRestrictionsProvider(Landroid/content/ComponentName;Landroid/content/ComponentName;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setScreenCaptureDisabled(Landroid/content/ComponentName;Z)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSecureSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSecurityLoggingEnabled(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSecurityLoggingEnabled(Landroid/content/ComponentName;Z)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setStatusBarDisabled(Landroid/content/ComponentName;Z)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setStorageEncryption(Landroid/content/ComponentName;Z)I
@@ -14575,7 +15063,7 @@
 HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->buildDeviceOwnerMessageLocked()Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->finalizeBatchAndBuildDeviceOwnerMessageLocked()Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/devicepolicy/NetworkLoggingHandler;->lambda$retrieveFullLogBatch$0$NetworkLoggingHandler(J)V
+HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->lambda$retrieveFullLogBatch$0$NetworkLoggingHandler(J)V
 HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->notifyDeviceOwner(Landroid/os/Bundle;)V
 PLcom/android/server/devicepolicy/NetworkLoggingHandler;->retrieveFullLogBatch(J)Ljava/util/List;
 HSPLcom/android/server/devicepolicy/NetworkLoggingHandler;->scheduleBatchFinalization()V
@@ -14744,8 +15232,10 @@
 HPLcom/android/server/display/AutomaticBrightnessController$Injector;->getBackgroundThreadHandler()Landroid/os/Handler;
 HSPLcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
 HPLcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;->onTaskStackChanged()V
+HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IFFFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;Landroid/content/Context;)V
 HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IIIFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;JLandroid/content/pm/PackageManager;)V
 HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IIIFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;Landroid/content/pm/PackageManager;)V
+HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Injector;Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IFFFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;Landroid/content/Context;)V
 HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Injector;Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IIIFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;JLandroid/content/pm/PackageManager;)V
 HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Injector;Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IIIFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/display/AutomaticBrightnessController;->access$000(Lcom/android/server/display/AutomaticBrightnessController;)Landroid/app/IActivityTaskManager;
@@ -14754,7 +15244,7 @@
 HPLcom/android/server/display/AutomaticBrightnessController;->access$1100(Lcom/android/server/display/AutomaticBrightnessController;)Z
 HPLcom/android/server/display/AutomaticBrightnessController;->access$1200(Lcom/android/server/display/AutomaticBrightnessController;JF)V
 PLcom/android/server/display/AutomaticBrightnessController;->access$202(Lcom/android/server/display/AutomaticBrightnessController;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/display/AutomaticBrightnessController;->access$302(Lcom/android/server/display/AutomaticBrightnessController;I)I
+HPLcom/android/server/display/AutomaticBrightnessController;->access$302(Lcom/android/server/display/AutomaticBrightnessController;I)I
 PLcom/android/server/display/AutomaticBrightnessController;->access$400(Lcom/android/server/display/AutomaticBrightnessController;)Landroid/content/pm/PackageManager;
 HPLcom/android/server/display/AutomaticBrightnessController;->access$500(Lcom/android/server/display/AutomaticBrightnessController;)Lcom/android/server/display/AutomaticBrightnessController$AutomaticBrightnessHandler;
 HPLcom/android/server/display/AutomaticBrightnessController;->access$600(Lcom/android/server/display/AutomaticBrightnessController;)V
@@ -14766,6 +15256,7 @@
 HPLcom/android/server/display/AutomaticBrightnessController;->calculateAmbientLux(JJ)F
 HPLcom/android/server/display/AutomaticBrightnessController;->calculateWeight(JJ)F
 HPLcom/android/server/display/AutomaticBrightnessController;->clampScreenBrightness(F)F
+HPLcom/android/server/display/AutomaticBrightnessController;->clampScreenBrightnessFloat(F)F
 PLcom/android/server/display/AutomaticBrightnessController;->collectBrightnessAdjustmentSample()V
 HSPLcom/android/server/display/AutomaticBrightnessController;->configure(ZLandroid/hardware/display/BrightnessConfiguration;FZFZI)V
 HPLcom/android/server/display/AutomaticBrightnessController;->dump(Ljava/io/PrintWriter;)V
@@ -14827,7 +15318,7 @@
 HSPLcom/android/server/display/BrightnessMappingStrategy;->isValidMapping([F[F)Z
 HSPLcom/android/server/display/BrightnessMappingStrategy;->isValidMapping([F[I)Z
 HSPLcom/android/server/display/BrightnessMappingStrategy;->normalizeAbsoluteBrightness(I)F
-PLcom/android/server/display/BrightnessMappingStrategy;->permissibleRatio(FF)F
+HPLcom/android/server/display/BrightnessMappingStrategy;->permissibleRatio(FF)F
 PLcom/android/server/display/BrightnessMappingStrategy;->shouldResetShortTermModel(FF)Z
 PLcom/android/server/display/BrightnessMappingStrategy;->smoothCurve([F[FI)V
 HPLcom/android/server/display/BrightnessTracker$BrightnessChangeValues;-><init>(FFZZJ)V
@@ -14918,7 +15409,7 @@
 HPLcom/android/server/display/ColorFade;->captureScreenshotTextureAndSetViewport()Z
 HPLcom/android/server/display/ColorFade;->checkGlErrors(Ljava/lang/String;)Z
 HPLcom/android/server/display/ColorFade;->checkGlErrors(Ljava/lang/String;Z)Z
-PLcom/android/server/display/ColorFade;->createEglContext()Z
+HPLcom/android/server/display/ColorFade;->createEglContext()Z
 HPLcom/android/server/display/ColorFade;->createEglSurface()Z
 HSPLcom/android/server/display/ColorFade;->createNativeFloatBuffer(I)Ljava/nio/FloatBuffer;
 HPLcom/android/server/display/ColorFade;->createSurface()Z
@@ -15005,16 +15496,17 @@
 HSPLcom/android/server/display/DisplayManagerService$BinderService;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
 HPLcom/android/server/display/DisplayManagerService$BinderService;->isUidPresentOnDisplay(II)Z
 HSPLcom/android/server/display/DisplayManagerService$BinderService;->registerCallback(Landroid/hardware/display/IDisplayManagerCallback;)V
-PLcom/android/server/display/DisplayManagerService$BinderService;->releaseVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;)V
+HPLcom/android/server/display/DisplayManagerService$BinderService;->releaseVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;)V
 PLcom/android/server/display/DisplayManagerService$BinderService;->requestColorMode(II)V
 PLcom/android/server/display/DisplayManagerService$BinderService;->resizeVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;III)V
 PLcom/android/server/display/DisplayManagerService$BinderService;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V
+HPLcom/android/server/display/DisplayManagerService$BinderService;->setTemporaryBrightness(F)V
 HPLcom/android/server/display/DisplayManagerService$BinderService;->setTemporaryBrightness(I)V
 HPLcom/android/server/display/DisplayManagerService$BinderService;->setVirtualDisplayState(Landroid/hardware/display/IVirtualDisplayCallback;Z)V
 HPLcom/android/server/display/DisplayManagerService$BinderService;->setVirtualDisplaySurface(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/view/Surface;)V
 PLcom/android/server/display/DisplayManagerService$BinderService;->startWifiDisplayScan()V
 PLcom/android/server/display/DisplayManagerService$BinderService;->stopWifiDisplayScan()V
-PLcom/android/server/display/DisplayManagerService$BinderService;->validatePackageName(ILjava/lang/String;)Z
+HPLcom/android/server/display/DisplayManagerService$BinderService;->validatePackageName(ILjava/lang/String;)Z
 HSPLcom/android/server/display/DisplayManagerService$CallbackRecord;-><init>(Lcom/android/server/display/DisplayManagerService;ILandroid/hardware/display/IDisplayManagerCallback;)V
 HPLcom/android/server/display/DisplayManagerService$CallbackRecord;->binderDied()V
 HSPLcom/android/server/display/DisplayManagerService$CallbackRecord;->notifyDisplayEventAsync(II)V
@@ -15030,6 +15522,7 @@
 HSPLcom/android/server/display/DisplayManagerService$Injector;->getDefaultDisplayDelayTimeout()J
 HSPLcom/android/server/display/DisplayManagerService$Injector;->getVirtualDisplayAdapter(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;)Lcom/android/server/display/VirtualDisplayAdapter;
 HSPLcom/android/server/display/DisplayManagerService$LocalService$1;-><init>(Lcom/android/server/display/DisplayManagerService$LocalService;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService$1;->requestDisplayState(IF)V
 HSPLcom/android/server/display/DisplayManagerService$LocalService$1;->requestDisplayState(II)V
 HSPLcom/android/server/display/DisplayManagerService$LocalService;-><init>(Lcom/android/server/display/DisplayManagerService;)V
 HSPLcom/android/server/display/DisplayManagerService$LocalService;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayManagerService$1;)V
@@ -15040,7 +15533,7 @@
 HSPLcom/android/server/display/DisplayManagerService$LocalService;->onOverlayChanged()V
 HSPLcom/android/server/display/DisplayManagerService$LocalService;->performTraversal(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/display/DisplayManagerService$LocalService;->persistBrightnessTrackerState()V
-PLcom/android/server/display/DisplayManagerService$LocalService;->registerDisplayTransactionListener(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
+HPLcom/android/server/display/DisplayManagerService$LocalService;->registerDisplayTransactionListener(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
 HSPLcom/android/server/display/DisplayManagerService$LocalService;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
 HPLcom/android/server/display/DisplayManagerService$LocalService;->screenshot(I)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
 HSPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayAccessUIDs(Landroid/util/SparseArray;)V
@@ -15078,7 +15571,7 @@
 HSPLcom/android/server/display/DisplayManagerService;->access$2000(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/IDisplayManagerCallback;I)V
 HSPLcom/android/server/display/DisplayManagerService;->access$2100(Lcom/android/server/display/DisplayManagerService;)Landroid/content/Context;
 PLcom/android/server/display/DisplayManagerService;->access$2100(Lcom/android/server/display/DisplayManagerService;II)Z
-PLcom/android/server/display/DisplayManagerService;->access$2200(Lcom/android/server/display/DisplayManagerService;)Landroid/graphics/Point;
+HPLcom/android/server/display/DisplayManagerService;->access$2200(Lcom/android/server/display/DisplayManagerService;)Landroid/graphics/Point;
 HSPLcom/android/server/display/DisplayManagerService;->access$2300(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/IDisplayManagerCallback;I)V
 PLcom/android/server/display/DisplayManagerService;->access$2400(Lcom/android/server/display/DisplayManagerService;I)V
 PLcom/android/server/display/DisplayManagerService;->access$2500(Lcom/android/server/display/DisplayManagerService;I)V
@@ -15111,6 +15604,7 @@
 HSPLcom/android/server/display/DisplayManagerService;->access$4402(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/SensorManager;)Landroid/hardware/SensorManager;
 HSPLcom/android/server/display/DisplayManagerService;->access$4500(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;
 PLcom/android/server/display/DisplayManagerService;->access$4600(Lcom/android/server/display/DisplayManagerService;I)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HSPLcom/android/server/display/DisplayManagerService;->access$4600(Lcom/android/server/display/DisplayManagerService;IF)V
 HSPLcom/android/server/display/DisplayManagerService;->access$4600(Lcom/android/server/display/DisplayManagerService;II)V
 PLcom/android/server/display/DisplayManagerService;->access$4700(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
 HSPLcom/android/server/display/DisplayManagerService;->access$4702(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/SensorManager;)Landroid/hardware/SensorManager;
@@ -15192,6 +15686,7 @@
 HSPLcom/android/server/display/DisplayManagerService;->registerWifiDisplayAdapterLocked()V
 PLcom/android/server/display/DisplayManagerService;->releaseVirtualDisplayInternal(Landroid/os/IBinder;)V
 PLcom/android/server/display/DisplayManagerService;->requestColorModeInternal(II)V
+HSPLcom/android/server/display/DisplayManagerService;->requestGlobalDisplayStateInternal(IF)V
 HSPLcom/android/server/display/DisplayManagerService;->requestGlobalDisplayStateInternal(II)V
 PLcom/android/server/display/DisplayManagerService;->resizeVirtualDisplayInternal(Landroid/os/IBinder;III)V
 HSPLcom/android/server/display/DisplayManagerService;->scheduleTraversalLocked(Z)V
@@ -15277,7 +15772,7 @@
 HSPLcom/android/server/display/DisplayModeDirector$DisplayObserver;->observe()V
 PLcom/android/server/display/DisplayModeDirector$DisplayObserver;->onDisplayAdded(I)V
 HSPLcom/android/server/display/DisplayModeDirector$DisplayObserver;->onDisplayChanged(I)V
-PLcom/android/server/display/DisplayModeDirector$DisplayObserver;->onDisplayRemoved(I)V
+HPLcom/android/server/display/DisplayModeDirector$DisplayObserver;->onDisplayRemoved(I)V
 HSPLcom/android/server/display/DisplayModeDirector$DisplayObserver;->updateDisplayModes(I)V
 HSPLcom/android/server/display/DisplayModeDirector$RefreshRateRange;-><init>()V
 HSPLcom/android/server/display/DisplayModeDirector$RefreshRateRange;-><init>(FF)V
@@ -15291,7 +15786,7 @@
 HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->updateRefreshRateSettingLocked()V
 HSPLcom/android/server/display/DisplayModeDirector$Vote;-><init>(IIFF)V
 HSPLcom/android/server/display/DisplayModeDirector$Vote;->forRefreshRates(FF)Lcom/android/server/display/DisplayModeDirector$Vote;
-PLcom/android/server/display/DisplayModeDirector$Vote;->forSize(II)Lcom/android/server/display/DisplayModeDirector$Vote;
+HPLcom/android/server/display/DisplayModeDirector$Vote;->forSize(II)Lcom/android/server/display/DisplayModeDirector$Vote;
 PLcom/android/server/display/DisplayModeDirector$Vote;->priorityToString(I)Ljava/lang/String;
 PLcom/android/server/display/DisplayModeDirector$Vote;->toString()Ljava/lang/String;
 HSPLcom/android/server/display/DisplayModeDirector;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
@@ -15322,7 +15817,7 @@
 HSPLcom/android/server/display/DisplayModeDirector;->updateVoteLocked(IILcom/android/server/display/DisplayModeDirector$Vote;)V
 HSPLcom/android/server/display/DisplayModeDirector;->updateVoteLocked(ILcom/android/server/display/DisplayModeDirector$Vote;)V
 HSPLcom/android/server/display/DisplayPowerController$1;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HPLcom/android/server/display/DisplayPowerController$1;->onAnimationEnd(Landroid/animation/Animator;)V
 PLcom/android/server/display/DisplayPowerController$1;->onAnimationStart(Landroid/animation/Animator;)V
 HSPLcom/android/server/display/DisplayPowerController$2;-><init>(Lcom/android/server/display/DisplayPowerController;)V
 HSPLcom/android/server/display/DisplayPowerController$2;->onAnimationEnd()V
@@ -15369,20 +15864,24 @@
 PLcom/android/server/display/DisplayPowerController;->access$1600(Lcom/android/server/display/DisplayPowerController;)F
 PLcom/android/server/display/DisplayPowerController;->access$1700(Lcom/android/server/display/DisplayPowerController;JZ)V
 HPLcom/android/server/display/DisplayPowerController;->access$1800(Lcom/android/server/display/DisplayPowerController;Z)V
-PLcom/android/server/display/DisplayPowerController;->access$1900(Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController$DisplayControllerHandler;
+HPLcom/android/server/display/DisplayPowerController;->access$1900(Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController$DisplayControllerHandler;
 HSPLcom/android/server/display/DisplayPowerController;->access$400(Lcom/android/server/display/DisplayPowerController;)Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;
 PLcom/android/server/display/DisplayPowerController;->access$500(Lcom/android/server/display/DisplayPowerController;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/DisplayPowerController;->access$600(Lcom/android/server/display/DisplayPowerController;)V
 PLcom/android/server/display/DisplayPowerController;->access$700(Lcom/android/server/display/DisplayPowerController;)V
 PLcom/android/server/display/DisplayPowerController;->access$800(Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController$ScreenOnUnblocker;
 PLcom/android/server/display/DisplayPowerController;->access$900(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController;->animateScreenBrightness(FF)V
 HSPLcom/android/server/display/DisplayPowerController;->animateScreenBrightness(II)V
 HSPLcom/android/server/display/DisplayPowerController;->animateScreenStateChange(IZ)V
 HPLcom/android/server/display/DisplayPowerController;->blockScreenOff()V
 HPLcom/android/server/display/DisplayPowerController;->blockScreenOn()V
+HSPLcom/android/server/display/DisplayPowerController;->clampAbsoluteBrightness(F)F
 HSPLcom/android/server/display/DisplayPowerController;->clampAbsoluteBrightness(I)I
 HSPLcom/android/server/display/DisplayPowerController;->clampAutoBrightnessAdjustment(F)F
+PLcom/android/server/display/DisplayPowerController;->clampScreenBrightness(F)F
 HPLcom/android/server/display/DisplayPowerController;->clampScreenBrightness(I)I
+HSPLcom/android/server/display/DisplayPowerController;->clampScreenBrightnessForVr(F)F
 HSPLcom/android/server/display/DisplayPowerController;->clampScreenBrightnessForVr(I)I
 PLcom/android/server/display/DisplayPowerController;->clearPendingProximityDebounceTime()V
 HSPLcom/android/server/display/DisplayPowerController;->convertToNits(I)F
@@ -15394,17 +15893,21 @@
 HSPLcom/android/server/display/DisplayPowerController;->getAutoBrightnessAdjustmentSetting()F
 PLcom/android/server/display/DisplayPowerController;->getBrightnessEvents(IZ)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/display/DisplayPowerController;->getDefaultBrightnessConfiguration()Landroid/hardware/display/BrightnessConfiguration;
+HSPLcom/android/server/display/DisplayPowerController;->getScreenBrightnessForVrSetting()F
 HSPLcom/android/server/display/DisplayPowerController;->getScreenBrightnessForVrSetting()I
+HSPLcom/android/server/display/DisplayPowerController;->getScreenBrightnessSetting()F
 HSPLcom/android/server/display/DisplayPowerController;->getScreenBrightnessSetting()I
 HPLcom/android/server/display/DisplayPowerController;->handleProximitySensorEvent(JZ)V
 HPLcom/android/server/display/DisplayPowerController;->handleSettingsChange(Z)V
 HSPLcom/android/server/display/DisplayPowerController;->initialize()V
 HSPLcom/android/server/display/DisplayPowerController;->isProximitySensorAvailable()Z
+HSPLcom/android/server/display/DisplayPowerController;->isValidBrightnessValue(F)Z
 HPLcom/android/server/display/DisplayPowerController;->logDisplayPolicyChanged(I)V
 HSPLcom/android/server/display/DisplayPowerController;->notifyBrightnessChanged(IZZ)V
 PLcom/android/server/display/DisplayPowerController;->persistBrightnessTrackerState()V
 PLcom/android/server/display/DisplayPowerController;->proximityToString(I)Ljava/lang/String;
 PLcom/android/server/display/DisplayPowerController;->putAutoBrightnessAdjustmentSetting(F)V
+PLcom/android/server/display/DisplayPowerController;->putScreenBrightnessSetting(F)V
 HPLcom/android/server/display/DisplayPowerController;->putScreenBrightnessSetting(I)V
 PLcom/android/server/display/DisplayPowerController;->reportedToPolicyToString(I)Ljava/lang/String;
 HSPLcom/android/server/display/DisplayPowerController;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
@@ -15419,6 +15922,7 @@
 HSPLcom/android/server/display/DisplayPowerController;->setReportedScreenState(I)V
 HSPLcom/android/server/display/DisplayPowerController;->setScreenState(I)Z
 HSPLcom/android/server/display/DisplayPowerController;->setScreenState(IZ)Z
+HPLcom/android/server/display/DisplayPowerController;->setTemporaryBrightness(F)V
 HPLcom/android/server/display/DisplayPowerController;->setTemporaryBrightness(I)V
 PLcom/android/server/display/DisplayPowerController;->skipRampStateToString(I)Ljava/lang/String;
 HPLcom/android/server/display/DisplayPowerController;->unblockScreenOff()V
@@ -15432,7 +15936,9 @@
 HPLcom/android/server/display/DisplayPowerState$1;->setValue(Lcom/android/server/display/DisplayPowerState;F)V
 HPLcom/android/server/display/DisplayPowerState$1;->setValue(Ljava/lang/Object;F)V
 HSPLcom/android/server/display/DisplayPowerState$2;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/display/DisplayPowerState$2;->setValue(Lcom/android/server/display/DisplayPowerState;F)V
 HSPLcom/android/server/display/DisplayPowerState$2;->setValue(Lcom/android/server/display/DisplayPowerState;I)V
+HSPLcom/android/server/display/DisplayPowerState$2;->setValue(Ljava/lang/Object;F)V
 HSPLcom/android/server/display/DisplayPowerState$2;->setValue(Ljava/lang/Object;I)V
 HSPLcom/android/server/display/DisplayPowerState$3;-><init>(Lcom/android/server/display/DisplayPowerState;)V
 HSPLcom/android/server/display/DisplayPowerState$3;->run()V
@@ -15441,6 +15947,7 @@
 HSPLcom/android/server/display/DisplayPowerState$PhotonicModulator;-><init>(Lcom/android/server/display/DisplayPowerState;)V
 HPLcom/android/server/display/DisplayPowerState$PhotonicModulator;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/DisplayPowerState$PhotonicModulator;->run()V
+HSPLcom/android/server/display/DisplayPowerState$PhotonicModulator;->setState(IF)Z
 HSPLcom/android/server/display/DisplayPowerState$PhotonicModulator;->setState(II)Z
 HSPLcom/android/server/display/DisplayPowerState;-><clinit>()V
 HSPLcom/android/server/display/DisplayPowerState;-><init>(Lcom/android/server/display/DisplayBlanker;Lcom/android/server/display/ColorFade;)V
@@ -15452,6 +15959,7 @@
 HSPLcom/android/server/display/DisplayPowerState;->access$1300(Lcom/android/server/display/DisplayPowerState;)V
 HSPLcom/android/server/display/DisplayPowerState;->access$1400(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayBlanker;
 HSPLcom/android/server/display/DisplayPowerState;->access$200(Lcom/android/server/display/DisplayPowerState;)F
+HSPLcom/android/server/display/DisplayPowerState;->access$300(Lcom/android/server/display/DisplayPowerState;)F
 HSPLcom/android/server/display/DisplayPowerState;->access$300(Lcom/android/server/display/DisplayPowerState;)I
 HSPLcom/android/server/display/DisplayPowerState;->access$400(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayPowerState$PhotonicModulator;
 HSPLcom/android/server/display/DisplayPowerState;->access$500()Z
@@ -15463,6 +15971,7 @@
 PLcom/android/server/display/DisplayPowerState;->dismissColorFadeResources()V
 HPLcom/android/server/display/DisplayPowerState;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/DisplayPowerState;->getColorFadeLevel()F
+HSPLcom/android/server/display/DisplayPowerState;->getScreenBrightness()F
 HSPLcom/android/server/display/DisplayPowerState;->getScreenBrightness()I
 HSPLcom/android/server/display/DisplayPowerState;->getScreenState()I
 HSPLcom/android/server/display/DisplayPowerState;->invokeCleanListenerIfNeeded()V
@@ -15471,13 +15980,14 @@
 HPLcom/android/server/display/DisplayPowerState;->scheduleColorFadeDraw()V
 HSPLcom/android/server/display/DisplayPowerState;->scheduleScreenUpdate()V
 HSPLcom/android/server/display/DisplayPowerState;->setColorFadeLevel(F)V
+HSPLcom/android/server/display/DisplayPowerState;->setScreenBrightness(F)V
 HSPLcom/android/server/display/DisplayPowerState;->setScreenBrightness(I)V
 HPLcom/android/server/display/DisplayPowerState;->setScreenState(I)V
 HSPLcom/android/server/display/DisplayPowerState;->waitUntilClean(Ljava/lang/Runnable;)Z
 HSPLcom/android/server/display/HysteresisLevels;-><init>([I[I[I)V
 HPLcom/android/server/display/HysteresisLevels;->dump(Ljava/io/PrintWriter;)V
-PLcom/android/server/display/HysteresisLevels;->getBrighteningThreshold(F)F
-PLcom/android/server/display/HysteresisLevels;->getDarkeningThreshold(F)F
+HPLcom/android/server/display/HysteresisLevels;->getBrighteningThreshold(F)F
+HPLcom/android/server/display/HysteresisLevels;->getDarkeningThreshold(F)F
 HPLcom/android/server/display/HysteresisLevels;->getReferenceLevel(F[F)F
 HSPLcom/android/server/display/HysteresisLevels;->setArrayFormat([IF)[F
 HSPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;-><init>(Landroid/view/SurfaceControl$DisplayConfig;)V
@@ -15485,9 +15995,12 @@
 HSPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->hasMatchingMode(Landroid/view/SurfaceControl$DisplayConfig;)Z
 HSPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->hasMatchingMode(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)Z
 PLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;-><init>(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;IIZFJLandroid/os/IBinder;)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;-><init>(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;IIZIJLandroid/os/IBinder;)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->displayBrightnessToHalBrightness(I)F
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->isHalBrightnessRangeSpecified()Z
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->run()V
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setDisplayBrightness(F)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setDisplayBrightness(I)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setDisplayState(I)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;-><clinit>()V
@@ -15498,6 +16011,7 @@
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$000(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Lcom/android/server/lights/Light;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$000(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Lcom/android/server/lights/LogicalLight;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$100(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Z
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$300(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Landroid/util/Spline;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$300(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Z
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$400(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Landroid/util/Spline;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$500(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Landroid/util/Spline;
@@ -15515,12 +16029,13 @@
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->lambda$S4bSIp6drytTEiae37oiY_7m6ng(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->lambda$iXCIox7NAT3NknToX9AEwGueQjs(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;Landroid/os/IBinder;Landroid/view/SurfaceControl$DesiredDisplayConfigSpecs;)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->loadDisplayConfigurationBrightnessMapping()V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onActiveDisplayConfigChangedLocked(I)V
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onActiveDisplayConfigChangedLocked(I)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onActivePhysicalDisplayModeChangedLocked(I)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onOverlayChangedLocked()V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestColorModeAsync(Landroid/os/IBinder;I)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestColorModeLocked(I)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestColorModeLocked(I)Z
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestDisplayStateLocked(IF)Ljava/lang/Runnable;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestDisplayStateLocked(II)Ljava/lang/Runnable;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setAutoLowLatencyModeLocked(Z)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setDesiredDisplayConfigSpecs(IFF[I)V
@@ -15545,6 +16060,7 @@
 HSPLcom/android/server/display/LocalDisplayAdapter$PhysicalDisplayEventReceiver;->onConfigChanged(JJI)V
 HSPLcom/android/server/display/LocalDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;)V
 HSPLcom/android/server/display/LocalDisplayAdapter;->access$500(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
+PLcom/android/server/display/LocalDisplayAdapter;->access$700(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
 HSPLcom/android/server/display/LocalDisplayAdapter;->access$800(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
 HSPLcom/android/server/display/LocalDisplayAdapter;->getOverlayContext()Landroid/content/Context;
 HSPLcom/android/server/display/LocalDisplayAdapter;->getPowerModeForState(I)I
@@ -15626,21 +16142,28 @@
 PLcom/android/server/display/PersistentDataStore;->setDirty()V
 HSPLcom/android/server/display/RampAnimator$1;-><init>(Lcom/android/server/display/RampAnimator;)V
 HPLcom/android/server/display/RampAnimator$1;->run()V
+HSPLcom/android/server/display/RampAnimator;-><init>(Ljava/lang/Object;Landroid/util/FloatProperty;)V
 HSPLcom/android/server/display/RampAnimator;-><init>(Ljava/lang/Object;Landroid/util/IntProperty;)V
-PLcom/android/server/display/RampAnimator;->access$000(Lcom/android/server/display/RampAnimator;)Landroid/view/Choreographer;
-PLcom/android/server/display/RampAnimator;->access$100(Lcom/android/server/display/RampAnimator;)J
+HPLcom/android/server/display/RampAnimator;->access$000(Lcom/android/server/display/RampAnimator;)Landroid/view/Choreographer;
+HPLcom/android/server/display/RampAnimator;->access$100(Lcom/android/server/display/RampAnimator;)J
 PLcom/android/server/display/RampAnimator;->access$1000(Lcom/android/server/display/RampAnimator;)Lcom/android/server/display/RampAnimator$Listener;
-PLcom/android/server/display/RampAnimator;->access$102(Lcom/android/server/display/RampAnimator;J)J
-PLcom/android/server/display/RampAnimator;->access$200(Lcom/android/server/display/RampAnimator;)F
-PLcom/android/server/display/RampAnimator;->access$202(Lcom/android/server/display/RampAnimator;F)F
+HPLcom/android/server/display/RampAnimator;->access$102(Lcom/android/server/display/RampAnimator;J)J
+HPLcom/android/server/display/RampAnimator;->access$200(Lcom/android/server/display/RampAnimator;)F
+HPLcom/android/server/display/RampAnimator;->access$202(Lcom/android/server/display/RampAnimator;F)F
+PLcom/android/server/display/RampAnimator;->access$300(Lcom/android/server/display/RampAnimator;)F
 HPLcom/android/server/display/RampAnimator;->access$300(Lcom/android/server/display/RampAnimator;)I
-PLcom/android/server/display/RampAnimator;->access$400(Lcom/android/server/display/RampAnimator;)I
+PLcom/android/server/display/RampAnimator;->access$400(Lcom/android/server/display/RampAnimator;)F
+HPLcom/android/server/display/RampAnimator;->access$400(Lcom/android/server/display/RampAnimator;)I
+PLcom/android/server/display/RampAnimator;->access$500(Lcom/android/server/display/RampAnimator;)F
 HPLcom/android/server/display/RampAnimator;->access$500(Lcom/android/server/display/RampAnimator;)I
-PLcom/android/server/display/RampAnimator;->access$502(Lcom/android/server/display/RampAnimator;I)I
-PLcom/android/server/display/RampAnimator;->access$600(Lcom/android/server/display/RampAnimator;)Ljava/lang/Object;
-PLcom/android/server/display/RampAnimator;->access$700(Lcom/android/server/display/RampAnimator;)Landroid/util/IntProperty;
-PLcom/android/server/display/RampAnimator;->access$800(Lcom/android/server/display/RampAnimator;)V
+PLcom/android/server/display/RampAnimator;->access$502(Lcom/android/server/display/RampAnimator;F)F
+HPLcom/android/server/display/RampAnimator;->access$502(Lcom/android/server/display/RampAnimator;I)I
+HPLcom/android/server/display/RampAnimator;->access$600(Lcom/android/server/display/RampAnimator;)Ljava/lang/Object;
+PLcom/android/server/display/RampAnimator;->access$700(Lcom/android/server/display/RampAnimator;)Landroid/util/FloatProperty;
+HPLcom/android/server/display/RampAnimator;->access$700(Lcom/android/server/display/RampAnimator;)Landroid/util/IntProperty;
+HPLcom/android/server/display/RampAnimator;->access$800(Lcom/android/server/display/RampAnimator;)V
 PLcom/android/server/display/RampAnimator;->access$902(Lcom/android/server/display/RampAnimator;Z)Z
+HSPLcom/android/server/display/RampAnimator;->animateTo(FF)Z
 HSPLcom/android/server/display/RampAnimator;->animateTo(II)Z
 PLcom/android/server/display/RampAnimator;->cancelAnimationCallback()V
 HSPLcom/android/server/display/RampAnimator;->isAnimating()Z
@@ -15661,7 +16184,8 @@
 HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->getDisplayDeviceInfoLocked()Lcom/android/server/display/DisplayDeviceInfo;
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->hasStableUniqueId()Z
 HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->requestDisplayStateLocked(II)Ljava/lang/Runnable;
+PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->requestDisplayStateLocked(IF)Ljava/lang/Runnable;
+HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->requestDisplayStateLocked(II)Ljava/lang/Runnable;
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->resizeLocked(III)V
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->setDisplayState(Z)V
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->setSurfaceLocked(Landroid/view/Surface;)V
@@ -15752,9 +16276,9 @@
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->clampNightDisplayColorTemperature(I)I
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getColorTemperature()I
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getColorTemperatureSetting()I
-PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getLevel()I
+HPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getLevel()I
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getMatrix()[F
-PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->isActivatedSetting()Z
+HPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->isActivatedSetting()Z
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->isAvailable(Landroid/content/Context;)Z
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->onActivated(Z)V
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->onColorTemperatureChanged(I)V
@@ -15774,8 +16298,8 @@
 PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
 PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onActivated(Z)V
 PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onStart()V
-PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onTwilightStateChanged(Lcom/android/server/twilight/TwilightState;)V
-PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->updateActivated(Lcom/android/server/twilight/TwilightState;)V
+HPLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onTwilightStateChanged(Lcom/android/server/twilight/TwilightState;)V
+HPLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->updateActivated(Lcom/android/server/twilight/TwilightState;)V
 HSPLcom/android/server/display/color/ColorDisplayService;-><clinit>()V
 HSPLcom/android/server/display/color/ColorDisplayService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/display/color/ColorDisplayService;->access$1000(Lcom/android/server/display/color/ColorDisplayService;I)V
@@ -15858,7 +16382,7 @@
 PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->getDisplayColorSpaceFromSurfaceControl()Landroid/graphics/ColorSpace$Rgb;
 HPLcom/android/server/display/color/DisplayWhiteBalanceTintController;->getLevel()I
-PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->getMatrix()[F
+HPLcom/android/server/display/color/DisplayWhiteBalanceTintController;->getMatrix()[F
 PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->isAvailable(Landroid/content/Context;)Z
 HPLcom/android/server/display/color/DisplayWhiteBalanceTintController;->isColorMatrixCoeffValid(F)Z
 PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->isColorMatrixValid([F)Z
@@ -15871,7 +16395,7 @@
 PLcom/android/server/display/color/GlobalSaturationTintController;->isAvailable(Landroid/content/Context;)Z
 HPLcom/android/server/display/color/GlobalSaturationTintController;->setMatrix(I)V
 HSPLcom/android/server/display/color/TintController;-><init>()V
-PLcom/android/server/display/color/TintController;->cancelAnimator()V
+HPLcom/android/server/display/color/TintController;->cancelAnimator()V
 HSPLcom/android/server/display/color/TintController;->isActivated()Z
 PLcom/android/server/display/color/TintController;->isActivatedStateNotSet()Z
 HPLcom/android/server/display/color/TintController;->matrixToString([FI)Ljava/lang/String;
@@ -15936,7 +16460,7 @@
 HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;-><init>(Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
 PLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;->setCallbacks(Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor$Callbacks;)Z
-PLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;->update(F)V
+HPLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;->update(F)V
 HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;-><init>(Landroid/os/Handler;Landroid/hardware/SensorManager;Ljava/lang/String;I)V
 PLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;->setCallbacks(Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor$Callbacks;)Z
@@ -15944,7 +16468,7 @@
 HSPLcom/android/server/display/whitebalance/AmbientSensor;-><init>(Ljava/lang/String;Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
 HPLcom/android/server/display/whitebalance/AmbientSensor;->access$000(Lcom/android/server/display/whitebalance/AmbientSensor;F)V
 PLcom/android/server/display/whitebalance/AmbientSensor;->disable()Z
-PLcom/android/server/display/whitebalance/AmbientSensor;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/display/whitebalance/AmbientSensor;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/whitebalance/AmbientSensor;->enable()Z
 HPLcom/android/server/display/whitebalance/AmbientSensor;->handleNewEvent(F)V
 HPLcom/android/server/display/whitebalance/AmbientSensor;->setEnabled(Z)Z
@@ -15992,7 +16516,7 @@
 HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->tooSoon(F)Z
 HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->validateArguments(FF[F[F[F)V
 HPLcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
-PLcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;->run()V
+HPLcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;->run()V
 HPLcom/android/server/dreams/-$$Lambda$gXC4nM2f5GMCBX0ED45DCQQjqv0;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
 HPLcom/android/server/dreams/-$$Lambda$gXC4nM2f5GMCBX0ED45DCQQjqv0;->run()V
 HSPLcom/android/server/dreams/DreamController$1;-><init>(Lcom/android/server/dreams/DreamController;)V
@@ -16041,7 +16565,7 @@
 PLcom/android/server/dreams/DreamManagerService$BinderService;->dream()V
 PLcom/android/server/dreams/DreamManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->finishSelf(Landroid/os/IBinder;Z)V
-PLcom/android/server/dreams/DreamManagerService$BinderService;->forceAmbientDisplayEnabled(Z)V
+HPLcom/android/server/dreams/DreamManagerService$BinderService;->forceAmbientDisplayEnabled(Z)V
 PLcom/android/server/dreams/DreamManagerService$BinderService;->getDefaultDreamComponent()Landroid/content/ComponentName;
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->getDreamComponents()[Landroid/content/ComponentName;
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->isDreaming()Z
@@ -16083,7 +16607,7 @@
 PLcom/android/server/dreams/DreamManagerService;->componentsFromString(Ljava/lang/String;)[Landroid/content/ComponentName;
 PLcom/android/server/dreams/DreamManagerService;->componentsToString([Landroid/content/ComponentName;)Ljava/lang/String;
 HPLcom/android/server/dreams/DreamManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
-PLcom/android/server/dreams/DreamManagerService;->finishSelfInternal(Landroid/os/IBinder;Z)V
+HPLcom/android/server/dreams/DreamManagerService;->finishSelfInternal(Landroid/os/IBinder;Z)V
 PLcom/android/server/dreams/DreamManagerService;->forceAmbientDisplayEnabledInternal(Z)V
 PLcom/android/server/dreams/DreamManagerService;->getDefaultDreamComponentForUser(I)Landroid/content/ComponentName;
 HSPLcom/android/server/dreams/DreamManagerService;->getDozeComponent()Landroid/content/ComponentName;
@@ -16120,7 +16644,7 @@
 PLcom/android/server/emergency/EmergencyAffordanceService;->access$300(Lcom/android/server/emergency/EmergencyAffordanceService;)Lcom/android/server/emergency/EmergencyAffordanceService$MyHandler;
 HSPLcom/android/server/emergency/EmergencyAffordanceService;->access$400(Lcom/android/server/emergency/EmergencyAffordanceService;)V
 PLcom/android/server/emergency/EmergencyAffordanceService;->access$500(Lcom/android/server/emergency/EmergencyAffordanceService;)Z
-PLcom/android/server/emergency/EmergencyAffordanceService;->access$600(Lcom/android/server/emergency/EmergencyAffordanceService;)Z
+HPLcom/android/server/emergency/EmergencyAffordanceService;->access$600(Lcom/android/server/emergency/EmergencyAffordanceService;)Z
 HSPLcom/android/server/emergency/EmergencyAffordanceService;->handleInitializeState()V
 HSPLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateCellInfo()Z
 HSPLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateSimSubscriptionInfo()Z
@@ -16153,6 +16677,8 @@
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;-><init>(Lcom/android/server/firewall/IntentFirewall$1;)V
 PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
 PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->allowFilterResult(Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;Ljava/util/List;)Z
+PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
+PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;)Z
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->newArray(I)[Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->queryByComponent(Landroid/content/ComponentName;Ljava/util/List;)V
@@ -16240,14 +16766,14 @@
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->approveReport(Ljava/lang/String;)V
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->authorizeReport(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/IIncidentAuthListener;)V
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->cancelAuthorization(Landroid/os/IIncidentAuthListener;)V
-PLcom/android/server/incident/IncidentCompanionService$BinderService;->deleteIncidentReports(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/incident/IncidentCompanionService$BinderService;->deleteIncidentReports(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->denyReport(Ljava/lang/String;)V
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceAccessReportsPermissions(Ljava/lang/String;)V
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceAuthorizePermission()V
 HPLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceCallerIsSameApp(Ljava/lang/String;)V
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceRequestAuthorizationPermission()V
-PLcom/android/server/incident/IncidentCompanionService$BinderService;->getIncidentReport(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/IncidentManager$IncidentReport;
+HPLcom/android/server/incident/IncidentCompanionService$BinderService;->getIncidentReport(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/IncidentManager$IncidentReport;
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->getIncidentReportList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
 PLcom/android/server/incident/IncidentCompanionService$BinderService;->getPendingReports()Ljava/util/List;
 HPLcom/android/server/incident/IncidentCompanionService$BinderService;->sendReportReadyBroadcast(Ljava/lang/String;Ljava/lang/String;)V
@@ -16291,10 +16817,6 @@
 PLcom/android/server/incident/RequestQueue;->access$000(Lcom/android/server/incident/RequestQueue;)Ljava/util/ArrayList;
 PLcom/android/server/incident/RequestQueue;->enqueue(Landroid/os/IBinder;ZLjava/lang/Runnable;)V
 PLcom/android/server/incident/RequestQueue;->start()V
-HSPLcom/android/server/incremental/IncrementalManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/incremental/IncrementalManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-HSPLcom/android/server/incremental/IncrementalManagerService;->start(Landroid/content/Context;)Lcom/android/server/incremental/IncrementalManagerService;
-PLcom/android/server/incremental/IncrementalManagerService;->systemReady()V
 HPLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;-><init>(Ljava/lang/String;)V
 PLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;->visit(Ljava/lang/Object;)V
 HSPLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Ljava/lang/String;)V
@@ -16321,7 +16843,7 @@
 PLcom/android/server/infra/AbstractMasterSystemService;->access$100(Lcom/android/server/infra/AbstractMasterSystemService;)Landroid/util/SparseArray;
 PLcom/android/server/infra/AbstractMasterSystemService;->access$200(Lcom/android/server/infra/AbstractMasterSystemService;)I
 HPLcom/android/server/infra/AbstractMasterSystemService;->assertCalledByPackageOwner(Ljava/lang/String;)V
-PLcom/android/server/infra/AbstractMasterSystemService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HPLcom/android/server/infra/AbstractMasterSystemService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/infra/AbstractMasterSystemService;->getServiceForUserLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
 HSPLcom/android/server/infra/AbstractMasterSystemService;->getServiceSettingsProperty()Ljava/lang/String;
 HSPLcom/android/server/infra/AbstractMasterSystemService;->getSupportedUsers()Ljava/util/List;
@@ -16359,6 +16881,7 @@
 HPLcom/android/server/infra/AbstractPerUserSystemService;->getServicePackageName()Ljava/lang/String;
 PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceUidLocked()I
 PLcom/android/server/infra/AbstractPerUserSystemService;->getTargedSdkLocked()I
+PLcom/android/server/infra/AbstractPerUserSystemService;->getUserId()I
 PLcom/android/server/infra/AbstractPerUserSystemService;->handlePackageUpdateLocked(Ljava/lang/String;)V
 PLcom/android/server/infra/AbstractPerUserSystemService;->isDebug()Z
 HSPLcom/android/server/infra/AbstractPerUserSystemService;->isDisabledByUserRestrictionsLocked()Z
@@ -16390,7 +16913,6 @@
 HSPLcom/android/server/infra/ServiceNameResolver;->getServiceName(I)Ljava/lang/String;
 HSPLcom/android/server/infra/ServiceNameResolver;->setOnTemporaryServiceNameChangedCallback(Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;)V
 HSPLcom/android/server/input/-$$Lambda$InputManagerService$P986LfJHWb-Wytu9J9I0HQIpodU;-><init>(Ljava/util/List;)V
-HSPLcom/android/server/input/-$$Lambda$InputManagerService$o1rqNjeoTO6WW7Ut-lKtY_eyNc8;-><init>(Ljava/util/List;)V
 HSPLcom/android/server/input/InputManagerService$10;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
 PLcom/android/server/input/InputManagerService$10;->onChange(Z)V
 HSPLcom/android/server/input/InputManagerService$11;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
@@ -16419,7 +16941,7 @@
 HSPLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/android/server/input/InputManagerService;)V
 HSPLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/android/server/input/InputManagerService;Lcom/android/server/input/InputManagerService$1;)V
 HSPLcom/android/server/input/InputManagerService$LocalService;->setDisplayViewports(Ljava/util/List;)V
-PLcom/android/server/input/InputManagerService$LocalService;->setInteractive(Z)V
+HPLcom/android/server/input/InputManagerService$LocalService;->setInteractive(Z)V
 HSPLcom/android/server/input/InputManagerService$LocalService;->setPulseGestureEnabled(Z)V
 HSPLcom/android/server/input/InputManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/input/InputManagerService;->access$100(Lcom/android/server/input/InputManagerService;)V
@@ -16544,7 +17066,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerInternal;->get()Lcom/android/server/inputmethod/InputMethodManagerInternal;
 HSPLcom/android/server/inputmethod/InputMethodManagerService$1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$1;->onBindingDied(Landroid/content/ComponentName;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$1;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$2;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$2;->executeMessage(Landroid/os/Message;)V
@@ -16557,7 +17079,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerService$ActivityViewInfo;->access$1300(Lcom/android/server/inputmethod/InputMethodManagerService$ActivityViewInfo;)Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;
 PLcom/android/server/inputmethod/InputMethodManagerService$ActivityViewInfo;->access$1400(Lcom/android/server/inputmethod/InputMethodManagerService$ActivityViewInfo;)Landroid/graphics/Matrix;
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/internal/view/IInputMethodClient;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;->binderDied()V
+HPLcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;->binderDied()V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ClientState;-><init>(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;IIILcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$ClientState;->toString()Ljava/lang/String;
 PLcom/android/server/inputmethod/InputMethodManagerService$DebugFlag;-><clinit>()V
@@ -16567,13 +17089,16 @@
 HSPLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$ImeSubtypeListAdapter;-><init>(Landroid/content/Context;ILjava/util/List;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$ImeSubtypeListAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
+HPLcom/android/server/inputmethod/InputMethodManagerService$ImeSubtypeListAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;-><init>(Lcom/android/internal/view/IInlineSuggestionsRequestCallback;Ljava/lang/String;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInlineSuggestionsRequest(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInlineSuggestionsUnsupported()V
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->createInputContentUriToken(Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->hideMySoftInput(I)V
@@ -16595,6 +17120,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->getEnabledInputMethodListAsUser(I)Ljava/util/List;
 PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->getInputMethodListAsUser(I)Ljava/util/List;
 HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->hideCurrentInputMethod()V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->onCreateInlineSuggestionsRequest(ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->setInteractive(Z)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MethodCallback;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/internal/view/IInputMethod;Landroid/view/InputChannel;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MethodCallback;->sessionCreated(Lcom/android/internal/view/IInputMethodSession;)V
@@ -16623,7 +17149,7 @@
 HPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory$Entry;->set(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;-><init>()V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->addEntry(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->addEntry(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->getEntrySize()I
 PLcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;-><clinit>()V
@@ -16633,11 +17159,12 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1600(Lcom/android/server/inputmethod/InputMethodManagerService;)[I
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1700(Lcom/android/server/inputmethod/InputMethodManagerService;I)Ljava/util/List;
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1800(Lcom/android/server/inputmethod/InputMethodManagerService;I)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$1900(Lcom/android/server/inputmethod/InputMethodManagerService;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2600(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2600(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->access$2700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->access$2700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 HPLcom/android/server/inputmethod/InputMethodManagerService;->access$2700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
@@ -16646,7 +17173,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2800(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2900(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2900(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->access$3000(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->access$3000(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3100(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3200(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3300(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;I)V
@@ -16654,8 +17181,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3400(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->access$3400(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->access$3500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->access$3600(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)Z
+HPLcom/android/server/inputmethod/InputMethodManagerService;->access$3500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3600(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)Z
@@ -16671,9 +17197,9 @@
 HPLcom/android/server/inputmethod/InputMethodManagerService;->calledWithValidTokenLocked(Landroid/os/IBinder;)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->canShowInputMethodPickerLocked(Lcom/android/internal/view/IInputMethodClient;)Z
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->chooseNewDefaultIMELocked()Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->clearClientSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->clearClientSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->clearCurMethodLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->computeImeDisplayIdForTarget(ILcom/android/server/inputmethod/InputMethodManagerService$ImeDisplayValidator;)I
+HPLcom/android/server/inputmethod/InputMethodManagerService;->computeImeDisplayIdForTarget(ILcom/android/server/inputmethod/InputMethodManagerService$ImeDisplayValidator;)I
 PLcom/android/server/inputmethod/InputMethodManagerService;->createInputContentUriToken(Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 HPLcom/android/server/inputmethod/InputMethodManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->executeOrSendMessage(Landroid/os/IInterface;Landroid/os/Message;)V
@@ -16691,10 +17217,11 @@
 HPLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodList(I)Ljava/util/List;
 PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodListAsUser(I)Ljava/util/List;
 PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodListLocked(I)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodManagerService;->getLastInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;
 HPLcom/android/server/inputmethod/InputMethodManagerService;->handleMessage(Landroid/os/Message;)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->handleSetInteractive(Z)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(ILandroid/os/ResultReceiver;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->hideInputMethodMenu()V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->hideInputMethodMenu()V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->hideInputMethodMenuLocked()V
 PLcom/android/server/inputmethod/InputMethodManagerService;->hideMySoftInput(Landroid/os/IBinder;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
@@ -16703,6 +17230,8 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->lambda$new$0$InputMethodManagerService(I)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->notifyUserAction(Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->onActionLocaleChanged()V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->onCreateInlineSuggestionsRequest(ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->onCreateInlineSuggestionsRequestLocked(ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->onSessionCreated(Lcom/android/internal/view/IInputMethod;Lcom/android/internal/view/IInputMethodSession;Landroid/view/InputChannel;)V
@@ -16710,7 +17239,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->onUnlockUser(I)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->queryInputMethodServicesInternal(Landroid/content/Context;ILandroid/util/ArrayMap;Landroid/util/ArrayMap;Ljava/util/ArrayList;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->removeClient(Lcom/android/internal/view/IInputMethodClient;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->reportActivityView(Lcom/android/internal/view/IInputMethodClient;I[F)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->reportActivityView(Lcom/android/internal/view/IInputMethodClient;I[F)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->reportFullscreenMode(Landroid/os/IBinder;Z)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->reportStartInput(Landroid/os/IBinder;Landroid/os/IBinder;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->requestClientSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;)V
@@ -16767,7 +17296,7 @@
 HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/inputmethod/InputMethodInfo;ILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->compareNullableCharSequences(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
 PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->compareTo(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;)I
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->compareTo(Ljava/lang/Object;)I
+HPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->compareTo(Ljava/lang/Object;)I
 HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->equals(Ljava/lang/Object;)Z
 HPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->toString()Ljava/lang/String;
@@ -16889,15 +17418,18 @@
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getAllowedInstallers(Landroid/content/pm/PackageInfo;)Ljava/util/Map;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getAllowedRuleProviders()Ljava/util/List;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getCertificateFingerprint(Landroid/content/pm/PackageInfo;)Ljava/lang/String;
+PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getCertificateFingerprint(Landroid/content/pm/PackageInfo;)Ljava/util/List;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getFingerprint(Landroid/content/pm/Signature;)Ljava/lang/String;
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallationPath(Landroid/net/Uri;)Ljava/io/File;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallerCertificateFingerprint(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallerCertificateFingerprint(Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallerPackageName(Landroid/content/Intent;)Ljava/lang/String;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getLoggingResponse(Lcom/android/server/integrity/model/IntegrityCheckResult;)I
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getMultiApkInfo(Ljava/io/File;)Landroid/content/pm/PackageInfo;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getPackageArchiveInfo(Landroid/net/Uri;)Landroid/content/pm/PackageInfo;
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getPackageNameNormalized(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getSignature(Landroid/content/pm/PackageInfo;)Landroid/content/pm/Signature;
+PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getSignatures(Landroid/content/pm/PackageInfo;)[Landroid/content/pm/Signature;
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->handleIntegrityVerification(Landroid/content/Intent;)V
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->isCausedByAppCertRule(Lcom/android/server/integrity/model/IntegrityCheckResult;)Z
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->isCausedByInstallerRule(Lcom/android/server/integrity/model/IntegrityCheckResult;)Z
@@ -16937,7 +17469,6 @@
 PLcom/android/server/integrity/model/IntegrityCheckResult;->getRule()Landroid/content/integrity/Rule;
 PLcom/android/server/integrity/model/IntegrityCheckResult;->isCausedByAppCertRule()Z
 PLcom/android/server/integrity/model/IntegrityCheckResult;->isCausedByInstallerRule()Z
-HSPLcom/android/server/integrity/parser/RuleBinaryParser;-><clinit>()V
 HSPLcom/android/server/integrity/parser/RuleBinaryParser;-><init>()V
 HSPLcom/android/server/integrity/serializer/RuleBinarySerializer;-><init>()V
 HSPLcom/android/server/lights/Light;-><init>()V
@@ -16950,12 +17481,14 @@
 HSPLcom/android/server/lights/LightsService$LightImpl;-><init>(Lcom/android/server/lights/LightsService;Landroid/content/Context;ILcom/android/server/lights/LightsService$1;)V
 HSPLcom/android/server/lights/LightsService$LightImpl;-><init>(Lcom/android/server/lights/LightsService;Landroid/content/Context;Landroid/hardware/light/HwLight;)V
 HSPLcom/android/server/lights/LightsService$LightImpl;-><init>(Lcom/android/server/lights/LightsService;Landroid/content/Context;Landroid/hardware/light/HwLight;Lcom/android/server/lights/LightsService$1;)V
+HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightness(F)V
+HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightness(FI)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightness(FII)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightness(I)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightness(II)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightnessFloat(F)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->setColor(I)V
-HPLcom/android/server/lights/LightsService$LightImpl;->setFlashing(IIII)V
+HSPLcom/android/server/lights/LightsService$LightImpl;->setFlashing(IIII)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIIII)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->setLightUnchecked(IIIII)V
 HSPLcom/android/server/lights/LightsService$LightImpl;->shouldBeInLowPersistenceMode()Z
@@ -17022,10 +17555,10 @@
 HPLcom/android/server/location/-$$Lambda$ContextHubService$yrt4Ybb62ufyqsQQMJoTJ2JMw_4;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/location/-$$Lambda$ContextHubTransactionManager$sHbjr4TaLEATkCX_yhD2L7ebuxE;-><init>(Lcom/android/server/location/ContextHubTransactionManager;Lcom/android/server/location/ContextHubServiceTransaction;)V
 HPLcom/android/server/location/-$$Lambda$GeocoderProxy$jfLn3HL2BzwsKdoI6ZZeFfEe10k;-><init>(DDILandroid/location/GeocoderParams;Ljava/util/List;)V
-PLcom/android/server/location/-$$Lambda$GeocoderProxy$jfLn3HL2BzwsKdoI6ZZeFfEe10k;->run(Landroid/os/IBinder;)Ljava/lang/Object;
+HPLcom/android/server/location/-$$Lambda$GeocoderProxy$jfLn3HL2BzwsKdoI6ZZeFfEe10k;->run(Landroid/os/IBinder;)Ljava/lang/Object;
 PLcom/android/server/location/-$$Lambda$GeocoderProxy$l4GRjTzjcqxZJILrVLX5qayXBE0;-><init>(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)V
 PLcom/android/server/location/-$$Lambda$GeocoderProxy$l4GRjTzjcqxZJILrVLX5qayXBE0;->run(Landroid/os/IBinder;)Ljava/lang/Object;
-PLcom/android/server/location/-$$Lambda$GeofenceProxy$GeofenceProxyServiceConnection$zlbg9IPCIuzTl4MNd_aO2VH84CU;-><init>(Lcom/android/server/location/GeofenceProxy;)V
+HSPLcom/android/server/location/-$$Lambda$GeofenceProxy$GeofenceProxyServiceConnection$zlbg9IPCIuzTl4MNd_aO2VH84CU;-><init>(Lcom/android/server/location/GeofenceProxy;)V
 PLcom/android/server/location/-$$Lambda$GeofenceProxy$GeofenceProxyServiceConnection$zlbg9IPCIuzTl4MNd_aO2VH84CU;->run(Landroid/os/IBinder;)V
 HSPLcom/android/server/location/-$$Lambda$GeofenceProxy$hIfaTtsg4NqVfDRkaCxUg6rx90I;-><init>(Lcom/android/server/location/GeofenceProxy;)V
 PLcom/android/server/location/-$$Lambda$GeofenceProxy$hIfaTtsg4NqVfDRkaCxUg6rx90I;->run(Landroid/os/IBinder;)V
@@ -17056,6 +17589,8 @@
 PLcom/android/server/location/-$$Lambda$GnssLocationProvider$3-p6UujuU3pwMrR_jYW3uvQiXNM;->run()V
 HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 PLcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;->onNetworkAvailable()V
+PLcom/android/server/location/-$$Lambda$GnssLocationProvider$W6-sB0jGWhsljLO69TqY_EhXWvI;-><init>(Lcom/android/server/location/GnssLocationProvider;I)V
+PLcom/android/server/location/-$$Lambda$GnssLocationProvider$W6-sB0jGWhsljLO69TqY_EhXWvI;->run()V
 HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;-><init>(Lcom/android/server/location/GnssLocationProvider;[I[I)V
 HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;->run()V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$adAUsgD5mK9uoxw0KEjaMYtp_Ro;-><init>(Lcom/android/server/location/GnssLocationProvider;II)V
@@ -17072,6 +17607,8 @@
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$nZP4qF7PEET3HrkcVZAYhG3Bm0c;->run()V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$rgfO__O6aj3JBohawF88T-AfsaY;-><init>(Lcom/android/server/location/GnssLocationProvider;II)V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$rgfO__O6aj3JBohawF88T-AfsaY;->run()V
+PLcom/android/server/location/-$$Lambda$GnssLocationProvider$sq1oTWVIMZbc8j3SbFR_out8P2Q;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+PLcom/android/server/location/-$$Lambda$GnssLocationProvider$sq1oTWVIMZbc8j3SbFR_out8P2Q;->getGnssMetricsAsProtoString()Ljava/lang/String;
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$zDU-4stA5kbnbj2CmSK2PauyroM;-><init>(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;Ljava/lang/String;Landroid/location/LocationManager;)V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$zDU-4stA5kbnbj2CmSK2PauyroM;->run()V
 HPLcom/android/server/location/-$$Lambda$GnssMeasurementsProvider$Qlkb-fzzYggD17FlZmrylRJr2vE;-><init>(Lcom/android/server/location/GnssMeasurementsProvider;Landroid/location/GnssMeasurementsEvent;)V
@@ -17216,14 +17753,14 @@
 PLcom/android/server/location/ComprehensiveCountryDetector;->access$002(Lcom/android/server/location/ComprehensiveCountryDetector;Landroid/location/Country;)Landroid/location/Country;
 HPLcom/android/server/location/ComprehensiveCountryDetector;->access$100(Lcom/android/server/location/ComprehensiveCountryDetector;ZZ)Landroid/location/Country;
 PLcom/android/server/location/ComprehensiveCountryDetector;->access$200(Lcom/android/server/location/ComprehensiveCountryDetector;)V
-PLcom/android/server/location/ComprehensiveCountryDetector;->access$308(Lcom/android/server/location/ComprehensiveCountryDetector;)I
-PLcom/android/server/location/ComprehensiveCountryDetector;->access$408(Lcom/android/server/location/ComprehensiveCountryDetector;)I
+HPLcom/android/server/location/ComprehensiveCountryDetector;->access$308(Lcom/android/server/location/ComprehensiveCountryDetector;)I
+HPLcom/android/server/location/ComprehensiveCountryDetector;->access$408(Lcom/android/server/location/ComprehensiveCountryDetector;)I
 HPLcom/android/server/location/ComprehensiveCountryDetector;->access$500(Lcom/android/server/location/ComprehensiveCountryDetector;)Z
 PLcom/android/server/location/ComprehensiveCountryDetector;->addPhoneStateListener()V
 HPLcom/android/server/location/ComprehensiveCountryDetector;->addToLogs(Landroid/location/Country;)V
 HPLcom/android/server/location/ComprehensiveCountryDetector;->cancelLocationRefresh()V
 PLcom/android/server/location/ComprehensiveCountryDetector;->createLocationBasedCountryDetector()Lcom/android/server/location/CountryDetectorBase;
-PLcom/android/server/location/ComprehensiveCountryDetector;->detectCountry()Landroid/location/Country;
+HPLcom/android/server/location/ComprehensiveCountryDetector;->detectCountry()Landroid/location/Country;
 HPLcom/android/server/location/ComprehensiveCountryDetector;->detectCountry(ZZ)Landroid/location/Country;
 HPLcom/android/server/location/ComprehensiveCountryDetector;->getCountry()Landroid/location/Country;
 PLcom/android/server/location/ComprehensiveCountryDetector;->getLastKnownLocationBasedCountry()Landroid/location/Country;
@@ -17238,13 +17775,13 @@
 HPLcom/android/server/location/ComprehensiveCountryDetector;->runAfterDetection(Landroid/location/Country;Landroid/location/Country;ZZ)V
 HPLcom/android/server/location/ComprehensiveCountryDetector;->runAfterDetectionAsync(Landroid/location/Country;Landroid/location/Country;ZZ)V
 PLcom/android/server/location/ComprehensiveCountryDetector;->scheduleLocationRefresh()V
-PLcom/android/server/location/ComprehensiveCountryDetector;->setCountryListener(Landroid/location/CountryListener;)V
+HPLcom/android/server/location/ComprehensiveCountryDetector;->setCountryListener(Landroid/location/CountryListener;)V
 PLcom/android/server/location/ComprehensiveCountryDetector;->startLocationBasedDetector(Landroid/location/CountryListener;)V
 HPLcom/android/server/location/ComprehensiveCountryDetector;->stopLocationBasedDetector()V
 HSPLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;-><init>(Lcom/android/server/location/ContextHubClientBroker;)V
 PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;-><init>(Lcom/android/server/location/ContextHubClientBroker;Landroid/app/PendingIntent;J)V
 PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->clear()V
-PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->getNanoAppId()J
+HPLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->getNanoAppId()J
 PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->getPendingIntent()Landroid/app/PendingIntent;
 HPLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->hasPendingIntent()Z
 HSPLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->isValid()Z
@@ -17415,10 +17952,14 @@
 PLcom/android/server/location/GeofenceManager;->addFence(Landroid/location/LocationRequest;Landroid/location/Geofence;Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/location/GeofenceManager;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/location/GeofenceManager;->getFreshLocationLocked()Landroid/location/Location;
+PLcom/android/server/location/GeofenceManager;->onLocationChanged(Landroid/location/Location;)V
 PLcom/android/server/location/GeofenceManager;->onProviderDisabled(Ljava/lang/String;)V
 PLcom/android/server/location/GeofenceManager;->onProviderEnabled(Ljava/lang/String;)V
+PLcom/android/server/location/GeofenceManager;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/location/GeofenceManager;->removeExpiredFencesLocked()V
 PLcom/android/server/location/GeofenceManager;->scheduleUpdateFencesLocked()V
+PLcom/android/server/location/GeofenceManager;->sendIntent(Landroid/app/PendingIntent;Landroid/content/Intent;)V
+PLcom/android/server/location/GeofenceManager;->sendIntentEnter(Landroid/app/PendingIntent;)V
 PLcom/android/server/location/GeofenceManager;->updateFences()V
 HSPLcom/android/server/location/GeofenceProxy$1;-><init>(Lcom/android/server/location/GeofenceProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
 PLcom/android/server/location/GeofenceProxy$1;->onBind()V
@@ -17429,11 +17970,11 @@
 HSPLcom/android/server/location/GeofenceProxy;-><init>(Landroid/content/Context;IIILandroid/location/IGpsGeofenceHardware;Landroid/location/IFusedGeofenceHardware;)V
 HSPLcom/android/server/location/GeofenceProxy;-><init>(Landroid/content/Context;Landroid/location/IGpsGeofenceHardware;)V
 HSPLcom/android/server/location/GeofenceProxy;->access$000(Lcom/android/server/location/GeofenceProxy;)Lcom/android/server/ServiceWatcher$BinderRunner;
-PLcom/android/server/location/GeofenceProxy;->access$100(Lcom/android/server/location/GeofenceProxy;)Landroid/location/IGpsGeofenceHardware;
+HSPLcom/android/server/location/GeofenceProxy;->access$100(Lcom/android/server/location/GeofenceProxy;)Landroid/location/IGpsGeofenceHardware;
 HSPLcom/android/server/location/GeofenceProxy;->access$200(Lcom/android/server/location/GeofenceProxy;)Landroid/location/IGpsGeofenceHardware;
-PLcom/android/server/location/GeofenceProxy;->access$202(Lcom/android/server/location/GeofenceProxy;Landroid/hardware/location/IGeofenceHardware;)Landroid/hardware/location/IGeofenceHardware;
+HSPLcom/android/server/location/GeofenceProxy;->access$202(Lcom/android/server/location/GeofenceProxy;Landroid/hardware/location/IGeofenceHardware;)Landroid/hardware/location/IGeofenceHardware;
 HSPLcom/android/server/location/GeofenceProxy;->access$300(Lcom/android/server/location/GeofenceProxy;)Landroid/location/IFusedGeofenceHardware;
-PLcom/android/server/location/GeofenceProxy;->access$300(Lcom/android/server/location/GeofenceProxy;)Lcom/android/server/ServiceWatcher;
+HSPLcom/android/server/location/GeofenceProxy;->access$300(Lcom/android/server/location/GeofenceProxy;)Lcom/android/server/ServiceWatcher;
 PLcom/android/server/location/GeofenceProxy;->access$400(Lcom/android/server/location/GeofenceProxy;Landroid/os/IBinder;)V
 HSPLcom/android/server/location/GeofenceProxy;->access$402(Lcom/android/server/location/GeofenceProxy;Landroid/hardware/location/IGeofenceHardware;)Landroid/hardware/location/IGeofenceHardware;
 HSPLcom/android/server/location/GeofenceProxy;->access$500(Lcom/android/server/location/GeofenceProxy;)Lcom/android/server/ServiceWatcher;
@@ -17445,6 +17986,20 @@
 HSPLcom/android/server/location/GeofenceProxy;->register(Landroid/content/Context;)Z
 PLcom/android/server/location/GeofenceProxy;->updateGeofenceHardware(Landroid/os/IBinder;)V
 PLcom/android/server/location/GeofenceState;-><init>(Landroid/location/Geofence;JIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;)V
+PLcom/android/server/location/GeofenceState;->getDistanceToBoundary()D
+PLcom/android/server/location/GeofenceState;->processLocation(Landroid/location/Location;)I
+PLcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;-><init>()V
+PLcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;->isAntennaInfoSupported()Z
+PLcom/android/server/location/GnssAntennaInfoProvider$StatusChangedOperation;-><init>(I)V
+PLcom/android/server/location/GnssAntennaInfoProvider;-><clinit>()V
+PLcom/android/server/location/GnssAntennaInfoProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/location/GnssAntennaInfoProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;)V
+PLcom/android/server/location/GnssAntennaInfoProvider;->access$000()Z
+PLcom/android/server/location/GnssAntennaInfoProvider;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
+PLcom/android/server/location/GnssAntennaInfoProvider;->isAvailableInPlatform()Z
+PLcom/android/server/location/GnssAntennaInfoProvider;->onCapabilitiesUpdated(Z)V
+PLcom/android/server/location/GnssAntennaInfoProvider;->onGpsEnabledChanged()V
+PLcom/android/server/location/GnssAntennaInfoProvider;->resumeIfStarted()V
 HSPLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;-><init>()V
 PLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;->cleanupBatching()V
 HSPLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;->initBatching()Z
@@ -17529,11 +18084,18 @@
 HSPLcom/android/server/location/GnssLocationProvider$4;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
 HSPLcom/android/server/location/GnssLocationProvider$4;->isGpsEnabled()Z
 HSPLcom/android/server/location/GnssLocationProvider$5;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+PLcom/android/server/location/GnssLocationProvider$5;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/location/GnssLocationProvider$5;->isGpsEnabled()Z
 PLcom/android/server/location/GnssLocationProvider$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/location/GnssLocationProvider$6;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 HSPLcom/android/server/location/GnssLocationProvider$6;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Handler;)V
 HSPLcom/android/server/location/GnssLocationProvider$6;->onChange(Z)V
+PLcom/android/server/location/GnssLocationProvider$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/location/GnssLocationProvider$7;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+PLcom/android/server/location/GnssLocationProvider$7;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Handler;)V
+HPLcom/android/server/location/GnssLocationProvider$7;->onChange(Z)V
 HSPLcom/android/server/location/GnssLocationProvider$8;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+PLcom/android/server/location/GnssLocationProvider$9;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 HSPLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 HSPLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
 HSPLcom/android/server/location/GnssLocationProvider$GpsRequest;-><init>(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
@@ -17557,19 +18119,19 @@
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;-><init>()V
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;-><init>(Lcom/android/server/location/GnssLocationProvider$1;)V
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1400(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)I
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1402(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;I)I
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1402(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;I)I
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1500(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[I
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1502(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[I)[I
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1502(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[I)[I
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1600(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1602(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1602(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1700(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1702(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1702(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1800(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1802(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1802(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1900(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1902(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1902(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
 HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$2000(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$2002(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$2002(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
 HSPLcom/android/server/location/GnssLocationProvider;-><clinit>()V
 HSPLcom/android/server/location/GnssLocationProvider;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/location/GnssLocationProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
@@ -17608,6 +18170,7 @@
 PLcom/android/server/location/GnssLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/location/GnssLocationProvider;->ensureInitialized()V
 HPLcom/android/server/location/GnssLocationProvider;->getGeofenceStatus(I)I
+PLcom/android/server/location/GnssLocationProvider;->getGnssAntennaInfoProvider()Lcom/android/server/location/GnssAntennaInfoProvider;
 HSPLcom/android/server/location/GnssLocationProvider;->getGnssBatchingProvider()Lcom/android/server/location/GnssBatchingProvider;
 HSPLcom/android/server/location/GnssLocationProvider;->getGnssCapabilitiesProvider()Lcom/android/server/location/GnssCapabilitiesProvider;
 HSPLcom/android/server/location/GnssLocationProvider;->getGnssMeasurementCorrectionsProvider()Lcom/android/server/location/GnssMeasurementCorrectionsProvider;
@@ -17632,6 +18195,7 @@
 PLcom/android/server/location/GnssLocationProvider;->isRequestLocationRateLimited()Z
 HSPLcom/android/server/location/GnssLocationProvider;->isSupported()Z
 PLcom/android/server/location/GnssLocationProvider;->lambda$Q6M8z_ZBiD7BNs3kvNmVrqoHSng(Lcom/android/server/location/GnssLocationProvider;)V
+PLcom/android/server/location/GnssLocationProvider;->lambda$getGnssMetricsProvider$10$GnssLocationProvider()Ljava/lang/String;
 PLcom/android/server/location/GnssLocationProvider;->lambda$getGnssMetricsProvider$9$GnssLocationProvider()Ljava/lang/String;
 HPLcom/android/server/location/GnssLocationProvider;->lambda$handleRequestLocation$2(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;Ljava/lang/String;Landroid/location/LocationManager;)V
 PLcom/android/server/location/GnssLocationProvider;->lambda$new$0$GnssLocationProvider(Z)V
@@ -17642,6 +18206,7 @@
 HPLcom/android/server/location/GnssLocationProvider;->lambda$reportGeofenceTransition$10$GnssLocationProvider(ILandroid/location/Location;IJ)V
 HPLcom/android/server/location/GnssLocationProvider;->lambda$reportMeasurementData$4$GnssLocationProvider(Landroid/location/GnssMeasurementsEvent;)V
 HSPLcom/android/server/location/GnssLocationProvider;->lambda$setTopHalCapabilities$6$GnssLocationProvider(I)V
+HPLcom/android/server/location/GnssLocationProvider;->lambda$setTopHalCapabilities$7$GnssLocationProvider(I)V
 PLcom/android/server/location/GnssLocationProvider;->onExtraCommand(IILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/location/GnssLocationProvider;->onNetworkAvailable()V
 HSPLcom/android/server/location/GnssLocationProvider;->onSetRequest(Lcom/android/internal/location/ProviderRequest;)V
@@ -17698,6 +18263,7 @@
 PLcom/android/server/location/GnssMeasurementsProvider;->access$100(Z)Z
 PLcom/android/server/location/GnssMeasurementsProvider;->access$200()Z
 PLcom/android/server/location/GnssMeasurementsProvider;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
+PLcom/android/server/location/GnssMeasurementsProvider;->getMergedFullTracking()Z
 HSPLcom/android/server/location/GnssMeasurementsProvider;->isAvailableInPlatform()Z
 HPLcom/android/server/location/GnssMeasurementsProvider;->lambda$onMeasurementsAvailable$0$GnssMeasurementsProvider(Landroid/location/GnssMeasurementsEvent;Landroid/location/IGnssMeasurementsListener;Lcom/android/server/location/CallerIdentity;)V
 HSPLcom/android/server/location/GnssMeasurementsProvider;->onCapabilitiesUpdated(Z)V
@@ -17740,13 +18306,13 @@
 HPLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;->hasCapabilityChanged(Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities;I)Z
 HSPLcom/android/server/location/GnssNetworkConnectivityHandler;-><clinit>()V
 HSPLcom/android/server/location/GnssNetworkConnectivityHandler;-><init>(Landroid/content/Context;Lcom/android/server/location/GnssNetworkConnectivityHandler$GnssNetworkListener;Landroid/os/Looper;)V
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$100()Z
+HPLcom/android/server/location/GnssNetworkConnectivityHandler;->access$100()Z
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$200()Z
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$300(Lcom/android/server/location/GnssNetworkConnectivityHandler;)Lcom/android/server/location/GnssNetworkConnectivityHandler$GnssNetworkListener;
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$400(Lcom/android/server/location/GnssNetworkConnectivityHandler;Landroid/net/Network;ZLandroid/net/NetworkCapabilities;)V
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$500(Lcom/android/server/location/GnssNetworkConnectivityHandler;Landroid/net/Network;)V
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$600(Lcom/android/server/location/GnssNetworkConnectivityHandler;I)V
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->agpsDataConnStateAsString()Ljava/lang/String;
+HPLcom/android/server/location/GnssNetworkConnectivityHandler;->agpsDataConnStateAsString()Ljava/lang/String;
 HSPLcom/android/server/location/GnssNetworkConnectivityHandler;->createNetworkConnectivityCallback()Landroid/net/ConnectivityManager$NetworkCallback;
 HSPLcom/android/server/location/GnssNetworkConnectivityHandler;->createSuplConnectivityCallback()Landroid/net/ConnectivityManager$NetworkCallback;
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->ensureInHandlerThread()V
@@ -17855,6 +18421,7 @@
 HSPLcom/android/server/location/HardwareActivityRecognitionProxy;->register()Z
 PLcom/android/server/location/LocationBasedCountryDetector$1;-><init>(Lcom/android/server/location/LocationBasedCountryDetector;)V
 PLcom/android/server/location/LocationBasedCountryDetector$1;->onLocationChanged(Landroid/location/Location;)V
+PLcom/android/server/location/LocationBasedCountryDetector$1;->onProviderEnabled(Ljava/lang/String;)V
 PLcom/android/server/location/LocationBasedCountryDetector$2;-><init>(Lcom/android/server/location/LocationBasedCountryDetector;)V
 PLcom/android/server/location/LocationBasedCountryDetector$2;->run()V
 PLcom/android/server/location/LocationBasedCountryDetector$3;-><init>(Lcom/android/server/location/LocationBasedCountryDetector;Landroid/location/Location;)V
@@ -17873,8 +18440,11 @@
 PLcom/android/server/location/LocationBasedCountryDetector;->unregisterListener(Landroid/location/LocationListener;)V
 HSPLcom/android/server/location/LocationFudger$1;-><init>(Lcom/android/server/location/LocationFudger;Landroid/os/Handler;)V
 HSPLcom/android/server/location/LocationFudger;-><clinit>()V
+HSPLcom/android/server/location/LocationFudger;-><init>(F)V
+HSPLcom/android/server/location/LocationFudger;-><init>(FLjava/time/Clock;Ljava/util/Random;)V
 HSPLcom/android/server/location/LocationFudger;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationFudger;->addCoarseLocationExtraLocked(Landroid/location/Location;)Landroid/location/Location;
+HPLcom/android/server/location/LocationFudger;->addCoarseLocationExtraLocked(Landroid/location/Location;)Landroid/location/Location;
+HPLcom/android/server/location/LocationFudger;->createCoarse(Landroid/location/Location;)Landroid/location/Location;
 HPLcom/android/server/location/LocationFudger;->createCoarseLocked(Landroid/location/Location;)Landroid/location/Location;
 PLcom/android/server/location/LocationFudger;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/location/LocationFudger;->getOrCreate(Landroid/location/Location;)Landroid/location/Location;
@@ -17882,7 +18452,9 @@
 PLcom/android/server/location/LocationFudger;->metersToDegreesLatitude(D)D
 HPLcom/android/server/location/LocationFudger;->metersToDegreesLongitude(DD)D
 HSPLcom/android/server/location/LocationFudger;->nextOffsetLocked()D
+HSPLcom/android/server/location/LocationFudger;->nextRandomOffset()D
 HSPLcom/android/server/location/LocationFudger;->setAccuracyInMetersLocked(F)V
+HPLcom/android/server/location/LocationFudger;->updateOffsets()V
 HPLcom/android/server/location/LocationFudger;->updateRandomOffsetLocked()V
 PLcom/android/server/location/LocationFudger;->wrapLatitude(D)D
 PLcom/android/server/location/LocationFudger;->wrapLongitude(D)D
@@ -18018,6 +18590,7 @@
 HSPLcom/android/server/location/MockableLocationProvider;->access$100(Lcom/android/server/location/MockableLocationProvider;)Ljava/lang/Object;
 HSPLcom/android/server/location/MockableLocationProvider;->access$200(Lcom/android/server/location/MockableLocationProvider;)Lcom/android/server/location/AbstractLocationProvider;
 PLcom/android/server/location/MockableLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/location/MockableLocationProvider;->getCurrentRequest()Lcom/android/internal/location/ProviderRequest;
 HPLcom/android/server/location/MockableLocationProvider;->getProvider()Lcom/android/server/location/AbstractLocationProvider;
 HSPLcom/android/server/location/MockableLocationProvider;->getState()Lcom/android/server/location/AbstractLocationProvider$State;
 HSPLcom/android/server/location/MockableLocationProvider;->isMock()Z
@@ -18040,7 +18613,7 @@
 PLcom/android/server/location/NtpTimeHelper;->isNetworkConnected()Z
 PLcom/android/server/location/NtpTimeHelper;->lambda$blockingGetNtpTimeAndInject$0$NtpTimeHelper(JJJ)V
 PLcom/android/server/location/NtpTimeHelper;->lambda$xWqlqJuq4jBJ5-xhFLCwEKGVB0k(Lcom/android/server/location/NtpTimeHelper;)V
-PLcom/android/server/location/NtpTimeHelper;->onNetworkAvailable()V
+HPLcom/android/server/location/NtpTimeHelper;->onNetworkAvailable()V
 PLcom/android/server/location/NtpTimeHelper;->retrieveAndInjectNtpTime()V
 HSPLcom/android/server/location/PassiveProvider;-><clinit>()V
 HSPLcom/android/server/location/PassiveProvider;-><init>(Landroid/content/Context;)V
@@ -18056,13 +18629,19 @@
 HPLcom/android/server/location/RemoteListenerHelper$HandlerRunnable;->run()V
 PLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;-><init>(Lcom/android/server/location/RemoteListenerHelper;Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
 PLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;-><init>(Lcom/android/server/location/RemoteListenerHelper;Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;Lcom/android/server/location/RemoteListenerHelper$1;)V
+PLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;-><init>(Lcom/android/server/location/RemoteListenerHelper;Ljava/lang/Object;Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
+PLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;-><init>(Lcom/android/server/location/RemoteListenerHelper;Ljava/lang/Object;Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;Lcom/android/server/location/RemoteListenerHelper$1;)V
+HPLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;->access$400(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;)Landroid/os/IInterface;
 HPLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;->access$500(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;)Landroid/os/IInterface;
+HPLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;->access$500(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;)Lcom/android/server/location/CallerIdentity;
 HPLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;->access$600(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;)Lcom/android/server/location/CallerIdentity;
+PLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;->getRequest()Ljava/lang/Object;
 HSPLcom/android/server/location/RemoteListenerHelper;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;)V
 PLcom/android/server/location/RemoteListenerHelper;->access$200(Lcom/android/server/location/RemoteListenerHelper;)Z
 PLcom/android/server/location/RemoteListenerHelper;->access$202(Lcom/android/server/location/RemoteListenerHelper;Z)Z
 HPLcom/android/server/location/RemoteListenerHelper;->access$700(Lcom/android/server/location/RemoteListenerHelper;)Ljava/lang/String;
 HPLcom/android/server/location/RemoteListenerHelper;->addListener(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
+HPLcom/android/server/location/RemoteListenerHelper;->addListener(Ljava/lang/Object;Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
 HSPLcom/android/server/location/RemoteListenerHelper;->calculateCurrentResultUnsafe()I
 HPLcom/android/server/location/RemoteListenerHelper;->foreach(Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
 HSPLcom/android/server/location/RemoteListenerHelper;->foreachUnsafe(Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
@@ -18110,26 +18689,35 @@
 PLcom/android/server/location/SettingsHelper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/location/SettingsHelper;->getBackgroundThrottleIntervalMs()J
 HPLcom/android/server/location/SettingsHelper;->getBackgroundThrottlePackageWhitelist()Ljava/util/Set;
+PLcom/android/server/location/SettingsHelper;->getBackgroundThrottleProximityAlertIntervalMs()J
+HSPLcom/android/server/location/SettingsHelper;->getCoarseLocationAccuracyM()F
 HPLcom/android/server/location/SettingsHelper;->getMaxLastLocationAgeMs()J
 HSPLcom/android/server/location/SettingsHelper;->isLocationEnabled(I)Z
 HPLcom/android/server/location/SettingsHelper;->isLocationPackageBlacklisted(ILjava/lang/String;)Z
 PLcom/android/server/location/SettingsHelper;->lambda$new$0()Landroid/util/ArraySet;
 PLcom/android/server/location/SettingsHelper;->lambda$new$1()Landroid/util/ArraySet;
 HSPLcom/android/server/location/SettingsHelper;->onSystemReady()V
+PLcom/android/server/location/SettingsHelper;->setLocationEnabled(ZI)V
 HSPLcom/android/server/location/SettingsHelper;->setLocationProviderAllowed(Ljava/lang/String;ZI)V
 HSPLcom/android/server/location/UserInfoHelper$1;-><init>(Lcom/android/server/location/UserInfoHelper;)V
 PLcom/android/server/location/UserInfoHelper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/location/UserInfoHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/UserInfoHelper;->access$000(Lcom/android/server/location/UserInfoHelper;I)V
 PLcom/android/server/location/UserInfoHelper;->access$100(Lcom/android/server/location/UserInfoHelper;)V
+PLcom/android/server/location/UserInfoHelper;->access$100(Lcom/android/server/location/UserInfoHelper;II)V
 HSPLcom/android/server/location/UserInfoHelper;->addListener(Lcom/android/server/location/UserInfoHelper$UserChangedListener;)V
+HSPLcom/android/server/location/UserInfoHelper;->addListener(Lcom/android/server/location/UserInfoHelper$UserListener;)V
 PLcom/android/server/location/UserInfoHelper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/location/UserInfoHelper;->getCurrentUserId()I
+HSPLcom/android/server/location/UserInfoHelper;->getCurrentUserIds()[I
 HSPLcom/android/server/location/UserInfoHelper;->getParentUserId(I)I
 HSPLcom/android/server/location/UserInfoHelper;->getProfileUserIdsForParentUser(I)[I
+HSPLcom/android/server/location/UserInfoHelper;->isCurrentUserId(I)Z
 HSPLcom/android/server/location/UserInfoHelper;->isCurrentUserOrProfile(I)Z
+PLcom/android/server/location/UserInfoHelper;->onCurrentUserChanged(I)V
 HSPLcom/android/server/location/UserInfoHelper;->onSystemReady()V
 PLcom/android/server/location/UserInfoHelper;->onUserChanged(I)V
+PLcom/android/server/location/UserInfoHelper;->onUserChanged(II)V
 PLcom/android/server/location/UserInfoHelper;->onUserProfilesChanged()V
 HSPLcom/android/server/location/UserInfoStore$1;-><init>(Lcom/android/server/location/UserInfoStore;)V
 HSPLcom/android/server/location/UserInfoStore$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -18145,6 +18733,8 @@
 HSPLcom/android/server/location/UserInfoStore;->onSystemReady()V
 HSPLcom/android/server/location/UserInfoStore;->onUserChanged(I)V
 PLcom/android/server/location/UserInfoStore;->onUserProfilesChanged()V
+PLcom/android/server/location/gnss/-$$Lambda$D_8O7MDYM_zvDJaJvJVfzXhIfZY;-><clinit>()V
+PLcom/android/server/location/gnss/-$$Lambda$D_8O7MDYM_zvDJaJvJVfzXhIfZY;-><init>()V
 PLcom/android/server/location/gnss/-$$Lambda$FxAranobP2o6eVcPEOp8tzZYyLY;-><init>(Lcom/android/server/location/gnss/GnssManagerService;)V
 PLcom/android/server/location/gnss/-$$Lambda$FxAranobP2o6eVcPEOp8tzZYyLY;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/location/gnss/-$$Lambda$GnssManagerService$UdLm78gS4fBvCkzR5_od9MCx3_M;-><init>(Lcom/android/server/location/gnss/GnssManagerService;)V
@@ -18169,8 +18759,10 @@
 HSPLcom/android/server/location/gnss/GnssManagerService;-><init>(Lcom/android/server/LocationManagerService;Landroid/content/Context;Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/LocationUsageLogger;)V
 HSPLcom/android/server/location/gnss/GnssManagerService;-><init>(Lcom/android/server/LocationManagerService;Landroid/content/Context;Lcom/android/server/location/LocationUsageLogger;)V
 HPLcom/android/server/location/gnss/GnssManagerService;->addGnssDataListenerLocked(Landroid/os/IInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;Ljava/util/function/Consumer;)Z
+HPLcom/android/server/location/gnss/GnssManagerService;->addGnssDataListenerLocked(Ljava/lang/Object;Landroid/os/IInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;Ljava/util/function/Consumer;)Z
+PLcom/android/server/location/gnss/GnssManagerService;->addGnssMeasurementsListener(Landroid/location/GnssRequest;Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/location/gnss/GnssManagerService;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/location/gnss/GnssManagerService;->checkLocationAppOp(Ljava/lang/String;)Z
+HPLcom/android/server/location/gnss/GnssManagerService;->checkLocationAppOp(Ljava/lang/String;)Z
 PLcom/android/server/location/gnss/GnssManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/location/gnss/GnssManagerService;->getGnssCapabilities(Ljava/lang/String;)J
 HSPLcom/android/server/location/gnss/GnssManagerService;->getGnssLocationProvider()Lcom/android/server/location/GnssLocationProvider;
@@ -18188,7 +18780,7 @@
 PLcom/android/server/location/gnss/GnssManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/location/gnss/GnssManagerService;->registerUidListener()V
 HPLcom/android/server/location/gnss/GnssManagerService;->removeGnssDataListener(Landroid/os/IInterface;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;)V
-PLcom/android/server/location/gnss/GnssManagerService;->removeGnssDataListenerLocked(Landroid/os/IInterface;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;)V
+HPLcom/android/server/location/gnss/GnssManagerService;->removeGnssDataListenerLocked(Landroid/os/IInterface;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;)V
 PLcom/android/server/location/gnss/GnssManagerService;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
 PLcom/android/server/location/gnss/GnssManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
 HSPLcom/android/server/location/gnss/GnssManagerService;->updateListenersOnForegroundChangedLocked(Landroid/util/ArrayMap;Lcom/android/server/location/RemoteListenerHelper;Ljava/util/function/Function;IZ)V
@@ -18201,7 +18793,7 @@
 PLcom/android/server/locksettings/-$$Lambda$LockSettingsService$uLUdo5pAFhnR0hn-L5FUgWTjl70;->run()V
 HSPLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$WjMV-qfQ1YUbeAiLzyAhyepqPFI;-><init>(Lcom/android/server/locksettings/SyntheticPasswordManager;)V
 HSPLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$WjMV-qfQ1YUbeAiLzyAhyepqPFI;->onValues(ILandroid/hardware/weaver/V1_0/WeaverConfig;)V
-PLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$aWnbfYziDTrRrLqWFePMTj6-dy0;-><init>([Lcom/android/internal/widget/VerifyCredentialResponse;I)V
+HPLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$aWnbfYziDTrRrLqWFePMTj6-dy0;-><init>([Lcom/android/internal/widget/VerifyCredentialResponse;I)V
 PLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$aWnbfYziDTrRrLqWFePMTj6-dy0;->onValues(ILandroid/hardware/weaver/V1_0/WeaverReadResponse;)V
 PLcom/android/server/locksettings/LockSettingsService$1;-><init>(Lcom/android/server/locksettings/LockSettingsService;I)V
 PLcom/android/server/locksettings/LockSettingsService$1;->run()V
@@ -18238,9 +18830,9 @@
 HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getStrongAuthTracker()Lcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;
 HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getSyntheticPasswordManager(Lcom/android/server/locksettings/LockSettingsStorage;)Lcom/android/server/locksettings/SyntheticPasswordManager;
 HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getUserManager()Landroid/os/UserManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getUserManagerInternal()Landroid/os/UserManagerInternal;
+HPLcom/android/server/locksettings/LockSettingsService$Injector;->getUserManagerInternal()Landroid/os/UserManagerInternal;
 PLcom/android/server/locksettings/LockSettingsService$Injector;->hasEnrolledBiometrics(I)Z
-PLcom/android/server/locksettings/LockSettingsService$Injector;->isGsiRunning()Z
+HPLcom/android/server/locksettings/LockSettingsService$Injector;->isGsiRunning()Z
 HSPLcom/android/server/locksettings/LockSettingsService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onCleanupUser(I)V
@@ -18271,7 +18863,7 @@
 HSPLcom/android/server/locksettings/LockSettingsService;->access$1100(Lcom/android/server/locksettings/LockSettingsService;)Landroid/content/Context;
 PLcom/android/server/locksettings/LockSettingsService;->access$1200(Lcom/android/server/locksettings/LockSettingsService;[BILcom/android/internal/widget/LockPatternUtils$EscrowTokenStateChangeCallback;)J
 PLcom/android/server/locksettings/LockSettingsService;->access$1400(Lcom/android/server/locksettings/LockSettingsService;JI)Z
-PLcom/android/server/locksettings/LockSettingsService;->access$1700(Lcom/android/server/locksettings/LockSettingsService;I)Z
+HPLcom/android/server/locksettings/LockSettingsService;->access$1700(Lcom/android/server/locksettings/LockSettingsService;I)Z
 HSPLcom/android/server/locksettings/LockSettingsService;->access$1800(Lcom/android/server/locksettings/LockSettingsService;)Lcom/android/server/locksettings/RebootEscrowManager;
 PLcom/android/server/locksettings/LockSettingsService;->access$1900(Lcom/android/server/locksettings/LockSettingsService;)Lcom/android/server/locksettings/LockSettingsStrongAuth;
 PLcom/android/server/locksettings/LockSettingsService;->access$200(Lcom/android/server/locksettings/LockSettingsService;I)V
@@ -18290,7 +18882,7 @@
 PLcom/android/server/locksettings/LockSettingsService;->addEscrowToken([BILcom/android/internal/widget/LockPatternUtils$EscrowTokenStateChangeCallback;)J
 PLcom/android/server/locksettings/LockSettingsService;->addUserKeyAuth(I[B[B)V
 HPLcom/android/server/locksettings/LockSettingsService;->callToAuthSecretIfNeeded(ILcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)V
-PLcom/android/server/locksettings/LockSettingsService;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
+HPLcom/android/server/locksettings/LockSettingsService;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
 HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordHavePermission(I)V
 HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordReadPermission(I)V
 HSPLcom/android/server/locksettings/LockSettingsService;->checkReadPermission(Ljava/lang/String;I)V
@@ -18301,7 +18893,7 @@
 PLcom/android/server/locksettings/LockSettingsService;->clearUserKeyProtection(I[B)V
 HPLcom/android/server/locksettings/LockSettingsService;->disableEscrowTokenOnNonManagedDevicesIfNeeded(I)V
 PLcom/android/server/locksettings/LockSettingsService;->doVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;IJILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
-PLcom/android/server/locksettings/LockSettingsService;->doVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;IJILcom/android/internal/widget/ICheckCredentialProgressCallback;Ljava/util/ArrayList;)Lcom/android/internal/widget/VerifyCredentialResponse;
+HPLcom/android/server/locksettings/LockSettingsService;->doVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;IJILcom/android/internal/widget/ICheckCredentialProgressCallback;Ljava/util/ArrayList;)Lcom/android/internal/widget/VerifyCredentialResponse;
 PLcom/android/server/locksettings/LockSettingsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/locksettings/LockSettingsService;->ensureProfileKeystoreUnlocked(I)V
 PLcom/android/server/locksettings/LockSettingsService;->fixateNewestUserKeyAuth(I)V
@@ -18352,7 +18944,7 @@
 HSPLcom/android/server/locksettings/LockSettingsService;->migrateOldDataAfterSystemReady()V
 PLcom/android/server/locksettings/LockSettingsService;->notifyPasswordChanged(I)V
 PLcom/android/server/locksettings/LockSettingsService;->notifySeparateProfileChallengeChanged(I)V
-PLcom/android/server/locksettings/LockSettingsService;->onAuthTokenKnownForUser(ILcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)V
+HPLcom/android/server/locksettings/LockSettingsService;->onAuthTokenKnownForUser(ILcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)V
 PLcom/android/server/locksettings/LockSettingsService;->onCleanupUser(I)V
 HPLcom/android/server/locksettings/LockSettingsService;->onCredentialVerified(Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;IJLjava/util/ArrayList;I)V
 HSPLcom/android/server/locksettings/LockSettingsService;->onStartUser(I)V
@@ -18382,9 +18974,9 @@
 PLcom/android/server/locksettings/LockSettingsService;->setServerParams([B)V
 PLcom/android/server/locksettings/LockSettingsService;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
 PLcom/android/server/locksettings/LockSettingsService;->setString(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/locksettings/LockSettingsService;->setStringUnchecked(Ljava/lang/String;ILjava/lang/String;)V
+HPLcom/android/server/locksettings/LockSettingsService;->setStringUnchecked(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/locksettings/LockSettingsService;->setSyntheticPasswordHandleLocked(JI)V
-PLcom/android/server/locksettings/LockSettingsService;->setUserPasswordMetrics(Lcom/android/internal/widget/LockscreenCredential;I)V
+HPLcom/android/server/locksettings/LockSettingsService;->setUserPasswordMetrics(Lcom/android/internal/widget/LockscreenCredential;I)V
 PLcom/android/server/locksettings/LockSettingsService;->shouldMigrateToSyntheticPasswordLocked(I)Z
 PLcom/android/server/locksettings/LockSettingsService;->showEncryptionNotification(Landroid/os/UserHandle;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
 PLcom/android/server/locksettings/LockSettingsService;->showEncryptionNotificationForProfile(Landroid/os/UserHandle;)V
@@ -18399,7 +18991,7 @@
 PLcom/android/server/locksettings/LockSettingsService;->tryDeriveAuthTokenForUnsecuredPrimaryUser(I)V
 PLcom/android/server/locksettings/LockSettingsService;->tryUnlockWithCachedUnifiedChallenge(I)Z
 PLcom/android/server/locksettings/LockSettingsService;->unlockChildProfile(IZIJLjava/util/ArrayList;)V
-PLcom/android/server/locksettings/LockSettingsService;->unlockKeystore([BI)V
+HPLcom/android/server/locksettings/LockSettingsService;->unlockKeystore([BI)V
 HPLcom/android/server/locksettings/LockSettingsService;->unlockUser(I[B[BIJLjava/util/ArrayList;)V
 HPLcom/android/server/locksettings/LockSettingsService;->userPresent(I)V
 PLcom/android/server/locksettings/LockSettingsService;->verifyCredential(Lcom/android/internal/widget/LockscreenCredential;JI)Lcom/android/internal/widget/VerifyCredentialResponse;
@@ -18442,7 +19034,7 @@
 HSPLcom/android/server/locksettings/LockSettingsStorage;->access$400()Ljava/lang/Object;
 PLcom/android/server/locksettings/LockSettingsStorage;->deleteFile(Ljava/lang/String;)V
 HPLcom/android/server/locksettings/LockSettingsStorage;->deleteSyntheticPasswordState(IJLjava/lang/String;)V
-PLcom/android/server/locksettings/LockSettingsStorage;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLcom/android/server/locksettings/LockSettingsStorage;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/locksettings/LockSettingsStorage;->ensureSyntheticPasswordDirectoryForUser(I)V
 PLcom/android/server/locksettings/LockSettingsStorage;->fsyncDirectory(Ljava/io/File;)V
 PLcom/android/server/locksettings/LockSettingsStorage;->getChildProfileLockFile(I)Ljava/lang/String;
@@ -18517,24 +19109,33 @@
 HSPLcom/android/server/locksettings/PasswordSlotManager;->refreshActiveSlots(Ljava/util/Set;)V
 PLcom/android/server/locksettings/PasswordSlotManager;->saveSlotMap()V
 PLcom/android/server/locksettings/PasswordSlotManager;->saveSlotMap(Ljava/io/OutputStream;)V
+PLcom/android/server/locksettings/RebootEscrowData;-><init>(B[B[B[BLcom/android/server/locksettings/RebootEscrowKey;)V
 PLcom/android/server/locksettings/RebootEscrowData;-><init>(B[B[B[B[B)V
+PLcom/android/server/locksettings/RebootEscrowData;->fromEncryptedData(Lcom/android/server/locksettings/RebootEscrowKey;[B)Lcom/android/server/locksettings/RebootEscrowData;
 PLcom/android/server/locksettings/RebootEscrowData;->fromEncryptedData(Ljavax/crypto/spec/SecretKeySpec;[B)Lcom/android/server/locksettings/RebootEscrowData;
-HSPLcom/android/server/locksettings/RebootEscrowData;->fromKeyBytes([B)Ljavax/crypto/spec/SecretKeySpec;
+PLcom/android/server/locksettings/RebootEscrowData;->fromKeyBytes([B)Ljavax/crypto/spec/SecretKeySpec;
 PLcom/android/server/locksettings/RebootEscrowData;->fromSyntheticPassword(B[B)Lcom/android/server/locksettings/RebootEscrowData;
+PLcom/android/server/locksettings/RebootEscrowData;->fromSyntheticPassword(Lcom/android/server/locksettings/RebootEscrowKey;B[B)Lcom/android/server/locksettings/RebootEscrowData;
 PLcom/android/server/locksettings/RebootEscrowData;->getBlob()[B
 PLcom/android/server/locksettings/RebootEscrowData;->getSpVersion()B
 PLcom/android/server/locksettings/RebootEscrowData;->getSyntheticPassword()[B
+PLcom/android/server/locksettings/RebootEscrowKey;-><init>(Ljavax/crypto/SecretKey;)V
+PLcom/android/server/locksettings/RebootEscrowKey;->fromKeyBytes([B)Lcom/android/server/locksettings/RebootEscrowKey;
+PLcom/android/server/locksettings/RebootEscrowKey;->generate()Lcom/android/server/locksettings/RebootEscrowKey;
+PLcom/android/server/locksettings/RebootEscrowKey;->getKey()Ljavax/crypto/SecretKey;
 HSPLcom/android/server/locksettings/RebootEscrowManager$Injector;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/locksettings/RebootEscrowManager$Injector;->getRebootEscrow()Landroid/hardware/rebootescrow/IRebootEscrow;
+PLcom/android/server/locksettings/RebootEscrowManager$Injector;->getRebootEscrow()Landroid/hardware/rebootescrow/IRebootEscrow;
 HSPLcom/android/server/locksettings/RebootEscrowManager$Injector;->getUserManager()Landroid/os/UserManager;
 HSPLcom/android/server/locksettings/RebootEscrowManager;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/RebootEscrowManager$Callbacks;Lcom/android/server/locksettings/LockSettingsStorage;)V
 HSPLcom/android/server/locksettings/RebootEscrowManager;-><init>(Lcom/android/server/locksettings/RebootEscrowManager$Injector;Lcom/android/server/locksettings/RebootEscrowManager$Callbacks;Lcom/android/server/locksettings/LockSettingsStorage;)V
 PLcom/android/server/locksettings/RebootEscrowManager;->callToRebootEscrowIfNeeded(IB[B)V
 PLcom/android/server/locksettings/RebootEscrowManager;->clearRebootEscrowIfNeeded()V
+PLcom/android/server/locksettings/RebootEscrowManager;->generateEscrowKeyIfNeeded()Lcom/android/server/locksettings/RebootEscrowKey;
+PLcom/android/server/locksettings/RebootEscrowManager;->getAndClearRebootEscrowKey()Lcom/android/server/locksettings/RebootEscrowKey;
 PLcom/android/server/locksettings/RebootEscrowManager;->getAndClearRebootEscrowKey()Ljavax/crypto/spec/SecretKeySpec;
 HSPLcom/android/server/locksettings/RebootEscrowManager;->loadRebootEscrowDataIfAvailable()V
 PLcom/android/server/locksettings/RebootEscrowManager;->prepareRebootEscrow()Z
-HSPLcom/android/server/locksettings/RebootEscrowManager;->restoreRebootEscrowForUser(ILjavax/crypto/spec/SecretKeySpec;)V
+PLcom/android/server/locksettings/RebootEscrowManager;->restoreRebootEscrowForUser(ILcom/android/server/locksettings/RebootEscrowKey;)Z
 PLcom/android/server/locksettings/RebootEscrowManager;->restoreRebootEscrowForUser(ILjavax/crypto/spec/SecretKeySpec;)Z
 HSPLcom/android/server/locksettings/RebootEscrowManager;->setRebootEscrowListener(Lcom/android/internal/widget/RebootEscrowListener;)V
 PLcom/android/server/locksettings/RebootEscrowManager;->setRebootEscrowReady(Z)V
@@ -18551,8 +19152,8 @@
 PLcom/android/server/locksettings/SyntheticPasswordCrypto;->encrypt(Ljavax/crypto/SecretKey;[B)[B
 PLcom/android/server/locksettings/SyntheticPasswordCrypto;->encrypt([B[B[B)[B
 HPLcom/android/server/locksettings/SyntheticPasswordCrypto;->personalisedHash([B[[B)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationResult;-><init>()V
-PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;-><init>(B)V
+HPLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationResult;-><init>()V
+HPLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;-><init>(B)V
 PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->access$1000(Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)[B
 PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->access$1100(Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)B
 PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->access$900(Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)[B
@@ -18567,7 +19168,7 @@
 PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->getSyntheticPassword()[B
 PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->getVersion()B
 PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->recreate([B[B)V
-PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->recreateDirectly([B)V
+HPLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->recreateDirectly([B)V
 PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->setEscrowData([B[B)V
 HSPLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;-><init>()V
 PLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;->create(I)Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;
@@ -18616,7 +19217,7 @@
 HSPLcom/android/server/locksettings/SyntheticPasswordManager;->initWeaverService()V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->isWeaverAvailable()Z
 HSPLcom/android/server/locksettings/SyntheticPasswordManager;->lambda$initWeaverService$0$SyntheticPasswordManager(ILandroid/hardware/weaver/V1_0/WeaverConfig;)V
-PLcom/android/server/locksettings/SyntheticPasswordManager;->lambda$weaverVerify$1([Lcom/android/internal/widget/VerifyCredentialResponse;IILandroid/hardware/weaver/V1_0/WeaverReadResponse;)V
+HPLcom/android/server/locksettings/SyntheticPasswordManager;->lambda$weaverVerify$1([Lcom/android/internal/widget/VerifyCredentialResponse;IILandroid/hardware/weaver/V1_0/WeaverReadResponse;)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->loadEscrowData(Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;I)Z
 PLcom/android/server/locksettings/SyntheticPasswordManager;->loadSecdiscardable(JI)[B
 HSPLcom/android/server/locksettings/SyntheticPasswordManager;->loadState(Ljava/lang/String;JI)[B
@@ -18625,7 +19226,7 @@
 PLcom/android/server/locksettings/SyntheticPasswordManager;->newSidForUser(Landroid/service/gatekeeper/IGateKeeperService;Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;I)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->newSyntheticPasswordAndSid(Landroid/service/gatekeeper/IGateKeeperService;[BLcom/android/internal/widget/LockscreenCredential;I)Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;
 PLcom/android/server/locksettings/SyntheticPasswordManager;->passwordTokenToGkInput([B)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->passwordTokenToWeaverKey([B)[B
+HPLcom/android/server/locksettings/SyntheticPasswordManager;->passwordTokenToWeaverKey([B)[B
 PLcom/android/server/locksettings/SyntheticPasswordManager;->removeUser(I)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->saveEscrowData(Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;I)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->saveSecdiscardable(J[BI)V
@@ -18640,17 +19241,17 @@
 PLcom/android/server/locksettings/SyntheticPasswordManager;->transformUnderSecdiscardable([B[B)[B
 HPLcom/android/server/locksettings/SyntheticPasswordManager;->transformUnderWeaverSecret([B[B)[B
 HPLcom/android/server/locksettings/SyntheticPasswordManager;->unwrapPasswordBasedSyntheticPassword(Landroid/service/gatekeeper/IGateKeeperService;JLcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationResult;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->unwrapSyntheticPasswordBlob(JB[BJI)Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->verifyChallenge(Landroid/service/gatekeeper/IGateKeeperService;Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;JI)Lcom/android/internal/widget/VerifyCredentialResponse;
+HPLcom/android/server/locksettings/SyntheticPasswordManager;->unwrapSyntheticPasswordBlob(JB[BJI)Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;
+HPLcom/android/server/locksettings/SyntheticPasswordManager;->verifyChallenge(Landroid/service/gatekeeper/IGateKeeperService;Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;JI)Lcom/android/internal/widget/VerifyCredentialResponse;
 PLcom/android/server/locksettings/SyntheticPasswordManager;->weaverEnroll(I[B[B)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->weaverVerify(I[B)Lcom/android/internal/widget/VerifyCredentialResponse;
+HPLcom/android/server/locksettings/SyntheticPasswordManager;->weaverVerify(I[B)Lcom/android/internal/widget/VerifyCredentialResponse;
 HSPLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;-><init>(Ljava/security/KeyStore;)V
 PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->containsAlias(Ljava/lang/String;)Z
 PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->deleteEntry(Ljava/lang/String;)V
 HSPLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->getAndLoadAndroidKeyStore()Ljava/security/KeyStore;
 PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->getKey(Ljava/lang/String;[C)Ljava/security/Key;
 PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->setEntry(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V
-PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;II[BZLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;Lcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;Landroid/security/Scrypt;)V
+HPLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;II[BZLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;Lcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;Landroid/security/Scrypt;)V
 HPLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->createApplicationKeyEntries(Ljava/util/Map;Ljava/util/Map;)Ljava/util/List;
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->generateAndStoreCounterId(I)J
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->generateRecoveryKey()Ljavax/crypto/SecretKey;
@@ -18662,11 +19263,11 @@
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->hashCredentialsByScrypt([B[B)[B
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->isCustomLockScreen()Z
 HPLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->newInstance(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;II[BZ)Lcom/android/server/locksettings/recoverablekeystore/KeySyncTask;
-PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->run()V
-PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->shouldCreateSnapshot(I)Z
+HPLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->run()V
+HPLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->shouldCreateSnapshot(I)Z
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->shouldUseScryptToHashCredential()Z
 HPLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->syncKeys()V
-PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->syncKeysForAgent(I)V
+HPLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->syncKeysForAgent(I)V
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;-><clinit>()V
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;->calculateThmKfHash([B)[B
 PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;->concat([[B)[B
@@ -18696,7 +19297,7 @@
 PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getGenerationId(I)I
 HSPLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getInstance(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)Lcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;
 PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->init(I)V
-PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->isDeviceLocked(I)Z
+HPLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->isDeviceLocked(I)Z
 PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->isKeyLoaded(II)Z
 PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->setGenerationId(II)V
 HSPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;-><init>(Ljavax/crypto/KeyGenerator;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)V
@@ -18715,7 +19316,7 @@
 HPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->getRecoveryStatus()Ljava/util/Map;
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryService(Ljava/lang/String;[B)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->lockScreenSecretAvailable(I[BI)V
+HPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->lockScreenSecretAvailable(I[BI)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->lockScreenSecretChanged(I[BI)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->removeKey(Ljava/lang/String;)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setRecoverySecretTypes([I)V
@@ -18724,7 +19325,7 @@
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
 HSPLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;-><init>()V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->recoverySnapshotAvailable(I)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->setSnapshotListener(ILandroid/app/PendingIntent;)V
+HPLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->setSnapshotListener(ILandroid/app/PendingIntent;)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->tryToSendIntent(ILandroid/app/PendingIntent;)V
 PLcom/android/server/locksettings/recoverablekeystore/SecureBox$AesGcmOperation;-><clinit>()V
 PLcom/android/server/locksettings/recoverablekeystore/SecureBox$AesGcmOperation;-><init>(Ljava/lang/String;I)V
@@ -18824,20 +19425,20 @@
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureRecoveryServiceMetadataEntryExists(II)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureRootOfTrustEntryExists(IILjava/lang/String;)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureUserMetadataEntryExists(I)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getActiveRootOfTrust(II)Ljava/lang/String;
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getActiveRootOfTrust(II)Ljava/lang/String;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getAllKeys(III)Ljava/util/Map;
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBytes(IILjava/lang/String;)[B
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBytes(IILjava/lang/String;Ljava/lang/String;)[B
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getCounterId(II)Ljava/lang/Long;
 HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getLong(IILjava/lang/String;)Ljava/lang/Long;
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getLong(IILjava/lang/String;Ljava/lang/String;)Ljava/lang/Long;
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getLong(IILjava/lang/String;Ljava/lang/String;)Ljava/lang/Long;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getPlatformKeyGenerationId(I)I
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getRecoveryAgents(I)Ljava/util/List;
 HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getRecoverySecretTypes(II)[I
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getRecoveryServiceCertPath(IILjava/lang/String;)Ljava/security/cert/CertPath;
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getRecoveryServiceCertSerial(IILjava/lang/String;)Ljava/lang/Long;
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getServerParams(II)[B
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getShouldCreateSnapshot(II)Z
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getShouldCreateSnapshot(II)Z
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getSnapshotVersion(II)Ljava/lang/Long;
 HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getStatusForAllKeys(I)Ljava/util/Map;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getUserSerialNumbers()Ljava/util/Map;
@@ -18869,7 +19470,7 @@
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorage;-><init>()V
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;-><init>(Ljava/io/File;)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->get(I)Landroid/security/keystore/recovery/KeyChainSnapshot;
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->get(I)Landroid/security/keystore/recovery/KeyChainSnapshot;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->getSnapshotFile(I)Ljava/io/File;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->getSnapshotFileName(I)Ljava/lang/String;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->getStorageFolder()Ljava/io/File;
@@ -18878,6 +19479,9 @@
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->readFromDisk(I)Landroid/security/keystore/recovery/KeyChainSnapshot;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->remove(I)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->writeToDisk(ILandroid/security/keystore/recovery/KeyChainSnapshot;)V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$2c6CORJRuTfbQQXKlkZCv-9MgyE;-><clinit>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$2c6CORJRuTfbQQXKlkZCv-9MgyE;-><init>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$2c6CORJRuTfbQQXKlkZCv-9MgyE;->accept(Ljava/lang/Object;)V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$M94FQn7LGXpV3kApGJU9Bnp0RRk;-><clinit>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$M94FQn7LGXpV3kApGJU9Bnp0RRk;-><init>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$M94FQn7LGXpV3kApGJU9Bnp0RRk;->accept(Ljava/lang/Object;)V
@@ -18887,11 +19491,18 @@
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$2y9vqtJzX1LpgQmc7mf5RQXEtqk;-><clinit>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$2y9vqtJzX1LpgQmc7mf5RQXEtqk;-><init>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$2y9vqtJzX1LpgQmc7mf5RQXEtqk;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$9sVKwFHJaVOpWt-fwbOrQeBJC6Y;-><clinit>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$9sVKwFHJaVOpWt-fwbOrQeBJC6Y;-><init>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$9sVKwFHJaVOpWt-fwbOrQeBJC6Y;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pb5SX6gBlgZXLZp0t4uVjgjp3EE;-><clinit>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pb5SX6gBlgZXLZp0t4uVjgjp3EE;-><init>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pb5SX6gBlgZXLZp0t4uVjgjp3EE;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;-><init>(Lcom/android/server/media/MediaSessionService;)V
 HPLcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;->onAudioPlayerActiveStateChanged(Landroid/media/AudioPlaybackConfiguration;Z)V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$3XkXCmvQ_LPHp9vNkwpIzXdSk6A;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$3XkXCmvQ_LPHp9vNkwpIzXdSk6A;->run()V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$aOlVIsBkXTnw1voyl2-9vhrVhMY;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$aOlVIsBkXTnw1voyl2-9vhrVhMY;->onBluetoothRoutesUpdated(Ljava/util/List;)V
 HSPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;)V
 HSPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;Lcom/android/server/media/AudioPlayerStateMonitor$1;)V
 HPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;->onPlaybackConfigChanged(Ljava/util/List;)V
@@ -18902,7 +19513,7 @@
 HSPLcom/android/server/media/AudioPlayerStateMonitor;-><init>(Landroid/content/Context;)V
 PLcom/android/server/media/AudioPlayerStateMonitor;->access$100(Lcom/android/server/media/AudioPlayerStateMonitor;)Ljava/lang/Object;
 PLcom/android/server/media/AudioPlayerStateMonitor;->access$200()Z
-PLcom/android/server/media/AudioPlayerStateMonitor;->access$400(Lcom/android/server/media/AudioPlayerStateMonitor;Landroid/media/AudioPlaybackConfiguration;Z)V
+HPLcom/android/server/media/AudioPlayerStateMonitor;->access$400(Lcom/android/server/media/AudioPlayerStateMonitor;Landroid/media/AudioPlaybackConfiguration;Z)V
 HPLcom/android/server/media/AudioPlayerStateMonitor;->cleanUpAudioPlaybackUids(I)V
 PLcom/android/server/media/AudioPlayerStateMonitor;->dump(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/media/AudioPlayerStateMonitor;->getInstance(Landroid/content/Context;)Lcom/android/server/media/AudioPlayerStateMonitor;
@@ -18910,6 +19521,46 @@
 HSPLcom/android/server/media/AudioPlayerStateMonitor;->isPlaybackActive(I)Z
 HSPLcom/android/server/media/AudioPlayerStateMonitor;->registerListener(Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;Landroid/os/Handler;)V
 HPLcom/android/server/media/AudioPlayerStateMonitor;->sendAudioPlayerActiveStateChangedMessageLocked(Landroid/media/AudioPlaybackConfiguration;Z)V
+PLcom/android/server/media/BluetoothRouteProvider$AdapterStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider$AdapterStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;->onServiceConnected(ILandroid/bluetooth/BluetoothProfile;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
+PLcom/android/server/media/BluetoothRouteProvider$BondStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider$BondStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
+PLcom/android/server/media/BluetoothRouteProvider$BondStateChangedReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;Landroid/bluetooth/BluetoothDevice;)V
+PLcom/android/server/media/BluetoothRouteProvider$DeviceStateChangedRecevier;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider$DeviceStateChangedRecevier;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
+PLcom/android/server/media/BluetoothRouteProvider$DeviceStateChangedRecevier;->handleConnectionStateChanged(ILandroid/content/Intent;Landroid/bluetooth/BluetoothDevice;)V
+PLcom/android/server/media/BluetoothRouteProvider$DeviceStateChangedRecevier;->onReceive(Landroid/content/Context;Landroid/content/Intent;Landroid/bluetooth/BluetoothDevice;)V
+PLcom/android/server/media/BluetoothRouteProvider;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothAdapter;Lcom/android/server/media/BluetoothRouteProvider$BluetoothRoutesUpdatedListener;)V
+PLcom/android/server/media/BluetoothRouteProvider;->access$1000(Lcom/android/server/media/BluetoothRouteProvider;)Ljava/util/Map;
+PLcom/android/server/media/BluetoothRouteProvider;->access$600(Lcom/android/server/media/BluetoothRouteProvider;Landroid/bluetooth/BluetoothDevice;)Lcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;
+PLcom/android/server/media/BluetoothRouteProvider;->access$700(Lcom/android/server/media/BluetoothRouteProvider;)Landroid/bluetooth/BluetoothDevice;
+PLcom/android/server/media/BluetoothRouteProvider;->access$702(Lcom/android/server/media/BluetoothRouteProvider;Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothDevice;
+PLcom/android/server/media/BluetoothRouteProvider;->access$800(Lcom/android/server/media/BluetoothRouteProvider;Landroid/bluetooth/BluetoothDevice;I)V
+PLcom/android/server/media/BluetoothRouteProvider;->access$900(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider;->addEventReceiver(Ljava/lang/String;Lcom/android/server/media/BluetoothRouteProvider$BluetoothEventReceiver;)V
+PLcom/android/server/media/BluetoothRouteProvider;->buildBluetoothRoutes()V
+PLcom/android/server/media/BluetoothRouteProvider;->createBluetoothRoute(Landroid/bluetooth/BluetoothDevice;)Lcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;
+PLcom/android/server/media/BluetoothRouteProvider;->getActiveDeviceAddress()Ljava/lang/String;
+PLcom/android/server/media/BluetoothRouteProvider;->getBluetoothRoutes()Ljava/util/List;
+PLcom/android/server/media/BluetoothRouteProvider;->getInstance(Landroid/content/Context;Lcom/android/server/media/BluetoothRouteProvider$BluetoothRoutesUpdatedListener;)Lcom/android/server/media/BluetoothRouteProvider;
+PLcom/android/server/media/BluetoothRouteProvider;->notifyBluetoothRoutesUpdated()V
+PLcom/android/server/media/BluetoothRouteProvider;->setRouteConnectionStateForDevice(Landroid/bluetooth/BluetoothDevice;I)V
+HSPLcom/android/server/media/MediaButtonReceiverHolder;-><init>(ILandroid/app/PendingIntent;Landroid/content/ComponentName;I)V
+HPLcom/android/server/media/MediaButtonReceiverHolder;->create(Landroid/content/Context;ILandroid/app/PendingIntent;)Lcom/android/server/media/MediaButtonReceiverHolder;
+HPLcom/android/server/media/MediaButtonReceiverHolder;->flattenToString()Ljava/lang/String;
+HPLcom/android/server/media/MediaButtonReceiverHolder;->getComponentType(Landroid/content/Context;Landroid/content/ComponentName;)I
+PLcom/android/server/media/MediaButtonReceiverHolder;->getPackageName()Ljava/lang/String;
+HPLcom/android/server/media/MediaButtonReceiverHolder;->send(Landroid/content/Context;Landroid/view/KeyEvent;Ljava/lang/String;ILandroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)Z
+PLcom/android/server/media/MediaButtonReceiverHolder;->toString()Ljava/lang/String;
+HSPLcom/android/server/media/MediaButtonReceiverHolder;->unflattenFromString(Landroid/content/Context;Ljava/lang/String;)Lcom/android/server/media/MediaButtonReceiverHolder;
 HSPLcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;-><init>(Lcom/android/server/media/MediaResourceMonitorService;)V
 HPLcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;->getPackageNamesFromPid(I)[Ljava/lang/String;
 HPLcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;->notifyResourceGranted(II)V
@@ -18920,8 +19571,11 @@
 PLcom/android/server/media/MediaRoute2Provider;-><init>(Landroid/content/ComponentName;)V
 PLcom/android/server/media/MediaRoute2Provider;->getProviderInfo()Landroid/media/MediaRoute2ProviderInfo;
 PLcom/android/server/media/MediaRoute2Provider;->getUniqueId()Ljava/lang/String;
+PLcom/android/server/media/MediaRoute2Provider;->notifyProviderState()V
+PLcom/android/server/media/MediaRoute2Provider;->setAndNotifyProviderState(Landroid/media/MediaRoute2ProviderInfo;)V
 PLcom/android/server/media/MediaRoute2Provider;->setAndNotifyProviderState(Landroid/media/MediaRoute2ProviderInfo;Ljava/util/List;)V
 PLcom/android/server/media/MediaRoute2Provider;->setCallback(Lcom/android/server/media/MediaRoute2Provider$Callback;)V
+PLcom/android/server/media/MediaRoute2Provider;->setProviderState(Landroid/media/MediaRoute2ProviderInfo;)V
 PLcom/android/server/media/MediaRoute2ProviderWatcher$1;-><init>(Lcom/android/server/media/MediaRoute2ProviderWatcher;)V
 PLcom/android/server/media/MediaRoute2ProviderWatcher$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/media/MediaRoute2ProviderWatcher$2;-><init>(Lcom/android/server/media/MediaRoute2ProviderWatcher;)V
@@ -18935,12 +19589,16 @@
 PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;Landroid/media/IMediaRouter2Manager;IILjava/lang/String;Z)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->dispose()V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$1100(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Landroid/media/IMediaRouter2Manager;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$1200(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Landroid/media/IMediaRouter2Manager;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$400(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$800(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$800(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Landroid/media/IMediaRouter2Manager;)V
-PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getClients()Ljava/util/List;
-PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getManagers()Ljava/util/List;
-PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getProviderInfoIndex(Ljava/lang/String;)I
+HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getClients()Ljava/util/List;
+HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getManagers()Ljava/util/List;
+HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getProviderInfoIndex(Ljava/lang/String;)I
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->lambda$2y9vqtJzX1LpgQmc7mf5RQXEtqk(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Ljava/util/List;Ljava/util/List;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->lambda$9sVKwFHJaVOpWt-fwbOrQeBJC6Y(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->lambda$pb5SX6gBlgZXLZp0t4uVjgjp3EE(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRoute2Provider;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesAddedToClients(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesAddedToManagers(Ljava/util/List;Ljava/util/List;)V
@@ -18949,8 +19607,12 @@
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesRemovedToClients(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesRemovedToManagers(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesToManager(Landroid/media/IMediaRouter2Manager;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifySessionInfoChangedToClients(Ljava/util/List;Landroid/media/RoutingSessionInfo;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifySessionInfosChangedToManagers(Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onProviderStateChanged(Lcom/android/server/media/MediaRoute2Provider;)V
 HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onProviderStateChangedOnHandler(Lcom/android/server/media/MediaRoute2Provider;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionInfoChangedOnHandler(Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionUpdated(Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->start()V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;I)V
 HSPLcom/android/server/media/MediaRouter2ServiceImpl;-><clinit>()V
@@ -18959,6 +19621,7 @@
 PLcom/android/server/media/MediaRouter2ServiceImpl;->access$300(Lcom/android/server/media/MediaRouter2ServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/media/MediaRouter2ServiceImpl;->disposeUserIfNeededLocked(Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->getOrCreateUserRecordLocked(I)Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;
+PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$getOrCreateUserRecordLocked$15(Ljava/lang/Object;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$getOrCreateUserRecordLocked$16(Ljava/lang/Object;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$registerManagerLocked$12(Ljava/lang/Object;Landroid/media/IMediaRouter2Manager;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->registerManager(Landroid/media/IMediaRouter2Manager;Ljava/lang/String;)V
@@ -19005,7 +19668,7 @@
 PLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->computeVolumeHandling(Landroid/media/RemoteDisplayState$RemoteDisplayInfo;)I
 PLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->computeVolumeMax(Landroid/media/RemoteDisplayState$RemoteDisplayInfo;)I
 PLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->getDescriptorId()Ljava/lang/String;
-PLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->getInfo()Landroid/media/MediaRouterClientState$RouteInfo;
+HPLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->getInfo()Landroid/media/MediaRouterClientState$RouteInfo;
 PLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->getProvider()Lcom/android/server/media/RemoteDisplayProviderProxy;
 PLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->getStatus()I
 PLcom/android/server/media/MediaRouterService$UserHandler$RouteRecord;->getUniqueId()Ljava/lang/String;
@@ -19083,28 +19746,31 @@
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->fastForward(Ljava/lang/String;)V
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getExtras()Landroid/os/Bundle;
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getFlags()J
-PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getLaunchPendingIntent()Landroid/app/PendingIntent;
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getLaunchPendingIntent()Landroid/app/PendingIntent;
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getMetadata()Landroid/media/MediaMetadata;
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPackageName()Ljava/lang/String;
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPlaybackState()Landroid/media/session/PlaybackState;
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueue()Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueueTitle()Ljava/lang/CharSequence;
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueueTitle()Ljava/lang/CharSequence;
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getRatingType()I
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->next(Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->pause(Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->play(Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->playFromMediaId(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->playFromSearch(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->playFromUri(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->prepareFromMediaId(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->prepareFromUri(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->previous(Ljava/lang/String;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->rate(Ljava/lang/String;Landroid/media/Rating;)V
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->rewind(Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->seekTo(Ljava/lang/String;J)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->sendCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->sendCustomAction(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->sendMediaButton(Ljava/lang/String;Landroid/view/KeyEvent;)Z
-PLcom/android/server/media/MediaSessionRecord$ControllerStub;->setVolumeTo(Ljava/lang/String;Ljava/lang/String;II)V
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->setVolumeTo(Ljava/lang/String;Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->skipToQueueItem(Ljava/lang/String;J)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->stop(Ljava/lang/String;)V
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->unregisterCallback(Landroid/media/session/ISessionControllerCallback;)V
@@ -19125,9 +19791,12 @@
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->pause(Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->play(Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->playFromMediaId(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/media/MediaSessionRecord$SessionCb;->playFromSearch(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->playFromUri(Ljava/lang/String;IILandroid/net/Uri;Landroid/os/Bundle;)V
+PLcom/android/server/media/MediaSessionRecord$SessionCb;->prepareFromMediaId(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->prepareFromUri(Ljava/lang/String;IILandroid/net/Uri;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->previous(Ljava/lang/String;II)V
+PLcom/android/server/media/MediaSessionRecord$SessionCb;->rate(Ljava/lang/String;IILandroid/media/Rating;)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->rewind(Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->seekTo(Ljava/lang/String;IIJ)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->sendCommand(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
@@ -19160,44 +19829,55 @@
 HSPLcom/android/server/media/MediaSessionRecord;-><init>(IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;Lcom/android/server/media/MediaSessionService;Landroid/os/Looper;)V
 HPLcom/android/server/media/MediaSessionRecord;-><init>(IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;Lcom/android/server/media/MediaSessionService;Landroid/os/Looper;I)V
 HSPLcom/android/server/media/MediaSessionRecord;->access$1000(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$ControllerStub;
-PLcom/android/server/media/MediaSessionRecord;->access$1102(Lcom/android/server/media/MediaSessionRecord;Z)Z
+HPLcom/android/server/media/MediaSessionRecord;->access$1102(Lcom/android/server/media/MediaSessionRecord;Z)Z
 PLcom/android/server/media/MediaSessionRecord;->access$1200(Lcom/android/server/media/MediaSessionRecord;)J
 HSPLcom/android/server/media/MediaSessionRecord;->access$1202(Lcom/android/server/media/MediaSessionRecord;J)J
 PLcom/android/server/media/MediaSessionRecord;->access$1300(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$1302(Lcom/android/server/media/MediaSessionRecord;Landroid/app/PendingIntent;)Landroid/app/PendingIntent;
 PLcom/android/server/media/MediaSessionRecord;->access$1400(Lcom/android/server/media/MediaSessionRecord;)Landroid/app/PendingIntent;
 PLcom/android/server/media/MediaSessionRecord;->access$1402(Lcom/android/server/media/MediaSessionRecord;Landroid/app/PendingIntent;)Landroid/app/PendingIntent;
+PLcom/android/server/media/MediaSessionRecord;->access$1402(Lcom/android/server/media/MediaSessionRecord;Lcom/android/server/media/MediaButtonReceiverHolder;)Lcom/android/server/media/MediaButtonReceiverHolder;
 PLcom/android/server/media/MediaSessionRecord;->access$1500(Lcom/android/server/media/MediaSessionRecord;)Landroid/app/PendingIntent;
+PLcom/android/server/media/MediaSessionRecord;->access$1500(Lcom/android/server/media/MediaSessionRecord;)Landroid/content/Context;
 HSPLcom/android/server/media/MediaSessionRecord;->access$1500(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/Object;
 PLcom/android/server/media/MediaSessionRecord;->access$1502(Lcom/android/server/media/MediaSessionRecord;Landroid/app/PendingIntent;)Landroid/app/PendingIntent;
+PLcom/android/server/media/MediaSessionRecord;->access$1600(Lcom/android/server/media/MediaSessionRecord;)I
 HPLcom/android/server/media/MediaSessionRecord;->access$1600(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/MediaMetadata;
 HPLcom/android/server/media/MediaSessionRecord;->access$1600(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/Object;
 PLcom/android/server/media/MediaSessionRecord;->access$1602(Lcom/android/server/media/MediaSessionRecord;Landroid/media/MediaMetadata;)Landroid/media/MediaMetadata;
+PLcom/android/server/media/MediaSessionRecord;->access$1700(Lcom/android/server/media/MediaSessionRecord;)Landroid/app/PendingIntent;
 HPLcom/android/server/media/MediaSessionRecord;->access$1700(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/MediaMetadata;
 PLcom/android/server/media/MediaSessionRecord;->access$1702(Lcom/android/server/media/MediaSessionRecord;J)J
+PLcom/android/server/media/MediaSessionRecord;->access$1702(Lcom/android/server/media/MediaSessionRecord;Landroid/app/PendingIntent;)Landroid/app/PendingIntent;
 PLcom/android/server/media/MediaSessionRecord;->access$1702(Lcom/android/server/media/MediaSessionRecord;Landroid/media/MediaMetadata;)Landroid/media/MediaMetadata;
+HPLcom/android/server/media/MediaSessionRecord;->access$1800(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/Object;
 PLcom/android/server/media/MediaSessionRecord;->access$1802(Lcom/android/server/media/MediaSessionRecord;J)J
 PLcom/android/server/media/MediaSessionRecord;->access$1802(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/media/MediaSessionRecord;->access$1900(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/MediaMetadata;
 PLcom/android/server/media/MediaSessionRecord;->access$1900(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
+HPLcom/android/server/media/MediaSessionRecord;->access$1902(Lcom/android/server/media/MediaSessionRecord;Landroid/media/MediaMetadata;)Landroid/media/MediaMetadata;
 PLcom/android/server/media/MediaSessionRecord;->access$1902(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/PlaybackState;)Landroid/media/session/PlaybackState;
 PLcom/android/server/media/MediaSessionRecord;->access$1902(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/media/MediaSessionRecord;->access$200(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/AudioManagerInternal;
+HPLcom/android/server/media/MediaSessionRecord;->access$200(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/AudioManagerInternal;
 PLcom/android/server/media/MediaSessionRecord;->access$2000()Ljava/util/List;
-PLcom/android/server/media/MediaSessionRecord;->access$2000(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
+HPLcom/android/server/media/MediaSessionRecord;->access$2000(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
 PLcom/android/server/media/MediaSessionRecord;->access$2000(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/List;
+HPLcom/android/server/media/MediaSessionRecord;->access$2002(Lcom/android/server/media/MediaSessionRecord;J)J
 PLcom/android/server/media/MediaSessionRecord;->access$2002(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/PlaybackState;)Landroid/media/session/PlaybackState;
 PLcom/android/server/media/MediaSessionRecord;->access$2002(Lcom/android/server/media/MediaSessionRecord;Ljava/util/List;)Ljava/util/List;
 PLcom/android/server/media/MediaSessionRecord;->access$2100()Ljava/util/List;
-PLcom/android/server/media/MediaSessionRecord;->access$2102(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLcom/android/server/media/MediaSessionRecord;->access$2102(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionRecord;->access$2200()Ljava/util/List;
+HPLcom/android/server/media/MediaSessionRecord;->access$2200(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
 HPLcom/android/server/media/MediaSessionRecord;->access$2200(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/List;
-PLcom/android/server/media/MediaSessionRecord;->access$2202(Lcom/android/server/media/MediaSessionRecord;Landroid/os/Bundle;)Landroid/os/Bundle;
+HPLcom/android/server/media/MediaSessionRecord;->access$2202(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/PlaybackState;)Landroid/media/session/PlaybackState;
 PLcom/android/server/media/MediaSessionRecord;->access$2202(Lcom/android/server/media/MediaSessionRecord;Ljava/util/List;)Ljava/util/List;
+HPLcom/android/server/media/MediaSessionRecord;->access$2300()Ljava/util/List;
 PLcom/android/server/media/MediaSessionRecord;->access$2300(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/CharSequence;
 HPLcom/android/server/media/MediaSessionRecord;->access$2300(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/List;
-PLcom/android/server/media/MediaSessionRecord;->access$2302(Lcom/android/server/media/MediaSessionRecord;I)I
 PLcom/android/server/media/MediaSessionRecord;->access$2302(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 PLcom/android/server/media/MediaSessionRecord;->access$2302(Lcom/android/server/media/MediaSessionRecord;Ljava/util/List;)Ljava/util/List;
+HPLcom/android/server/media/MediaSessionRecord;->access$2400()Ljava/util/List;
 PLcom/android/server/media/MediaSessionRecord;->access$2400(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$2400(Lcom/android/server/media/MediaSessionRecord;)Landroid/os/Bundle;
 PLcom/android/server/media/MediaSessionRecord;->access$2400(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/CharSequence;
@@ -19206,64 +19886,77 @@
 PLcom/android/server/media/MediaSessionRecord;->access$2402(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 PLcom/android/server/media/MediaSessionRecord;->access$2500(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$2500(Lcom/android/server/media/MediaSessionRecord;)Landroid/os/Bundle;
+HPLcom/android/server/media/MediaSessionRecord;->access$2500(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/List;
 PLcom/android/server/media/MediaSessionRecord;->access$2502(Lcom/android/server/media/MediaSessionRecord;I)I
 PLcom/android/server/media/MediaSessionRecord;->access$2502(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
 PLcom/android/server/media/MediaSessionRecord;->access$2502(Lcom/android/server/media/MediaSessionRecord;Landroid/os/Bundle;)Landroid/os/Bundle;
+PLcom/android/server/media/MediaSessionRecord;->access$2502(Lcom/android/server/media/MediaSessionRecord;Ljava/util/List;)Ljava/util/List;
 HSPLcom/android/server/media/MediaSessionRecord;->access$2600(Lcom/android/server/media/MediaSessionRecord;)I
+PLcom/android/server/media/MediaSessionRecord;->access$2600(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/CharSequence;
 HSPLcom/android/server/media/MediaSessionRecord;->access$2602(Lcom/android/server/media/MediaSessionRecord;I)I
-PLcom/android/server/media/MediaSessionRecord;->access$2700(Lcom/android/server/media/MediaSessionRecord;)I
-PLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;I)I
+PLcom/android/server/media/MediaSessionRecord;->access$2602(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLcom/android/server/media/MediaSessionRecord;->access$2700(Lcom/android/server/media/MediaSessionRecord;)I
+PLcom/android/server/media/MediaSessionRecord;->access$2700(Lcom/android/server/media/MediaSessionRecord;)Landroid/os/Bundle;
+HPLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;I)I
 HSPLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
-PLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/media/MediaSessionRecord;->access$2800(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$2802(Lcom/android/server/media/MediaSessionRecord;I)I
-PLcom/android/server/media/MediaSessionRecord;->access$2802(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
-PLcom/android/server/media/MediaSessionRecord;->access$2802(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/media/MediaSessionRecord;->access$2902(Lcom/android/server/media/MediaSessionRecord;I)I
+HSPLcom/android/server/media/MediaSessionRecord;->access$2802(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
+HPLcom/android/server/media/MediaSessionRecord;->access$2802(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/media/MediaSessionRecord;->access$2900(Lcom/android/server/media/MediaSessionRecord;)I
+HPLcom/android/server/media/MediaSessionRecord;->access$2902(Lcom/android/server/media/MediaSessionRecord;I)I
 PLcom/android/server/media/MediaSessionRecord;->access$2902(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
 PLcom/android/server/media/MediaSessionRecord;->access$3000(Lcom/android/server/media/MediaSessionRecord;)Landroid/content/Context;
-PLcom/android/server/media/MediaSessionRecord;->access$3000(Lcom/android/server/media/MediaSessionRecord;)Z
 PLcom/android/server/media/MediaSessionRecord;->access$3002(Lcom/android/server/media/MediaSessionRecord;I)I
+HPLcom/android/server/media/MediaSessionRecord;->access$3002(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionRecord;->access$3100(Lcom/android/server/media/MediaSessionRecord;)Landroid/content/Context;
 PLcom/android/server/media/MediaSessionRecord;->access$3100(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$SessionCb;
-PLcom/android/server/media/MediaSessionRecord;->access$3100(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;)I
 PLcom/android/server/media/MediaSessionRecord;->access$3102(Lcom/android/server/media/MediaSessionRecord;I)I
+HPLcom/android/server/media/MediaSessionRecord;->access$3102(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
 PLcom/android/server/media/MediaSessionRecord;->access$3200(Lcom/android/server/media/MediaSessionRecord;)Landroid/content/Context;
 PLcom/android/server/media/MediaSessionRecord;->access$3200(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$SessionCb;
-PLcom/android/server/media/MediaSessionRecord;->access$3200(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/ArrayList;
 PLcom/android/server/media/MediaSessionRecord;->access$3200(Lcom/android/server/media/MediaSessionRecord;)Z
-PLcom/android/server/media/MediaSessionRecord;->access$3300()Z
+PLcom/android/server/media/MediaSessionRecord;->access$3202(Lcom/android/server/media/MediaSessionRecord;I)I
 PLcom/android/server/media/MediaSessionRecord;->access$3300(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$SessionCb;
 PLcom/android/server/media/MediaSessionRecord;->access$3300(Lcom/android/server/media/MediaSessionRecord;)Z
 PLcom/android/server/media/MediaSessionRecord;->access$3300(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;)I
-PLcom/android/server/media/MediaSessionRecord;->access$3400(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/String;
+PLcom/android/server/media/MediaSessionRecord;->access$3302(Lcom/android/server/media/MediaSessionRecord;I)I
+PLcom/android/server/media/MediaSessionRecord;->access$3400(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$SessionCb;
 PLcom/android/server/media/MediaSessionRecord;->access$3400(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/ArrayList;
 PLcom/android/server/media/MediaSessionRecord;->access$3400(Lcom/android/server/media/MediaSessionRecord;)Z
 HPLcom/android/server/media/MediaSessionRecord;->access$3400(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;)I
 PLcom/android/server/media/MediaSessionRecord;->access$3500()Z
 PLcom/android/server/media/MediaSessionRecord;->access$3500(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/ArrayList;
+HPLcom/android/server/media/MediaSessionRecord;->access$3500(Lcom/android/server/media/MediaSessionRecord;)Z
 HPLcom/android/server/media/MediaSessionRecord;->access$3500(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;)I
 PLcom/android/server/media/MediaSessionRecord;->access$3600()Z
 PLcom/android/server/media/MediaSessionRecord;->access$3600(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionRecord;->access$3600(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/ArrayList;
+HPLcom/android/server/media/MediaSessionRecord;->access$3600(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;)I
 PLcom/android/server/media/MediaSessionRecord;->access$3700()Z
-PLcom/android/server/media/MediaSessionRecord;->access$3700(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/MediaController$PlaybackInfo;
 PLcom/android/server/media/MediaSessionRecord;->access$3700(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/String;
+HPLcom/android/server/media/MediaSessionRecord;->access$3700(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/ArrayList;
+HPLcom/android/server/media/MediaSessionRecord;->access$3800()Z
 HPLcom/android/server/media/MediaSessionRecord;->access$3800(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionRecord;->access$3900(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/MediaController$PlaybackInfo;
-PLcom/android/server/media/MediaSessionRecord;->access$3900(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
+HPLcom/android/server/media/MediaSessionRecord;->access$3900(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/String;
 HPLcom/android/server/media/MediaSessionRecord;->access$4000(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/MediaController$PlaybackInfo;
-PLcom/android/server/media/MediaSessionRecord;->access$4000(Lcom/android/server/media/MediaSessionRecord;)V
 HPLcom/android/server/media/MediaSessionRecord;->access$4100(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/MediaController$PlaybackInfo;
 HPLcom/android/server/media/MediaSessionRecord;->access$4100(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
-PLcom/android/server/media/MediaSessionRecord;->access$4100(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionRecord;->access$4100(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Ljava/lang/String;IIII)V
+HPLcom/android/server/media/MediaSessionRecord;->access$4200(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/MediaController$PlaybackInfo;
 HPLcom/android/server/media/MediaSessionRecord;->access$4200(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
 HPLcom/android/server/media/MediaSessionRecord;->access$4200(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionRecord;->access$4200(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Ljava/lang/String;IIII)V
 HPLcom/android/server/media/MediaSessionRecord;->access$4300(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
 HPLcom/android/server/media/MediaSessionRecord;->access$4300(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionRecord;->access$4300(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Ljava/lang/String;IIII)V
+HPLcom/android/server/media/MediaSessionRecord;->access$4400(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState;
 HPLcom/android/server/media/MediaSessionRecord;->access$4400(Lcom/android/server/media/MediaSessionRecord;)V
 HPLcom/android/server/media/MediaSessionRecord;->access$4500(Lcom/android/server/media/MediaSessionRecord;)V
-PLcom/android/server/media/MediaSessionRecord;->access$4600(Lcom/android/server/media/MediaSessionRecord;)V
+HPLcom/android/server/media/MediaSessionRecord;->access$4600(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionRecord;->access$4700(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionRecord;->access$4700(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord;->access$4800(Lcom/android/server/media/MediaSessionRecord;)V
@@ -19272,7 +19965,9 @@
 PLcom/android/server/media/MediaSessionRecord;->access$4900(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord;->access$500(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$5000(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionRecord;->access$5000(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord;->access$502(Lcom/android/server/media/MediaSessionRecord;I)I
+PLcom/android/server/media/MediaSessionRecord;->access$5100(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionRecord;->access$600(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$602(Lcom/android/server/media/MediaSessionRecord;I)I
 HPLcom/android/server/media/MediaSessionRecord;->access$700(Lcom/android/server/media/MediaSessionRecord;)V
@@ -19288,19 +19983,19 @@
 HPLcom/android/server/media/MediaSessionRecord;->getControllerHolderIndexForCb(Landroid/media/session/ISessionControllerCallback;)I
 PLcom/android/server/media/MediaSessionRecord;->getFlags()J
 PLcom/android/server/media/MediaSessionRecord;->getMediaButtonReceiver()Landroid/app/PendingIntent;
+PLcom/android/server/media/MediaSessionRecord;->getMediaButtonReceiver()Lcom/android/server/media/MediaButtonReceiverHolder;
 PLcom/android/server/media/MediaSessionRecord;->getPackageName()Ljava/lang/String;
 HSPLcom/android/server/media/MediaSessionRecord;->getSessionBinder()Landroid/media/session/ISession;
 HPLcom/android/server/media/MediaSessionRecord;->getSessionPolicies()I
-PLcom/android/server/media/MediaSessionRecord;->getSessionToken()Landroid/media/session/MediaSession$Token;
+HPLcom/android/server/media/MediaSessionRecord;->getSessionToken()Landroid/media/session/MediaSession$Token;
 HPLcom/android/server/media/MediaSessionRecord;->getStateWithUpdatedPosition()Landroid/media/session/PlaybackState;
 HPLcom/android/server/media/MediaSessionRecord;->getUid()I
 HSPLcom/android/server/media/MediaSessionRecord;->getUserId()I
 HPLcom/android/server/media/MediaSessionRecord;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
 HPLcom/android/server/media/MediaSessionRecord;->getVolumeStream(Landroid/media/AudioAttributes;)I
 HSPLcom/android/server/media/MediaSessionRecord;->isActive()Z
-PLcom/android/server/media/MediaSessionRecord;->isClosed()Z
-PLcom/android/server/media/MediaSessionRecord;->isPlaybackLocal()Z
-PLcom/android/server/media/MediaSessionRecord;->isPlaybackTypeLocal()Z
+HPLcom/android/server/media/MediaSessionRecord;->isClosed()Z
+HPLcom/android/server/media/MediaSessionRecord;->isPlaybackTypeLocal()Z
 PLcom/android/server/media/MediaSessionRecord;->isSystemPriority()Z
 HPLcom/android/server/media/MediaSessionRecord;->logCallbackException(Ljava/lang/String;Lcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;Ljava/lang/Exception;)V
 PLcom/android/server/media/MediaSessionRecord;->onDestroy()V
@@ -19314,7 +20009,7 @@
 HPLcom/android/server/media/MediaSessionRecord;->pushSessionDestroyed()V
 HPLcom/android/server/media/MediaSessionRecord;->pushVolumeUpdate()V
 PLcom/android/server/media/MediaSessionRecord;->sendMediaButton(Ljava/lang/String;IIZLandroid/view/KeyEvent;ILandroid/os/ResultReceiver;)Z
-PLcom/android/server/media/MediaSessionRecord;->setVolumeTo(Ljava/lang/String;Ljava/lang/String;IIII)V
+HPLcom/android/server/media/MediaSessionRecord;->setVolumeTo(Ljava/lang/String;Ljava/lang/String;IIII)V
 HSPLcom/android/server/media/MediaSessionRecord;->toString()Ljava/lang/String;
 PLcom/android/server/media/MediaSessionService$FullUserRecord$CallbackRecord;-><init>(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/ICallback;I)V
 PLcom/android/server/media/MediaSessionService$FullUserRecord$OnMediaKeyEventSessionChangedListenerRecord;-><init>(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/IOnMediaKeyEventSessionChangedListener;I)V
@@ -19322,6 +20017,7 @@
 HSPLcom/android/server/media/MediaSessionService$FullUserRecord;-><init>(Lcom/android/server/media/MediaSessionService;I)V
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$1700(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Ljava/util/HashMap;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$1800(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Ljava/util/HashMap;
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$1900(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Ljava/util/HashMap;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$200(Lcom/android/server/media/MediaSessionService$FullUserRecord;)V
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$2800(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/media/session/IOnMediaKeyListener;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$2802(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/IOnMediaKeyListener;)Landroid/media/session/IOnMediaKeyListener;
@@ -19329,6 +20025,7 @@
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$2902(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/IOnMediaKeyListener;)Landroid/media/session/IOnMediaKeyListener;
 HSPLcom/android/server/media/MediaSessionService$FullUserRecord;->access$300(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Lcom/android/server/media/MediaSessionStack;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3000(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/media/session/IOnMediaKeyListener;
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3002(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/IOnMediaKeyListener;)Landroid/media/session/IOnMediaKeyListener;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3100(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3102(Lcom/android/server/media/MediaSessionService$FullUserRecord;I)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3200(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
@@ -19337,7 +20034,9 @@
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3302(Lcom/android/server/media/MediaSessionService$FullUserRecord;I)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3400(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3402(Lcom/android/server/media/MediaSessionService$FullUserRecord;I)I
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3500(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3500(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/view/KeyEvent;
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3502(Lcom/android/server/media/MediaSessionService$FullUserRecord;I)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3502(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/view/KeyEvent;)Landroid/view/KeyEvent;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3600(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$3602(Lcom/android/server/media/MediaSessionService$FullUserRecord;I)I
@@ -19355,11 +20054,14 @@
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$4800(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/content/ComponentName;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$4900(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$4900(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/app/PendingIntent;
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$4900(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Lcom/android/server/media/MediaButtonReceiverHolder;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$500(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/media/session/IOnVolumeKeyLongPressListener;
-PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$500(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/util/SparseIntArray;
+HSPLcom/android/server/media/MediaSessionService$FullUserRecord;->access$500(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/util/SparseIntArray;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$5000(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$5000(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/content/ComponentName;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$502(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/IOnVolumeKeyLongPressListener;)Landroid/media/session/IOnVolumeKeyLongPressListener;
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$5100(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$5200(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$600(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/media/session/IOnVolumeKeyLongPressListener;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$602(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/IOnVolumeKeyLongPressListener;)Landroid/media/session/IOnVolumeKeyLongPressListener;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;->addOnMediaKeyEventSessionChangedListenerLocked(Landroid/media/session/IOnMediaKeyEventSessionChangedListener;I)V
@@ -19390,6 +20092,8 @@
 HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;Landroid/os/Handler;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->access$4400(Lcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;)I
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->access$4600(Lcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;)I
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->access$4800(Lcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;)I
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->acquireWakeLockLocked()V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->aquireWakeLockLocked()V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->onReceiveResult(ILandroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
@@ -19402,7 +20106,7 @@
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->access$5400(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;I)Z
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->access$5500(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;Ljava/lang/String;IIZLandroid/view/KeyEvent;Z)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->addOnMediaKeyEventSessionChangedListener(Landroid/media/session/IOnMediaKeyEventSessionChangedListener;)V
-HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
+HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
 HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->createSession(Ljava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;I)Landroid/media/session/ISession;
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchAdjustVolume(Ljava/lang/String;Ljava/lang/String;III)V
 HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchAdjustVolumeLocked(Ljava/lang/String;Ljava/lang/String;IIZIII)V
@@ -19412,15 +20116,15 @@
 HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchVolumeKeyEventLocked(Ljava/lang/String;Ljava/lang/String;IIZLandroid/view/KeyEvent;IZ)V
 HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchVolumeKeyEventToSessionAsSystemService(Ljava/lang/String;Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/view/KeyEvent;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
+HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->handleVoiceKeyEventLocked(Ljava/lang/String;IIZLandroid/view/KeyEvent;Z)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->hasMediaControlPermission(II)Z
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isGlobalPriorityActive()Z
-PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isUserSetupComplete()Z
+HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isUserSetupComplete()Z
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isValidLocalStreamType(I)Z
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isVoiceKey(I)Z
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->registerCallback(Landroid/media/session/ICallback;)V
-PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->registerRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
+HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->registerRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->removeOnMediaKeyEventSessionChangedListener(Landroid/media/session/IOnMediaKeyEventSessionChangedListener;)V
 HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->removeSessionsListener(Landroid/media/session/IActiveSessionsListener;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->setOnMediaKeyListener(Landroid/media/session/IOnMediaKeyListener;)V
@@ -19428,9 +20132,9 @@
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->startVoiceInput(Z)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->unregisterCallback(Landroid/media/session/ICallback;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->unregisterRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
-HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->verifySessionsRequest(Landroid/content/ComponentName;III)I
-PLcom/android/server/media/MediaSessionService$SessionsListenerRecord;-><init>(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;III)V
-PLcom/android/server/media/MediaSessionService$SessionsListenerRecord;->binderDied()V
+HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->verifySessionsRequest(Landroid/content/ComponentName;III)I
+HSPLcom/android/server/media/MediaSessionService$SessionsListenerRecord;-><init>(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;III)V
+HPLcom/android/server/media/MediaSessionService$SessionsListenerRecord;->binderDied()V
 HSPLcom/android/server/media/MediaSessionService$SettingsObserver;-><init>(Lcom/android/server/media/MediaSessionService;)V
 HSPLcom/android/server/media/MediaSessionService$SettingsObserver;-><init>(Lcom/android/server/media/MediaSessionService;Lcom/android/server/media/MediaSessionService$1;)V
 HSPLcom/android/server/media/MediaSessionService$SettingsObserver;->access$100(Lcom/android/server/media/MediaSessionService$SettingsObserver;)V
@@ -19441,43 +20145,49 @@
 PLcom/android/server/media/MediaSessionService;->access$1000(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseIntArray;
 PLcom/android/server/media/MediaSessionService;->access$1000(Lcom/android/server/media/MediaSessionService;I)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionService;->access$1100(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
+PLcom/android/server/media/MediaSessionService;->access$1100(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseIntArray;
 PLcom/android/server/media/MediaSessionService;->access$1100(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
 PLcom/android/server/media/MediaSessionService;->access$1100(Lcom/android/server/media/MediaSessionService;I)Ljava/lang/String;
 HSPLcom/android/server/media/MediaSessionService;->access$1200(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
-PLcom/android/server/media/MediaSessionService;->access$1200(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
+HSPLcom/android/server/media/MediaSessionService;->access$1200(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
+PLcom/android/server/media/MediaSessionService;->access$1200(Lcom/android/server/media/MediaSessionService;I)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 HSPLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
+PLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
 PLcom/android/server/media/MediaSessionService;->access$1400(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$FullUserRecord;
+HSPLcom/android/server/media/MediaSessionService;->access$1400(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
 PLcom/android/server/media/MediaSessionService;->access$1400(Lcom/android/server/media/MediaSessionService;)Z
 PLcom/android/server/media/MediaSessionService;->access$1500(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionRecord;
+PLcom/android/server/media/MediaSessionService;->access$1500(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 PLcom/android/server/media/MediaSessionService;->access$1500(Lcom/android/server/media/MediaSessionService;)Z
 PLcom/android/server/media/MediaSessionService;->access$1600(Lcom/android/server/media/MediaSessionService;)Landroid/content/Context;
 PLcom/android/server/media/MediaSessionService;->access$1600(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionRecord;
+HPLcom/android/server/media/MediaSessionService;->access$1600(Lcom/android/server/media/MediaSessionService;)Z
 PLcom/android/server/media/MediaSessionService;->access$1700(Lcom/android/server/media/MediaSessionService;)Landroid/content/Context;
+PLcom/android/server/media/MediaSessionService;->access$1700(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionRecord;
 PLcom/android/server/media/MediaSessionService;->access$1900(Lcom/android/server/media/MediaSessionService;)Ljava/util/ArrayList;
-PLcom/android/server/media/MediaSessionService;->access$2000(Lcom/android/server/media/MediaSessionService;)Ljava/util/ArrayList;
+HSPLcom/android/server/media/MediaSessionService;->access$2000(Lcom/android/server/media/MediaSessionService;)Ljava/util/ArrayList;
 HSPLcom/android/server/media/MediaSessionService;->access$2100(Lcom/android/server/media/MediaSessionService;)V
 PLcom/android/server/media/MediaSessionService;->access$2200(Lcom/android/server/media/MediaSessionService;)V
 HSPLcom/android/server/media/MediaSessionService;->access$2200(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;I)V
 HSPLcom/android/server/media/MediaSessionService;->access$2300(Lcom/android/server/media/MediaSessionService;IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/server/media/MediaSessionRecord;
-PLcom/android/server/media/MediaSessionService;->access$2300(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;I)V
+HSPLcom/android/server/media/MediaSessionService;->access$2300(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;I)V
 PLcom/android/server/media/MediaSessionService;->access$2400(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/SessionPolicyProvider;
 PLcom/android/server/media/MediaSessionService;->access$2400(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 PLcom/android/server/media/MediaSessionService;->access$2400(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
-PLcom/android/server/media/MediaSessionService;->access$2400(Lcom/android/server/media/MediaSessionService;IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/server/media/MediaSessionRecord;
+HSPLcom/android/server/media/MediaSessionService;->access$2400(Lcom/android/server/media/MediaSessionService;IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/server/media/MediaSessionRecord;
 PLcom/android/server/media/MediaSessionService;->access$2500(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 HPLcom/android/server/media/MediaSessionService;->access$2500(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
 PLcom/android/server/media/MediaSessionService;->access$2500(Lcom/android/server/media/MediaSessionService;IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;I)Lcom/android/server/media/MediaSessionRecord;
 PLcom/android/server/media/MediaSessionService;->access$2500(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
 PLcom/android/server/media/MediaSessionService;->access$2600(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
-HPLcom/android/server/media/MediaSessionService;->access$2600(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
+HSPLcom/android/server/media/MediaSessionService;->access$2600(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
 PLcom/android/server/media/MediaSessionService;->access$2600(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
 PLcom/android/server/media/MediaSessionService;->access$2700(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
-HPLcom/android/server/media/MediaSessionService;->access$2700(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
+HSPLcom/android/server/media/MediaSessionService;->access$2700(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
 PLcom/android/server/media/MediaSessionService;->access$2800(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
 PLcom/android/server/media/MediaSessionService;->access$3000(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 PLcom/android/server/media/MediaSessionService;->access$3000(Lcom/android/server/media/MediaSessionService;Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord;
-PLcom/android/server/media/MediaSessionService;->access$3100(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 PLcom/android/server/media/MediaSessionService;->access$3100(Lcom/android/server/media/MediaSessionService;Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord;
 PLcom/android/server/media/MediaSessionService;->access$3200(Lcom/android/server/media/MediaSessionService;II)Z
 PLcom/android/server/media/MediaSessionService;->access$3200(Lcom/android/server/media/MediaSessionService;Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord;
@@ -19485,18 +20195,14 @@
 PLcom/android/server/media/MediaSessionService;->access$3800(Lcom/android/server/media/MediaSessionService;)I
 PLcom/android/server/media/MediaSessionService;->access$3800(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionService;->access$3900(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
-PLcom/android/server/media/MediaSessionService;->access$3900(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;II)V
-PLcom/android/server/media/MediaSessionService;->access$4000(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
 HPLcom/android/server/media/MediaSessionService;->access$4000(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
-PLcom/android/server/media/MediaSessionService;->access$4000(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;II)V
+HSPLcom/android/server/media/MediaSessionService;->access$4000(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionService;->access$4100(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
-PLcom/android/server/media/MediaSessionService;->access$4100(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
 PLcom/android/server/media/MediaSessionService;->access$4100(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
 PLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
-HPLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
-PLcom/android/server/media/MediaSessionService;->access$4300(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
-PLcom/android/server/media/MediaSessionService;->access$4300(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
+HSPLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
+HPLcom/android/server/media/MediaSessionService;->access$4300(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
 PLcom/android/server/media/MediaSessionService;->access$4400(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
 PLcom/android/server/media/MediaSessionService;->access$4500(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
 PLcom/android/server/media/MediaSessionService;->access$4700(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaKeyDispatcher;
@@ -19504,17 +20210,20 @@
 PLcom/android/server/media/MediaSessionService;->access$5000(Lcom/android/server/media/MediaSessionService;)Landroid/os/PowerManager$WakeLock;
 PLcom/android/server/media/MediaSessionService;->access$5100(Lcom/android/server/media/MediaSessionService;)Z
 PLcom/android/server/media/MediaSessionService;->access$5200(Lcom/android/server/media/MediaSessionService;)Landroid/os/PowerManager$WakeLock;
+PLcom/android/server/media/MediaSessionService;->access$5200(Lcom/android/server/media/MediaSessionService;)Z
 PLcom/android/server/media/MediaSessionService;->access$5300(Lcom/android/server/media/MediaSessionService;)Z
+PLcom/android/server/media/MediaSessionService;->access$5400(Lcom/android/server/media/MediaSessionService;)Landroid/os/PowerManager$WakeLock;
 PLcom/android/server/media/MediaSessionService;->access$5500(Lcom/android/server/media/MediaSessionService;)Z
 HSPLcom/android/server/media/MediaSessionService;->access$5500(Lcom/android/server/media/MediaSessionService;I)V
 PLcom/android/server/media/MediaSessionService;->access$5600(Lcom/android/server/media/MediaSessionService;I)V
-HPLcom/android/server/media/MediaSessionService;->access$5700(Lcom/android/server/media/MediaSessionService;I)V
+HSPLcom/android/server/media/MediaSessionService;->access$5700(Lcom/android/server/media/MediaSessionService;I)V
 HPLcom/android/server/media/MediaSessionService;->access$5900(Lcom/android/server/media/MediaSessionService;I)V
 HSPLcom/android/server/media/MediaSessionService;->access$600(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/AudioPlayerStateMonitor;
 HSPLcom/android/server/media/MediaSessionService;->access$700(Lcom/android/server/media/MediaSessionService;)Landroid/content/ContentResolver;
 HSPLcom/android/server/media/MediaSessionService;->access$700(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/AudioPlayerStateMonitor;
 HSPLcom/android/server/media/MediaSessionService;->access$800(Lcom/android/server/media/MediaSessionService;)Landroid/content/ContentResolver;
 PLcom/android/server/media/MediaSessionService;->access$800(Lcom/android/server/media/MediaSessionService;Lcom/android/server/media/MediaSessionRecordImpl;)V
+HSPLcom/android/server/media/MediaSessionService;->access$900(Lcom/android/server/media/MediaSessionService;)Landroid/content/Context;
 PLcom/android/server/media/MediaSessionService;->access$900(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseIntArray;
 PLcom/android/server/media/MediaSessionService;->access$900(Lcom/android/server/media/MediaSessionService;Lcom/android/server/media/MediaSessionRecordImpl;)V
 HSPLcom/android/server/media/MediaSessionService;->createSessionInternal(IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/server/media/MediaSessionRecord;
@@ -19523,23 +20232,23 @@
 PLcom/android/server/media/MediaSessionService;->destroySession(Lcom/android/server/media/MediaSessionRecord;)V
 HPLcom/android/server/media/MediaSessionService;->destroySessionLocked(Lcom/android/server/media/MediaSessionRecord;)V
 HPLcom/android/server/media/MediaSessionService;->destroySessionLocked(Lcom/android/server/media/MediaSessionRecordImpl;)V
-HPLcom/android/server/media/MediaSessionService;->enforceMediaPermissions(Landroid/content/ComponentName;III)V
+HSPLcom/android/server/media/MediaSessionService;->enforceMediaPermissions(Landroid/content/ComponentName;III)V
 HSPLcom/android/server/media/MediaSessionService;->enforcePackageName(Ljava/lang/String;I)V
 HSPLcom/android/server/media/MediaSessionService;->enforcePhoneStatePermission(II)V
-PLcom/android/server/media/MediaSessionService;->enforceStatusBarServicePermission(Ljava/lang/String;II)V
-HPLcom/android/server/media/MediaSessionService;->findIndexOfSessionsListenerLocked(Landroid/media/session/IActiveSessionsListener;)I
+HSPLcom/android/server/media/MediaSessionService;->enforceStatusBarServicePermission(Ljava/lang/String;II)V
+HSPLcom/android/server/media/MediaSessionService;->findIndexOfSessionsListenerLocked(Landroid/media/session/IActiveSessionsListener;)I
 HSPLcom/android/server/media/MediaSessionService;->getActiveSessionsLocked(I)Ljava/util/List;
 HSPLcom/android/server/media/MediaSessionService;->getAudioService()Landroid/media/IAudioService;
 PLcom/android/server/media/MediaSessionService;->getCallingPackageName(I)Ljava/lang/String;
 HSPLcom/android/server/media/MediaSessionService;->getFullUserRecordLocked(I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 PLcom/android/server/media/MediaSessionService;->getMediaSessionRecordLocked(Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord;
 PLcom/android/server/media/MediaSessionService;->hasMediaControlPermission(II)Z
-HPLcom/android/server/media/MediaSessionService;->hasStatusBarServicePermission(II)Z
+HSPLcom/android/server/media/MediaSessionService;->hasStatusBarServicePermission(II)Z
 HPLcom/android/server/media/MediaSessionService;->isEnabledNotificationListener(Landroid/content/ComponentName;II)Z
 HSPLcom/android/server/media/MediaSessionService;->isGlobalPriorityActiveLocked()Z
 HPLcom/android/server/media/MediaSessionService;->lambda$onStart$0$MediaSessionService(Landroid/media/AudioPlaybackConfiguration;Z)V
 HPLcom/android/server/media/MediaSessionService;->monitor()V
-PLcom/android/server/media/MediaSessionService;->notifyRemoteVolumeChanged(ILcom/android/server/media/MediaSessionRecord;)V
+HPLcom/android/server/media/MediaSessionService;->notifyRemoteVolumeChanged(ILcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionService;->onMediaButtonReceiverChanged(Lcom/android/server/media/MediaSessionRecord;)V
 HPLcom/android/server/media/MediaSessionService;->onMediaButtonReceiverChanged(Lcom/android/server/media/MediaSessionRecordImpl;)V
 HPLcom/android/server/media/MediaSessionService;->onSessionActiveStateChanged(Lcom/android/server/media/MediaSessionRecordImpl;)V
@@ -19565,7 +20274,6 @@
 HSPLcom/android/server/media/MediaSessionStack;->clearCache(I)V
 PLcom/android/server/media/MediaSessionStack;->contains(Lcom/android/server/media/MediaSessionRecord;)Z
 HSPLcom/android/server/media/MediaSessionStack;->contains(Lcom/android/server/media/MediaSessionRecordImpl;)Z
-PLcom/android/server/media/MediaSessionStack;->containsState(I[I)Z
 PLcom/android/server/media/MediaSessionStack;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionStack;->findMediaButtonSession(I)Lcom/android/server/media/MediaSessionRecord;
 HPLcom/android/server/media/MediaSessionStack;->findMediaButtonSession(I)Lcom/android/server/media/MediaSessionRecordImpl;
@@ -19582,11 +20290,10 @@
 HSPLcom/android/server/media/MediaSessionStack;->getPriorityList(ZI)Ljava/util/List;
 HPLcom/android/server/media/MediaSessionStack;->onPlaybackStateChanged(Lcom/android/server/media/MediaSessionRecordImpl;Z)V
 PLcom/android/server/media/MediaSessionStack;->onPlaystateChanged(Lcom/android/server/media/MediaSessionRecord;II)V
-PLcom/android/server/media/MediaSessionStack;->onSessionActiveStateChanged(Lcom/android/server/media/MediaSessionRecordImpl;)V
+HPLcom/android/server/media/MediaSessionStack;->onSessionActiveStateChanged(Lcom/android/server/media/MediaSessionRecordImpl;)V
 PLcom/android/server/media/MediaSessionStack;->onSessionStateChange(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionStack;->removeSession(Lcom/android/server/media/MediaSessionRecord;)V
 HSPLcom/android/server/media/MediaSessionStack;->removeSession(Lcom/android/server/media/MediaSessionRecordImpl;)V
-PLcom/android/server/media/MediaSessionStack;->shouldUpdatePriority(II)Z
 PLcom/android/server/media/MediaSessionStack;->updateMediaButtonSession(Lcom/android/server/media/MediaSessionRecordImpl;)V
 HSPLcom/android/server/media/MediaSessionStack;->updateMediaButtonSessionIfNeeded()V
 PLcom/android/server/media/RemoteDisplayProviderProxy$1;-><init>(Lcom/android/server/media/RemoteDisplayProviderProxy;)V
@@ -19648,12 +20355,24 @@
 PLcom/android/server/media/SystemMediaRoute2Provider$1$1;->run()V
 PLcom/android/server/media/SystemMediaRoute2Provider$1;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
 PLcom/android/server/media/SystemMediaRoute2Provider$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
+PLcom/android/server/media/SystemMediaRoute2Provider$VolumeChangeReceiver;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
+PLcom/android/server/media/SystemMediaRoute2Provider$VolumeChangeReceiver;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;Lcom/android/server/media/SystemMediaRoute2Provider$1;)V
+HPLcom/android/server/media/SystemMediaRoute2Provider$VolumeChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/media/SystemMediaRoute2Provider;-><clinit>()V
 PLcom/android/server/media/SystemMediaRoute2Provider;-><init>(Landroid/content/Context;Lcom/android/server/media/MediaRoute2Provider$Callback;)V
 PLcom/android/server/media/SystemMediaRoute2Provider;->access$000(Lcom/android/server/media/SystemMediaRoute2Provider;)Landroid/os/Handler;
+PLcom/android/server/media/SystemMediaRoute2Provider;->access$000(Lcom/android/server/media/SystemMediaRoute2Provider;Landroid/media/AudioRoutesInfo;)V
+PLcom/android/server/media/SystemMediaRoute2Provider;->access$100(Lcom/android/server/media/SystemMediaRoute2Provider;)Landroid/os/Handler;
+PLcom/android/server/media/SystemMediaRoute2Provider;->access$300(Lcom/android/server/media/SystemMediaRoute2Provider;)Lcom/android/server/media/BluetoothRouteProvider;
+PLcom/android/server/media/SystemMediaRoute2Provider;->initializeDefaultRoute()V
 PLcom/android/server/media/SystemMediaRoute2Provider;->initializeRoutes()V
-PLcom/android/server/media/SystemMediaRoute2Provider;->publishRoutes()V
+PLcom/android/server/media/SystemMediaRoute2Provider;->initializeSessionInfo()V
+PLcom/android/server/media/SystemMediaRoute2Provider;->lambda$initializeSessionInfo$1$SystemMediaRoute2Provider()V
+PLcom/android/server/media/SystemMediaRoute2Provider;->lambda$new$0$SystemMediaRoute2Provider(Ljava/util/List;)V
+PLcom/android/server/media/SystemMediaRoute2Provider;->notifySessionInfoUpdated()V
+HPLcom/android/server/media/SystemMediaRoute2Provider;->publishRoutes()V
 PLcom/android/server/media/SystemMediaRoute2Provider;->updateAudioRoutes(Landroid/media/AudioRoutesInfo;)V
+PLcom/android/server/media/SystemMediaRoute2Provider;->updateSessionInfosIfNeededLocked()Z
 HSPLcom/android/server/media/projection/MediaProjectionManagerService$1;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
 HSPLcom/android/server/media/projection/MediaProjectionManagerService$1;->onForegroundActivitiesChanged(IIZ)V
 HPLcom/android/server/media/projection/MediaProjectionManagerService$1;->onForegroundServicesChanged(III)V
@@ -19730,6 +20449,7 @@
 PLcom/android/server/midi/MidiService$Device;-><init>(Lcom/android/server/midi/MidiService;Landroid/media/midi/IMidiDeviceServer;Landroid/media/midi/MidiDeviceInfo;Landroid/content/pm/ServiceInfo;I)V
 PLcom/android/server/midi/MidiService$Device;->getPackageName()Ljava/lang/String;
 PLcom/android/server/midi/MidiService$Device;->setDeviceServer(Landroid/media/midi/IMidiDeviceServer;)V
+PLcom/android/server/midi/MidiService$Device;->toString()Ljava/lang/String;
 HSPLcom/android/server/midi/MidiService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/midi/MidiService$Lifecycle;->onStart()V
 PLcom/android/server/midi/MidiService$Lifecycle;->onUnlockUser(I)V
@@ -19807,7 +20527,7 @@
 PLcom/android/server/net/NetworkPolicyLogger;->dumpLogs(Lcom/android/internal/util/IndentingPrintWriter;)V
 HSPLcom/android/server/net/NetworkPolicyLogger;->firewallChainEnabled(IZ)V
 HSPLcom/android/server/net/NetworkPolicyLogger;->firewallRulesChanged(I[I[I)V
-PLcom/android/server/net/NetworkPolicyLogger;->getAppIdleChangedLog(IZ)Ljava/lang/String;
+HPLcom/android/server/net/NetworkPolicyLogger;->getAppIdleChangedLog(IZ)Ljava/lang/String;
 HPLcom/android/server/net/NetworkPolicyLogger;->getAppIdleWlChangedLog(IZ)Ljava/lang/String;
 HPLcom/android/server/net/NetworkPolicyLogger;->getBlockedReason(I)Ljava/lang/String;
 PLcom/android/server/net/NetworkPolicyLogger;->getDeviceIdleModeEnabled(Z)Ljava/lang/String;
@@ -19840,7 +20560,7 @@
 HSPLcom/android/server/net/NetworkPolicyManagerService$15;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HPLcom/android/server/net/NetworkPolicyManagerService$15;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService$16;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$16;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/net/NetworkPolicyManagerService$16;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService$17;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService$17;->handleMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/net/NetworkPolicyManagerService$18;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
@@ -19853,7 +20573,7 @@
 PLcom/android/server/net/NetworkPolicyManagerService$2;->onLowPowerModeChanged(Landroid/os/PowerSaveState;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService$3;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService$3;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/os/Looper;)V
-PLcom/android/server/net/NetworkPolicyManagerService$3;->onSubscriptionsChanged()V
+HPLcom/android/server/net/NetworkPolicyManagerService$3;->onSubscriptionsChanged()V
 HSPLcom/android/server/net/NetworkPolicyManagerService$4;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService$4;->onUidGone(IZ)V
 HSPLcom/android/server/net/NetworkPolicyManagerService$4;->onUidStateChanged(IIJI)V
@@ -19894,9 +20614,9 @@
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1000(Lcom/android/server/net/NetworkPolicyManagerService;Z)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1100(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$1200(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/content/Context;
-PLcom/android/server/net/NetworkPolicyManagerService;->access$1300(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
+HPLcom/android/server/net/NetworkPolicyManagerService;->access$1300(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$1400(Landroid/util/SparseBooleanArray;ZLandroid/net/Network;)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->access$1500(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
+HPLcom/android/server/net/NetworkPolicyManagerService;->access$1500(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$1600(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkPolicyLogger;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1700(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseArray;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1800(Lcom/android/server/net/NetworkPolicyManagerService;ILjava/lang/String;)Z
@@ -19905,7 +20625,7 @@
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2000(Lcom/android/server/net/NetworkPolicyManagerService;I)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2100(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/os/RemoteCallbackList;
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2200(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;II)V
-PLcom/android/server/net/NetworkPolicyManagerService;->access$2300(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;[Ljava/lang/String;)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->access$2300(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;[Ljava/lang/String;)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$2400(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/ArraySet;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$2400(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkStatsManagerInternal;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$2500(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/ArraySet;
@@ -19921,7 +20641,7 @@
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$3700(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$3800(Lcom/android/server/net/NetworkPolicyManagerService;I)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$3900(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/Network;)I
-PLcom/android/server/net/NetworkPolicyManagerService;->access$400(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->access$400(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$4000(Lcom/android/server/net/NetworkPolicyManagerService;I)Landroid/telephony/SubscriptionPlan;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$4100(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/NetworkTemplate;)I
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$4200(Lcom/android/server/net/NetworkPolicyManagerService;)Ljava/util/concurrent/CountDownLatch;
@@ -19976,7 +20696,7 @@
 HPLcom/android/server/net/NetworkPolicyManagerService;->getUidPolicy(I)I
 PLcom/android/server/net/NetworkPolicyManagerService;->getUidsWithPolicy(I)[I
 PLcom/android/server/net/NetworkPolicyManagerService;->getWarningBytesFromCarrierConfig(Landroid/os/PersistableBundle;J)J
-PLcom/android/server/net/NetworkPolicyManagerService;->handleNetworkPoliciesUpdateAL(Z)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->handleNetworkPoliciesUpdateAL(Z)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->handleRestrictedPackagesChangeUL(Ljava/util/Set;Ljava/util/Set;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->handleUidChanged(IIJ)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->handleUidGone(I)V
@@ -20032,7 +20752,7 @@
 HSPLcom/android/server/net/NetworkPolicyManagerService;->systemReady(Ljava/util/concurrent/CountDownLatch;)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->updateCapabilityChange(Landroid/util/SparseBooleanArray;ZLandroid/net/Network;)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->updateDefaultMobilePolicyAL(ILandroid/net/NetworkPolicy;)Z
+HPLcom/android/server/net/NetworkPolicyManagerService;->updateDefaultMobilePolicyAL(ILandroid/net/NetworkPolicy;)Z
 HPLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkEnabledNL()V
 HPLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkRulesNL()V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkStats(IZ)V
@@ -20179,7 +20899,7 @@
 HSPLcom/android/server/net/NetworkStatsService$2;-><init>(Lcom/android/server/net/NetworkStatsService;)V
 HPLcom/android/server/net/NetworkStatsService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/net/NetworkStatsService$3;-><init>(Lcom/android/server/net/NetworkStatsService;)V
-PLcom/android/server/net/NetworkStatsService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/net/NetworkStatsService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/net/NetworkStatsService$4;-><init>(Lcom/android/server/net/NetworkStatsService;)V
 PLcom/android/server/net/NetworkStatsService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/net/NetworkStatsService$5;-><init>(Lcom/android/server/net/NetworkStatsService;)V
@@ -20278,7 +20998,7 @@
 HPLcom/android/server/net/NetworkStatsService;->isRateLimitedForPoll(I)Z
 HPLcom/android/server/net/NetworkStatsService;->lambda$getNetworkStatsFromProviders$2(Landroid/net/NetworkStats;ILcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
 HPLcom/android/server/net/NetworkStatsService;->lambda$performPollLocked$1(Lcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
-PLcom/android/server/net/NetworkStatsService;->lambda$registerGlobalAlert$0$NetworkStatsService(Lcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
+HPLcom/android/server/net/NetworkStatsService;->lambda$registerGlobalAlert$0$NetworkStatsService(Lcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
 HSPLcom/android/server/net/NetworkStatsService;->maybeUpgradeLegacyStatsLocked()V
 PLcom/android/server/net/NetworkStatsService;->openSession()Landroid/net/INetworkStatsSession;
 HPLcom/android/server/net/NetworkStatsService;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
@@ -20406,7 +21126,7 @@
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$15$U436K_bi4RF3tuE3ATVdL4kLpsQ;-><init>(I)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$15$U436K_bi4RF3tuE3ATVdL4kLpsQ;->apply(I)Z
 HSPLcom/android/server/notification/-$$Lambda$NotificationManagerService$15$wXaTmmz_lG6grUqU8upk0686eXA;-><init>(II)V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$15$wXaTmmz_lG6grUqU8upk0686eXA;->apply(I)Z
+HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$15$wXaTmmz_lG6grUqU8upk0686eXA;->apply(I)Z
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$16$zTgrLv-fwhUBKBfo6G4cZaGAhWs;-><init>(I)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$16$zTgrLv-fwhUBKBfo6G4cZaGAhWs;->apply(I)Z
 HSPLcom/android/server/notification/-$$Lambda$NotificationManagerService$1IFJYiXNBcQVsabIke0xY_TgCZI;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/os/VibrationEffect;)V
@@ -20414,8 +21134,6 @@
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;-><clinit>()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;-><init>()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;->apply(I)Z
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$-pTtydmbKR53sVGAi5B-_cGeLDo;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Ljava/lang/String;Ljava/lang/CharSequence;Z)V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$-pTtydmbKR53sVGAi5B-_cGeLDo;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$2uJN0X0VDgKmWRoJqYsux0bhlYo;-><init>(Ljava/util/function/BiConsumer;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$2uJN0X0VDgKmWRoJqYsux0bhlYo;->run()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$3ktx5hfF9rabi25qaQLZ-YvqPO4;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Ljava/lang/String;Ljava/lang/CharSequence;Z)V
@@ -20607,11 +21325,11 @@
 PLcom/android/server/notification/ManagedServices$1;->onBindingDied(Landroid/content/ComponentName;)V
 PLcom/android/server/notification/ManagedServices$1;->onNullBinding(Landroid/content/ComponentName;)V
 HSPLcom/android/server/notification/ManagedServices$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/notification/ManagedServices$1;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HPLcom/android/server/notification/ManagedServices$1;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HSPLcom/android/server/notification/ManagedServices$Config;-><init>()V
 HSPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;-><init>(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;I)V
 PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->binderDied()V
-PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLcom/android/server/notification/ManagedServices;)V
+HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLcom/android/server/notification/ManagedServices;)V
 HSPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->enabledAndUserMatches(I)Z
 PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->getOwner()Lcom/android/server/notification/ManagedServices;
 HSPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->hashCode()I
@@ -20656,10 +21374,10 @@
 HSPLcom/android/server/notification/ManagedServices;->getRemovableConnectedServices()Ljava/util/Set;
 HSPLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
 HSPLcom/android/server/notification/ManagedServices;->getServices()Ljava/util/List;
-PLcom/android/server/notification/ManagedServices;->hasMatchingServices(Ljava/lang/String;I)Z
+HPLcom/android/server/notification/ManagedServices;->hasMatchingServices(Ljava/lang/String;I)Z
 PLcom/android/server/notification/ManagedServices;->isComponentEnabledForCurrentProfiles(Landroid/content/ComponentName;)Z
 PLcom/android/server/notification/ManagedServices;->isComponentEnabledForPackage(Ljava/lang/String;)Z
-PLcom/android/server/notification/ManagedServices;->isDefaultComponentOrPackage(Ljava/lang/String;)Z
+HPLcom/android/server/notification/ManagedServices;->isDefaultComponentOrPackage(Ljava/lang/String;)Z
 HPLcom/android/server/notification/ManagedServices;->isPackageAllowed(Ljava/lang/String;I)Z
 HSPLcom/android/server/notification/ManagedServices;->isPackageOrComponentAllowed(Ljava/lang/String;I)Z
 HPLcom/android/server/notification/ManagedServices;->isSameUser(Landroid/os/IInterface;I)Z
@@ -20690,7 +21408,7 @@
 HPLcom/android/server/notification/ManagedServices;->removeServiceImpl(Landroid/os/IInterface;I)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
 PLcom/android/server/notification/ManagedServices;->removeServiceLocked(I)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
 HPLcom/android/server/notification/ManagedServices;->removeUninstalledItemsFromApprovedLists(ILjava/lang/String;)Z
-PLcom/android/server/notification/ManagedServices;->resetComponents(Ljava/lang/String;I)Landroid/util/ArrayMap;
+HPLcom/android/server/notification/ManagedServices;->resetComponents(Ljava/lang/String;I)Landroid/util/ArrayMap;
 HPLcom/android/server/notification/ManagedServices;->setComponentState(Landroid/content/ComponentName;Z)V
 HSPLcom/android/server/notification/ManagedServices;->setPackageOrComponentEnabled(Ljava/lang/String;IZZ)V
 HPLcom/android/server/notification/ManagedServices;->trimApprovedListsAccordingToInstalledServices(I)V
@@ -20775,7 +21493,7 @@
 HPLcom/android/server/notification/NotificationManagerService$10;->cancelToast(Ljava/lang/String;Landroid/app/ITransientNotification;)V
 HPLcom/android/server/notification/NotificationManagerService$10;->checkPackagePolicyAccess(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$10;->checkPolicyAccess(Ljava/lang/String;)Z
-PLcom/android/server/notification/NotificationManagerService$10;->clearData(Ljava/lang/String;IZ)V
+HPLcom/android/server/notification/NotificationManagerService$10;->clearData(Ljava/lang/String;IZ)V
 HPLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 HSPLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 PLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelsForPackage(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;)V
@@ -20861,13 +21579,13 @@
 PLcom/android/server/notification/NotificationManagerService$10;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z
 PLcom/android/server/notification/NotificationManagerService$10;->updateNotificationChannelForPackage(Ljava/lang/String;ILandroid/app/NotificationChannel;)V
 HSPLcom/android/server/notification/NotificationManagerService$11$1;-><init>(Lcom/android/server/notification/NotificationManagerService$11;Ljava/lang/String;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;[Landroid/service/notification/Condition;)V
-HPLcom/android/server/notification/NotificationManagerService$11$1;->run()V
+HSPLcom/android/server/notification/NotificationManagerService$11$1;->run()V
 HSPLcom/android/server/notification/NotificationManagerService$11;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService$11;->addAutomaticZenRule(Landroid/app/AutomaticZenRule;)Ljava/lang/String;
 PLcom/android/server/notification/NotificationManagerService$11;->applyAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->applyAdjustmentsFromAssistant(Landroid/service/notification/INotificationListener;Ljava/util/List;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
-PLcom/android/server/notification/NotificationManagerService$11;->areBubblesAllowed(Ljava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService$11;->areBubblesAllowed(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$11;->areBubblesAllowedForPackage(Ljava/lang/String;I)Z
 HPLcom/android/server/notification/NotificationManagerService$11;->areNotificationsEnabled(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$11;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
@@ -20877,7 +21595,7 @@
 PLcom/android/server/notification/NotificationManagerService$11;->cancelNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService$11;->cancelNotificationFromListenerLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;IILjava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/notification/NotificationManagerService$11;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
-PLcom/android/server/notification/NotificationManagerService$11;->cancelNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService$11;->cancelNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->cancelToast(Ljava/lang/String;Landroid/os/IBinder;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->checkPackagePolicyAccess(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$11;->checkPolicyAccess(Ljava/lang/String;)Z
@@ -20897,11 +21615,13 @@
 HPLcom/android/server/notification/NotificationManagerService$11;->enforceSystemOrSystemUIOrSamePackage(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+PLcom/android/server/notification/NotificationManagerService$11;->enqueueTextOrCustomToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;IIZ)V
 PLcom/android/server/notification/NotificationManagerService$11;->enqueueTextToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;II)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueTextToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;IILandroid/app/ITransientNotificationCallback;)V
 PLcom/android/server/notification/NotificationManagerService$11;->enqueueToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;II)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;IIZ)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;IILandroid/app/ITransientNotificationCallback;)V
+HPLcom/android/server/notification/NotificationManagerService$11;->enqueueToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;IILandroid/app/ITransientNotificationCallback;Z)V
 HPLcom/android/server/notification/NotificationManagerService$11;->finishToken(Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/notification/NotificationManagerService$11;->getActiveNotifications(Ljava/lang/String;)[Landroid/service/notification/StatusBarNotification;
 HPLcom/android/server/notification/NotificationManagerService$11;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
@@ -20916,14 +21636,16 @@
 PLcom/android/server/notification/NotificationManagerService$11;->getBlockedChannelCount(Ljava/lang/String;I)I
 HSPLcom/android/server/notification/NotificationManagerService$11;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
 HSPLcom/android/server/notification/NotificationManagerService$11;->getConversationNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Landroid/app/NotificationChannel;
+PLcom/android/server/notification/NotificationManagerService$11;->getConversationsForPackage(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/notification/NotificationManagerService$11;->getDeletedChannelCount(Ljava/lang/String;I)I
-HPLcom/android/server/notification/NotificationManagerService$11;->getEffectsSuppressor()Landroid/content/ComponentName;
+HSPLcom/android/server/notification/NotificationManagerService$11;->getEffectsSuppressor()Landroid/content/ComponentName;
 PLcom/android/server/notification/NotificationManagerService$11;->getEnabledNotificationListenerPackages()Ljava/util/List;
-PLcom/android/server/notification/NotificationManagerService$11;->getHintsFromListener(Landroid/service/notification/INotificationListener;)I
+HPLcom/android/server/notification/NotificationManagerService$11;->getHintsFromListener(Landroid/service/notification/INotificationListener;)I
 PLcom/android/server/notification/NotificationManagerService$11;->getHistoricalNotifications(Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification;
 PLcom/android/server/notification/NotificationManagerService$11;->getInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;)I
 PLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;)Landroid/app/NotificationChannel;
 HSPLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+PLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannelForPackage(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Z)Landroid/app/NotificationChannel;
 PLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannelForPackage(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannel;
 HPLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
 PLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannelGroupForPackage(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/NotificationChannelGroup;
@@ -20937,9 +21659,9 @@
 HSPLcom/android/server/notification/NotificationManagerService$11;->getZenMode()I
 HSPLcom/android/server/notification/NotificationManagerService$11;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
 PLcom/android/server/notification/NotificationManagerService$11;->getZenRules()Ljava/util/List;
-PLcom/android/server/notification/NotificationManagerService$11;->isNotificationListenerAccessGranted(Landroid/content/ComponentName;)Z
+HPLcom/android/server/notification/NotificationManagerService$11;->isNotificationListenerAccessGranted(Landroid/content/ComponentName;)Z
 HPLcom/android/server/notification/NotificationManagerService$11;->isNotificationListenerAccessGrantedForUser(Landroid/content/ComponentName;I)Z
-PLcom/android/server/notification/NotificationManagerService$11;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService$11;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
 PLcom/android/server/notification/NotificationManagerService$11;->isNotificationPolicyAccessGrantedForPackage(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$11;->isPackagePaused(Ljava/lang/String;)Z
 PLcom/android/server/notification/NotificationManagerService$11;->lambda$enqueueToast$0$NotificationManagerService$11(Ljava/lang/String;)V
@@ -20947,12 +21669,12 @@
 PLcom/android/server/notification/NotificationManagerService$11;->matchesCallFilter(Landroid/os/Bundle;)Z
 HSPLcom/android/server/notification/NotificationManagerService$11;->notifyConditions(Ljava/lang/String;Landroid/service/notification/IConditionProvider;[Landroid/service/notification/Condition;)V
 PLcom/android/server/notification/NotificationManagerService$11;->onlyHasDefaultChannel(Ljava/lang/String;I)Z
-PLcom/android/server/notification/NotificationManagerService$11;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
+HSPLcom/android/server/notification/NotificationManagerService$11;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
 PLcom/android/server/notification/NotificationManagerService$11;->removeAutomaticZenRule(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$11;->removeAutomaticZenRules(Ljava/lang/String;)Z
 PLcom/android/server/notification/NotificationManagerService$11;->removeForegroundServiceFlagFromNotification(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService$11;->removeForegroundServiceFlagLocked(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationManagerService$11;->requestBindListener(Landroid/content/ComponentName;)V
+HPLcom/android/server/notification/NotificationManagerService$11;->requestBindListener(Landroid/content/ComponentName;)V
 PLcom/android/server/notification/NotificationManagerService$11;->requestBindProvider(Landroid/content/ComponentName;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->requestHintsFromListener(Landroid/service/notification/INotificationListener;I)V
 PLcom/android/server/notification/NotificationManagerService$11;->requestUnbindListener(Landroid/service/notification/INotificationListener;)V
@@ -20978,9 +21700,9 @@
 HPLcom/android/server/notification/NotificationManagerService$12;->cancelNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;II)V
 HPLcom/android/server/notification/NotificationManagerService$12;->enqueueNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V
 HPLcom/android/server/notification/NotificationManagerService$12;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;)Landroid/app/NotificationChannel;
-PLcom/android/server/notification/NotificationManagerService$12;->lambda$removeForegroundServiceFlagFromNotification$0$NotificationManagerService$12(Ljava/lang/String;II)V
+HPLcom/android/server/notification/NotificationManagerService$12;->lambda$removeForegroundServiceFlagFromNotification$0$NotificationManagerService$12(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService$12;->removeForegroundServiceFlagFromNotification(Ljava/lang/String;II)V
-PLcom/android/server/notification/NotificationManagerService$12;->removeForegroundServiceFlagLocked(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationManagerService$12;->removeForegroundServiceFlagLocked(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService$12;->run()V
 PLcom/android/server/notification/NotificationManagerService$13;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService$13;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)V
@@ -21004,7 +21726,7 @@
 HPLcom/android/server/notification/NotificationManagerService$1;->clearInlineReplyUriPermissions(Ljava/lang/String;I)V
 PLcom/android/server/notification/NotificationManagerService$1;->onBubbleNotificationSuppressionChanged(Ljava/lang/String;Z)V
 PLcom/android/server/notification/NotificationManagerService$1;->onClearAll(III)V
-PLcom/android/server/notification/NotificationManagerService$1;->onNotificationActionClick(IILjava/lang/String;ILandroid/app/Notification$Action;Lcom/android/internal/statusbar/NotificationVisibility;Z)V
+HPLcom/android/server/notification/NotificationManagerService$1;->onNotificationActionClick(IILjava/lang/String;ILandroid/app/Notification$Action;Lcom/android/internal/statusbar/NotificationVisibility;Z)V
 PLcom/android/server/notification/NotificationManagerService$1;->onNotificationBubbleChanged(Ljava/lang/String;Z)V
 HPLcom/android/server/notification/NotificationManagerService$1;->onNotificationClear(IILjava/lang/String;Ljava/lang/String;IILjava/lang/String;IILcom/android/internal/statusbar/NotificationVisibility;)V
 HPLcom/android/server/notification/NotificationManagerService$1;->onNotificationClick(IILjava/lang/String;Lcom/android/internal/statusbar/NotificationVisibility;)V
@@ -21049,6 +21771,7 @@
 PLcom/android/server/notification/NotificationManagerService$Archive;->descendingIterator()Ljava/util/Iterator;
 PLcom/android/server/notification/NotificationManagerService$Archive;->getArray(I)[Landroid/service/notification/StatusBarNotification;
 HPLcom/android/server/notification/NotificationManagerService$Archive;->record(Landroid/service/notification/StatusBarNotification;)V
+HPLcom/android/server/notification/NotificationManagerService$Archive;->record(Landroid/service/notification/StatusBarNotification;I)V
 PLcom/android/server/notification/NotificationManagerService$Archive;->toString()Ljava/lang/String;
 HSPLcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;IILjava/lang/String;Ljava/lang/String;IIIZIIIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
 PLcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;->lambda$run$0(I)Z
@@ -21064,6 +21787,7 @@
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$7800(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$7900(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$8100(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$8200(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->disallowAdjustmentType(Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
@@ -21082,7 +21806,6 @@
 HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantLocked$12(Ljava/util/function/BiConsumer;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantLocked$9(Ljava/util/function/BiConsumer;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantNotificationDirectReplyLocked$8$NotificationManagerService$NotificationAssistants(Ljava/lang/String;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantSuggestedReplySent$6$NotificationManagerService$NotificationAssistants(Ljava/lang/String;Ljava/lang/CharSequence;ZLandroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantSuggestedReplySent$9$NotificationManagerService$NotificationAssistants(Ljava/lang/String;Ljava/lang/CharSequence;ZLandroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantVisibilityChangedLocked$6$NotificationManagerService$NotificationAssistants(Ljava/lang/String;ZLandroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onNotificationEnqueuedLocked$3$NotificationManagerService$NotificationAssistants(ZLcom/android/server/notification/NotificationRecord;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
@@ -21118,7 +21841,7 @@
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$3;->run()V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$4;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$4;->run()V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners$5;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$5;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$5;->run()V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners$6;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$6;->run()V
@@ -21134,10 +21857,14 @@
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10200(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10300(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10300(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10300(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10400(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10400(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10400(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10500(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10500(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10600(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10700(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9700(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9800(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9800(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
@@ -21159,7 +21886,7 @@
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyInterruptionFilterChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyListenerHintsChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyListenerHintsChangedLocked(I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
 HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelGroupChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelGroupChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
@@ -21215,8 +21942,9 @@
 HSPLcom/android/server/notification/NotificationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/notification/NotificationRecordLogger;Lcom/android/internal/logging/InstanceIdSequence;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$100(Lcom/android/server/notification/NotificationManagerService;)Landroid/util/AtomicFile;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1000(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$WorkerHandler;
-HPLcom/android/server/notification/NotificationManagerService;->access$10000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+HSPLcom/android/server/notification/NotificationManagerService;->access$10000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 HPLcom/android/server/notification/NotificationManagerService;->access$10100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+HPLcom/android/server/notification/NotificationManagerService;->access$10200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 HPLcom/android/server/notification/NotificationManagerService;->access$1100(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/IPackageManager;
 HPLcom/android/server/notification/NotificationManagerService;->access$1200(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/IPackageManager;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
@@ -21267,7 +21995,7 @@
 PLcom/android/server/notification/NotificationManagerService;->access$3200(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3200(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3300(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
-PLcom/android/server/notification/NotificationManagerService;->access$3300(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$3300(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/compat/IPlatformCompat;
 PLcom/android/server/notification/NotificationManagerService;->access$3500(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Handler;
 HPLcom/android/server/notification/NotificationManagerService;->access$3600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/wm/WindowManagerInternal;
@@ -21285,15 +22013,19 @@
 PLcom/android/server/notification/NotificationManagerService;->access$4200(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannel;Z)V
 HPLcom/android/server/notification/NotificationManagerService;->access$4200(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$4300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
+PLcom/android/server/notification/NotificationManagerService;->access$4300(Lcom/android/server/notification/NotificationManagerService;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->access$4400(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
 HPLcom/android/server/notification/NotificationManagerService;->access$4400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$4400(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$4500(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$4500(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannel;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$4600(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/LauncherApps;
 HSPLcom/android/server/notification/NotificationManagerService;->access$4600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
+HPLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$4800(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/AppOpsManager;
+PLcom/android/server/notification/NotificationManagerService;->access$4800(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$4800(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$4800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$4900(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$Archive;
@@ -21303,26 +22035,33 @@
 PLcom/android/server/notification/NotificationManagerService;->access$5000(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$5000(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5300(Lcom/android/server/notification/NotificationManagerService;)I
 PLcom/android/server/notification/NotificationManagerService;->access$5300(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$5300(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5400(Lcom/android/server/notification/NotificationManagerService;)I
+PLcom/android/server/notification/NotificationManagerService;->access$5400(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$5400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;)I
 PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/admin/DevicePolicyManagerInternal;
+PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5600(Lcom/android/server/notification/NotificationManagerService;)I
 PLcom/android/server/notification/NotificationManagerService;->access$5600(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/admin/DevicePolicyManagerInternal;
+PLcom/android/server/notification/NotificationManagerService;->access$5600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5600(Lcom/android/server/notification/NotificationManagerService;Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/NotificationManagerService;->access$5700(Lcom/android/server/notification/NotificationManagerService;)I
 PLcom/android/server/notification/NotificationManagerService;->access$5700(Lcom/android/server/notification/NotificationManagerService;Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService;->access$5800(Lcom/android/server/notification/NotificationManagerService;)I
 PLcom/android/server/notification/NotificationManagerService;->access$5800(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/admin/DevicePolicyManagerInternal;
 PLcom/android/server/notification/NotificationManagerService;->access$5800(Lcom/android/server/notification/NotificationManagerService;Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService;->access$5900(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/admin/DevicePolicyManagerInternal;
 PLcom/android/server/notification/NotificationManagerService;->access$5900(Lcom/android/server/notification/NotificationManagerService;Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/NotificationManagerService;->access$5900(Lcom/android/server/notification/NotificationManagerService;Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;
@@ -21333,57 +22072,76 @@
 PLcom/android/server/notification/NotificationManagerService;->access$6100(Lcom/android/server/notification/NotificationManagerService;Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$6300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/util/function/TriPredicate;
-PLcom/android/server/notification/NotificationManagerService;->access$6300(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
+HSPLcom/android/server/notification/NotificationManagerService;->access$6300(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6300(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService;->access$6300(Lcom/android/server/notification/NotificationManagerService;Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$6400(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/util/function/TriPredicate;
 HPLcom/android/server/notification/NotificationManagerService;->access$6400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
+PLcom/android/server/notification/NotificationManagerService;->access$6400(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6500(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
+PLcom/android/server/notification/NotificationManagerService;->access$6500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6500(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$6600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/util/function/TriPredicate;
+HSPLcom/android/server/notification/NotificationManagerService;->access$6600(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6600(Lcom/android/server/notification/NotificationManagerService;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$6600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
+HSPLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/util/function/TriPredicate;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
 PLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Z
+HSPLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
 HPLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
-PLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
 PLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
-PLcom/android/server/notification/NotificationManagerService;->access$700(Lcom/android/server/notification/NotificationManagerService;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$700(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
+PLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 HPLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
+PLcom/android/server/notification/NotificationManagerService;->access$7100(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
 PLcom/android/server/notification/NotificationManagerService;->access$7100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7100(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIZLjava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
+PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$7300(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
+HPLcom/android/server/notification/NotificationManagerService;->access$7300(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
 PLcom/android/server/notification/NotificationManagerService;->access$7400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->access$7400(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
+PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIZLjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIZLjava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 PLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
+PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$7900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$7900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$7900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/logging/MetricsLogger;
 HSPLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
+PLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 HPLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
@@ -21394,6 +22152,7 @@
 PLcom/android/server/notification/NotificationManagerService;->access$8302(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
+PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/logging/InstanceIdSequence;
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 HPLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
@@ -21402,33 +22161,43 @@
 PLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 HPLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
-PLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
+HPLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
+HPLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
-PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
+PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
+HPLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->access$8702(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
+PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->access$8802(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
+PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->access$8902(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$900(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
+PLcom/android/server/notification/NotificationManagerService;->access$900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
+PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;)F
+PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/toast/ToastRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;I)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/toast/ToastRecord;)V
@@ -21439,17 +22208,22 @@
 PLcom/android/server/notification/NotificationManagerService;->access$9400(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9400(Lcom/android/server/notification/NotificationManagerService;I)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9400(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
+PLcom/android/server/notification/NotificationManagerService;->access$9400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/toast/ToastRecord;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9400(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$9500(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9500(Lcom/android/server/notification/NotificationManagerService;I)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9500(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$9600(Lcom/android/server/notification/NotificationManagerService;I)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9600(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$9600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+PLcom/android/server/notification/NotificationManagerService;->access$9700(Lcom/android/server/notification/NotificationManagerService;I)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9700(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 HSPLcom/android/server/notification/NotificationManagerService;->access$9700(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$9800(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 HPLcom/android/server/notification/NotificationManagerService;->access$9800(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+HPLcom/android/server/notification/NotificationManagerService;->access$9900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
 HPLcom/android/server/notification/NotificationManagerService;->addAutoGroupAdjustment(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->addAutogroupKeyLocked(Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->addDisabledHint(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
@@ -21493,6 +22267,7 @@
 HPLcom/android/server/notification/NotificationManagerService;->clearLightsLocked()V
 HPLcom/android/server/notification/NotificationManagerService;->clearSoundLocked()V
 HPLcom/android/server/notification/NotificationManagerService;->clearVibrateLocked()V
+PLcom/android/server/notification/NotificationManagerService;->correctCategory(III)I
 HPLcom/android/server/notification/NotificationManagerService;->createAutoGroupSummary(ILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->createNotificationChannelGroup(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
 HPLcom/android/server/notification/NotificationManagerService;->destroyPermissionOwner(Landroid/os/IBinder;ILjava/lang/String;)V
@@ -21504,6 +22279,9 @@
 PLcom/android/server/notification/NotificationManagerService;->dumpProto(Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HSPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V
 PLcom/android/server/notification/NotificationManagerService;->exitIdle()V
+PLcom/android/server/notification/NotificationManagerService;->findCurrentAndSnoozedGroupNotificationsLocked(Ljava/lang/String;Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/notification/NotificationManagerService;->findGroupNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/notification/NotificationManagerService;->findGroupNotificationsLocked(Ljava/lang/String;Ljava/lang/String;I)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->findInCurrentAndSnoozedNotificationByKeyLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 PLcom/android/server/notification/NotificationManagerService;->findNotificationByKeyLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 HPLcom/android/server/notification/NotificationManagerService;->findNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
@@ -21512,7 +22290,7 @@
 HPLcom/android/server/notification/NotificationManagerService;->findNotificationRecordIndexLocked(Lcom/android/server/notification/NotificationRecord;)I
 HPLcom/android/server/notification/NotificationManagerService;->findNotificationsByListLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->finishTokenLocked(Landroid/os/IBinder;I)V
-PLcom/android/server/notification/NotificationManagerService;->finishWindowTokenLocked(Landroid/os/IBinder;I)V
+HPLcom/android/server/notification/NotificationManagerService;->finishWindowTokenLocked(Landroid/os/IBinder;I)V
 HSPLcom/android/server/notification/NotificationManagerService;->fixNotification(Landroid/app/Notification;Ljava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/notification/NotificationManagerService;->flagNotificationForBubbles(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->getCompanionManager()Landroid/companion/ICompanionDeviceManager;
@@ -21526,10 +22304,10 @@
 HPLcom/android/server/notification/NotificationManagerService;->getToastRecord(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;ILandroid/os/Binder;ILandroid/app/ITransientNotificationCallback;)Lcom/android/server/notification/toast/ToastRecord;
 HPLcom/android/server/notification/NotificationManagerService;->grantUriPermission(Landroid/os/IBinder;Landroid/net/Uri;ILjava/lang/String;I)V
 PLcom/android/server/notification/NotificationManagerService;->handleDurationReached(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
-PLcom/android/server/notification/NotificationManagerService;->handleDurationReached(Lcom/android/server/notification/toast/ToastRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->handleDurationReached(Lcom/android/server/notification/toast/ToastRecord;)V
 HSPLcom/android/server/notification/NotificationManagerService;->handleGroupedNotificationLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 PLcom/android/server/notification/NotificationManagerService;->handleKillTokenTimeout(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
-PLcom/android/server/notification/NotificationManagerService;->handleKillTokenTimeout(Lcom/android/server/notification/toast/ToastRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->handleKillTokenTimeout(Lcom/android/server/notification/toast/ToastRecord;)V
 HPLcom/android/server/notification/NotificationManagerService;->handleListenerHintsChanged(I)V
 PLcom/android/server/notification/NotificationManagerService;->handleListenerInterruptionFilterChanged(I)V
 HPLcom/android/server/notification/NotificationManagerService;->handleOnPackageChanged(ZI[Ljava/lang/String;[I)V
@@ -21539,6 +22317,7 @@
 HPLcom/android/server/notification/NotificationManagerService;->handleSendRankingUpdate()V
 HSPLcom/android/server/notification/NotificationManagerService;->hasAutoGroupSummaryLocked(Landroid/service/notification/StatusBarNotification;)Z
 HPLcom/android/server/notification/NotificationManagerService;->hasCompanionDevice(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
+PLcom/android/server/notification/NotificationManagerService;->hasValidRemoteInput(Landroid/app/Notification;)Z
 PLcom/android/server/notification/NotificationManagerService;->hideNotificationsForPackages([Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService;->indexOfNotificationLocked(Ljava/lang/String;)I
 HPLcom/android/server/notification/NotificationManagerService;->indexOfToastLocked(Ljava/lang/String;Landroid/app/ITransientNotification;)I
@@ -21548,6 +22327,7 @@
 HSPLcom/android/server/notification/NotificationManagerService;->isBlocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationUsageStats;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->isCallerAndroid(Ljava/lang/String;I)Z
 HPLcom/android/server/notification/NotificationManagerService;->isCallerInstantApp(II)Z
+PLcom/android/server/notification/NotificationManagerService;->isCallerIsSystemOrSystemUi()Z
 HSPLcom/android/server/notification/NotificationManagerService;->isCallerSameApp(Ljava/lang/String;II)Z
 HSPLcom/android/server/notification/NotificationManagerService;->isCallerSystemOrPhone()Z
 HSPLcom/android/server/notification/NotificationManagerService;->isCallingUidSystem()Z
@@ -21571,6 +22351,7 @@
 PLcom/android/server/notification/NotificationManagerService;->lambda$registerDeviceConfigChange$0$NotificationManagerService(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/notification/NotificationManagerService;->listenForCallState()V
 HSPLcom/android/server/notification/NotificationManagerService;->loadPolicyFile()V
+PLcom/android/server/notification/NotificationManagerService;->logBubbleError(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->logSmartSuggestionsVisible(Lcom/android/server/notification/NotificationRecord;I)V
 HSPLcom/android/server/notification/NotificationManagerService;->makeRankingUpdateLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 PLcom/android/server/notification/NotificationManagerService;->maybeNotifyChannelOwner(Ljava/lang/String;ILandroid/app/NotificationChannel;Landroid/app/NotificationChannel;)V
@@ -21593,12 +22374,12 @@
 HPLcom/android/server/notification/NotificationManagerService;->removeFromNotificationListsLocked(Lcom/android/server/notification/NotificationRecord;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->removeRemoteView(Ljava/lang/String;Ljava/lang/String;ILandroid/widget/RemoteViews;)Z
 HPLcom/android/server/notification/NotificationManagerService;->reportSeen(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationManagerService;->reportUserInteraction(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->reportUserInteraction(Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationManagerService;->resolveNotificationUid(Ljava/lang/String;Ljava/lang/String;II)I
 HPLcom/android/server/notification/NotificationManagerService;->revokeUriPermission(Landroid/os/IBinder;Landroid/net/Uri;I)V
 HSPLcom/android/server/notification/NotificationManagerService;->safeBoolean(Ljava/lang/String;Z)Z
 HPLcom/android/server/notification/NotificationManagerService;->scheduleDurationReachedLocked(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
-PLcom/android/server/notification/NotificationManagerService;->scheduleDurationReachedLocked(Lcom/android/server/notification/toast/ToastRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->scheduleDurationReachedLocked(Lcom/android/server/notification/toast/ToastRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->scheduleInterruptionFilterChanged(I)V
 HPLcom/android/server/notification/NotificationManagerService;->scheduleKillTokenTimeout(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->scheduleKillTokenTimeout(Lcom/android/server/notification/toast/ToastRecord;)V
@@ -21729,7 +22510,7 @@
 HSPLcom/android/server/notification/NotificationRecord;->setIsAppImportanceLocked(Z)V
 PLcom/android/server/notification/NotificationRecord;->setNumSmartActionsAdded(I)V
 PLcom/android/server/notification/NotificationRecord;->setNumSmartRepliesAdded(I)V
-PLcom/android/server/notification/NotificationRecord;->setOverrideGroupKey(Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationRecord;->setOverrideGroupKey(Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationRecord;->setPackagePriority(I)V
 HSPLcom/android/server/notification/NotificationRecord;->setPackageVisibilityOverride(I)V
 HSPLcom/android/server/notification/NotificationRecord;->setRecentlyIntrusive(Z)V
@@ -21747,6 +22528,11 @@
 HPLcom/android/server/notification/NotificationRecord;->toString()Ljava/lang/String;
 HSPLcom/android/server/notification/NotificationRecord;->updateNotificationChannel(Landroid/app/NotificationChannel;)V
 HSPLcom/android/server/notification/NotificationRecord;->visitGrantableUri(Landroid/net/Uri;Z)V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;-><clinit>()V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;-><init>(Ljava/lang/String;II)V
+HPLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->fromCancelReason(II)Lcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;
+HPLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->getId()I
+HPLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->values()[Lcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;-><init>(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getAssistantHash()I
 PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getInstanceId()I
@@ -21756,23 +22542,28 @@
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getStyle(Landroid/os/Bundle;)I
 PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getUiEvent()Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->shouldLog(I)Z
+PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;-><clinit>()V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;-><init>(Ljava/lang/String;II)V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;->fromRecordPair(Lcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;)Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;
+PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;->getId()I
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;-><clinit>()V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;-><init>(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;->getId()I
 HSPLcom/android/server/notification/NotificationRecordLoggerImpl;-><init>()V
+PLcom/android/server/notification/NotificationRecordLoggerImpl;->logNotificationCancelled(Lcom/android/server/notification/NotificationRecord;II)V
 HPLcom/android/server/notification/NotificationRecordLoggerImpl;->logNotificationReported(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 HSPLcom/android/server/notification/NotificationUsageStats$1;-><init>(Lcom/android/server/notification/NotificationUsageStats;Landroid/os/Looper;)V
 PLcom/android/server/notification/NotificationUsageStats$1;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->countApiUse(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->dumpJson()Lorg/json/JSONObject;
+HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->dumpJson()Lorg/json/JSONObject;
 PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->emit()V
 PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->getEnqueueRate()F
 HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->getEnqueueRate(J)F
 PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->getPrevious()Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
 HSPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->isAlertRateLimited()Z
-PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybeCount(Ljava/lang/String;I)V
+HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybeCount(Ljava/lang/String;I)V
 PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybePut(Lorg/json/JSONObject;Ljava/lang/String;F)V
 HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybePut(Lorg/json/JSONObject;Ljava/lang/String;I)V
 HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->toStringWithIndent(Ljava/lang/String;)Ljava/lang/String;
@@ -21781,7 +22572,7 @@
 HSPLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->increment(I)V
 PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->maybeCount(Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
-PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->maybePut(Lorg/json/JSONObject;Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
+HPLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->maybePut(Lorg/json/JSONObject;Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
 HPLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->toString()Ljava/lang/String;
 PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->update(Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
 HSPLcom/android/server/notification/NotificationUsageStats$SQLiteLog$1;-><init>(Lcom/android/server/notification/NotificationUsageStats$SQLiteLog;Landroid/os/Looper;)V
@@ -21796,8 +22587,8 @@
 PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->dumpJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONObject;
 PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->getMidnightMs()J
 HPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->jsonPostFrequencies(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
-PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->logClicked(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->logDismissed(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->logClicked(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->logDismissed(Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->logPosted(Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->logRemoved(Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->printPostFrequencies(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
@@ -21807,7 +22598,7 @@
 HPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->putPosttimeVisibility(Lcom/android/server/notification/NotificationRecord;Landroid/content/ContentValues;)V
 HSPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->writeEvent(JILcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;-><init>()V
-PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->finish()V
+HPLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->finish()V
 PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentAirtimeExpandedMs()J
 PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentAirtimeMs()J
 HPLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentPosttimeMs()J
@@ -21823,7 +22614,7 @@
 HSPLcom/android/server/notification/NotificationUsageStats;-><clinit>()V
 HSPLcom/android/server/notification/NotificationUsageStats;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/notification/NotificationUsageStats;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
-PLcom/android/server/notification/NotificationUsageStats;->dumpJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONObject;
+HPLcom/android/server/notification/NotificationUsageStats;->dumpJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONObject;
 HPLcom/android/server/notification/NotificationUsageStats;->emit()V
 HSPLcom/android/server/notification/NotificationUsageStats;->getAggregatedStatsLocked(Lcom/android/server/notification/NotificationRecord;)[Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
 HSPLcom/android/server/notification/NotificationUsageStats;->getAggregatedStatsLocked(Ljava/lang/String;)[Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
@@ -21831,8 +22622,8 @@
 HSPLcom/android/server/notification/NotificationUsageStats;->getOrCreateAggregatedStatsLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
 HSPLcom/android/server/notification/NotificationUsageStats;->isAlertRateLimited(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationUsageStats;->registerBlocked(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats;->registerClickedByUser(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats;->registerDismissedByUser(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats;->registerClickedByUser(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats;->registerDismissedByUser(Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationUsageStats;->registerEnqueuedByApp(Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationUsageStats;->registerImageRemoved(Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationUsageStats;->registerOverCountQuota(Ljava/lang/String;)V
@@ -21840,7 +22631,7 @@
 HSPLcom/android/server/notification/NotificationUsageStats;->registerPeopleAffinity(Lcom/android/server/notification/NotificationRecord;ZZZ)V
 HSPLcom/android/server/notification/NotificationUsageStats;->registerPostedByApp(Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationUsageStats;->registerRemovedByApp(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats;->registerSuspendedByAdmin(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats;->registerSuspendedByAdmin(Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationUsageStats;->registerUpdatedByApp(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationUsageStats;->releaseAggregatedStatsLocked([Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;)V
 HSPLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>()V
@@ -21862,7 +22653,7 @@
 HPLcom/android/server/notification/PreferencesHelper;->deleteNotificationChannelGroup(Ljava/lang/String;ILjava/lang/String;)Ljava/util/List;
 PLcom/android/server/notification/PreferencesHelper;->dump(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/PreferencesHelper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
-PLcom/android/server/notification/PreferencesHelper;->dumpBansJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
+HPLcom/android/server/notification/PreferencesHelper;->dumpBansJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
 HPLcom/android/server/notification/PreferencesHelper;->dumpChannelsJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
 HPLcom/android/server/notification/PreferencesHelper;->dumpJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONObject;
 HPLcom/android/server/notification/PreferencesHelper;->dumpPackagePreferencesLocked(Landroid/util/proto/ProtoOutputStream;JLcom/android/server/notification/NotificationManagerService$DumpFilter;Landroid/util/ArrayMap;)V
@@ -21874,6 +22665,7 @@
 PLcom/android/server/notification/PreferencesHelper;->getChannelGroupLog(Ljava/lang/String;Ljava/lang/String;)Landroid/metrics/LogMaker;
 HSPLcom/android/server/notification/PreferencesHelper;->getChannelLog(Landroid/app/NotificationChannel;Ljava/lang/String;)Landroid/metrics/LogMaker;
 HSPLcom/android/server/notification/PreferencesHelper;->getConversationNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZZ)Landroid/app/NotificationChannel;
+PLcom/android/server/notification/PreferencesHelper;->getConversations(Ljava/lang/String;I)Ljava/util/ArrayList;
 HPLcom/android/server/notification/PreferencesHelper;->getDeletedChannelCount(Ljava/lang/String;I)I
 HSPLcom/android/server/notification/PreferencesHelper;->getImportance(Ljava/lang/String;I)I
 HSPLcom/android/server/notification/PreferencesHelper;->getIsAppImportanceLocked(Ljava/lang/String;I)Z
@@ -21957,7 +22749,6 @@
 HSPLcom/android/server/notification/ScheduleConditionProvider;->onBootComplete()V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->onConnected()V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->onSubscribe(Landroid/net/Uri;)V
-PLcom/android/server/notification/ScheduleConditionProvider;->onUnsubscribe(Landroid/net/Uri;)V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->readSnoozed()V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->removeSnoozed(Landroid/net/Uri;)V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->saveSnoozedLocked()V
@@ -21972,9 +22763,10 @@
 HSPLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;)Z
 HSPLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/notification/SnoozeHelper;->cancel(IZ)Z
-PLcom/android/server/notification/SnoozeHelper;->clearData(ILjava/lang/String;)V
+HPLcom/android/server/notification/SnoozeHelper;->clearData(ILjava/lang/String;)V
 PLcom/android/server/notification/SnoozeHelper;->createPendingIntent(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/PendingIntent;
 PLcom/android/server/notification/SnoozeHelper;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/SnoozeHelper;->getNotifications(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)Ljava/util/ArrayList;
 HSPLcom/android/server/notification/SnoozeHelper;->getSnoozeContextForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/notification/SnoozeHelper;->getSnoozeTimeForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Long;
 PLcom/android/server/notification/SnoozeHelper;->getSnoozed()Ljava/util/List;
@@ -22101,6 +22893,7 @@
 HPLcom/android/server/notification/ZenModeFiltering;->extras(Lcom/android/server/notification/NotificationRecord;)Landroid/os/Bundle;
 HPLcom/android/server/notification/ZenModeFiltering;->isAlarm(Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/ZenModeFiltering;->isCall(Lcom/android/server/notification/NotificationRecord;)Z
+HPLcom/android/server/notification/ZenModeFiltering;->isConversation(Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/ZenModeFiltering;->isCritical(Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/ZenModeFiltering;->isDefaultPhoneApp(Ljava/lang/String;)Z
 HPLcom/android/server/notification/ZenModeFiltering;->isEvent(Lcom/android/server/notification/NotificationRecord;)Z
@@ -22190,7 +22983,7 @@
 PLcom/android/server/notification/ZenModeHelper;->getZenModeSetting()I
 HPLcom/android/server/notification/ZenModeHelper;->getZenRules()Ljava/util/List;
 HSPLcom/android/server/notification/ZenModeHelper;->initZenMode()V
-PLcom/android/server/notification/ZenModeHelper;->isCall(Lcom/android/server/notification/NotificationRecord;)Z
+HPLcom/android/server/notification/ZenModeHelper;->isCall(Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/ZenModeHelper;->isSystemRule(Landroid/app/AutomaticZenRule;)Z
 HSPLcom/android/server/notification/ZenModeHelper;->loadConfigForUser(ILjava/lang/String;)V
 PLcom/android/server/notification/ZenModeHelper;->matchesCallFilter(Landroid/os/UserHandle;Landroid/os/Bundle;Lcom/android/server/notification/ValidateNotificationPeople;IF)Z
@@ -22233,8 +23026,8 @@
 PLcom/android/server/notification/toast/CustomToastRecord;->hide()V
 PLcom/android/server/notification/toast/CustomToastRecord;->show()Z
 HPLcom/android/server/notification/toast/TextToastRecord;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/statusbar/StatusBarManagerInternal;ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;ILandroid/os/Binder;ILandroid/app/ITransientNotificationCallback;)V
-PLcom/android/server/notification/toast/TextToastRecord;->hide()V
-PLcom/android/server/notification/toast/TextToastRecord;->show()Z
+HPLcom/android/server/notification/toast/TextToastRecord;->hide()V
+HPLcom/android/server/notification/toast/TextToastRecord;->show()Z
 PLcom/android/server/notification/toast/TextToastRecord;->toString()Ljava/lang/String;
 HPLcom/android/server/notification/toast/ToastRecord;-><init>(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;Landroid/os/IBinder;ILandroid/os/Binder;I)V
 PLcom/android/server/notification/toast/ToastRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
@@ -22552,51 +23345,58 @@
 HSPLcom/android/server/people/PeopleServiceInternal;-><init>()V
 PLcom/android/server/people/data/-$$Lambda$DataManager$CallLogContentObserver$F795P2fXEZGvzLUih_SIpFcsyic;-><init>(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
 PLcom/android/server/people/data/-$$Lambda$DataManager$CallLogContentObserver$F795P2fXEZGvzLUih_SIpFcsyic;->accept(Ljava/lang/Object;)V
-PLcom/android/server/people/data/-$$Lambda$DataManager$ContactsContentObserver$wv19gIIQIhM79fILSTcdGXPmrF0;-><init>(Landroid/net/Uri;Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)V
-PLcom/android/server/people/data/-$$Lambda$DataManager$MmsSmsContentObserver$UfeTRftTDIcNo1iUJLeOD5s_XmM;-><init>(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
+HPLcom/android/server/people/data/-$$Lambda$DataManager$ContactsContentObserver$wv19gIIQIhM79fILSTcdGXPmrF0;-><init>(Landroid/net/Uri;Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)V
+HPLcom/android/server/people/data/-$$Lambda$DataManager$MmsSmsContentObserver$UfeTRftTDIcNo1iUJLeOD5s_XmM;-><init>(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
 PLcom/android/server/people/data/-$$Lambda$DataManager$MmsSmsContentObserver$UfeTRftTDIcNo1iUJLeOD5s_XmM;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceListener$emB0GKXSexwJTzSWLUKYnAGbCCg;-><init>(Lcom/android/server/people/data/DataManager$ShortcutServiceListener;Ljava/lang/String;I)V
 HPLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceListener$emB0GKXSexwJTzSWLUKYnAGbCCg;->run()V
-PLcom/android/server/people/data/CallLogQueryHelper;-><clinit>()V
-PLcom/android/server/people/data/CallLogQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
+PLcom/android/server/people/data/-$$Lambda$DataManager$UsageStatsQueryRunnable$XYAxcpC9us0TDcNCO-NIcs5ajqQ;-><init>(Lcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;I)V
+HPLcom/android/server/people/data/-$$Lambda$DataManager$UsageStatsQueryRunnable$XYAxcpC9us0TDcNCO-NIcs5ajqQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/people/data/-$$Lambda$bkfsFF2Vc2A9q-5JeJQbUu98BkQ;-><clinit>()V
+PLcom/android/server/people/data/-$$Lambda$bkfsFF2Vc2A9q-5JeJQbUu98BkQ;-><init>()V
+HSPLcom/android/server/people/data/CallLogQueryHelper;-><clinit>()V
+HSPLcom/android/server/people/data/CallLogQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
 PLcom/android/server/people/data/CallLogQueryHelper;->addEvent(Ljava/lang/String;JJI)Z
 PLcom/android/server/people/data/CallLogQueryHelper;->getLastCallTimestamp()J
-PLcom/android/server/people/data/CallLogQueryHelper;->querySince(J)Z
+HPLcom/android/server/people/data/CallLogQueryHelper;->querySince(J)Z
 PLcom/android/server/people/data/CallLogQueryHelper;->validateEvent(Ljava/lang/String;JI)Z
-PLcom/android/server/people/data/ContactsQueryHelper;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/people/data/ContactsQueryHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/people/data/ContactsQueryHelper;->getContactUri()Landroid/net/Uri;
 HPLcom/android/server/people/data/ContactsQueryHelper;->queryContact(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Z
 HPLcom/android/server/people/data/ContactsQueryHelper;->queryPhoneNumber(Ljava/lang/String;)Z
-PLcom/android/server/people/data/ContactsQueryHelper;->querySince(J)Z
-PLcom/android/server/people/data/DataManager$CallLogContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
-PLcom/android/server/people/data/DataManager$CallLogContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
+HPLcom/android/server/people/data/ContactsQueryHelper;->querySince(J)Z
+HSPLcom/android/server/people/data/DataManager$CallLogContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
+HSPLcom/android/server/people/data/DataManager$CallLogContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
 PLcom/android/server/people/data/DataManager$CallLogContentObserver;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/people/data/DataManager$CallLogContentObserver;->accept(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
 PLcom/android/server/people/data/DataManager$CallLogContentObserver;->lambda$accept$0(Ljava/lang/String;Lcom/android/server/people/data/Event;Lcom/android/server/people/data/UserData;)V
 PLcom/android/server/people/data/DataManager$CallLogContentObserver;->onChange(Z)V
-PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;-><init>(Lcom/android/server/people/data/DataManager$ContactsContentObserver;)V
+HPLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;-><init>(Lcom/android/server/people/data/DataManager$ContactsContentObserver;)V
 PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;-><init>(Lcom/android/server/people/data/DataManager$ContactsContentObserver;Lcom/android/server/people/data/DataManager$1;)V
 PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;->access$1100(Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)Lcom/android/server/people/data/ConversationInfo;
+PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;->access$1200(Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)Lcom/android/server/people/data/ConversationInfo;
 PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;->access$900(Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)Lcom/android/server/people/data/ConversationInfo;
 PLcom/android/server/people/data/DataManager$ContactsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
 PLcom/android/server/people/data/DataManager$ContactsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
-PLcom/android/server/people/data/DataManager$ContactsContentObserver;->onChange(ZLandroid/net/Uri;I)V
+HPLcom/android/server/people/data/DataManager$ContactsContentObserver;->onChange(ZLandroid/net/Uri;I)V
 HSPLcom/android/server/people/data/DataManager$Injector;-><init>()V
-PLcom/android/server/people/data/DataManager$Injector;->createCallLogQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/CallLogQueryHelper;
+HSPLcom/android/server/people/data/DataManager$Injector;->createCallLogQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/CallLogQueryHelper;
 PLcom/android/server/people/data/DataManager$Injector;->createContactsQueryHelper(Landroid/content/Context;)Lcom/android/server/people/data/ContactsQueryHelper;
-PLcom/android/server/people/data/DataManager$Injector;->createMmsQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/MmsQueryHelper;
+HSPLcom/android/server/people/data/DataManager$Injector;->createMmsQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/MmsQueryHelper;
 HSPLcom/android/server/people/data/DataManager$Injector;->createScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService;
-PLcom/android/server/people/data/DataManager$Injector;->createSmsQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/SmsQueryHelper;
+HSPLcom/android/server/people/data/DataManager$Injector;->createSmsQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/SmsQueryHelper;
+PLcom/android/server/people/data/DataManager$Injector;->createUsageStatsQueryHelper(ILjava/util/function/Function;)Lcom/android/server/people/data/UsageStatsQueryHelper;
 HPLcom/android/server/people/data/DataManager$Injector;->getCallingUserId()I
-PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
-PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
+HSPLcom/android/server/people/data/DataManager$MmsSmsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
+HSPLcom/android/server/people/data/DataManager$MmsSmsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
 PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->accept(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
 PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->lambda$accept$0(Ljava/lang/String;Lcom/android/server/people/data/Event;Lcom/android/server/people/data/UserData;)V
-PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->onChange(Z)V
+HPLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->onChange(Z)V
 PLcom/android/server/people/data/DataManager$NotificationListener;-><init>(Lcom/android/server/people/data/DataManager;)V
 PLcom/android/server/people/data/DataManager$NotificationListener;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
-PLcom/android/server/people/data/DataManager$NotificationListener;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;I)V
+HPLcom/android/server/people/data/DataManager$NotificationListener;->onNotificationChannelModified(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+HPLcom/android/server/people/data/DataManager$NotificationListener;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;I)V
 PLcom/android/server/people/data/DataManager$PerUserBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;I)V
 PLcom/android/server/people/data/DataManager$PerUserBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;ILcom/android/server/people/data/DataManager$1;)V
 HPLcom/android/server/people/data/DataManager$PerUserBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -22604,25 +23404,37 @@
 HSPLcom/android/server/people/data/DataManager$ShortcutServiceListener;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
 HPLcom/android/server/people/data/DataManager$ShortcutServiceListener;->lambda$onShortcutChanged$0$DataManager$ShortcutServiceListener(Ljava/lang/String;I)V
 HPLcom/android/server/people/data/DataManager$ShortcutServiceListener;->onShortcutChanged(Ljava/lang/String;I)V
+HSPLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;)V
+HSPLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
+PLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;-><init>(Lcom/android/server/people/data/DataManager;I)V
 PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;-><init>(Lcom/android/server/people/data/DataManager;ILcom/android/server/people/data/DataManager$1;)V
+HPLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->lambda$new$0$DataManager$UsageStatsQueryRunnable(ILjava/lang/String;)Lcom/android/server/people/data/PackageData;
 HPLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->run()V
 HSPLcom/android/server/people/data/DataManager;-><clinit>()V
 HSPLcom/android/server/people/data/DataManager;-><init>(Landroid/content/Context;)V
-PLcom/android/server/people/data/DataManager;-><init>(Landroid/content/Context;Lcom/android/server/people/data/DataManager$Injector;)V
+HSPLcom/android/server/people/data/DataManager;-><init>(Landroid/content/Context;Lcom/android/server/people/data/DataManager$Injector;)V
 PLcom/android/server/people/data/DataManager;->access$1000(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
+PLcom/android/server/people/data/DataManager;->access$1100(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
 PLcom/android/server/people/data/DataManager;->access$1100(Lcom/android/server/people/data/DataManager;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
 PLcom/android/server/people/data/DataManager;->access$1200(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 PLcom/android/server/people/data/DataManager;->access$1300(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/UserData;)V
 PLcom/android/server/people/data/DataManager;->access$1300(Lcom/android/server/people/data/DataManager;Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/DataManager;->access$1400(Lcom/android/server/people/data/DataManager;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
+PLcom/android/server/people/data/DataManager;->access$1400(Lcom/android/server/people/data/DataManager;Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/DataManager;->access$1500(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
+PLcom/android/server/people/data/DataManager;->access$1500(Lcom/android/server/people/data/DataManager;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
+PLcom/android/server/people/data/DataManager;->access$1600(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 PLcom/android/server/people/data/DataManager;->access$1600(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/UserData;)V
+PLcom/android/server/people/data/DataManager;->access$1700(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/UserData;)V
 PLcom/android/server/people/data/DataManager;->access$500(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
 PLcom/android/server/people/data/DataManager;->access$600(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
-PLcom/android/server/people/data/DataManager;->access$700(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
-PLcom/android/server/people/data/DataManager;->access$800(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
+HSPLcom/android/server/people/data/DataManager;->access$700(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
+HSPLcom/android/server/people/data/DataManager;->access$800(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
+HSPLcom/android/server/people/data/DataManager;->access$800(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
 PLcom/android/server/people/data/DataManager;->access$800(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
+HSPLcom/android/server/people/data/DataManager;->access$900(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
+PLcom/android/server/people/data/DataManager;->forAllPackages(Ljava/util/function/Consumer;)V
 HPLcom/android/server/people/data/DataManager;->forAllUnlockedUsers(Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/DataManager;->getEventHistoryIfEligible(Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 HPLcom/android/server/people/data/DataManager;->getPackage(Ljava/lang/String;I)Lcom/android/server/people/data/PackageData;
@@ -22639,29 +23451,35 @@
 PLcom/android/server/people/data/Event$Builder;-><init>(JI)V
 PLcom/android/server/people/data/Event$Builder;->access$000(Lcom/android/server/people/data/Event$Builder;)J
 PLcom/android/server/people/data/Event$Builder;->access$100(Lcom/android/server/people/data/Event$Builder;)I
+PLcom/android/server/people/data/Event$Builder;->access$200(Lcom/android/server/people/data/Event$Builder;)I
 PLcom/android/server/people/data/Event$Builder;->access$200(Lcom/android/server/people/data/Event$Builder;)Lcom/android/server/people/data/Event$CallDetails;
 PLcom/android/server/people/data/Event$Builder;->build()Lcom/android/server/people/data/Event;
 PLcom/android/server/people/data/Event$Builder;->setCallDetails(Lcom/android/server/people/data/Event$CallDetails;)Lcom/android/server/people/data/Event$Builder;
+PLcom/android/server/people/data/Event$Builder;->setDurationSeconds(I)Lcom/android/server/people/data/Event$Builder;
 PLcom/android/server/people/data/Event$CallDetails;-><init>(J)V
 PLcom/android/server/people/data/Event;-><clinit>()V
-PLcom/android/server/people/data/Event;-><init>(JI)V
+HPLcom/android/server/people/data/Event;-><init>(JI)V
 PLcom/android/server/people/data/Event;-><init>(Lcom/android/server/people/data/Event$Builder;)V
 PLcom/android/server/people/data/Event;-><init>(Lcom/android/server/people/data/Event$Builder;Lcom/android/server/people/data/Event$1;)V
-PLcom/android/server/people/data/MmsQueryHelper;-><clinit>()V
-PLcom/android/server/people/data/MmsQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
+HSPLcom/android/server/people/data/MmsQueryHelper;-><clinit>()V
+HSPLcom/android/server/people/data/MmsQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
 PLcom/android/server/people/data/MmsQueryHelper;->addEvent(Ljava/lang/String;JI)Z
 PLcom/android/server/people/data/MmsQueryHelper;->getLastMessageTimestamp()J
-PLcom/android/server/people/data/MmsQueryHelper;->getMmsAddress(Ljava/lang/String;I)Ljava/lang/String;
+HPLcom/android/server/people/data/MmsQueryHelper;->getMmsAddress(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/people/data/MmsQueryHelper;->querySince(J)Z
 PLcom/android/server/people/data/MmsQueryHelper;->validateEvent(Ljava/lang/String;JI)Z
-PLcom/android/server/people/data/SmsQueryHelper;-><clinit>()V
-PLcom/android/server/people/data/SmsQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
+HSPLcom/android/server/people/data/SmsQueryHelper;-><clinit>()V
+HSPLcom/android/server/people/data/SmsQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
 PLcom/android/server/people/data/SmsQueryHelper;->addEvent(Ljava/lang/String;JI)Z
 PLcom/android/server/people/data/SmsQueryHelper;->getLastMessageTimestamp()J
 HPLcom/android/server/people/data/SmsQueryHelper;->querySince(J)Z
-PLcom/android/server/people/data/SmsQueryHelper;->validateEvent(Ljava/lang/String;JI)Z
+HPLcom/android/server/people/data/SmsQueryHelper;->validateEvent(Ljava/lang/String;JI)Z
+PLcom/android/server/people/data/UsageStatsQueryHelper;-><init>(ILjava/util/function/Function;)V
+PLcom/android/server/people/data/UsageStatsQueryHelper;->getLastEventTimestamp()J
+HPLcom/android/server/people/data/UsageStatsQueryHelper;->querySince(J)Z
 PLcom/android/server/people/data/UserData;-><init>(I)V
-PLcom/android/server/people/data/UserData;->forAllPackages(Ljava/util/function/Consumer;)V
+PLcom/android/server/people/data/UserData;-><init>(ILjava/util/concurrent/ScheduledExecutorService;Lcom/android/server/people/data/ContactsQueryHelper;)V
+HPLcom/android/server/people/data/UserData;->forAllPackages(Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/UserData;->getDefaultDialer()Lcom/android/server/people/data/PackageData;
 PLcom/android/server/people/data/UserData;->getDefaultSmsApp()Lcom/android/server/people/data/PackageData;
 HPLcom/android/server/people/data/UserData;->getPackageData(Ljava/lang/String;)Lcom/android/server/people/data/PackageData;
@@ -22671,7 +23489,7 @@
 PLcom/android/server/people/data/UserData;->setDefaultSmsApp(Ljava/lang/String;)V
 PLcom/android/server/people/data/UserData;->setUserStopped()V
 PLcom/android/server/people/data/UserData;->setUserUnlocked()V
-PLcom/android/server/people/data/Utils;->getCurrentCountryIso(Landroid/content/Context;)Ljava/lang/String;
+HSPLcom/android/server/people/data/Utils;->getCurrentCountryIso(Landroid/content/Context;)Ljava/lang/String;
 PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$1$dbgKSgcSW-enjqvNAbeI3zvdw_E;-><init>(Lcom/android/server/pm/ApexManager$ApexManagerImpl$1;)V
 PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$1$dbgKSgcSW-enjqvNAbeI3zvdw_E;->run()V
 PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$48iOSmygOXJ0TezZTiFdfMqA4-U;-><clinit>()V
@@ -22697,17 +23515,27 @@
 PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$zKFrzIK0lAT7V4Fl0Pv5KKt1Gu0;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfigImpl;)V
 PLcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/pm/-$$Lambda$AppsFilter$irFGkuh4mJ419pXBYKSj13ADTtA;-><init>(Landroid/util/SparseArray;Lcom/android/server/pm/PackageManagerService;)V
+HPLcom/android/server/pm/-$$Lambda$AppsFilter$irFGkuh4mJ419pXBYKSj13ADTtA;-><init>(Landroid/util/SparseArray;Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;->test(Ljava/lang/Object;)Z
 HPLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$-KiE2NsUP--OYmoSDt9BwEQICZw;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)V
-PLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$-KiE2NsUP--OYmoSDt9BwEQICZw;->get()Ljava/lang/Object;
+HPLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$-KiE2NsUP--OYmoSDt9BwEQICZw;->get()Ljava/lang/Object;
 HPLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$TAsfDUuoxt92xKFoSCfpMUmY2Es;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/dex/DexoptOptions;)V
 PLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$TAsfDUuoxt92xKFoSCfpMUmY2Es;->get()Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$4kTzFa_zjeGMtJVy5CluIOehAmM;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;)V
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$4kTzFa_zjeGMtJVy5CluIOehAmM;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$D4Z_0MUKQxAr3kDglyup8aB9XLE;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Landroid/content/Intent;IILandroid/content/ComponentName;)V
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$D4Z_0MUKQxAr3kDglyup8aB9XLE;->runOrThrow()V
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$DxhjfM3U9U3V3tJbzSWj7AMLCBE;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;II)V
+HPLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$DxhjfM3U9U3V3tJbzSWj7AMLCBE;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$HVfTkMl1ZNC9cAfi1atsp3Dwnyg;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;II)V
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$HVfTkMl1ZNC9cAfi1atsp3Dwnyg;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$bl8duoKAQm4-uSci6ZlA_aEdeg8;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;)V
+HPLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$bl8duoKAQm4-uSci6ZlA_aEdeg8;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;-><init>()V
 PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;->test(Ljava/lang/Object;)Z
@@ -22746,9 +23574,9 @@
 PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$WxRUCOlFBsKbwiMNBR7ysMEZKp4;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$WxRUCOlFBsKbwiMNBR7ysMEZKp4;-><init>()V
 PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$WxRUCOlFBsKbwiMNBR7ysMEZKp4;->apply(I)Ljava/lang/Object;
-PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$gIaZyqaw0zETPQMxuRW3BVLMZ-Y;-><clinit>()V
-PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$gIaZyqaw0zETPQMxuRW3BVLMZ-Y;-><init>()V
-PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$gIaZyqaw0zETPQMxuRW3BVLMZ-Y;->apply(I)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$PackageInstallerSession$gIaZyqaw0zETPQMxuRW3BVLMZ-Y;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageInstallerSession$gIaZyqaw0zETPQMxuRW3BVLMZ-Y;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageInstallerSession$gIaZyqaw0zETPQMxuRW3BVLMZ-Y;->apply(I)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$PackageInstallerSession$iyfVEu9LbUOK_cEGZ3wXC81wsgs;-><init>(Ljava/io/File;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageInstallerSession$iyfVEu9LbUOK_cEGZ3wXC81wsgs;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$PackageInstallerSession$yEAIQbVnbSznJVW9xPXv9WGuzI0;-><clinit>()V
@@ -22782,8 +23610,8 @@
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$QEXaCTQ54nCy5aHUAa6mkt0WtpM;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RfqRmQ8KNtYywzf-EIm7VG5PHj8;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RfqRmQ8KNtYywzf-EIm7VG5PHj8;-><init>()V
-HPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;-><init>(Lcom/android/server/pm/PackageManagerService;[ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
-HPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;->run()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;-><init>(Lcom/android/server/pm/PackageManagerService;[ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$U47f17sf-Z0eef3W2xgzUB-ecR4;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$U47f17sf-Z0eef3W2xgzUB-ecR4;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$UqTOzDNpKPiIlaG4_AUlesB9I1E;-><clinit>()V
@@ -22812,8 +23640,8 @@
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$f5l1_UOwACQPN6qixqBmzSJzDMw;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$fQjXY6S0s38rWZ-Tv1PTQvrgJb4;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/parsing/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$fQjXY6S0s38rWZ-Tv1PTQvrgJb4;->run()V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$hlGRKJu3cTGpEnG-hyOT3QbrXxY;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$hlGRKJu3cTGpEnG-hyOT3QbrXxY;->run()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$hlGRKJu3cTGpEnG-hyOT3QbrXxY;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$hlGRKJu3cTGpEnG-hyOT3QbrXxY;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$i2wY1QKIZAfMEAymOPPs8KS2G5c;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$i2wY1QKIZAfMEAymOPPs8KS2G5c;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$i6CpetYRHYknkq8R3n1zFsH2Qng;-><init>(Landroid/content/Context;Ljava/lang/Object;)V
@@ -22830,8 +23658,8 @@
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$ms4g2QGGQv1AIanhd1siLhoElkI;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$pVdeIe13BPz2j1-uK6W_NugHu2Q;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$pVdeIe13BPz2j1-uK6W_NugHu2Q;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$rLdmTQLwnuPeDuWTeDB-0S1Ku4I;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$rLdmTQLwnuPeDuWTeDB-0S1Ku4I;->onInitialized(I)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$rLdmTQLwnuPeDuWTeDB-0S1Ku4I;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$rLdmTQLwnuPeDuWTeDB-0S1Ku4I;->onInitialized(I)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$rcVfdsXa_dlub2enxT5rL0nTx7I;-><init>(Lcom/android/server/pm/PackageManagerService;[ILjava/lang/String;Z)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$rcVfdsXa_dlub2enxT5rL0nTx7I;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$vPmwW10Lr1Zc8YoNadc7v4xmIWo;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
@@ -22884,6 +23712,7 @@
 HPLcom/android/server/pm/-$$Lambda$ShortcutPackage$ibOAVgfKWMZFYSeVV_hLNx6jogk;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$2mjLrqafL_ZPftw5bIS-yyK7PxI;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$2mjLrqafL_ZPftw5bIS-yyK7PxI;-><init>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$2mjLrqafL_ZPftw5bIS-yyK7PxI;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$WghiV-HLnzJqZabObC5uHCmb960;-><init>(Lcom/android/server/pm/ShortcutService$3;I)V
 HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$WghiV-HLnzJqZabObC5uHCmb960;->run()V
 HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$n_VdEzyBcjs0pGZO8GnB0FoTgR0;-><init>(Lcom/android/server/pm/ShortcutService$3;II)V
@@ -22896,18 +23725,22 @@
 PLcom/android/server/pm/-$$Lambda$ShortcutService$H1HFyb1U9E1-y03suEsi37_w-t0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$HrjNihAM4odnSGPLxsJbI33JkwE;-><init>(Ljava/util/List;Landroid/content/IntentFilter;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$HrjNihAM4odnSGPLxsJbI33JkwE;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$OwXAUkceFTQAGpPzTbihl14wvP4;-><init>(Lcom/android/server/pm/ShortcutService$LocalService;ILjava/lang/String;Ljava/util/List;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$OwXAUkceFTQAGpPzTbihl14wvP4;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$Q0t7aDuDFJ8HWAf1NHW1dGQjOf8;-><init>(Lcom/android/server/pm/ShortcutService$LocalService;ILjava/lang/String;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$Q0t7aDuDFJ8HWAf1NHW1dGQjOf8;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ZxpFznY3OrD6IbNkC12YhV8h3J4;-><init>(JLandroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZ)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ZxpFznY3OrD6IbNkC12YhV8h3J4;->test(Ljava/lang/Object;)Z
 PLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$a6cj3oQpS-Z6FB4DytB0FytYmiM;-><init>(Ljava/lang/String;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$a6cj3oQpS-Z6FB4DytB0FytYmiM;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$glaS4uJCas9aUmjUCxlz_EN5nmQ;-><init>(JLandroid/util/ArraySet;Landroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZ)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$glaS4uJCas9aUmjUCxlz_EN5nmQ;->test(Ljava/lang/Object;)Z
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ltDE7qm9grkumxffFI8cLCFpNqU;-><init>(JLandroid/util/ArraySet;Landroid/content/ComponentName;ZZZZ)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ltDE7qm9grkumxffFI8cLCFpNqU;->test(Ljava/lang/Object;)Z
 PLcom/android/server/pm/-$$Lambda$ShortcutService$M_jA5rlnfqs19yyXen7WvF8EFdQ;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/util/ArrayList;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$M_jA5rlnfqs19yyXen7WvF8EFdQ;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$NdP-8QRYjvDVSScw7cBKt85dbWQ;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$NdP-8QRYjvDVSScw7cBKt85dbWQ;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$NdP-8QRYjvDVSScw7cBKt85dbWQ;-><init>(Ljava/lang/String;I)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$NdP-8QRYjvDVSScw7cBKt85dbWQ;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$Ot_p1CCuELDP1Emv4jTa8vvA09A;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$Ot_p1CCuELDP1Emv4jTa8vvA09A;-><init>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$Ot_p1CCuELDP1Emv4jTa8vvA09A;->accept(Ljava/lang/Object;)V
@@ -22916,7 +23749,7 @@
 PLcom/android/server/pm/-$$Lambda$ShortcutService$SjK_0i78sIpSTGJKpeLWOhhhsiA;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$SjK_0i78sIpSTGJKpeLWOhhhsiA;-><init>()V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$SjK_0i78sIpSTGJKpeLWOhhhsiA;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$TAtLoMHHFYLITi_4Sj-ZTHx6ELo;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$TAtLoMHHFYLITi_4Sj-ZTHx6ELo;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$TAtLoMHHFYLITi_4Sj-ZTHx6ELo;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$TUT0CJsDhxqkpcseduaAriOs6bg;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$TUT0CJsDhxqkpcseduaAriOs6bg;-><init>()V
@@ -22936,17 +23769,17 @@
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$l8T8kXBB-Gktym0FoX_WiKj2Glc;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$lYluTnTRdTOcpwtJusvYEvlkMjQ;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$lYluTnTRdTOcpwtJusvYEvlkMjQ;-><init>()V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$lYluTnTRdTOcpwtJusvYEvlkMjQ;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$lYluTnTRdTOcpwtJusvYEvlkMjQ;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$oes_dY8CJz5MllJiOggarpV9YkA;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$oes_dY8CJz5MllJiOggarpV9YkA;-><init>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$oes_dY8CJz5MllJiOggarpV9YkA;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$s11VOofRVMGkuwyyqnMY7eAyb5k;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$s11VOofRVMGkuwyyqnMY7eAyb5k;-><init>()V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$s11VOofRVMGkuwyyqnMY7eAyb5k;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$s11VOofRVMGkuwyyqnMY7eAyb5k;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$t1am7miIbc4iP6CfSL0gFgEsO0Y;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$t1am7miIbc4iP6CfSL0gFgEsO0Y;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$uvknhLDPo5JAtmXalM9P3rrx9e4;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;I)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$uvknhLDPo5JAtmXalM9P3rrx9e4;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$uvknhLDPo5JAtmXalM9P3rrx9e4;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$y1mZhNAWeEp6GCbsOBAt4g-DS3s;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;I)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$y1mZhNAWeEp6GCbsOBAt4g-DS3s;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutUser$6rBk7xJFaM9dXyyKHFs-DCus0iM;-><clinit>()V
@@ -22960,6 +23793,8 @@
 PLcom/android/server/pm/-$$Lambda$StagingManager$-_ny3FTrU2IsbpZjLW2h29O5auM;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$StagingManager$-_ny3FTrU2IsbpZjLW2h29O5auM;-><init>()V
 PLcom/android/server/pm/-$$Lambda$StagingManager$-_ny3FTrU2IsbpZjLW2h29O5auM;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$StagingManager$1$x6UWz5lz4rW7MnWw4KzvwIRWgsQ;-><init>(Lcom/android/server/pm/StagingManager$1;)V
+PLcom/android/server/pm/-$$Lambda$StagingManager$1$x6UWz5lz4rW7MnWw4KzvwIRWgsQ;->run()V
 PLcom/android/server/pm/-$$Lambda$StagingManager$HKgsX1m7APD_7T6AtjHR5IBpKOg;-><init>(Lcom/android/server/pm/StagingManager;)V
 PLcom/android/server/pm/-$$Lambda$StagingManager$HKgsX1m7APD_7T6AtjHR5IBpKOg;->apply(I)Ljava/lang/Object;
 PLcom/android/server/pm/-$$Lambda$StagingManager$UAHmD_dya6rWSylrk_h2BGFBKcA;-><init>(Lcom/android/server/pm/StagingManager;Lcom/android/server/pm/PackageInstallerSession;)V
@@ -23069,12 +23904,13 @@
 HSPLcom/android/server/pm/AppsFilter;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfig;[Ljava/lang/String;ZLcom/android/server/om/OverlayReferenceMapper$Provider;)V
 HSPLcom/android/server/pm/AppsFilter;->addPackage(Lcom/android/server/pm/PackageSetting;Landroid/util/ArrayMap;)V
 HSPLcom/android/server/pm/AppsFilter;->canQueryAsInstaller(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/AppsFilter;->canQueryViaComponents(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/AppsFilter;->canQueryViaIntent(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/AppsFilter;->canQueryViaPackage(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/AppsFilter;->create(Lcom/android/server/pm/PackageManagerService$Injector;)Lcom/android/server/pm/AppsFilter;
 HPLcom/android/server/pm/AppsFilter;->dumpQueries(Ljava/io/PrintWriter;Lcom/android/server/pm/PackageManagerService;Ljava/lang/Integer;Lcom/android/server/pm/DumpState;[I)V
 HSPLcom/android/server/pm/AppsFilter;->grantImplicitAccess(II)V
-PLcom/android/server/pm/AppsFilter;->isSystemSigned(Landroid/content/pm/PackageParser$SigningDetails;Lcom/android/server/pm/PackageSetting;)Z
+HSPLcom/android/server/pm/AppsFilter;->isSystemSigned(Landroid/content/pm/PackageParser$SigningDetails;Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/AppsFilter;->onSystemReady()V
 HSPLcom/android/server/pm/AppsFilter;->removePackage(Lcom/android/server/pm/PackageSetting;[ILandroid/util/ArrayMap;)V
 HSPLcom/android/server/pm/AppsFilter;->shouldFilterApplication(ILcom/android/server/pm/SettingBase;Lcom/android/server/pm/PackageSetting;I)Z
@@ -23095,6 +23931,7 @@
 PLcom/android/server/pm/BackgroundDexOptService;->idleOptimizePackages(Lcom/android/server/pm/PackageManagerService;Landroid/util/ArraySet;J)I
 HSPLcom/android/server/pm/BackgroundDexOptService;->isBackgroundDexoptDisabled()Z
 HPLcom/android/server/pm/BackgroundDexOptService;->lambda$performDexOptPrimary$0(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Ljava/lang/Integer;
+PLcom/android/server/pm/BackgroundDexOptService;->lambda$performDexOptSecondary$1(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/dex/DexoptOptions;)Ljava/lang/Integer;
 PLcom/android/server/pm/BackgroundDexOptService;->notifyPackageChanged(Ljava/lang/String;)V
 PLcom/android/server/pm/BackgroundDexOptService;->notifyPinService(Landroid/util/ArraySet;)V
 PLcom/android/server/pm/BackgroundDexOptService;->onStartJob(Landroid/app/job/JobParameters;)Z
@@ -23190,7 +24027,7 @@
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;Ljava/util/List;)Z
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Landroid/content/IntentFilter;)Ljava/lang/Object;
-PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;)Ljava/lang/Object;
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;)Ljava/lang/Object;
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;I)Z
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
@@ -23248,21 +24085,33 @@
 HSPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->clearCallingIdentity()J
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getActivityTaskManagerInternal()Lcom/android/server/wm/ActivityTaskManagerInternal;
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getAppOpsManager()Landroid/app/AppOpsManager;
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getAppOpsManager()Landroid/app/AppOpsManager;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getCallingPid()I
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getCallingUid()I
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getCallingUserId()I
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getUserManager()Landroid/os/UserManager;
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getCallingUserId()I
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getIPackageManager()Landroid/content/pm/IPackageManager;
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getUserManager()Landroid/os/UserManager;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->restoreCallingIdentity(J)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;)Ljava/lang/Object;
 HSPLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;Lcom/android/server/pm/CrossProfileAppsServiceImpl$Injector;)V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->canConfigureInteractAcrossProfiles(Ljava/lang/String;)Z
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfilesUnchecked(Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->hasOtherProfileWithPackageInstalled(Ljava/lang/String;I)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->hasRequestedAppOpPermission(Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPackageEnabled(Ljava/lang/String;I)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPackageInstalled(Ljava/lang/String;I)Z
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$getTargetUserProfilesUnchecked$1$CrossProfileAppsServiceImpl(ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$hasOtherProfileWithPackageInstalled$8$CrossProfileAppsServiceImpl(ILjava/lang/String;)Ljava/lang/Boolean;
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$isPackageEnabled$2$CrossProfileAppsServiceImpl(Ljava/lang/String;II)Ljava/lang/Boolean;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$isPackageInstalled$5$CrossProfileAppsServiceImpl(Ljava/lang/String;II)Ljava/lang/Boolean;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$verifyActivityCanHandleIntentAndExported$4$CrossProfileAppsServiceImpl(Landroid/content/Intent;IILandroid/content/ComponentName;)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;IZ)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyActivityCanHandleIntentAndExported(Landroid/content/Intent;Landroid/content/ComponentName;II)V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyCallingPackage(Ljava/lang/String;)V
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyCallingPackage(Ljava/lang/String;)V
 HPLcom/android/server/pm/CrossProfileIntentFilter;-><init>(Landroid/content/IntentFilter;Ljava/lang/String;II)V
 HSPLcom/android/server/pm/CrossProfileIntentFilter;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
 PLcom/android/server/pm/CrossProfileIntentFilter;->equalsIgnoreFilter(Lcom/android/server/pm/CrossProfileIntentFilter;)Z
@@ -23296,7 +24145,7 @@
 PLcom/android/server/pm/DynamicCodeLoggingService;->access$100(Lcom/android/server/pm/DynamicCodeLoggingService;)Z
 PLcom/android/server/pm/DynamicCodeLoggingService;->access$200()Ljava/lang/String;
 HPLcom/android/server/pm/DynamicCodeLoggingService;->access$300(Lcom/android/server/pm/DynamicCodeLoggingService;)Z
-PLcom/android/server/pm/DynamicCodeLoggingService;->access$400()Ljava/util/regex/Pattern;
+HPLcom/android/server/pm/DynamicCodeLoggingService;->access$400()Ljava/util/regex/Pattern;
 PLcom/android/server/pm/DynamicCodeLoggingService;->getDynamicCodeLogger()Lcom/android/server/pm/dex/DynamicCodeLogger;
 PLcom/android/server/pm/DynamicCodeLoggingService;->onStartJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/pm/DynamicCodeLoggingService;->onStopJob(Landroid/app/job/JobParameters;)Z
@@ -23314,8 +24163,8 @@
 PLcom/android/server/pm/InstallSource;->setInstallerPackage(Ljava/lang/String;)Lcom/android/server/pm/InstallSource;
 HSPLcom/android/server/pm/InstallSource;->setIsOrphaned(Z)Lcom/android/server/pm/InstallSource;
 HSPLcom/android/server/pm/Installer$1;-><init>(Lcom/android/server/pm/Installer;)V
-HPLcom/android/server/pm/Installer$InstallerException;-><init>(Ljava/lang/String;)V
-HPLcom/android/server/pm/Installer$InstallerException;->from(Ljava/lang/Exception;)Lcom/android/server/pm/Installer$InstallerException;
+HSPLcom/android/server/pm/Installer$InstallerException;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/pm/Installer$InstallerException;->from(Ljava/lang/Exception;)Lcom/android/server/pm/Installer$InstallerException;
 HSPLcom/android/server/pm/Installer;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/Installer;-><init>(Landroid/content/Context;Z)V
 HSPLcom/android/server/pm/Installer;->assertFsverityRootHashMatches(Ljava/lang/String;[B)V
@@ -23331,7 +24180,7 @@
 PLcom/android/server/pm/Installer;->createUserData(Ljava/lang/String;III)V
 HPLcom/android/server/pm/Installer;->deleteOdex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/Installer;->destroyAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
-PLcom/android/server/pm/Installer;->destroyAppProfiles(Ljava/lang/String;)V
+HSPLcom/android/server/pm/Installer;->destroyAppProfiles(Ljava/lang/String;)V
 PLcom/android/server/pm/Installer;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/pm/Installer;->destroyUserData(Ljava/lang/String;II)V
 HSPLcom/android/server/pm/Installer;->dexopt(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
@@ -23360,25 +24209,27 @@
 HSPLcom/android/server/pm/Installer;->setWarnIfHeld(Ljava/lang/Object;)V
 PLcom/android/server/pm/Installer;->snapshotAppData(Ljava/lang/String;III)J
 HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;-><init>(Lcom/android/server/pm/InstantAppRegistry;Landroid/os/Looper;)V
-PLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->cancelPendingPersistLPw(Landroid/content/pm/parsing/AndroidPackage;I)V
-PLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->removePendingPersistCookieLPr(Landroid/content/pm/parsing/AndroidPackage;I)Lcom/android/internal/os/SomeArgs;
+HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->cancelPendingPersistLPw(Landroid/content/pm/parsing/AndroidPackage;I)V
+HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->removePendingPersistCookieLPr(Landroid/content/pm/parsing/AndroidPackage;I)Lcom/android/internal/os/SomeArgs;
 HSPLcom/android/server/pm/InstantAppRegistry;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/InstantAppRegistry;->addInstantAppLPw(II)V
 PLcom/android/server/pm/InstantAppRegistry;->createInstantAppInfoForPackage(Landroid/content/pm/parsing/AndroidPackage;IZ)Landroid/content/pm/InstantAppInfo;
-PLcom/android/server/pm/InstantAppRegistry;->deleteDir(Ljava/io/File;)V
+HSPLcom/android/server/pm/InstantAppRegistry;->deleteDir(Ljava/io/File;)V
 PLcom/android/server/pm/InstantAppRegistry;->deleteInstantApplicationMetadataLPw(Ljava/lang/String;I)V
 HPLcom/android/server/pm/InstantAppRegistry;->getInstalledInstantApplicationsLPr(I)Ljava/util/List;
-HPLcom/android/server/pm/InstantAppRegistry;->getInstantApplicationDir(Ljava/lang/String;I)Ljava/io/File;
-HPLcom/android/server/pm/InstantAppRegistry;->getInstantApplicationsDir(I)Ljava/io/File;
+PLcom/android/server/pm/InstantAppRegistry;->getInstantAppAndroidIdLPw(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/pm/InstantAppRegistry;->getInstantApplicationDir(Ljava/lang/String;I)Ljava/io/File;
+HSPLcom/android/server/pm/InstantAppRegistry;->getInstantApplicationsDir(I)Ljava/io/File;
 PLcom/android/server/pm/InstantAppRegistry;->getInstantAppsLPr(I)Ljava/util/List;
 PLcom/android/server/pm/InstantAppRegistry;->getUninstalledInstantAppStatesLPr(I)Ljava/util/List;
 PLcom/android/server/pm/InstantAppRegistry;->getUninstalledInstantApplicationsLPr(I)Ljava/util/List;
+PLcom/android/server/pm/InstantAppRegistry;->grantInstantAccessLPw(ILandroid/content/Intent;II)V
 PLcom/android/server/pm/InstantAppRegistry;->hasInstantAppMetadataLPr(Ljava/lang/String;I)Z
 PLcom/android/server/pm/InstantAppRegistry;->hasInstantApplicationMetadataLPr(Ljava/lang/String;I)Z
 PLcom/android/server/pm/InstantAppRegistry;->hasUninstalledInstantAppStateLPr(Ljava/lang/String;I)Z
-PLcom/android/server/pm/InstantAppRegistry;->isInstantAccessGranted(III)Z
+HPLcom/android/server/pm/InstantAppRegistry;->isInstantAccessGranted(III)Z
 HPLcom/android/server/pm/InstantAppRegistry;->onPackageInstalledLPw(Landroid/content/pm/parsing/AndroidPackage;[I)V
-HPLcom/android/server/pm/InstantAppRegistry;->onPackageUninstalledLPw(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;[I)V
+HSPLcom/android/server/pm/InstantAppRegistry;->onPackageUninstalledLPw(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;[I)V
 PLcom/android/server/pm/InstantAppRegistry;->onPackageUninstalledLPw(Landroid/content/pm/parsing/AndroidPackage;[I)V
 PLcom/android/server/pm/InstantAppRegistry;->onUserRemovedLPw(I)V
 PLcom/android/server/pm/InstantAppRegistry;->parseMetadataFile(Ljava/io/File;)Lcom/android/server/pm/InstantAppRegistry$UninstalledInstantAppState;
@@ -23389,7 +24240,7 @@
 PLcom/android/server/pm/InstantAppRegistry;->pruneInstantApps()V
 HPLcom/android/server/pm/InstantAppRegistry;->pruneInstantApps(JJJ)Z
 PLcom/android/server/pm/InstantAppRegistry;->pruneUninstalledInstantApps(JJ)Z
-PLcom/android/server/pm/InstantAppRegistry;->removeAppLPw(II)V
+HSPLcom/android/server/pm/InstantAppRegistry;->removeAppLPw(II)V
 HPLcom/android/server/pm/InstantAppRegistry;->removeUninstalledInstantAppStateLPw(Ljava/util/function/Predicate;I)V
 PLcom/android/server/pm/InstantAppResolver;-><clinit>()V
 HPLcom/android/server/pm/InstantAppResolver;->buildRequestInfo(Landroid/content/pm/InstantAppRequest;)Landroid/content/pm/InstantAppRequestInfo;
@@ -23399,7 +24250,7 @@
 PLcom/android/server/pm/InstantAppResolver;->filterInstantAppIntent(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;ILjava/lang/String;Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;Ljava/lang/String;)Landroid/content/pm/AuxiliaryResolveInfo;
 HPLcom/android/server/pm/InstantAppResolver;->filterInstantAppIntent(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;[I)Landroid/content/pm/AuxiliaryResolveInfo;
 PLcom/android/server/pm/InstantAppResolver;->getLogger()Lcom/android/internal/logging/MetricsLogger;
-PLcom/android/server/pm/InstantAppResolver;->logMetrics(IJLjava/lang/String;I)V
+HPLcom/android/server/pm/InstantAppResolver;->logMetrics(IJLjava/lang/String;I)V
 HPLcom/android/server/pm/InstantAppResolver;->parseDigest(Landroid/content/Intent;)Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;
 HPLcom/android/server/pm/InstantAppResolver;->sanitizeIntent(Landroid/content/Intent;)Landroid/content/Intent;
 PLcom/android/server/pm/InstantAppResolverConnection$ConnectionException;-><init>(I)V
@@ -23507,7 +24358,7 @@
 HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$100(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$200(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;Landroid/os/UserHandle;Ljava/lang/String;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$300(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Landroid/content/pm/ShortcutServiceInternal;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$300(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Landroid/content/pm/ShortcutServiceInternal;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(ILjava/lang/String;)Z
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->checkCallbackCount()V
@@ -23522,6 +24373,7 @@
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutConfigActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasDefaultEnableLauncherActivity(Ljava/lang/String;)Z
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasShortcutHostPermission(Ljava/lang/String;)Z
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingPid()I
@@ -23612,17 +24464,17 @@
 HSPLcom/android/server/pm/PackageDexOptimizer;->adjustDexoptNeeded(I)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->canOptimizePackage(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageDexOptimizer;->dexOptPath(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;IILcom/android/server/pm/CompilerStats$PackageStats;ZLjava/lang/String;Ljava/lang/String;I)I
-PLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPath(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
-PLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPathLI(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPath(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPathLI(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
 HPLcom/android/server/pm/PackageDexOptimizer;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
 HSPLcom/android/server/pm/PackageDexOptimizer;->getAugmentedReasonName(IZ)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(IILandroid/util/SparseArray;ZLjava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
-PLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->getDexoptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->getOatDir(Ljava/io/File;)Ljava/io/File;
 HSPLcom/android/server/pm/PackageDexOptimizer;->getPackageOatDirIfSupported(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
-PLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Z)Ljava/lang/String;
+HPLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Z)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Z)Ljava/lang/String;
 HPLcom/android/server/pm/PackageDexOptimizer;->isAppImageEnabled()Z
 HPLcom/android/server/pm/PackageDexOptimizer;->isProfileUpdated(Landroid/content/pm/parsing/AndroidPackage;ILjava/lang/String;Ljava/lang/String;)Z
@@ -23633,8 +24485,8 @@
 HSPLcom/android/server/pm/PackageDexOptimizer;->systemReady()V
 HSPLcom/android/server/pm/PackageInstallerService$1;-><init>()V
 HSPLcom/android/server/pm/PackageInstallerService$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
-PLcom/android/server/pm/PackageInstallerService$2;-><init>(Lcom/android/server/pm/PackageInstallerService;)V
-PLcom/android/server/pm/PackageInstallerService$2;->run()V
+HPLcom/android/server/pm/PackageInstallerService$2;-><init>(Lcom/android/server/pm/PackageInstallerService;)V
+HPLcom/android/server/pm/PackageInstallerService$2;->run()V
 HSPLcom/android/server/pm/PackageInstallerService$Callbacks;-><init>(Landroid/os/Looper;)V
 PLcom/android/server/pm/PackageInstallerService$Callbacks;->access$200(Lcom/android/server/pm/PackageInstallerService$Callbacks;II)V
 PLcom/android/server/pm/PackageInstallerService$Callbacks;->access$500(Lcom/android/server/pm/PackageInstallerService$Callbacks;II)V
@@ -23664,7 +24516,7 @@
 HSPLcom/android/server/pm/PackageInstallerService;-><clinit>()V
 HSPLcom/android/server/pm/PackageInstallerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageInstallerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/ApexManager;)V
-PLcom/android/server/pm/PackageInstallerService;->abandonSession(I)V
+HPLcom/android/server/pm/PackageInstallerService;->abandonSession(I)V
 PLcom/android/server/pm/PackageInstallerService;->access$000(Lcom/android/server/pm/PackageInstallerService;)Landroid/util/SparseArray;
 HPLcom/android/server/pm/PackageInstallerService;->access$100(Lcom/android/server/pm/PackageInstallerService;)V
 PLcom/android/server/pm/PackageInstallerService;->access$1000(Lcom/android/server/pm/PackageInstallerService;)Lcom/android/server/pm/PackageManagerService;
@@ -23688,10 +24540,10 @@
 HSPLcom/android/server/pm/PackageInstallerService;->getSession(I)Lcom/android/server/pm/PackageInstallerSession;
 HPLcom/android/server/pm/PackageInstallerService;->getSessionCount(Landroid/util/SparseArray;I)I
 HPLcom/android/server/pm/PackageInstallerService;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
-PLcom/android/server/pm/PackageInstallerService;->getStagedSessions()Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/PackageInstallerService;->getStagedSessions()Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/pm/PackageInstallerService;->getTmpSessionDir(Ljava/lang/String;)Ljava/io/File;
 PLcom/android/server/pm/PackageInstallerService;->installExistingPackage(Ljava/lang/String;IILandroid/content/IntentSender;ILjava/util/List;)V
-PLcom/android/server/pm/PackageInstallerService;->isCallingUidOwner(Lcom/android/server/pm/PackageInstallerSession;)Z
+HPLcom/android/server/pm/PackageInstallerService;->isCallingUidOwner(Lcom/android/server/pm/PackageInstallerSession;)Z
 HSPLcom/android/server/pm/PackageInstallerService;->isStageName(Ljava/lang/String;)Z
 PLcom/android/server/pm/PackageInstallerService;->lambda$registerCallback$0(II)Z
 HSPLcom/android/server/pm/PackageInstallerService;->newArraySet([Ljava/lang/Object;)Landroid/util/ArraySet;
@@ -23712,7 +24564,7 @@
 PLcom/android/server/pm/PackageInstallerService;->unregisterCallback(Landroid/content/pm/IPackageInstallerCallback;)V
 PLcom/android/server/pm/PackageInstallerService;->updateSessionAppIcon(ILandroid/graphics/Bitmap;)V
 HPLcom/android/server/pm/PackageInstallerService;->updateSessionAppLabel(ILjava/lang/String;)V
-PLcom/android/server/pm/PackageInstallerService;->writeSessionsAsync()V
+HPLcom/android/server/pm/PackageInstallerService;->writeSessionsAsync()V
 HSPLcom/android/server/pm/PackageInstallerService;->writeSessionsLocked()V
 HSPLcom/android/server/pm/PackageInstallerSession$1;-><init>()V
 HSPLcom/android/server/pm/PackageInstallerSession$1;->accept(Ljava/io/File;)Z
@@ -23736,6 +24588,7 @@
 PLcom/android/server/pm/PackageInstallerSession$ChildStatusIntentReceiver;->statusUpdate(Landroid/content/Intent;)V
 HSPLcom/android/server/pm/PackageInstallerSession;-><clinit>()V
 HPLcom/android/server/pm/PackageInstallerSession;-><init>(Lcom/android/server/pm/PackageInstallerService$InternalCallback;Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSessionProvider;Landroid/os/Looper;Lcom/android/server/pm/StagingManager;IIILcom/android/server/pm/InstallSource;Landroid/content/pm/PackageInstaller$SessionParams;JLjava/io/File;Ljava/lang/String;ZZZ[IIZZZILjava/lang/String;)V
+HPLcom/android/server/pm/PackageInstallerSession;-><init>(Lcom/android/server/pm/PackageInstallerService$InternalCallback;Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSessionProvider;Landroid/os/Looper;Lcom/android/server/pm/StagingManager;IIILcom/android/server/pm/InstallSource;Landroid/content/pm/PackageInstaller$SessionParams;JLjava/io/File;Ljava/lang/String;[Landroid/content/pm/InstallationFile;ZZZ[IIZZZILjava/lang/String;)V
 HSPLcom/android/server/pm/PackageInstallerSession;-><init>(Lcom/android/server/pm/PackageInstallerService$InternalCallback;Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSessionProvider;Landroid/os/Looper;Lcom/android/server/pm/StagingManager;IIILcom/android/server/pm/InstallSource;Landroid/content/pm/PackageInstaller$SessionParams;JLjava/io/File;Ljava/lang/String;[Lcom/android/server/pm/PackageInstallerSession$FileInfo;ZZZ[IIZZZILjava/lang/String;)V
 PLcom/android/server/pm/PackageInstallerSession;->abandon()V
 PLcom/android/server/pm/PackageInstallerSession;->access$000(Lcom/android/server/pm/PackageInstallerSession;)V
@@ -23784,7 +24637,7 @@
 PLcom/android/server/pm/PackageInstallerSession;->extractNativeLibraries(Ljava/io/File;Ljava/lang/String;Z)V
 HPLcom/android/server/pm/PackageInstallerSession;->filterFiles(Ljava/io/File;[Ljava/lang/String;Ljava/io/FileFilter;)Ljava/util/ArrayList;
 HSPLcom/android/server/pm/PackageInstallerSession;->filterFiles(Ljava/io/File;[Ljava/lang/String;Ljava/io/FileFilter;)[Ljava/io/File;
-PLcom/android/server/pm/PackageInstallerSession;->generateInfo()Landroid/content/pm/PackageInstaller$SessionInfo;
+HPLcom/android/server/pm/PackageInstallerSession;->generateInfo()Landroid/content/pm/PackageInstaller$SessionInfo;
 HPLcom/android/server/pm/PackageInstallerSession;->generateInfo(Z)Landroid/content/pm/PackageInstaller$SessionInfo;
 PLcom/android/server/pm/PackageInstallerSession;->getAddedApksLocked()Ljava/util/List;
 HSPLcom/android/server/pm/PackageInstallerSession;->getAddedApksLocked()[Ljava/io/File;
@@ -23794,7 +24647,7 @@
 PLcom/android/server/pm/PackageInstallerSession;->getInstallSource()Lcom/android/server/pm/InstallSource;
 PLcom/android/server/pm/PackageInstallerSession;->getInstallerPackageName()Ljava/lang/String;
 HPLcom/android/server/pm/PackageInstallerSession;->getInstallerUid()I
-PLcom/android/server/pm/PackageInstallerSession;->getNames()[Ljava/lang/String;
+HPLcom/android/server/pm/PackageInstallerSession;->getNames()[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageInstallerSession;->getNamesLocked()[Ljava/lang/String;
 HPLcom/android/server/pm/PackageInstallerSession;->getPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageInstallerSession;->getParentSessionId()I
@@ -23833,7 +24686,7 @@
 HSPLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$2(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
 HSPLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$3(Ljava/io/FileFilter;Ljava/io/File;)Z
 HSPLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$4(I)[Ljava/io/File;
-PLcom/android/server/pm/PackageInstallerSession;->lambda$readFromXml$10(I)[Ljava/lang/String;
+HSPLcom/android/server/pm/PackageInstallerSession;->lambda$readFromXml$10(I)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageInstallerSession;->lambda$readFromXml$11(Ljava/lang/Integer;)I
 PLcom/android/server/pm/PackageInstallerSession;->linkFiles(Ljava/util/List;Ljava/io/File;Ljava/io/File;)V
 HPLcom/android/server/pm/PackageInstallerSession;->makeSessionActiveLocked()Lcom/android/server/pm/PackageManagerService$ActiveInstallSession;
@@ -23868,6 +24721,7 @@
 PLcom/android/server/pm/PackageInstallerSession;->streamAndValidateLocked()Z
 PLcom/android/server/pm/PackageInstallerSession;->streamValidateAndCommit()Z
 HSPLcom/android/server/pm/PackageInstallerSession;->validateApexInstallLocked()V
+HPLcom/android/server/pm/PackageInstallerSession;->validateApkInstallLocked()V
 HPLcom/android/server/pm/PackageInstallerSession;->validateApkInstallLocked(Landroid/content/pm/PackageInfo;)V
 PLcom/android/server/pm/PackageInstallerSession;->write(Ljava/lang/String;JJLandroid/os/ParcelFileDescriptor;)V
 HSPLcom/android/server/pm/PackageInstallerSession;->write(Lorg/xmlpull/v1/XmlSerializer;Ljava/io/File;)V
@@ -23888,7 +24742,9 @@
 PLcom/android/server/pm/PackageList;->onPackageChanged(Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageList;->onPackageRemoved(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerException;-><init>(ILjava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerException;-><init>(ILjava/lang/String;Ljava/lang/Throwable;)V
 HSPLcom/android/server/pm/PackageManagerException;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerException;->from(Landroid/content/pm/PackageParser$PackageParserException;)Lcom/android/server/pm/PackageManagerException;
 HSPLcom/android/server/pm/PackageManagerService$1;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 PLcom/android/server/pm/PackageManagerService$1;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
 PLcom/android/server/pm/PackageManagerService$2;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;)V
@@ -23913,10 +24769,10 @@
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getUser()Landroid/os/UserHandle;
 PLcom/android/server/pm/PackageManagerService$CommitRequest;-><init>(Ljava/util/Map;[I)V
 PLcom/android/server/pm/PackageManagerService$CommitRequest;-><init>(Ljava/util/Map;[ILcom/android/server/pm/PackageManagerService$1;)V
-PLcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;-><init>()V
-PLcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;-><init>(Lcom/android/server/pm/PackageManagerService$1;)V
-PLcom/android/server/pm/PackageManagerService$DeletePackageAction;-><init>(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ILandroid/os/UserHandle;)V
-PLcom/android/server/pm/PackageManagerService$DeletePackageAction;-><init>(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ILandroid/os/UserHandle;Lcom/android/server/pm/PackageManagerService$1;)V
+HPLcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;-><init>()V
+HPLcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;-><init>(Lcom/android/server/pm/PackageManagerService$1;)V
+HSPLcom/android/server/pm/PackageManagerService$DeletePackageAction;-><init>(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ILandroid/os/UserHandle;)V
+HSPLcom/android/server/pm/PackageManagerService$DeletePackageAction;-><init>(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ILandroid/os/UserHandle;Lcom/android/server/pm/PackageManagerService$1;)V
 PLcom/android/server/pm/PackageManagerService$FileInstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$InstallParams;)V
 HSPLcom/android/server/pm/PackageManagerService$FileInstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService$FileInstallArgs;->cleanUp()Z
@@ -23966,6 +24822,7 @@
 PLcom/android/server/pm/PackageManagerService$InstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService$InstallParams;)V
 HSPLcom/android/server/pm/PackageManagerService$InstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService$OriginInfo;Lcom/android/server/pm/PackageManagerService$MoveInfo;Landroid/content/pm/IPackageInstallObserver2;ILcom/android/server/pm/InstallSource;Ljava/lang/String;Landroid/os/UserHandle;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILandroid/content/pm/PackageParser$SigningDetails;ILcom/android/server/pm/PackageManagerService$MultiPackageInstallParams;)V
 HSPLcom/android/server/pm/PackageManagerService$InstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService$OriginInfo;Lcom/android/server/pm/PackageManagerService$MoveInfo;Landroid/content/pm/IPackageInstallObserver2;ILcom/android/server/pm/InstallSource;Ljava/lang/String;Landroid/os/UserHandle;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILandroid/content/pm/PackageParser$SigningDetails;IZLcom/android/server/pm/PackageManagerService$MultiPackageInstallParams;)V
+HSPLcom/android/server/pm/PackageManagerService$InstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService$OriginInfo;Lcom/android/server/pm/PackageManagerService$MoveInfo;Landroid/content/pm/IPackageInstallObserver2;ILcom/android/server/pm/InstallSource;Ljava/lang/String;Landroid/os/UserHandle;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILandroid/content/pm/PackageParser$SigningDetails;IZLcom/android/server/pm/PackageManagerService$MultiPackageInstallParams;I)V
 PLcom/android/server/pm/PackageManagerService$InstallArgs;->getUser()Landroid/os/UserHandle;
 PLcom/android/server/pm/PackageManagerService$InstallParams$1;-><init>(Lcom/android/server/pm/PackageManagerService$InstallParams;I)V
 PLcom/android/server/pm/PackageManagerService$InstallParams$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -24005,14 +24862,15 @@
 HSPLcom/android/server/pm/PackageManagerService$OriginInfo;->fromNothing()Lcom/android/server/pm/PackageManagerService$OriginInfo;
 PLcom/android/server/pm/PackageManagerService$OriginInfo;->fromStagedFile(Ljava/io/File;)Lcom/android/server/pm/PackageManagerService$OriginInfo;
 PLcom/android/server/pm/PackageManagerService$PackageFreezer;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-HPLcom/android/server/pm/PackageManagerService$PackageFreezer;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ILjava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerService$PackageFreezer;->close()V
+HSPLcom/android/server/pm/PackageManagerService$PackageFreezer;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ILjava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService$PackageFreezer;->close()V
 HPLcom/android/server/pm/PackageManagerService$PackageFreezer;->finalize()V
 HSPLcom/android/server/pm/PackageManagerService$PackageHandler;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/Looper;)V
 HPLcom/android/server/pm/PackageManagerService$PackageHandler;->doHandleMessage(Landroid/os/Message;)V
 HPLcom/android/server/pm/PackageManagerService$PackageHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/pm/PackageManagerService$PackageInstalledInfo;-><init>()V
 PLcom/android/server/pm/PackageManagerService$PackageInstalledInfo;->setError(ILjava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService$PackageInstalledInfo;->setError(Ljava/lang/String;Lcom/android/server/pm/PackageManagerException;)V
 PLcom/android/server/pm/PackageManagerService$PackageInstalledInfo;->setReturnCode(I)V
 PLcom/android/server/pm/PackageManagerService$PackageInstalledInfo;->setReturnMessage(Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;-><init>(Lcom/android/server/pm/PackageManagerService;)V
@@ -24071,7 +24929,7 @@
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasInstantApplicationMetadata(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasSignatureCapability(III)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isApexPackage(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isCallerInstallerOfRecord(Landroid/content/pm/parsing/AndroidPackage;I)Z
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isCallerInstallerOfRecord(Landroid/content/pm/parsing/AndroidPackage;I)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isDataRestoreSafe(Landroid/content/pm/Signature;Ljava/lang/String;)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isDataRestoreSafe([BLjava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isEnabledAndMatches(Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;II)Z
@@ -24103,14 +24961,14 @@
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setExternalSourcesPolicy(Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;)V
 HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setIntegrityVerificationResult(II)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setKeepUninstalledPackages(Ljava/util/List;)V
-HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setRuntimePermissionsFingerPrint(Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setRuntimePermissionsFingerPrint(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->userNeedsBadging(I)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->wasPackageEverLaunched(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->writePermissionSettings([IZ)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->writeSettings(Z)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$1;)V
-HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getInstallerForPackage(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getInstallerForPackage(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getLocationFlags(Ljava/lang/String;)I
 PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getModuleMetadataPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getNamesForUids([I)[Ljava/lang/String;
@@ -24119,12 +24977,12 @@
 HPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->isAudioPlaybackCaptureAllowed([Ljava/lang/String;)[Z
 HSPLcom/android/server/pm/PackageManagerService$PackageParserCallback;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageManagerService$PackageParserCallback;->hasFeature(Ljava/lang/String;)Z
-PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;-><init>(Lcom/android/server/pm/PackageSender;)V
+HSPLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;-><init>(Lcom/android/server/pm/PackageSender;)V
 HPLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->populateUsers([ILcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendPackageRemovedBroadcastInternal(Z)V
-PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendPackageRemovedBroadcasts(Z)V
-PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendSystemPackageAppearedBroadcasts()V
-PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendSystemPackageUpdatedBroadcasts()V
+HSPLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendPackageRemovedBroadcastInternal(Z)V
+HSPLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendPackageRemovedBroadcasts(Z)V
+HSPLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendSystemPackageAppearedBroadcasts()V
+HSPLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendSystemPackageUpdatedBroadcasts()V
 PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendSystemPackageUpdatedBroadcastsInternal()V
 HSPLcom/android/server/pm/PackageManagerService$PendingPackageBroadcasts;-><init>()V
 HPLcom/android/server/pm/PackageManagerService$PendingPackageBroadcasts;->clear()V
@@ -24142,6 +25000,7 @@
 PLcom/android/server/pm/PackageManagerService$PrepareFailure;->conflictsWithExistingPermission(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$PrepareFailure;
 PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)V
 PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$1;)V
+PLcom/android/server/pm/PackageManagerService$ReconcileFailure;-><init>(ILjava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
 HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/pm/PackageManagerService$1;)V
 HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
@@ -24155,7 +25014,9 @@
 HSPLcom/android/server/pm/PackageManagerService$ScanResult;-><init>(Lcom/android/server/pm/PackageManagerService$ScanRequest;ZLcom/android/server/pm/PackageSetting;Ljava/util/List;ZLandroid/content/pm/SharedLibraryInfo;Ljava/util/List;)V
 HSPLcom/android/server/pm/PackageManagerService$SystemPartition;-><init>(Ljava/io/File;IZ)V
 HSPLcom/android/server/pm/PackageManagerService$SystemPartition;-><init>(Ljava/io/File;IZLcom/android/server/pm/PackageManagerService$1;)V
+PLcom/android/server/pm/PackageManagerService$SystemPartition;->containsApp(Ljava/io/File;)Z
 PLcom/android/server/pm/PackageManagerService$SystemPartition;->containsPath(Ljava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerService$SystemPartition;->containsPrivApp(Ljava/io/File;)Z
 PLcom/android/server/pm/PackageManagerService$SystemPartition;->containsPrivPath(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService$SystemPartition;->shouldScanPrivApps(I)Z
 HSPLcom/android/server/pm/PackageManagerService$SystemPartition;->toCanonical(Ljava/io/File;)Ljava/io/File;
@@ -24185,6 +25046,7 @@
 PLcom/android/server/pm/PackageManagerService;->access$3200(Lcom/android/server/pm/PackageManagerService;)Z
 PLcom/android/server/pm/PackageManagerService;->access$3200(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/PackageInfoLite;Ljava/util/List;Lcom/android/server/pm/PackageVerificationState;)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$3300(Lcom/android/server/pm/PackageManagerService;III)Z
+PLcom/android/server/pm/PackageManagerService;->access$3300(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/PackageInfoLite;III)Z
 PLcom/android/server/pm/PackageManagerService;->access$3300(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Ljava/util/List;)Landroid/content/ComponentName;
 PLcom/android/server/pm/PackageManagerService;->access$3400(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$3500(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/PackageInfoLite;Ljava/util/List;Lcom/android/server/pm/PackageVerificationState;)Ljava/util/List;
@@ -24200,8 +25062,9 @@
 HSPLcom/android/server/pm/PackageManagerService;->access$4800(Lcom/android/server/pm/PackageManagerService;)Landroid/util/SparseBooleanArray;
 PLcom/android/server/pm/PackageManagerService;->access$4800(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/InstantAppRegistry;
 PLcom/android/server/pm/PackageManagerService;->access$500(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;)V
+PLcom/android/server/pm/PackageManagerService;->access$500(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;I)V
 HSPLcom/android/server/pm/PackageManagerService;->access$5000(Lcom/android/server/pm/PackageManagerService;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/pm/PackageManagerService;->access$5100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;IILjava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->access$5100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;IILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->access$5600(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
 PLcom/android/server/pm/PackageManagerService;->access$5700(Lcom/android/server/pm/PackageManagerService;III)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$5800(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
@@ -24339,10 +25202,12 @@
 PLcom/android/server/pm/PackageManagerService;->clearApplicationUserDataLIF(Ljava/lang/String;I)Z
 HPLcom/android/server/pm/PackageManagerService;->clearCrossProfileIntentFilters(ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->clearDefaultBrowserIfNeeded(Ljava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerService;->clearDefaultBrowserIfNeededForUser(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService;->clearDefaultBrowserIfNeededForUser(Ljava/lang/String;I)V
+HPLcom/android/server/pm/PackageManagerService;->clearIntentFilterVerificationsLPw(I)V
 PLcom/android/server/pm/PackageManagerService;->clearIntentFilterVerificationsLPw(Ljava/lang/String;I)V
-HPLcom/android/server/pm/PackageManagerService;->clearPackagePreferredActivitiesLPw(Ljava/lang/String;Landroid/util/SparseBooleanArray;I)V
-PLcom/android/server/pm/PackageManagerService;->clearPackageStateForUserLIF(Lcom/android/server/pm/PackageSetting;ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;I)V
+PLcom/android/server/pm/PackageManagerService;->clearPackagePreferredActivities(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->clearPackagePreferredActivitiesLPw(Ljava/lang/String;Landroid/util/SparseBooleanArray;I)V
+HSPLcom/android/server/pm/PackageManagerService;->clearPackageStateForUserLIF(Lcom/android/server/pm/PackageSetting;ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;I)V
 HSPLcom/android/server/pm/PackageManagerService;->collectAbsoluteCodePaths()Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->collectCertificatesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/ParsedPackage;ZZ)V
 HSPLcom/android/server/pm/PackageManagerService;->collectSharedLibraryInfos(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
@@ -24365,18 +25230,18 @@
 PLcom/android/server/pm/PackageManagerService;->deleteInstalledPackageLIF(Lcom/android/server/pm/PackageSetting;ZI[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Z)V
 HPLcom/android/server/pm/PackageManagerService;->deleteOatArtifactsOfPackage(Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->deletePackageAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDeleteObserver;II)V
-PLcom/android/server/pm/PackageManagerService;->deletePackageLIF(Ljava/lang/String;Landroid/os/UserHandle;Z[IILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ZLandroid/content/pm/parsing/ParsedPackage;)Z
-HPLcom/android/server/pm/PackageManagerService;->deletePackageVersioned(Landroid/content/pm/VersionedPackage;Landroid/content/pm/IPackageDeleteObserver2;II)V
-HPLcom/android/server/pm/PackageManagerService;->deletePackageX(Ljava/lang/String;JII)I
+HSPLcom/android/server/pm/PackageManagerService;->deletePackageLIF(Ljava/lang/String;Landroid/os/UserHandle;Z[IILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ZLandroid/content/pm/parsing/ParsedPackage;)Z
+HSPLcom/android/server/pm/PackageManagerService;->deletePackageVersioned(Landroid/content/pm/VersionedPackage;Landroid/content/pm/IPackageDeleteObserver2;II)V
+HSPLcom/android/server/pm/PackageManagerService;->deletePackageX(Ljava/lang/String;JII)I
 PLcom/android/server/pm/PackageManagerService;->deleteSystemPackageLIF(Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Lcom/android/server/pm/PackageSetting;[IILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Z)V
 HSPLcom/android/server/pm/PackageManagerService;->deleteTempPackageFiles()V
-PLcom/android/server/pm/PackageManagerService;->destroyAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
-HPLcom/android/server/pm/PackageManagerService;->destroyAppDataLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
-PLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLIF(Landroid/content/pm/parsing/AndroidPackage;)V
-PLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLeafLIF(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->destroyAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->destroyAppDataLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLIF(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLeafLIF(Landroid/content/pm/parsing/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->disableSkuSpecificApps()V
 PLcom/android/server/pm/PackageManagerService;->disableSystemPackageLPw(Landroid/content/pm/parsing/AndroidPackage;)Z
-HPLcom/android/server/pm/PackageManagerService;->doSendBroadcast(Landroid/app/IActivityManager;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[IZ)V
+HSPLcom/android/server/pm/PackageManagerService;->doSendBroadcast(Landroid/app/IActivityManager;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[IZ)V
 HSPLcom/android/server/pm/PackageManagerService;->dropNonSystemPackages([Ljava/lang/String;)[Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/pm/PackageManagerService;->dumpCompilerStatsLPr(Ljava/io/PrintWriter;Ljava/lang/String;)V
@@ -24392,10 +25257,10 @@
 HSPLcom/android/server/pm/PackageManagerService;->enforceSystemOrRoot(Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->ensureSystemPackageName(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->ensureSystemPackageNames([Ljava/lang/String;)[Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->executeDeletePackageLIF(Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Ljava/lang/String;Z[IZLandroid/content/pm/parsing/ParsedPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->executeDeletePackageLIF(Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Ljava/lang/String;Z[IZLandroid/content/pm/parsing/ParsedPackage;)V
 HPLcom/android/server/pm/PackageManagerService;->executePostCommitSteps(Lcom/android/server/pm/PackageManagerService$CommitRequest;)V
 HSPLcom/android/server/pm/PackageManagerService;->executeSharedLibrariesUpdateLPr(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
-PLcom/android/server/pm/PackageManagerService;->extendVerificationTimeout(IIJ)V
+HPLcom/android/server/pm/PackageManagerService;->extendVerificationTimeout(IIJ)V
 PLcom/android/server/pm/PackageManagerService;->extrasForInstallResult(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)Landroid/os/Bundle;
 HPLcom/android/server/pm/PackageManagerService;->filterCandidatesWithDomainPreferredActivitiesLPr(Landroid/content/Intent;ILjava/util/List;Lcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;I)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->filterIfNotSystemUser(Ljava/util/List;I)Ljava/util/List;
@@ -24413,9 +25278,9 @@
 HSPLcom/android/server/pm/PackageManagerService;->forEachPackage(Ljava/util/function/Consumer;)V
 HPLcom/android/server/pm/PackageManagerService;->freeStorage(Ljava/lang/String;JI)V
 HPLcom/android/server/pm/PackageManagerService;->freeStorageAndNotify(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
-PLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;ILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
+HSPLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;ILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
 PLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
-PLcom/android/server/pm/PackageManagerService;->freezePackageForDelete(Ljava/lang/String;IILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
+HSPLcom/android/server/pm/PackageManagerService;->freezePackageForDelete(Ljava/lang/String;IILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
 PLcom/android/server/pm/PackageManagerService;->freezePackageForInstall(Ljava/lang/String;IILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
 PLcom/android/server/pm/PackageManagerService;->freezePackageForInstall(Ljava/lang/String;ILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
 HSPLcom/android/server/pm/PackageManagerService;->generateApplicationInfoFromSettingsLPw(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
@@ -24433,7 +25298,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->getApplicationInfoInternal(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
 PLcom/android/server/pm/PackageManagerService;->getArtManager()Landroid/content/pm/dex/IArtManager;
 HSPLcom/android/server/pm/PackageManagerService;->getAttentionServicePackageName()Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->getBlockUninstallForUser(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/PackageManagerService;->getBlockUninstallForUser(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerService;->getBlockUninstallForUsers(Ljava/lang/String;[I)[I
 HPLcom/android/server/pm/PackageManagerService;->getChangedPackages(II)Landroid/content/pm/ChangedPackages;
 PLcom/android/server/pm/PackageManagerService;->getCompilerPackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
@@ -24444,7 +25309,7 @@
 PLcom/android/server/pm/PackageManagerService;->getDefaultAppsBackup(I)[B
 HSPLcom/android/server/pm/PackageManagerService;->getDefaultDisplayMetrics(Landroid/hardware/display/DisplayManager;Landroid/util/DisplayMetrics;)V
 HSPLcom/android/server/pm/PackageManagerService;->getDefaultHomeActivity(I)Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService;->getDefaultTextClassifierPackageName()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getDefaultTextClassifierPackageName()Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService;->getDefaultVerificationResponse(Landroid/os/UserHandle;)I
 HSPLcom/android/server/pm/PackageManagerService;->getDeviceConfiguratorPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getDexManager()Lcom/android/server/pm/dex/DexManager;
@@ -24463,6 +25328,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/pm/PackageManagerService;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService;->getInstantAppAndroidId(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getInstantAppInstallerComponent()Landroid/content/ComponentName;
 HSPLcom/android/server/pm/PackageManagerService;->getInstantAppInstallerLPr()Landroid/content/pm/ActivityInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getInstantAppPackageName(I)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getInstantAppResolverLPr()Landroid/util/Pair;
@@ -24519,7 +25385,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->getRequiredSharedLibraryLPr(Ljava/lang/String;I)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getRequiredUninstallerLPr()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getRetailDemoPackageName()Ljava/lang/String;
-HSPLcom/android/server/pm/PackageManagerService;->getRuntimePermissionsVersion(I)I
+PLcom/android/server/pm/PackageManagerService;->getRuntimePermissionsVersion(I)I
 HSPLcom/android/server/pm/PackageManagerService;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/Settings$VersionInfo;
@@ -24547,6 +25413,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->getWellbeingPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/pm/PackageManagerService;->handlePackagePostInstall(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;)V
+HPLcom/android/server/pm/PackageManagerService;->handlePackagePostInstall(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;I)V
 PLcom/android/server/pm/PackageManagerService;->hasDomainURLs(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->hasNonNegativePriority(Ljava/util/List;)Z
 HPLcom/android/server/pm/PackageManagerService;->hasString(Ljava/util/List;Ljava/util/List;)Z
@@ -24568,6 +25435,8 @@
 PLcom/android/server/pm/PackageManagerService;->isCallerVerifier(I)Z
 PLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
+PLcom/android/server/pm/PackageManagerService;->isComponentVisibleToInstantApp(Landroid/content/ComponentName;)Z
+PLcom/android/server/pm/PackageManagerService;->isComponentVisibleToInstantApp(Landroid/content/ComponentName;I)Z
 HSPLcom/android/server/pm/PackageManagerService;->isDeviceUpgrading()Z
 HSPLcom/android/server/pm/PackageManagerService;->isExternal(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isExternal(Lcom/android/server/pm/PackageSetting;)Z
@@ -24581,9 +25450,9 @@
 PLcom/android/server/pm/PackageManagerService;->isOdmApp(Landroid/content/pm/parsing/AndroidPackage;)Z
 PLcom/android/server/pm/PackageManagerService;->isOemApp(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isOnlyCoreApps()Z
-PLcom/android/server/pm/PackageManagerService;->isOrphaned(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isOrphaned(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isPackageAvailable(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdmin(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdmin(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdminOnAnyUser(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isPackageRenamed(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
@@ -24596,19 +25465,20 @@
 HSPLcom/android/server/pm/PackageManagerService;->isSafeMode()Z
 PLcom/android/server/pm/PackageManagerService;->isStorageLow()Z
 HSPLcom/android/server/pm/PackageManagerService;->isSystemApp(Landroid/content/pm/parsing/AndroidPackage;)Z
-PLcom/android/server/pm/PackageManagerService;->isSystemApp(Lcom/android/server/pm/PackageSetting;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isSystemApp(Lcom/android/server/pm/PackageSetting;)Z
 HPLcom/android/server/pm/PackageManagerService;->isUidPrivileged(I)Z
-PLcom/android/server/pm/PackageManagerService;->isUpdatedSystemApp(Lcom/android/server/pm/PackageSetting;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isUpdatedSystemApp(Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isUserEnabled(I)Z
-HPLcom/android/server/pm/PackageManagerService;->isUserRestricted(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isUserRestricted(ILjava/lang/String;)Z
 PLcom/android/server/pm/PackageManagerService;->isVendorApp(Landroid/content/pm/parsing/AndroidPackage;)Z
 PLcom/android/server/pm/PackageManagerService;->isVerificationEnabled(III)Z
-HPLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->isVerificationEnabled(Landroid/content/pm/PackageInfoLite;III)Z
+HSPLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$commitPackageSettings$15$PackageManagerService(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$deleteApplicationCacheFilesAsUser$28$PackageManagerService(Landroid/content/pm/parsing/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$deleteApplicationCacheFilesAsUser$29$PackageManagerService(Landroid/content/pm/parsing/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->lambda$deletePackageVersioned$26$PackageManagerService(Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$deletePackageVersioned$26$PackageManagerService(Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$deletePackageVersioned$27$PackageManagerService(Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$executeSharedLibrariesUpdateLPr$14(Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$freeStorageAndNotify$10$PackageManagerService(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
@@ -24632,19 +25502,19 @@
 PLcom/android/server/pm/PackageManagerService;->lambda$removeUnusedPackagesLPw$43$PackageManagerService(Ljava/lang/String;I)V
 HPLcom/android/server/pm/PackageManagerService;->lambda$sendMyPackageSuspendedOrUnsuspended$20$PackageManagerService(ZI[Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$sendPackageAddedForNewUsers$18$PackageManagerService([ILjava/lang/String;Z)V
-HPLcom/android/server/pm/PackageManagerService;->lambda$sendPackageBroadcast$16$PackageManagerService([ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$sendPackageBroadcast$16$PackageManagerService([ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$static$17(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I
 HSPLcom/android/server/pm/PackageManagerService;->lambda$systemReady$36$PackageManagerService(I)V
-PLcom/android/server/pm/PackageManagerService;->lambda$systemReady$37$PackageManagerService(I)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$systemReady$37$PackageManagerService(I)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$systemReady$38$PackageManagerService(I)V
 PLcom/android/server/pm/PackageManagerService;->lambda$updateDefaultHomeNotLocked$33$PackageManagerService(ILjava/lang/Boolean;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$updateDefaultHomeNotLocked$34$PackageManagerService(ILjava/lang/Boolean;)V
 HSPLcom/android/server/pm/PackageManagerService;->logAppProcessStartIfNeeded(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->main(Landroid/content/Context;Lcom/android/server/pm/Installer;ZZ)Lcom/android/server/pm/PackageManagerService;
-PLcom/android/server/pm/PackageManagerService;->markPackageUninstalledForUserLPw(Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;)V
+HSPLcom/android/server/pm/PackageManagerService;->markPackageUninstalledForUserLPw(Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;)V
 HPLcom/android/server/pm/PackageManagerService;->matchComponentForVerifier(Ljava/lang/String;Ljava/util/List;)Landroid/content/ComponentName;
 PLcom/android/server/pm/PackageManagerService;->matchVerifiers(Landroid/content/pm/PackageInfoLite;Ljava/util/List;Lcom/android/server/pm/PackageVerificationState;)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService;->mayDeletePackageLocked(Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;ILandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$DeletePackageAction;
+HSPLcom/android/server/pm/PackageManagerService;->mayDeletePackageLocked(Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;ILandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$DeletePackageAction;
 PLcom/android/server/pm/PackageManagerService;->maybeAddInstantAppInstaller(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->maybeAddInstantAppInstaller(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;IIZZ)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->maybeClearProfilesForUpgradesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/AndroidPackage;)V
@@ -24661,7 +25531,7 @@
 HPLcom/android/server/pm/PackageManagerService;->notifyPackageRemoved(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->notifyPackageUse(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->notifyPackageUseLocked(Ljava/lang/String;I)V
-HPLcom/android/server/pm/PackageManagerService;->notifyPackagesReplacedReceived([Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->notifyPackagesReplacedReceived([Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->onNewUserCreated(I)V
 PLcom/android/server/pm/PackageManagerService;->onRestoreComplete(ILandroid/content/Context;Landroid/content/IntentSender;)V
 HSPLcom/android/server/pm/PackageManagerService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
@@ -24669,7 +25539,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->optimisticallyRegisterAppId(Lcom/android/server/pm/PackageManagerService$ScanResult;)Z
 HPLcom/android/server/pm/PackageManagerService;->packageIsBrowser(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerService;->performBackupManagerRestore(IILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)Z
-PLcom/android/server/pm/PackageManagerService;->performDexOpt(Lcom/android/server/pm/dex/DexoptOptions;)Z
+HPLcom/android/server/pm/PackageManagerService;->performDexOpt(Lcom/android/server/pm/dex/DexoptOptions;)Z
 HSPLcom/android/server/pm/PackageManagerService;->performDexOptInternal(Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageManagerService;->performDexOptInternalWithDependenciesLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/dex/DexoptOptions;)I
 PLcom/android/server/pm/PackageManagerService;->performDexOptMode(Ljava/lang/String;ZLjava/lang/String;ZZLjava/lang/String;)Z
@@ -24715,7 +25585,7 @@
 PLcom/android/server/pm/PackageManagerService;->registerMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
 HSPLcom/android/server/pm/PackageManagerService;->removeCodePathLI(Ljava/io/File;)V
 HSPLcom/android/server/pm/PackageManagerService;->removeDexFiles(Ljava/util/List;[Ljava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->removeKeystoreDataIfNeeded(Landroid/os/UserManagerInternal;II)V
+HSPLcom/android/server/pm/PackageManagerService;->removeKeystoreDataIfNeeded(Landroid/os/UserManagerInternal;II)V
 PLcom/android/server/pm/PackageManagerService;->removeNativeBinariesLI(Lcom/android/server/pm/PackageSetting;)V
 HPLcom/android/server/pm/PackageManagerService;->removePackageDataLIF(Lcom/android/server/pm/PackageSetting;[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;IZ)V
 HSPLcom/android/server/pm/PackageManagerService;->removePackageLI(Landroid/content/pm/parsing/AndroidPackage;Z)V
@@ -24734,7 +25604,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->resolveInternalPackageNameLPr(Ljava/lang/String;J)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->resolveServiceInternal(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerService;->resolveUserIds(I)[I
+HSPLcom/android/server/pm/PackageManagerService;->resolveUserIds(I)[I
 PLcom/android/server/pm/PackageManagerService;->restoreAndPostInstall(ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PostInstallData;)V
 HSPLcom/android/server/pm/PackageManagerService;->scanDirLI(Ljava/io/File;IIJ)V
 HSPLcom/android/server/pm/PackageManagerService;->scanDirLI(Ljava/io/File;IIJLandroid/content/pm/PackageParser;Ljava/util/concurrent/ExecutorService;)V
@@ -24748,15 +25618,16 @@
 PLcom/android/server/pm/PackageManagerService;->scheduleDeferredNoKillInstallObserver(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Landroid/content/pm/IPackageInstallObserver2;)V
 PLcom/android/server/pm/PackageManagerService;->scheduleDeferredNoKillPostDelete(Lcom/android/server/pm/PackageManagerService$InstallArgs;)V
 PLcom/android/server/pm/PackageManagerService;->scheduleWritePackageListLocked(I)V
-HPLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictionsLocked(I)V
-PLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictionsLocked(Landroid/os/UserHandle;)V
+HSPLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictionsLocked(I)V
+HSPLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictionsLocked(Landroid/os/UserHandle;)V
 HSPLcom/android/server/pm/PackageManagerService;->scheduleWriteSettingsLocked()V
 PLcom/android/server/pm/PackageManagerService;->sendBootCompletedBroadcastToSystemApp(Ljava/lang/String;ZI)V
+PLcom/android/server/pm/PackageManagerService;->sendDistractingPackagesChanged([Ljava/lang/String;[III)V
 PLcom/android/server/pm/PackageManagerService;->sendFirstLaunchBroadcast(Ljava/lang/String;Ljava/lang/String;[I[I)V
 PLcom/android/server/pm/PackageManagerService;->sendMyPackageSuspendedOrUnsuspended([Ljava/lang/String;ZI)V
 PLcom/android/server/pm/PackageManagerService;->sendPackageAddedForNewUsers(Ljava/lang/String;ZZI[I[I)V
 PLcom/android/server/pm/PackageManagerService;->sendPackageAddedForUser(Ljava/lang/String;Lcom/android/server/pm/PackageSetting;I)V
-HPLcom/android/server/pm/PackageManagerService;->sendPackageBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I[I)V
+HSPLcom/android/server/pm/PackageManagerService;->sendPackageBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I[I)V
 HPLcom/android/server/pm/PackageManagerService;->sendPackageChangedBroadcast(Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->sendPackagesSuspendedForUser([Ljava/lang/String;[IIZ)V
 HPLcom/android/server/pm/PackageManagerService;->sendSessionCommitBroadcast(Landroid/content/pm/PackageInstaller$SessionInfo;I)V
@@ -24789,6 +25660,7 @@
 HPLcom/android/server/pm/PackageManagerService;->unsuspendForSuspendingPackage(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->updateAllSharedLibrariesLocked(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)Ljava/util/ArrayList;
 HPLcom/android/server/pm/PackageManagerService;->updateDefaultHomeNotLocked(I)Z
+PLcom/android/server/pm/PackageManagerService;->updateDefaultHomeNotLocked(Landroid/util/SparseBooleanArray;)V
 HSPLcom/android/server/pm/PackageManagerService;->updateFlags(II)I
 HSPLcom/android/server/pm/PackageManagerService;->updateFlagsForApplication(II)I
 HSPLcom/android/server/pm/PackageManagerService;->updateFlagsForComponent(II)I
@@ -24799,7 +25671,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->updateIntentForResolve(Landroid/content/Intent;)Landroid/content/Intent;
 PLcom/android/server/pm/PackageManagerService;->updateIntentVerificationStatus(Ljava/lang/String;II)Z
 HSPLcom/android/server/pm/PackageManagerService;->updatePackagesIfNeeded()V
-HPLcom/android/server/pm/PackageManagerService;->updateSequenceNumberLP(Lcom/android/server/pm/PackageSetting;[I)V
+HSPLcom/android/server/pm/PackageManagerService;->updateSequenceNumberLP(Lcom/android/server/pm/PackageSetting;[I)V
 HPLcom/android/server/pm/PackageManagerService;->updateSettingsInternalLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
 PLcom/android/server/pm/PackageManagerService;->updateSettingsLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
 HSPLcom/android/server/pm/PackageManagerService;->updateSharedLibrariesLocked(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)V
@@ -24833,7 +25705,7 @@
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getPackageNamesForIntent(Landroid/content/Intent;I)Landroid/util/ArraySet;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getPackagesForDexopt(Ljava/util/Collection;Lcom/android/server/pm/PackageManagerService;)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getPackagesForDexopt(Ljava/util/Collection;Lcom/android/server/pm/PackageManagerService;Z)Ljava/util/List;
-HSPLcom/android/server/pm/PackageManagerServiceUtils;->getPermissionsState(Landroid/content/pm/PackageManagerInternal;Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/permission/PermissionsState;
+HPLcom/android/server/pm/PackageManagerServiceUtils;->getPermissionsState(Landroid/content/pm/PackageManagerInternal;Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/permission/PermissionsState;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getSettingsProblemFile()Ljava/io/File;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->isApkVerificationForced(Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->isApkVerityEnabled()Z
@@ -24895,7 +25767,7 @@
 HSPLcom/android/server/pm/PackageSetting;->areInstallPermissionsFixed()Z
 HSPLcom/android/server/pm/PackageSetting;->doCopy(Lcom/android/server/pm/PackageSetting;)V
 HPLcom/android/server/pm/PackageSetting;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLjava/util/List;)V
-HSPLcom/android/server/pm/PackageSetting;->getAppId()I
+HPLcom/android/server/pm/PackageSetting;->getAppId()I
 HSPLcom/android/server/pm/PackageSetting;->getPermissionsState()Lcom/android/server/pm/permission/PermissionsState;
 PLcom/android/server/pm/PackageSetting;->getSharedUser()Lcom/android/server/pm/SharedUserSetting;
 HSPLcom/android/server/pm/PackageSetting;->getSharedUserId()I
@@ -24910,9 +25782,9 @@
 HSPLcom/android/server/pm/PackageSettingBase;-><clinit>()V
 HSPLcom/android/server/pm/PackageSettingBase;-><init>(Lcom/android/server/pm/PackageSettingBase;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageSettingBase;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JII[Ljava/lang/String;[J)V
-PLcom/android/server/pm/PackageSettingBase;->addOrUpdateSuspension(Ljava/lang/String;Landroid/content/pm/SuspendDialogInfo;Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;I)V
+HPLcom/android/server/pm/PackageSettingBase;->addOrUpdateSuspension(Ljava/lang/String;Landroid/content/pm/SuspendDialogInfo;Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;I)V
 PLcom/android/server/pm/PackageSettingBase;->clearDomainVerificationStatusForUser(I)V
-HSPLcom/android/server/pm/PackageSettingBase;->disableComponentLPw(Ljava/lang/String;I)Z
+HPLcom/android/server/pm/PackageSettingBase;->disableComponentLPw(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageSettingBase;->doCopy(Lcom/android/server/pm/PackageSettingBase;)V
 HSPLcom/android/server/pm/PackageSettingBase;->enableComponentLPw(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageSettingBase;->getCeDataInode(I)J
@@ -24941,12 +25813,13 @@
 PLcom/android/server/pm/PackageSettingBase;->isAnyInstalled([I)Z
 HSPLcom/android/server/pm/PackageSettingBase;->modifyUserState(I)Landroid/content/pm/PackageUserState;
 HSPLcom/android/server/pm/PackageSettingBase;->modifyUserStateComponents(IZZ)Landroid/content/pm/PackageUserState;
-HPLcom/android/server/pm/PackageSettingBase;->queryInstalledUsers([IZ)[I
+HSPLcom/android/server/pm/PackageSettingBase;->queryInstalledUsers([IZ)[I
 HSPLcom/android/server/pm/PackageSettingBase;->readUserState(I)Landroid/content/pm/PackageUserState;
 HPLcom/android/server/pm/PackageSettingBase;->removeSuspension(Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageSettingBase;->removeUser(I)V
 HSPLcom/android/server/pm/PackageSettingBase;->restoreComponentLPw(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageSettingBase;->setCeDataInode(JI)V
+HPLcom/android/server/pm/PackageSettingBase;->setCeDataInode(JI)V
+PLcom/android/server/pm/PackageSettingBase;->setDistractionFlags(II)V
 PLcom/android/server/pm/PackageSettingBase;->setDomainVerificationStatusForUser(III)V
 HSPLcom/android/server/pm/PackageSettingBase;->setEnabled(IILjava/lang/String;)V
 PLcom/android/server/pm/PackageSettingBase;->setHidden(ZI)V
@@ -25085,7 +25958,7 @@
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->access$300(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->areDefaultRuntimePermissionsGrantedLPr(I)Z
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getPermissionsFromPermissionsState(Lcom/android/server/pm/permission/PermissionsState;I)Ljava/util/List;
-HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getVersionLPr(I)I
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getVersionLPr(I)I
 HPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->onUserRemovedLPw(I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->parsePermissionsLPr(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/pm/permission/PermissionsState;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->parseRuntimePermissionsLPr(Lorg/xmlpull/v1/XmlPullParser;I)V
@@ -25093,7 +25966,7 @@
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->readPermissionsStateLpr(Ljava/util/List;Lcom/android/server/pm/permission/PermissionsState;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->readStateForUserSyncLPr(I)V
 HPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->revokeRuntimePermissionsAndClearFlags(Lcom/android/server/pm/SettingBase;I)V
-HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setVersionLPr(II)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissions(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissionsForUserAsyncLPr(I)V
@@ -25134,10 +26007,10 @@
 HSPLcom/android/server/pm/Settings;->getAllSharedUsersLPw()Ljava/util/Collection;
 HSPLcom/android/server/pm/Settings;->getAllUsers(Lcom/android/server/pm/UserManagerService;)Ljava/util/List;
 HSPLcom/android/server/pm/Settings;->getApplicationEnabledSettingLPr(Ljava/lang/String;I)I
-HPLcom/android/server/pm/Settings;->getBlockUninstallLPr(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/Settings;->getBlockUninstallLPr(ILjava/lang/String;)Z
 HSPLcom/android/server/pm/Settings;->getComponentEnabledSettingLPr(Landroid/content/ComponentName;I)I
-HSPLcom/android/server/pm/Settings;->getDefaultRuntimePermissionsVersionLPr(I)I
-PLcom/android/server/pm/Settings;->getDisabledSystemPkgLPr(Lcom/android/server/pm/PackageSetting;)Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/Settings;->getDefaultRuntimePermissionsVersionLPr(I)I
+HSPLcom/android/server/pm/Settings;->getDisabledSystemPkgLPr(Lcom/android/server/pm/PackageSetting;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/Settings;->getDisabledSystemPkgLPr(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/Settings;->getHarmfulAppWarningLPr(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/pm/Settings;->getIntentFilterVerificationLPr(Ljava/lang/String;)Landroid/content/pm/IntentFilterVerificationInfo;
@@ -25158,7 +26031,7 @@
 HSPLcom/android/server/pm/Settings;->isDisabledSystemPackageLPr(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Landroid/content/pm/ComponentInfo;II)Z
 HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;II)Z
-PLcom/android/server/pm/Settings;->isOrphaned(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/Settings;->isOrphaned(Ljava/lang/String;)Z
 HPLcom/android/server/pm/Settings;->permissionFlagsToString(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/pm/Settings;->printFlags(Ljava/io/PrintWriter;I[Ljava/lang/Object;)V
 HSPLcom/android/server/pm/Settings;->pruneSharedUsersLPw()V
@@ -25193,7 +26066,7 @@
 PLcom/android/server/pm/Settings;->setFirstAvailableUid(I)V
 PLcom/android/server/pm/Settings;->setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/Settings;->setPackageStoppedStateLPw(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ZZII)Z
-HSPLcom/android/server/pm/Settings;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
+PLcom/android/server/pm/Settings;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
 PLcom/android/server/pm/Settings;->updateIntentFilterVerificationStatusLPw(Ljava/lang/String;II)Z
 HSPLcom/android/server/pm/Settings;->updatePackageSetting(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J)V
 PLcom/android/server/pm/Settings;->updateSharedUserPermsLPw(Lcom/android/server/pm/PackageSetting;I)I
@@ -25234,7 +26107,7 @@
 HSPLcom/android/server/pm/SharedUserSetting;-><init>(Ljava/lang/String;II)V
 HSPLcom/android/server/pm/SharedUserSetting;->addPackage(Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/SharedUserSetting;->addProcesses(Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/SharedUserSetting;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/pm/SharedUserSetting;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/pm/SharedUserSetting;->fixSeInfoLocked()V
 HSPLcom/android/server/pm/SharedUserSetting;->getPackages()Ljava/util/List;
 HSPLcom/android/server/pm/SharedUserSetting;->getPermissionsState()Lcom/android/server/pm/permission/PermissionsState;
@@ -25247,10 +26120,10 @@
 HSPLcom/android/server/pm/ShortcutBitmapSaver;-><init>(Lcom/android/server/pm/ShortcutService;)V
 PLcom/android/server/pm/ShortcutBitmapSaver;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/pm/ShortcutBitmapSaver;->getBitmapPathMayWaitLocked(Landroid/content/pm/ShortcutInfo;)Ljava/lang/String;
-PLcom/android/server/pm/ShortcutBitmapSaver;->lambda$new$1$ShortcutBitmapSaver()V
+HPLcom/android/server/pm/ShortcutBitmapSaver;->lambda$new$1$ShortcutBitmapSaver()V
 HPLcom/android/server/pm/ShortcutBitmapSaver;->lambda$waitForAllSavesLocked$0(Ljava/util/concurrent/CountDownLatch;)V
 HPLcom/android/server/pm/ShortcutBitmapSaver;->processPendingItems()Z
-PLcom/android/server/pm/ShortcutBitmapSaver;->removeIcon(Landroid/content/pm/ShortcutInfo;)V
+HPLcom/android/server/pm/ShortcutBitmapSaver;->removeIcon(Landroid/content/pm/ShortcutInfo;)V
 HPLcom/android/server/pm/ShortcutBitmapSaver;->saveBitmapLocked(Landroid/content/pm/ShortcutInfo;ILandroid/graphics/Bitmap$CompressFormat;I)V
 HPLcom/android/server/pm/ShortcutBitmapSaver;->waitForAllSavesLocked()Z
 HSPLcom/android/server/pm/ShortcutDumpFiles;-><init>(Lcom/android/server/pm/ShortcutService;)V
@@ -25294,7 +26167,7 @@
 HPLcom/android/server/pm/ShortcutPackage;->enforceShortcutCountsBeforeOperation(Ljava/util/List;I)V
 HPLcom/android/server/pm/ShortcutPackage;->ensureImmutableShortcutsNotIncluded(Ljava/util/List;Z)V
 HPLcom/android/server/pm/ShortcutPackage;->ensureImmutableShortcutsNotIncludedWithIds(Ljava/util/List;Z)V
-PLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Landroid/content/pm/ShortcutInfo;Z)V
+HPLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Landroid/content/pm/ShortcutInfo;Z)V
 HPLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Ljava/lang/String;Z)V
 HPLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;I)V
 HPLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;IZ)V
@@ -25310,12 +26183,14 @@
 HPLcom/android/server/pm/ShortcutPackage;->getUsedBitmapFiles()Landroid/util/ArraySet;
 HPLcom/android/server/pm/ShortcutPackage;->hasShareTargets()Z
 HPLcom/android/server/pm/ShortcutPackage;->incrementCountForActivity(Landroid/util/ArrayMap;Landroid/content/ComponentName;I)V
+PLcom/android/server/pm/ShortcutPackage;->isShortcutExistsAndInvisibleToPublisher(Ljava/lang/String;)Z
 PLcom/android/server/pm/ShortcutPackage;->isShortcutExistsAndVisibleToPublisher(Ljava/lang/String;)Z
 HPLcom/android/server/pm/ShortcutPackage;->lambda$new$2(Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;)I
 HPLcom/android/server/pm/ShortcutPackage;->lambda$refreshPinnedFlags$0$ShortcutPackage(Lcom/android/server/pm/ShortcutLauncher;)V
 HPLcom/android/server/pm/ShortcutPackage;->loadFromXml(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;Lorg/xmlpull/v1/XmlPullParser;Z)Lcom/android/server/pm/ShortcutPackage;
 PLcom/android/server/pm/ShortcutPackage;->onRestored(I)V
 HPLcom/android/server/pm/ShortcutPackage;->parseIntent(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/Intent;
+PLcom/android/server/pm/ShortcutPackage;->parsePerson(Lorg/xmlpull/v1/XmlPullParser;)Landroid/app/Person;
 HPLcom/android/server/pm/ShortcutPackage;->parseShortcut(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;IZ)Landroid/content/pm/ShortcutInfo;
 HPLcom/android/server/pm/ShortcutPackage;->publishManifestShortcuts(Ljava/util/List;)Z
 HPLcom/android/server/pm/ShortcutPackage;->pushOutExcessShortcuts()Z
@@ -25333,13 +26208,13 @@
 PLcom/android/server/pm/ShortcutPackageInfo;->canRestoreTo(Lcom/android/server/pm/ShortcutService;Landroid/content/pm/PackageInfo;Z)I
 HPLcom/android/server/pm/ShortcutPackageInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/pm/ShortcutPackageInfo;->getLastUpdateTime()J
-PLcom/android/server/pm/ShortcutPackageInfo;->getVersionCode()J
+HPLcom/android/server/pm/ShortcutPackageInfo;->getVersionCode()J
 PLcom/android/server/pm/ShortcutPackageInfo;->hasSignatures()Z
 HPLcom/android/server/pm/ShortcutPackageInfo;->isBackupAllowed()Z
 HPLcom/android/server/pm/ShortcutPackageInfo;->isShadow()Z
 HPLcom/android/server/pm/ShortcutPackageInfo;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;Z)V
 HPLcom/android/server/pm/ShortcutPackageInfo;->newEmpty()Lcom/android/server/pm/ShortcutPackageInfo;
-PLcom/android/server/pm/ShortcutPackageInfo;->refreshSignature(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutPackageItem;)V
+HPLcom/android/server/pm/ShortcutPackageInfo;->refreshSignature(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutPackageItem;)V
 HPLcom/android/server/pm/ShortcutPackageInfo;->saveToXml(Lcom/android/server/pm/ShortcutService;Lorg/xmlpull/v1/XmlSerializer;Z)V
 PLcom/android/server/pm/ShortcutPackageInfo;->setShadow(Z)V
 PLcom/android/server/pm/ShortcutPackageInfo;->updateFromPackageInfo(Landroid/content/pm/PackageInfo;)V
@@ -25349,12 +26224,12 @@
 HPLcom/android/server/pm/ShortcutPackageItem;->getPackageName()Ljava/lang/String;
 HPLcom/android/server/pm/ShortcutPackageItem;->getPackageUserId()I
 PLcom/android/server/pm/ShortcutPackageItem;->getUser()Lcom/android/server/pm/ShortcutUser;
-PLcom/android/server/pm/ShortcutPackageItem;->refreshPackageSignatureAndSave()V
+HPLcom/android/server/pm/ShortcutPackageItem;->refreshPackageSignatureAndSave()V
 PLcom/android/server/pm/ShortcutPackageItem;->replaceUser(Lcom/android/server/pm/ShortcutUser;)V
 HPLcom/android/server/pm/ShortcutParser;->createShortcutFromManifest(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;IIIIIZ)Landroid/content/pm/ShortcutInfo;
 HPLcom/android/server/pm/ShortcutParser;->parseCategories(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;)Ljava/lang/String;
-PLcom/android/server/pm/ShortcutParser;->parseCategory(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;)Ljava/lang/String;
-PLcom/android/server/pm/ShortcutParser;->parseShareTargetAttributes(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;)Lcom/android/server/pm/ShareTargetInfo;
+HPLcom/android/server/pm/ShortcutParser;->parseCategory(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;)Ljava/lang/String;
+HPLcom/android/server/pm/ShortcutParser;->parseShareTargetAttributes(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;)Lcom/android/server/pm/ShareTargetInfo;
 HPLcom/android/server/pm/ShortcutParser;->parseShareTargetData(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;)Lcom/android/server/pm/ShareTargetInfo$TargetData;
 HPLcom/android/server/pm/ShortcutParser;->parseShortcutAttributes(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;Ljava/lang/String;Landroid/content/ComponentName;II)Landroid/content/pm/ShortcutInfo;
 HPLcom/android/server/pm/ShortcutParser;->parseShortcuts(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
@@ -25374,10 +26249,12 @@
 HPLcom/android/server/pm/ShortcutRequestPinProcessor;->getRequestPinConfirmationActivity(II)Landroid/util/Pair;
 PLcom/android/server/pm/ShortcutRequestPinProcessor;->isCallerUid(I)Z
 HPLcom/android/server/pm/ShortcutRequestPinProcessor;->isRequestPinItemSupported(II)Z
+PLcom/android/server/pm/ShortcutRequestPinProcessor;->requestPinItemLocked(Landroid/content/pm/ShortcutInfo;Landroid/appwidget/AppWidgetProviderInfo;Landroid/os/Bundle;ILandroid/content/IntentSender;)Z
 PLcom/android/server/pm/ShortcutRequestPinProcessor;->requestPinShortcutLocked(Landroid/content/pm/ShortcutInfo;Landroid/content/IntentSender;Landroid/util/Pair;)Landroid/content/pm/LauncherApps$PinItemRequest;
 PLcom/android/server/pm/ShortcutRequestPinProcessor;->sendResultIntent(Landroid/content/IntentSender;Landroid/content/Intent;)V
+PLcom/android/server/pm/ShortcutRequestPinProcessor;->startRequestConfirmActivity(Landroid/content/ComponentName;ILandroid/content/pm/LauncherApps$PinItemRequest;I)Z
 HSPLcom/android/server/pm/ShortcutService$1;-><init>()V
-PLcom/android/server/pm/ShortcutService$1;->test(Landroid/content/pm/ResolveInfo;)Z
+HPLcom/android/server/pm/ShortcutService$1;->test(Landroid/content/pm/ResolveInfo;)Z
 HPLcom/android/server/pm/ShortcutService$1;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/ShortcutService$2;-><init>()V
 PLcom/android/server/pm/ShortcutService$2;->test(Landroid/content/pm/PackageInfo;)Z
@@ -25390,7 +26267,7 @@
 HSPLcom/android/server/pm/ShortcutService$4;-><init>(Lcom/android/server/pm/ShortcutService;)V
 HSPLcom/android/server/pm/ShortcutService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/pm/ShortcutService$5;-><init>(Lcom/android/server/pm/ShortcutService;)V
-HPLcom/android/server/pm/ShortcutService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/pm/ShortcutService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/pm/ShortcutService$DumpFilter;-><init>()V
 HPLcom/android/server/pm/ShortcutService$DumpFilter;->isPackageMatch(Ljava/lang/String;)Z
 PLcom/android/server/pm/ShortcutService$DumpFilter;->isUserMatch(I)Z
@@ -25412,18 +26289,22 @@
 HSPLcom/android/server/pm/ShortcutService$LocalService;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutService$1;)V
 HSPLcom/android/server/pm/ShortcutService$LocalService;->addListener(Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;)V
 PLcom/android/server/pm/ShortcutService$LocalService;->createShortcutIntents(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;III)[Landroid/content/Intent;
-PLcom/android/server/pm/ShortcutService$LocalService;->getShortcutIconFd(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
-PLcom/android/server/pm/ShortcutService$LocalService;->getShortcutInfoLocked(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/content/pm/ShortcutInfo;
+HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcutIconFd(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcutInfoLocked(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/content/pm/ShortcutInfo;
 HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcuts(ILjava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;IIII)Ljava/util/List;
+HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcuts(ILjava/lang/String;JLjava/lang/String;Ljava/util/List;Ljava/util/List;Landroid/content/ComponentName;IIII)Ljava/util/List;
 HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcutsInnerLocked(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
+HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcutsInnerLocked(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
 HPLcom/android/server/pm/ShortcutService$LocalService;->hasShortcutHostPermission(ILjava/lang/String;II)Z
 PLcom/android/server/pm/ShortcutService$LocalService;->isForegroundDefaultLauncher(Ljava/lang/String;I)Z
 PLcom/android/server/pm/ShortcutService$LocalService;->isPinnedByCaller(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/pm/ShortcutService$LocalService;->isRequestPinItemSupported(II)Z
 PLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcutInfoLocked$2(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;)Z
 HPLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcuts$0$ShortcutService$LocalService(ILjava/lang/String;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;IIILcom/android/server/pm/ShortcutPackage;)V
+HPLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcuts$0$ShortcutService$LocalService(ILjava/lang/String;Ljava/util/List;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;IIILcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcutsInnerLocked$1(JLandroid/util/ArraySet;Landroid/content/ComponentName;ZZZZLandroid/content/pm/ShortcutInfo;)Z
 HPLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcutsInnerLocked$1(JLandroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZLandroid/content/pm/ShortcutInfo;)Z
+HPLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcutsInnerLocked$1(JLandroid/util/ArraySet;Landroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZLandroid/content/pm/ShortcutInfo;)Z
 PLcom/android/server/pm/ShortcutService$LocalService;->pinShortcuts(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;I)V
 PLcom/android/server/pm/ShortcutService$LocalService;->setShortcutHostPackage(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/ShortcutService;-><clinit>()V
@@ -25462,7 +26343,7 @@
 PLcom/android/server/pm/ShortcutService;->enforceResetThrottlingPermission()V
 PLcom/android/server/pm/ShortcutService;->enforceSystem()V
 HPLcom/android/server/pm/ShortcutService;->fillInDefaultActivity(Ljava/util/List;)V
-PLcom/android/server/pm/ShortcutService;->fixUpIncomingShortcutInfo(Landroid/content/pm/ShortcutInfo;Z)V
+HPLcom/android/server/pm/ShortcutService;->fixUpIncomingShortcutInfo(Landroid/content/pm/ShortcutInfo;Z)V
 HPLcom/android/server/pm/ShortcutService;->fixUpIncomingShortcutInfo(Landroid/content/pm/ShortcutInfo;ZZ)V
 HPLcom/android/server/pm/ShortcutService;->fixUpShortcutResourceNamesAndValues(Landroid/content/pm/ShortcutInfo;)V
 HPLcom/android/server/pm/ShortcutService;->forEachLoadedUserLocked(Ljava/util/function/Consumer;)V
@@ -25475,7 +26356,7 @@
 HPLcom/android/server/pm/ShortcutService;->getDefaultLauncher(I)Landroid/content/ComponentName;
 PLcom/android/server/pm/ShortcutService;->getDumpPath()Ljava/io/File;
 HPLcom/android/server/pm/ShortcutService;->getDynamicShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/ShortcutService;->getIconMaxDimensions(Ljava/lang/String;I)I
+HPLcom/android/server/pm/ShortcutService;->getIconMaxDimensions(Ljava/lang/String;I)I
 PLcom/android/server/pm/ShortcutService;->getInstalledPackages(I)Ljava/util/List;
 HSPLcom/android/server/pm/ShortcutService;->getLastResetTimeLocked()J
 HPLcom/android/server/pm/ShortcutService;->getLauncherShortcutsLocked(Ljava/lang/String;II)Lcom/android/server/pm/ShortcutLauncher;
@@ -25497,7 +26378,7 @@
 HPLcom/android/server/pm/ShortcutService;->getShortcuts(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/ShortcutService;->getShortcutsWithQueryLocked(Ljava/lang/String;IILjava/util/function/Predicate;)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/ShortcutService;->getStatStartTime()J
-PLcom/android/server/pm/ShortcutService;->getUidLastForegroundElapsedTimeLocked(I)J
+HPLcom/android/server/pm/ShortcutService;->getUidLastForegroundElapsedTimeLocked(I)J
 HPLcom/android/server/pm/ShortcutService;->getUserBitmapFilePath(I)Ljava/io/File;
 HPLcom/android/server/pm/ShortcutService;->getUserFile(I)Ljava/io/File;
 HPLcom/android/server/pm/ShortcutService;->getUserShortcutsLocked(I)Lcom/android/server/pm/ShortcutUser;
@@ -25518,7 +26399,7 @@
 HPLcom/android/server/pm/ShortcutService;->injectBinderCallingPid()I
 HPLcom/android/server/pm/ShortcutService;->injectBinderCallingUid()I
 PLcom/android/server/pm/ShortcutService;->injectBuildFingerprint()Ljava/lang/String;
-HPLcom/android/server/pm/ShortcutService;->injectClearCallingIdentity()J
+HSPLcom/android/server/pm/ShortcutService;->injectClearCallingIdentity()J
 HSPLcom/android/server/pm/ShortcutService;->injectCurrentTimeMillis()J
 HSPLcom/android/server/pm/ShortcutService;->injectDipToPixel(I)I
 HSPLcom/android/server/pm/ShortcutService;->injectElapsedRealtime()J
@@ -25540,7 +26421,7 @@
 HPLcom/android/server/pm/ShortcutService;->injectPackageInfoWithUninstalled(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
 HSPLcom/android/server/pm/ShortcutService;->injectPostToHandler(Ljava/lang/Runnable;)V
 HSPLcom/android/server/pm/ShortcutService;->injectRegisterUidObserver(Landroid/app/IUidObserver;I)V
-HPLcom/android/server/pm/ShortcutService;->injectRestoreCallingIdentity(J)V
+HSPLcom/android/server/pm/ShortcutService;->injectRestoreCallingIdentity(J)V
 PLcom/android/server/pm/ShortcutService;->injectRunOnNewThread(Ljava/lang/Runnable;)V
 PLcom/android/server/pm/ShortcutService;->injectSendIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;)V
 HSPLcom/android/server/pm/ShortcutService;->injectShortcutManagerConstants()Ljava/lang/String;
@@ -25548,26 +26429,26 @@
 HSPLcom/android/server/pm/ShortcutService;->injectSystemDataPath()Ljava/io/File;
 HPLcom/android/server/pm/ShortcutService;->injectUserDataPath(I)Ljava/io/File;
 HPLcom/android/server/pm/ShortcutService;->injectValidateIconResPackage(Landroid/content/pm/ShortcutInfo;Landroid/graphics/drawable/Icon;)V
-PLcom/android/server/pm/ShortcutService;->injectXmlMetaData(Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
+HPLcom/android/server/pm/ShortcutService;->injectXmlMetaData(Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
 HPLcom/android/server/pm/ShortcutService;->isCallerSystem()Z
 HSPLcom/android/server/pm/ShortcutService;->isClockValid(J)Z
 PLcom/android/server/pm/ShortcutService;->isDummyMainActivity(Landroid/content/ComponentName;)Z
 HPLcom/android/server/pm/ShortcutService;->isEphemeralApp(Landroid/content/pm/ApplicationInfo;)Z
 PLcom/android/server/pm/ShortcutService;->isEphemeralApp(Ljava/lang/String;I)Z
-PLcom/android/server/pm/ShortcutService;->isInstalled(Landroid/content/pm/ActivityInfo;)Z
+HPLcom/android/server/pm/ShortcutService;->isInstalled(Landroid/content/pm/ActivityInfo;)Z
 HPLcom/android/server/pm/ShortcutService;->isInstalled(Landroid/content/pm/ApplicationInfo;)Z
 HPLcom/android/server/pm/ShortcutService;->isInstalled(Landroid/content/pm/PackageInfo;)Z
 PLcom/android/server/pm/ShortcutService;->isInstalledOrNull(Landroid/content/pm/ActivityInfo;)Landroid/content/pm/ActivityInfo;
 PLcom/android/server/pm/ShortcutService;->isInstalledOrNull(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/pm/ShortcutService;->isInstalledOrNull(Landroid/content/pm/PackageInfo;)Landroid/content/pm/PackageInfo;
+HPLcom/android/server/pm/ShortcutService;->isInstalledOrNull(Landroid/content/pm/PackageInfo;)Landroid/content/pm/PackageInfo;
 PLcom/android/server/pm/ShortcutService;->isPackageInstalled(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/ShortcutService;->isProcessStateForeground(I)Z
 HPLcom/android/server/pm/ShortcutService;->isRequestPinItemSupported(II)Z
 HPLcom/android/server/pm/ShortcutService;->isUidForegroundLocked(I)Z
 HPLcom/android/server/pm/ShortcutService;->isUserLoadedLocked(I)Z
-HPLcom/android/server/pm/ShortcutService;->isUserUnlockedL(I)Z
+HSPLcom/android/server/pm/ShortcutService;->isUserUnlockedL(I)Z
 PLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$7$ShortcutService(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
-PLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$8$ShortcutService(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$8$ShortcutService(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
 PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageForAllLoadedUsers$3$ShortcutService(Ljava/lang/String;IZLcom/android/server/pm/ShortcutUser;)V
 PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageForAllLoadedUsers$4$ShortcutService(Ljava/lang/String;IZLcom/android/server/pm/ShortcutUser;)V
 PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$4(Ljava/lang/String;ILcom/android/server/pm/ShortcutLauncher;)V
@@ -25575,19 +26456,20 @@
 PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$5(Ljava/lang/String;ILcom/android/server/pm/ShortcutLauncher;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$6(Lcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$10(Lcom/android/server/pm/ShortcutPackage;)V
-PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$10(Lcom/android/server/pm/ShortcutPackageItem;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$10(Lcom/android/server/pm/ShortcutPackageItem;)V
 PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$11(Lcom/android/server/pm/ShortcutLauncher;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$11(Lcom/android/server/pm/ShortcutPackage;)V
 PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$12(Lcom/android/server/pm/ShortcutLauncher;)V
 PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$9(Lcom/android/server/pm/ShortcutPackageItem;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getShareTargets$2(Ljava/util/List;Landroid/content/IntentFilter;Lcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getShareTargets$3(Ljava/util/List;Landroid/content/IntentFilter;Lcom/android/server/pm/ShortcutPackage;)V
-PLcom/android/server/pm/ShortcutService;->lambda$getShortcuts$2(ILandroid/content/pm/ShortcutInfo;)Z
+HPLcom/android/server/pm/ShortcutService;->lambda$getShortcuts$2(ILandroid/content/pm/ShortcutInfo;)Z
 PLcom/android/server/pm/ShortcutService;->lambda$handleLocaleChanged$6(Lcom/android/server/pm/ShortcutUser;)V
+PLcom/android/server/pm/ShortcutService;->lambda$handleLocaleChanged$7(Lcom/android/server/pm/ShortcutUser;)V
 PLcom/android/server/pm/ShortcutService;->lambda$handleUnlockUser$0$ShortcutService(JI)V
 HPLcom/android/server/pm/ShortcutService;->lambda$notifyListeners$1$ShortcutService(ILjava/lang/String;)V
 PLcom/android/server/pm/ShortcutService;->lambda$rescanUpdatedPackagesLocked$8$ShortcutService(Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V
-PLcom/android/server/pm/ShortcutService;->lambda$rescanUpdatedPackagesLocked$9$ShortcutService(Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$rescanUpdatedPackagesLocked$9$ShortcutService(Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V
 HSPLcom/android/server/pm/ShortcutService;->loadBaseStateLocked()V
 HSPLcom/android/server/pm/ShortcutService;->loadConfigurationLocked()V
 PLcom/android/server/pm/ShortcutService;->loadUserInternal(ILjava/io/InputStream;Z)Lcom/android/server/pm/ShortcutUser;
@@ -25612,9 +26494,11 @@
 HPLcom/android/server/pm/ShortcutService;->queryActivities(Landroid/content/Intent;IZ)Ljava/util/List;
 HPLcom/android/server/pm/ShortcutService;->queryActivities(Landroid/content/Intent;Ljava/lang/String;Landroid/content/ComponentName;I)Ljava/util/List;
 PLcom/android/server/pm/ShortcutService;->removeAllDynamicShortcuts(Ljava/lang/String;I)V
-PLcom/android/server/pm/ShortcutService;->removeDynamicShortcuts(Ljava/lang/String;Ljava/util/List;I)V
+HPLcom/android/server/pm/ShortcutService;->removeDynamicShortcuts(Ljava/lang/String;Ljava/util/List;I)V
 PLcom/android/server/pm/ShortcutService;->removeIconLocked(Landroid/content/pm/ShortcutInfo;)V
-PLcom/android/server/pm/ShortcutService;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/server/pm/ShortcutService;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService;->requestPinItem(Ljava/lang/String;ILandroid/content/pm/ShortcutInfo;Landroid/appwidget/AppWidgetProviderInfo;Landroid/os/Bundle;Landroid/content/IntentSender;)Z
+PLcom/android/server/pm/ShortcutService;->requestPinShortcut(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;Landroid/content/IntentSender;I)Z
 PLcom/android/server/pm/ShortcutService;->rescanUpdatedPackagesLocked(IJ)V
 PLcom/android/server/pm/ShortcutService;->saveBaseStateLocked()V
 HPLcom/android/server/pm/ShortcutService;->saveDirtyInfo()V
@@ -25656,7 +26540,7 @@
 HPLcom/android/server/pm/ShortcutUser$PackageWithUser;->of(ILjava/lang/String;)Lcom/android/server/pm/ShortcutUser$PackageWithUser;
 PLcom/android/server/pm/ShortcutUser;-><init>(Lcom/android/server/pm/ShortcutService;I)V
 PLcom/android/server/pm/ShortcutUser;->addLauncher(Lcom/android/server/pm/ShortcutLauncher;)V
-PLcom/android/server/pm/ShortcutUser;->attemptToRestoreIfNeededAndSave(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
+HPLcom/android/server/pm/ShortcutUser;->attemptToRestoreIfNeededAndSave(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutUser;->clearLauncher()V
 HPLcom/android/server/pm/ShortcutUser;->detectLocaleChange()V
 HPLcom/android/server/pm/ShortcutUser;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/ShortcutService$DumpFilter;)V
@@ -25665,10 +26549,10 @@
 HPLcom/android/server/pm/ShortcutUser;->forAllPackageItems(Ljava/util/function/Consumer;)V
 HPLcom/android/server/pm/ShortcutUser;->forAllPackages(Ljava/util/function/Consumer;)V
 PLcom/android/server/pm/ShortcutUser;->forPackageItem(Ljava/lang/String;ILjava/util/function/Consumer;)V
-PLcom/android/server/pm/ShortcutUser;->getCachedLauncher()Landroid/content/ComponentName;
+HPLcom/android/server/pm/ShortcutUser;->getCachedLauncher()Landroid/content/ComponentName;
 PLcom/android/server/pm/ShortcutUser;->getLastAppScanOsFingerprint()Ljava/lang/String;
 PLcom/android/server/pm/ShortcutUser;->getLastAppScanTime()J
-PLcom/android/server/pm/ShortcutUser;->getLastKnownLauncher()Landroid/content/ComponentName;
+HPLcom/android/server/pm/ShortcutUser;->getLastKnownLauncher()Landroid/content/ComponentName;
 HPLcom/android/server/pm/ShortcutUser;->getLauncherShortcuts(Ljava/lang/String;I)Lcom/android/server/pm/ShortcutLauncher;
 HPLcom/android/server/pm/ShortcutUser;->getPackageShortcuts(Ljava/lang/String;)Lcom/android/server/pm/ShortcutPackage;
 HPLcom/android/server/pm/ShortcutUser;->getPackageShortcutsIfExists(Ljava/lang/String;)Lcom/android/server/pm/ShortcutPackage;
@@ -25687,9 +26571,10 @@
 HPLcom/android/server/pm/ShortcutUser;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
 PLcom/android/server/pm/ShortcutUser;->setLastAppScanOsFingerprint(Ljava/lang/String;)V
 PLcom/android/server/pm/ShortcutUser;->setLastAppScanTime(J)V
-PLcom/android/server/pm/ShortcutUser;->setLauncher(Landroid/content/ComponentName;)V
+HPLcom/android/server/pm/ShortcutUser;->setLauncher(Landroid/content/ComponentName;)V
 HPLcom/android/server/pm/ShortcutUser;->setLauncher(Landroid/content/ComponentName;Z)V
 HSPLcom/android/server/pm/StagingManager$1;-><init>(Lcom/android/server/pm/StagingManager;)V
+PLcom/android/server/pm/StagingManager$1;->lambda$onReceive$0$StagingManager$1()V
 PLcom/android/server/pm/StagingManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/pm/StagingManager$LocalIntentReceiverAsync$1;-><init>(Lcom/android/server/pm/StagingManager$LocalIntentReceiverAsync;)V
 PLcom/android/server/pm/StagingManager$LocalIntentReceiverAsync$1;->send(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
@@ -25724,6 +26609,7 @@
 PLcom/android/server/pm/StagingManager;->access$1100(Lcom/android/server/pm/StagingManager;Lcom/android/server/pm/PackageInstallerSession;)V
 PLcom/android/server/pm/StagingManager;->access$1200(Lcom/android/server/pm/StagingManager;)Lcom/android/server/pm/ApexManager;
 PLcom/android/server/pm/StagingManager;->access$200(Lcom/android/server/pm/StagingManager;)Lcom/android/server/pm/StagingManager$PreRebootVerificationHandler;
+PLcom/android/server/pm/StagingManager;->access$400(Lcom/android/server/pm/StagingManager;)V
 PLcom/android/server/pm/StagingManager;->access$500(Lcom/android/server/pm/StagingManager;)Landroid/util/SparseArray;
 PLcom/android/server/pm/StagingManager;->access$600(Lcom/android/server/pm/StagingManager;)Landroid/util/SparseIntArray;
 PLcom/android/server/pm/StagingManager;->access$700(Lcom/android/server/pm/StagingManager;Lcom/android/server/pm/PackageInstallerSession;)Z
@@ -25752,6 +26638,7 @@
 PLcom/android/server/pm/StagingManager;->lambda$sessionContainsApk$4(Lcom/android/server/pm/PackageInstallerSession;)Z
 PLcom/android/server/pm/StagingManager;->lambda$submitSessionToApexService$0(Landroid/content/pm/PackageInfo;)Ljava/lang/String;
 PLcom/android/server/pm/StagingManager;->lambda$verifyApksInSession$7$StagingManager(Lcom/android/server/pm/PackageInstallerSession;Landroid/content/Intent;)V
+PLcom/android/server/pm/StagingManager;->logFailedApexSessionsIfNecessary()V
 PLcom/android/server/pm/StagingManager;->needsCheckpoint()Z
 HSPLcom/android/server/pm/StagingManager;->restoreSession(Lcom/android/server/pm/PackageInstallerSession;Z)V
 PLcom/android/server/pm/StagingManager;->resumeSession(Lcom/android/server/pm/PackageInstallerSession;)V
@@ -25821,7 +26708,7 @@
 PLcom/android/server/pm/UserManagerService$LocalService;->isDeviceManaged()Z
 HPLcom/android/server/pm/UserManagerService$LocalService;->isProfileAccessible(IILjava/lang/String;Z)Z
 HSPLcom/android/server/pm/UserManagerService$LocalService;->isUserInitialized(I)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->isUserManaged(I)Z
+HPLcom/android/server/pm/UserManagerService$LocalService;->isUserManaged(I)Z
 HSPLcom/android/server/pm/UserManagerService$LocalService;->isUserRunning(I)Z
 HSPLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlocked(I)Z
 HSPLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlockingOrUnlocked(I)Z
@@ -25829,6 +26716,7 @@
 HSPLcom/android/server/pm/UserManagerService$LocalService;->setDeviceManaged(Z)V
 HSPLcom/android/server/pm/UserManagerService$LocalService;->setDevicePolicyUserRestrictions(ILandroid/os/Bundle;I)V
 HSPLcom/android/server/pm/UserManagerService$LocalService;->setForceEphemeralUsers(Z)V
+PLcom/android/server/pm/UserManagerService$LocalService;->setUserIcon(ILandroid/graphics/Bitmap;)V
 HSPLcom/android/server/pm/UserManagerService$LocalService;->setUserManaged(IZ)V
 PLcom/android/server/pm/UserManagerService$LocalService;->setUserState(II)V
 HSPLcom/android/server/pm/UserManagerService$MainHandler;-><init>(Lcom/android/server/pm/UserManagerService;)V
@@ -25836,6 +26724,12 @@
 HSPLcom/android/server/pm/UserManagerService$UserData;-><init>()V
 PLcom/android/server/pm/UserManagerService$UserData;->getLastRequestQuietModeEnabledMillis()J
 HSPLcom/android/server/pm/UserManagerService$UserData;->setLastRequestQuietModeEnabledMillis(J)V
+HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;-><init>(Lcom/android/server/pm/UserManagerService;)V
+PLcom/android/server/pm/UserManagerService$WatchedUserStates;->delete(I)V
+HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;->get(II)I
+HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;->invalidateIsUserUnlockedCache()V
+HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;->put(II)V
+PLcom/android/server/pm/UserManagerService$WatchedUserStates;->toString()Ljava/lang/String;
 HSPLcom/android/server/pm/UserManagerService;-><clinit>()V
 HSPLcom/android/server/pm/UserManagerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/UserDataPreparer;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/UserManagerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/UserDataPreparer;Ljava/lang/Object;Ljava/io/File;)V
@@ -25858,12 +26752,15 @@
 HSPLcom/android/server/pm/UserManagerService;->access$200(Lcom/android/server/pm/UserManagerService;)Lcom/android/server/pm/PackageManagerService;
 HSPLcom/android/server/pm/UserManagerService;->access$200(Lcom/android/server/pm/UserManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/pm/UserManagerService;->access$2000(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/pm/UserManagerService;->access$2100(Lcom/android/server/pm/UserManagerService;Landroid/content/pm/UserInfo;Landroid/graphics/Bitmap;)V
+PLcom/android/server/pm/UserManagerService;->access$2200(Lcom/android/server/pm/UserManagerService;I)V
 HSPLcom/android/server/pm/UserManagerService;->access$2202(Lcom/android/server/pm/UserManagerService;Z)Z
 HSPLcom/android/server/pm/UserManagerService;->access$2302(Lcom/android/server/pm/UserManagerService;Z)Z
 HPLcom/android/server/pm/UserManagerService;->access$2500(Lcom/android/server/pm/UserManagerService;I)Landroid/content/pm/UserInfo;
 HPLcom/android/server/pm/UserManagerService;->access$2600(Lcom/android/server/pm/UserManagerService;I)Landroid/content/pm/UserInfo;
 HSPLcom/android/server/pm/UserManagerService;->access$2800(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseIntArray;
 HSPLcom/android/server/pm/UserManagerService;->access$2900(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseIntArray;
+HSPLcom/android/server/pm/UserManagerService;->access$2900(Lcom/android/server/pm/UserManagerService;)Lcom/android/server/pm/UserManagerService$WatchedUserStates;
 HSPLcom/android/server/pm/UserManagerService;->access$2900(Lcom/android/server/pm/UserManagerService;I)Landroid/content/pm/UserInfo;
 HSPLcom/android/server/pm/UserManagerService;->access$300(Lcom/android/server/pm/UserManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/pm/UserManagerService;->access$300(Lcom/android/server/pm/UserManagerService;I)Lcom/android/server/pm/UserManagerService$UserData;
@@ -25908,6 +26805,7 @@
 PLcom/android/server/pm/UserManagerService;->dispatchUserAddedIntent(Landroid/content/pm/UserInfo;)V
 HPLcom/android/server/pm/UserManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/pm/UserManagerService;->dumpTimeAgo(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;JJ)V
+PLcom/android/server/pm/UserManagerService;->enforceUserRestriction(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/pm/UserManagerService;->ensureCanModifyQuietMode(Ljava/lang/String;IIZ)V
 HSPLcom/android/server/pm/UserManagerService;->exists(I)Z
 PLcom/android/server/pm/UserManagerService;->finishRemoveUser(I)V
@@ -25944,13 +26842,13 @@
 HSPLcom/android/server/pm/UserManagerService;->getUserDataLU(I)Lcom/android/server/pm/UserManagerService$UserData;
 PLcom/android/server/pm/UserManagerService;->getUserDataNoChecks(I)Lcom/android/server/pm/UserManagerService$UserData;
 HSPLcom/android/server/pm/UserManagerService;->getUserHandle(I)I
-HPLcom/android/server/pm/UserManagerService;->getUserIcon(I)Landroid/os/ParcelFileDescriptor;
+HSPLcom/android/server/pm/UserManagerService;->getUserIcon(I)Landroid/os/ParcelFileDescriptor;
 HPLcom/android/server/pm/UserManagerService;->getUserIconBadgeResId(I)I
 HSPLcom/android/server/pm/UserManagerService;->getUserIds()[I
 HSPLcom/android/server/pm/UserManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;
 HSPLcom/android/server/pm/UserManagerService;->getUserInfoLU(I)Landroid/content/pm/UserInfo;
 HSPLcom/android/server/pm/UserManagerService;->getUserInfoNoChecks(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/pm/UserManagerService;->getUserName()Ljava/lang/String;
+HPLcom/android/server/pm/UserManagerService;->getUserName()Ljava/lang/String;
 HPLcom/android/server/pm/UserManagerService;->getUserRestrictionSource(Ljava/lang/String;I)I
 HPLcom/android/server/pm/UserManagerService;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List;
 HSPLcom/android/server/pm/UserManagerService;->getUserRestrictions(I)Landroid/os/Bundle;
@@ -25963,7 +26861,7 @@
 HSPLcom/android/server/pm/UserManagerService;->getUsers(Z)Ljava/util/List;
 HSPLcom/android/server/pm/UserManagerService;->getUsers(ZZZ)Ljava/util/List;
 HPLcom/android/server/pm/UserManagerService;->hasBadge(I)Z
-HPLcom/android/server/pm/UserManagerService;->hasBaseUserRestriction(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/UserManagerService;->hasBaseUserRestriction(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/UserManagerService;->hasManageOrCreateUsersPermission()Z
 HSPLcom/android/server/pm/UserManagerService;->hasManageUsersOrPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/UserManagerService;->hasManageUsersPermission()Z
@@ -25981,7 +26879,7 @@
 HSPLcom/android/server/pm/UserManagerService;->isProfileOf(Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;)Z
 HSPLcom/android/server/pm/UserManagerService;->isQuietModeEnabled(I)Z
 HPLcom/android/server/pm/UserManagerService;->isRestricted()Z
-HPLcom/android/server/pm/UserManagerService;->isSameProfileGroup(II)Z
+HSPLcom/android/server/pm/UserManagerService;->isSameProfileGroup(II)Z
 HSPLcom/android/server/pm/UserManagerService;->isSameProfileGroupNoChecks(II)Z
 HSPLcom/android/server/pm/UserManagerService;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
 HPLcom/android/server/pm/UserManagerService;->isUserLimitReached()Z
@@ -26016,10 +26914,12 @@
 PLcom/android/server/pm/UserManagerService;->scanNextAvailableIdLocked()I
 PLcom/android/server/pm/UserManagerService;->scheduleWriteUser(Lcom/android/server/pm/UserManagerService$UserData;)V
 PLcom/android/server/pm/UserManagerService;->sendProfileRemovedBroadcast(II)V
+PLcom/android/server/pm/UserManagerService;->sendUserInfoChangedBroadcast(I)V
 HPLcom/android/server/pm/UserManagerService;->setApplicationRestrictions(Ljava/lang/String;Landroid/os/Bundle;I)V
 HSPLcom/android/server/pm/UserManagerService;->setDevicePolicyUserRestrictionsInner(ILandroid/os/Bundle;I)V
 PLcom/android/server/pm/UserManagerService;->setQuietModeEnabled(IZLandroid/content/IntentSender;Ljava/lang/String;)V
 PLcom/android/server/pm/UserManagerService;->setUserEnabled(I)V
+PLcom/android/server/pm/UserManagerService;->setUserIcon(ILandroid/graphics/Bitmap;)V
 HSPLcom/android/server/pm/UserManagerService;->setUserRestriction(Ljava/lang/String;ZI)V
 PLcom/android/server/pm/UserManagerService;->showConfirmCredentialToDisableQuietMode(ILandroid/content/IntentSender;)V
 HSPLcom/android/server/pm/UserManagerService;->systemReady()V
@@ -26032,6 +26932,7 @@
 PLcom/android/server/pm/UserManagerService;->verifyCallingPackage(Ljava/lang/String;I)V
 HPLcom/android/server/pm/UserManagerService;->writeApplicationRestrictionsLAr(Landroid/os/Bundle;Landroid/util/AtomicFile;)V
 HPLcom/android/server/pm/UserManagerService;->writeApplicationRestrictionsLAr(Ljava/lang/String;Landroid/os/Bundle;I)V
+PLcom/android/server/pm/UserManagerService;->writeBitmapLP(Landroid/content/pm/UserInfo;Landroid/graphics/Bitmap;)V
 HPLcom/android/server/pm/UserManagerService;->writeBundle(Landroid/os/Bundle;Lorg/xmlpull/v1/XmlSerializer;)V
 PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;)V
 PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;Ljava/io/OutputStream;)V
@@ -26135,8 +27036,8 @@
 HPLcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;->getPackageOptimizationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;)Landroid/content/pm/dex/PackageOptimizationInfo;
 HSPLcom/android/server/pm/dex/ArtManagerService;-><clinit>()V
 HSPLcom/android/server/pm/dex/ArtManagerService;-><init>(Landroid/content/Context;Landroid/content/pm/IPackageManager;Lcom/android/server/pm/Installer;Ljava/lang/Object;)V
-PLcom/android/server/pm/dex/ArtManagerService;->access$100(Ljava/lang/String;)I
-PLcom/android/server/pm/dex/ArtManagerService;->access$200(Ljava/lang/String;)I
+HPLcom/android/server/pm/dex/ArtManagerService;->access$100(Ljava/lang/String;)I
+HPLcom/android/server/pm/dex/ArtManagerService;->access$200(Ljava/lang/String;)I
 HPLcom/android/server/pm/dex/ArtManagerService;->checkAndroidPermissions(ILjava/lang/String;)Z
 PLcom/android/server/pm/dex/ArtManagerService;->checkShellPermissions(ILjava/lang/String;I)Z
 HSPLcom/android/server/pm/dex/ArtManagerService;->clearAppProfiles(Landroid/content/pm/parsing/AndroidPackage;)V
@@ -26152,7 +27053,7 @@
 PLcom/android/server/pm/dex/ArtManagerService;->postSuccess(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
 HPLcom/android/server/pm/dex/ArtManagerService;->prepareAppProfiles(Landroid/content/pm/parsing/AndroidPackage;IZ)V
 PLcom/android/server/pm/dex/ArtManagerService;->prepareAppProfiles(Landroid/content/pm/parsing/AndroidPackage;[IZ)V
-PLcom/android/server/pm/dex/ArtManagerService;->snapshotAppProfile(Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
+HPLcom/android/server/pm/dex/ArtManagerService;->snapshotAppProfile(Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
 PLcom/android/server/pm/dex/ArtManagerService;->snapshotBootImageProfile(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
 PLcom/android/server/pm/dex/ArtManagerService;->snapshotRuntimeProfile(ILjava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
 HSPLcom/android/server/pm/dex/ArtManagerService;->verifyTronLoggingConstants()V
@@ -26174,7 +27075,7 @@
 HPLcom/android/server/pm/dex/DexManager;->access$700()I
 HSPLcom/android/server/pm/dex/DexManager;->cachePackageCodeLocation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;I)V
 HSPLcom/android/server/pm/dex/DexManager;->cachePackageInfo(Landroid/content/pm/PackageInfo;I)V
-PLcom/android/server/pm/dex/DexManager;->dexoptSecondaryDex(Lcom/android/server/pm/dex/DexoptOptions;)Z
+HPLcom/android/server/pm/dex/DexManager;->dexoptSecondaryDex(Lcom/android/server/pm/dex/DexoptOptions;)Z
 PLcom/android/server/pm/dex/DexManager;->getAllPackagesWithSecondaryDexFiles()Ljava/util/Set;
 HSPLcom/android/server/pm/dex/DexManager;->getDexPackage(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;I)Lcom/android/server/pm/dex/DexManager$DexSearchResult;
 PLcom/android/server/pm/dex/DexManager;->getDynamicCodeLogger()Lcom/android/server/pm/dex/DynamicCodeLogger;
@@ -26186,7 +27087,7 @@
 HSPLcom/android/server/pm/dex/DexManager;->loadInternal(Ljava/util/Map;)V
 HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoad(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoadInternal(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
-PLcom/android/server/pm/dex/DexManager;->notifyPackageDataDestroyed(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/dex/DexManager;->notifyPackageDataDestroyed(Ljava/lang/String;I)V
 PLcom/android/server/pm/dex/DexManager;->notifyPackageInstalled(Landroid/content/pm/PackageInfo;I)V
 PLcom/android/server/pm/dex/DexManager;->notifyPackageUpdated(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
 HSPLcom/android/server/pm/dex/DexManager;->putIfAbsent(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -26229,7 +27130,7 @@
 PLcom/android/server/pm/dex/DynamicCodeLogger;->recordDex(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/pm/dex/DynamicCodeLogger;->recordNative(ILjava/lang/String;)V
 PLcom/android/server/pm/dex/DynamicCodeLogger;->removePackage(Ljava/lang/String;)V
-PLcom/android/server/pm/dex/DynamicCodeLogger;->removeUserPackage(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/dex/DynamicCodeLogger;->removeUserPackage(Ljava/lang/String;I)V
 HPLcom/android/server/pm/dex/DynamicCodeLogger;->writeDclEvent(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/pm/dex/DynamicCodeLogger;->writeNow()V
 HSPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)V
@@ -26279,7 +27180,7 @@
 PLcom/android/server/pm/dex/PackageDexUsage;->removeDexFile(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Ljava/lang/String;I)Z
 PLcom/android/server/pm/dex/PackageDexUsage;->removeDexFile(Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/pm/dex/PackageDexUsage;->removePackage(Ljava/lang/String;)Z
-PLcom/android/server/pm/dex/PackageDexUsage;->removeUserPackage(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/dex/PackageDexUsage;->removeUserPackage(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/dex/PackageDexUsage;->syncData(Ljava/util/Map;Ljava/util/Map;)V
 HPLcom/android/server/pm/dex/PackageDexUsage;->write(Ljava/io/Writer;)V
 PLcom/android/server/pm/dex/PackageDexUsage;->writeBoolean(Z)Ljava/lang/String;
@@ -26293,7 +27194,7 @@
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>()V
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$1;)V
 HPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Lcom/android/server/pm/dex/PackageDynamicCodeLoading$1;)V
+HPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Lcom/android/server/pm/dex/PackageDynamicCodeLoading$1;)V
 HPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->access$100(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Ljava/lang/String;CILjava/lang/String;)Z
 PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->access$400(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->access$500(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Ljava/util/Map;Ljava/util/Set;)V
@@ -26316,7 +27217,7 @@
 HPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->record(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;)Z
 HPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removeFile(Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removePackage(Ljava/lang/String;)Z
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removeUserPackage(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removeUserPackage(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->syncData(Ljava/util/Map;)V
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->unescape(Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->write(Ljava/io/OutputStream;)V
@@ -26363,7 +27264,7 @@
 PLcom/android/server/pm/permission/-$$Lambda$oynlBn0BbcU0KODvfUDDUHb5LKY;-><init>(Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/pm/permission/-$$Lambda$oynlBn0BbcU0KODvfUDDUHb5LKY;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/permission/BasePermission;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/BasePermission;->addToTree(ILandroid/content/pm/PermissionInfo;Lcom/android/server/pm/permission/BasePermission;)Z
+HPLcom/android/server/pm/permission/BasePermission;->addToTree(ILandroid/content/pm/PermissionInfo;Lcom/android/server/pm/permission/BasePermission;)Z
 PLcom/android/server/pm/permission/BasePermission;->comparePermissionInfos(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;Landroid/content/pm/PermissionInfo;)Z
 HPLcom/android/server/pm/permission/BasePermission;->compareStrings(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
 HSPLcom/android/server/pm/permission/BasePermission;->computeGids(I)[I
@@ -26385,9 +27286,9 @@
 HSPLcom/android/server/pm/permission/BasePermission;->isDevelopment()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isDocumenter()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isDynamic()Z
-HSPLcom/android/server/pm/permission/BasePermission;->isHardOrSoftRestricted()Z
+PLcom/android/server/pm/permission/BasePermission;->isHardOrSoftRestricted()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isHardRestricted()Z
-HSPLcom/android/server/pm/permission/BasePermission;->isImmutablyRestricted()Z
+PLcom/android/server/pm/permission/BasePermission;->isImmutablyRestricted()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isIncidentReportApprover()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isInstaller()Z
 PLcom/android/server/pm/permission/BasePermission;->isInstant()Z
@@ -26397,7 +27298,7 @@
 HSPLcom/android/server/pm/permission/BasePermission;->isPre23()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isPreInstalled()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isPrivileged()Z
-PLcom/android/server/pm/permission/BasePermission;->isRemoved()Z
+HSPLcom/android/server/pm/permission/BasePermission;->isRemoved()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isRetailDemo()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isRuntime()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isRuntimeOnly()Z
@@ -26512,11 +27413,11 @@
 PLcom/android/server/pm/permission/PermissionManagerService$1;->onInstallPermissionGranted()V
 PLcom/android/server/pm/permission/PermissionManagerService$1;->onInstallPermissionRevoked()V
 HSPLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionGranted(II)V
-PLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionRevoked(II)V
+HPLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionRevoked(II)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionUpdated([IZ)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionUpdatedNotifyListener([IZI)V
-PLcom/android/server/pm/permission/PermissionManagerService$2;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/util/ArraySet;Landroid/util/IntArray;Landroid/util/IntArray;[Z)V
-PLcom/android/server/pm/permission/PermissionManagerService$2;->onPermissionGranted(II)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$2;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/util/ArraySet;Landroid/util/IntArray;Landroid/util/IntArray;[Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$2;->onPermissionGranted(II)V
 PLcom/android/server/pm/permission/PermissionManagerService$2;->onPermissionRevoked(II)V
 PLcom/android/server/pm/permission/PermissionManagerService$2;->onPermissionUpdated([IZ)V
 PLcom/android/server/pm/permission/PermissionManagerService$2;->onPermissionUpdatedNotifyListener([IZI)V
@@ -26548,7 +27449,7 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->isPermissionsReviewRequired(Landroid/content/pm/parsing/AndroidPackage;I)Z
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->onNewUserCreated(I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->removeAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->resetRuntimePermissions(Landroid/content/pm/parsing/AndroidPackage;I)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->resetRuntimePermissions(Landroid/content/pm/parsing/AndroidPackage;I)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->restoreDelayedRuntimePermissions(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setCheckPermissionDelegate(Landroid/permission/PermissionManagerInternal$CheckPermissionDelegate;)V
@@ -26581,7 +27482,7 @@
 PLcom/android/server/pm/permission/PermissionManagerService;->access$1300(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Ljava/util/List;II)Z
 PLcom/android/server/pm/permission/PermissionManagerService;->access$1400(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1500(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;ZLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->access$1600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;I)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->access$1700(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;I)[Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1800(Lcom/android/server/pm/permission/PermissionManagerService;IIZZZLjava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1900(Lcom/android/server/pm/permission/PermissionManagerService;IIZZLjava/lang/String;)V
@@ -26594,7 +27495,7 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2500(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
 PLcom/android/server/pm/permission/PermissionManagerService;->access$2500(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2800(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
+PLcom/android/server/pm/permission/PermissionManagerService;->access$2800(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
 PLcom/android/server/pm/permission/PermissionManagerService;->access$2802(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/permission/PermissionManagerInternal$CheckPermissionDelegate;)Landroid/permission/PermissionManagerInternal$CheckPermissionDelegate;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2802(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2900(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
@@ -26621,12 +27522,12 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->addOnRuntimePermissionStateChangedListener(Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->addPermission(Landroid/content/pm/PermissionInfo;Z)Z
-HSPLcom/android/server/pm/permission/PermissionManagerService;->addWhitelistedRestrictedPermission(Ljava/lang/String;Ljava/lang/String;II)Z
+HPLcom/android/server/pm/permission/PermissionManagerService;->addWhitelistedRestrictedPermission(Ljava/lang/String;Ljava/lang/String;II)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->adjustPermissionProtectionFlagsLocked(ILjava/lang/String;I)I
 PLcom/android/server/pm/permission/PermissionManagerService;->backupRuntimePermissions(Landroid/os/UserHandle;)[B
 PLcom/android/server/pm/permission/PermissionManagerService;->buildInvalidCrossUserPermissionMessage(Ljava/lang/String;Z)Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->cacheBackgroundToForegoundPermissionMapping()V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission(Ljava/lang/String;)Z
+HPLcom/android/server/pm/permission/PermissionManagerService;->checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkIfLegacyStorageOpsNeedToBeUpdated(Landroid/content/pm/parsing/AndroidPackage;Z[I)[I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionImpl(Ljava/lang/String;Ljava/lang/String;I)I
@@ -26655,7 +27556,7 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->getSplitPermissions()Ljava/util/List;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->getVolumeUuidForPackage(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
-HSPLcom/android/server/pm/permission/PermissionManagerService;->getWhitelistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List;
+HPLcom/android/server/pm/permission/PermissionManagerService;->getWhitelistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToActiveLuiApp(Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToEnabledCarrierApps([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
@@ -26674,7 +27575,7 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->isPackageRequestingPermission(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
 HPLcom/android/server/pm/permission/PermissionManagerService;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->isPermissionsReviewRequired(Landroid/content/pm/parsing/AndroidPackage;I)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->killUid(IILjava/lang/String;)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->killUid(IILjava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->lambda$NPd9St1HBvGAtg1uhMV2Upfww4g(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->lambda$grantDefaultPermissionsToActiveLuiApp$7$PermissionManagerService(Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->lambda$grantDefaultPermissionsToEnabledCarrierApps$3$PermissionManagerService([Ljava/lang/String;I)V
@@ -26692,21 +27593,21 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->removeAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
 PLcom/android/server/pm/permission/PermissionManagerService;->removeWhitelistedRestrictedPermission(Ljava/lang/String;Ljava/lang/String;II)Z
-HPLcom/android/server/pm/permission/PermissionManagerService;->resetRuntimePermissionsInternal(Landroid/content/pm/parsing/AndroidPackage;I)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->resetRuntimePermissionsInternal(Landroid/content/pm/parsing/AndroidPackage;I)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->restoreDelayedRuntimePermissions(Ljava/lang/String;Landroid/os/UserHandle;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->restorePermissionState(Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->revokeDefaultPermissionsFromLuiApps([Ljava/lang/String;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->revokePermissionsNoLongerImplicitLocked(Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;[I)[I
-PLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->revokeUnusedSharedUserPermissionsLocked(Lcom/android/server/pm/SharedUserSetting;[I)[I
 PLcom/android/server/pm/permission/PermissionManagerService;->setDefaultBrowser(Ljava/lang/String;I)Z
 PLcom/android/server/pm/permission/PermissionManagerService;->setDefaultBrowserInternal(Ljava/lang/String;ZZI)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->setInitialGrantForNewImplicitPermissionsLocked(Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;Landroid/util/ArraySet;[I)[I
-HSPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsForUser(Landroid/content/pm/parsing/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsInternal(Ljava/lang/String;Ljava/util/List;II)Z
+HPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsForUser(Landroid/content/pm/parsing/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsInternal(Ljava/lang/String;Ljava/util/List;II)Z
 HPLcom/android/server/pm/permission/PermissionManagerService;->shouldShowRequestPermissionRationale(Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/pm/permission/PermissionManagerService;->startOneTimePermissionSession(Ljava/lang/String;IJII)V
 PLcom/android/server/pm/permission/PermissionManagerService;->stopOneTimePermissionSession(Ljava/lang/String;I)V
@@ -26736,6 +27637,7 @@
 HSPLcom/android/server/pm/permission/PermissionSettings;->readPermissionTrees(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/pm/permission/PermissionSettings;->readPermissions(Landroid/util/ArrayMap;Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/pm/permission/PermissionSettings;->readPermissions(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/pm/permission/PermissionSettings;->removePermissionLocked(Ljava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionSettings;->writePermissionTrees(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/pm/permission/PermissionSettings;->writePermissions(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/pm/permission/PermissionsState$PermissionData;-><init>(Lcom/android/server/pm/permission/BasePermission;)V
@@ -26799,10 +27701,17 @@
 PLcom/android/server/policy/-$$Lambda$LegacyGlobalActions$MdLN6qUJHty5FwMejjTE2cTYSvc;->getAsBoolean()Z
 PLcom/android/server/policy/-$$Lambda$LegacyGlobalActions$wqp7aD3DxIVGmy_uGo-yxhtwmQk;-><init>(Lcom/android/server/policy/LegacyGlobalActions;)V
 PLcom/android/server/policy/-$$Lambda$LegacyGlobalActions$wqp7aD3DxIVGmy_uGo-yxhtwmQk;->getAsBoolean()Z
-HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$8D9Zbki65ND_Q20M-Trexl6cHcQ;-><init>(Ljava/util/concurrent/CountDownLatch;)V
-HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$8D9Zbki65ND_Q20M-Trexl6cHcQ;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$0PyPTjk8U0Ws_mdy0kZCGNW-yXo;-><clinit>()V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$0PyPTjk8U0Ws_mdy0kZCGNW-yXo;-><init>()V
+HPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$0PyPTjk8U0Ws_mdy0kZCGNW-yXo;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$8D9Zbki65ND_Q20M-Trexl6cHcQ;-><init>(Ljava/util/concurrent/CountDownLatch;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$8D9Zbki65ND_Q20M-Trexl6cHcQ;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$Bdjb-bUeNjqbvpDtoyGXyhqm1CI;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$Bdjb-bUeNjqbvpDtoyGXyhqm1CI;->onRuntimePermissionStateChanged(Ljava/lang/String;I)V
 HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$EOXe1_laAw9FFgJquDg6Qy2DagQ;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
 HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$EOXe1_laAw9FFgJquDg6Qy2DagQ;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$MyRVVQYdOnMGqhs9CzS8-PrGvdI;-><init>(Lcom/android/internal/infra/AndroidFuture;I)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$MyRVVQYdOnMGqhs9CzS8-PrGvdI;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;-><clinit>()V
 HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;-><init>()V
 HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -26810,6 +27719,8 @@
 HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;->onRuntimePermissionStateChanged(Ljava/lang/String;I)V
 PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$enZnky8NIhd5B9lAhmYeFn1Y6mk;-><init>(Lcom/android/internal/infra/AndroidFuture;I)V
 PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$enZnky8NIhd5B9lAhmYeFn1Y6mk;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$rJp0VdbmrKtSdyFQpzRCvpLbQYE;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
+HPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$rJp0VdbmrKtSdyFQpzRCvpLbQYE;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/policy/-$$Lambda$PhoneWindowManager$DisplayHomeButtonHandler$ljCIzo7y96OZCYYMVaAi6LAwRAE;-><init>(Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;)V
 HPLcom/android/server/policy/-$$Lambda$PhoneWindowManager$DisplayHomeButtonHandler$ljCIzo7y96OZCYYMVaAi6LAwRAE;->run()V
 PLcom/android/server/policy/-$$Lambda$j_3GF7S52oSV__e_mYWlY5TeyiM;-><init>(Lcom/android/server/policy/GlobalActions;)V
@@ -26839,10 +27750,11 @@
 PLcom/android/server/policy/IconUtilities;->createIconBitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
 PLcom/android/server/policy/IconUtilities;->getDisabledColorFilter()Landroid/graphics/ColorFilter;
 PLcom/android/server/policy/LegacyGlobalActions$10;-><init>(Lcom/android/server/policy/LegacyGlobalActions;)V
-PLcom/android/server/policy/LegacyGlobalActions$10;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
+HPLcom/android/server/policy/LegacyGlobalActions$10;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
 PLcom/android/server/policy/LegacyGlobalActions$11;-><init>(Lcom/android/server/policy/LegacyGlobalActions;)V
 PLcom/android/server/policy/LegacyGlobalActions$11;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/policy/LegacyGlobalActions$12;-><init>(Lcom/android/server/policy/LegacyGlobalActions;Landroid/os/Handler;)V
+PLcom/android/server/policy/LegacyGlobalActions$12;->onChange(Z)V
 PLcom/android/server/policy/LegacyGlobalActions$13;-><init>(Lcom/android/server/policy/LegacyGlobalActions;)V
 HPLcom/android/server/policy/LegacyGlobalActions$13;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/policy/LegacyGlobalActions$1;-><init>(Lcom/android/server/policy/LegacyGlobalActions;IIIII)V
@@ -26860,6 +27772,7 @@
 PLcom/android/server/policy/LegacyGlobalActions$SilentModeTriStateAction;-><init>(Landroid/content/Context;Landroid/media/AudioManager;Landroid/os/Handler;)V
 PLcom/android/server/policy/LegacyGlobalActions;-><init>(Landroid/content/Context;Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;Ljava/lang/Runnable;)V
 PLcom/android/server/policy/LegacyGlobalActions;->access$000(Lcom/android/server/policy/LegacyGlobalActions;)Z
+PLcom/android/server/policy/LegacyGlobalActions;->access$1000(Lcom/android/server/policy/LegacyGlobalActions;)V
 PLcom/android/server/policy/LegacyGlobalActions;->access$1100(Lcom/android/server/policy/LegacyGlobalActions;)Lcom/android/internal/globalactions/ActionsDialog;
 PLcom/android/server/policy/LegacyGlobalActions;->access$1102(Lcom/android/server/policy/LegacyGlobalActions;Lcom/android/internal/globalactions/ActionsDialog;)Lcom/android/internal/globalactions/ActionsDialog;
 PLcom/android/server/policy/LegacyGlobalActions;->access$1200(Lcom/android/server/policy/LegacyGlobalActions;)V
@@ -26900,48 +27813,67 @@
 HPLcom/android/server/policy/PermissionPolicyService$Internal;->isActionRemovedForCallingPackage(Landroid/content/Intent;ILjava/lang/String;)Z
 HSPLcom/android/server/policy/PermissionPolicyService$Internal;->isInitialized(I)Z
 HSPLcom/android/server/policy/PermissionPolicyService$Internal;->setOnInitializedCallback(Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;ILjava/lang/String;I)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;->hashCode()I
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Lcom/android/server/policy/PermissionPolicyService;Landroid/content/Context;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Lcom/android/server/policy/PermissionPolicyService;Landroid/content/Context;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->access$400(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addAppOps(Landroid/content/pm/PackageInfo;Ljava/lang/String;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addExtraAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPackage(Ljava/lang/String;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPermissionAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addUid(I)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->getPackageNamesForUid(I)[Ljava/lang/String;
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidMode(III)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidMode(IIILjava/lang/String;)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeAllowed(II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeAllowed(IILjava/lang/String;)V
+PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeForeground(II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeForeground(IILjava/lang/String;)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(IILjava/lang/String;)V
+PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnoredIfNotAllowed(II)Z
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnoredIfNotAllowed(IILjava/lang/String;)Z
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->shouldGrantAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)Z
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncPackages()V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncUids()V
 HSPLcom/android/server/policy/PermissionPolicyService;-><clinit>()V
 HSPLcom/android/server/policy/PermissionPolicyService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/policy/PermissionPolicyService;->access$100(Lcom/android/server/policy/PermissionPolicyService;I)Z
+PLcom/android/server/policy/PermissionPolicyService;->access$200(Lcom/android/server/policy/PermissionPolicyService;I)V
 PLcom/android/server/policy/PermissionPolicyService;->access$200(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
+HPLcom/android/server/policy/PermissionPolicyService;->access$300(Lcom/android/server/policy/PermissionPolicyService;I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->access$300(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->access$500(Ljava/lang/String;)I
 PLcom/android/server/policy/PermissionPolicyService;->access$600(Lcom/android/server/policy/PermissionPolicyService;)Lcom/android/internal/app/IAppOpsCallback;
 HSPLcom/android/server/policy/PermissionPolicyService;->access$700(Lcom/android/server/policy/PermissionPolicyService;)Ljava/lang/Object;
-PLcom/android/server/policy/PermissionPolicyService;->access$800(Lcom/android/server/policy/PermissionPolicyService;)Ljava/lang/Object;
+HSPLcom/android/server/policy/PermissionPolicyService;->access$800(Lcom/android/server/policy/PermissionPolicyService;)Ljava/lang/Object;
 HSPLcom/android/server/policy/PermissionPolicyService;->access$802(Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;
-PLcom/android/server/policy/PermissionPolicyService;->access$902(Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;
+HSPLcom/android/server/policy/PermissionPolicyService;->access$902(Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;
 HSPLcom/android/server/policy/PermissionPolicyService;->getSwitchOp(Ljava/lang/String;)I
 HSPLcom/android/server/policy/PermissionPolicyService;->getUserContext(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/content/Context;
 HSPLcom/android/server/policy/PermissionPolicyService;->grantOrUpgradeDefaultRuntimePermissionsIfNeeded(I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->isStarted(I)Z
+PLcom/android/server/policy/PermissionPolicyService;->lambda$0PyPTjk8U0Ws_mdy0kZCGNW-yXo(Lcom/android/server/policy/PermissionPolicyService;I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->lambda$RYery4oeHNcS8uZ6BgM2MtZIvKw(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->lambda$V2gOjn4rTBH_rbxagOz-eOTvNfc(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
 PLcom/android/server/policy/PermissionPolicyService;->lambda$grantOrUpgradeDefaultRuntimePermissionsIfNeeded$0(Lcom/android/internal/infra/AndroidFuture;ILjava/lang/Boolean;)V
-HSPLcom/android/server/policy/PermissionPolicyService;->lambda$grantOrUpgradeDefaultRuntimePermissionsIfNeeded$0(Ljava/util/concurrent/CountDownLatch;Ljava/lang/Boolean;)V
+PLcom/android/server/policy/PermissionPolicyService;->lambda$grantOrUpgradeDefaultRuntimePermissionsIfNeeded$0(Ljava/util/concurrent/CountDownLatch;Ljava/lang/Boolean;)V
+PLcom/android/server/policy/PermissionPolicyService;->lambda$grantOrUpgradeDefaultRuntimePermissionsIfNeeded$1(Lcom/android/internal/infra/AndroidFuture;ILjava/lang/Boolean;)V
+HPLcom/android/server/policy/PermissionPolicyService;->lambda$onStart$0$PermissionPolicyService(Ljava/lang/String;I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$1(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$2(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Landroid/content/pm/parsing/AndroidPackage;)V
 HSPLcom/android/server/policy/PermissionPolicyService;->onBootPhase(I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->onStart()V
 HSPLcom/android/server/policy/PermissionPolicyService;->onStartUser(I)V
 PLcom/android/server/policy/PermissionPolicyService;->onStopUser(I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsAsyncForUser(Ljava/lang/String;I)V
+HPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsForUser(I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsForUser(Ljava/lang/String;I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePermissionsAndAppOpsForUser(I)V
+HPLcom/android/server/policy/PermissionPolicyService;->synchronizeUidPermissionsAndAppOpsAsync(I)V
 HSPLcom/android/server/policy/PhoneWindowManager$10;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
 PLcom/android/server/policy/PhoneWindowManager$10;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/policy/PhoneWindowManager$11;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
@@ -26963,7 +27895,7 @@
 PLcom/android/server/policy/PhoneWindowManager$7;->onAppTransitionCancelledLocked(I)V
 HSPLcom/android/server/policy/PhoneWindowManager$7;->onAppTransitionStartingLocked(IJJJ)I
 HSPLcom/android/server/policy/PhoneWindowManager$8;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$8;->onShowingChanged()V
+HPLcom/android/server/policy/PhoneWindowManager$8;->onShowingChanged()V
 PLcom/android/server/policy/PhoneWindowManager$8;->onTrustedChanged()V
 PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler$1;-><init>(Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;)V
 PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;I)V
@@ -27004,7 +27936,7 @@
 HSPLcom/android/server/policy/PhoneWindowManager;->adjustConfigurationLw(Landroid/content/res/Configuration;II)V
 HSPLcom/android/server/policy/PhoneWindowManager;->applyKeyguardPolicyLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;Lcom/android/server/policy/WindowManagerPolicy$WindowState;)V
 PLcom/android/server/policy/PhoneWindowManager;->applyLidSwitchState()V
-PLcom/android/server/policy/PhoneWindowManager;->awakenDreams()V
+HPLcom/android/server/policy/PhoneWindowManager;->awakenDreams()V
 HSPLcom/android/server/policy/PhoneWindowManager;->bindKeyguard()V
 HSPLcom/android/server/policy/PhoneWindowManager;->canBeHiddenByKeyguardLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)Z
 HSPLcom/android/server/policy/PhoneWindowManager;->canDismissBootAnimation()Z
@@ -27037,12 +27969,12 @@
 PLcom/android/server/policy/PhoneWindowManager;->finishWindowsDrawn()V
 HPLcom/android/server/policy/PhoneWindowManager;->finishedGoingToSleep(I)V
 HSPLcom/android/server/policy/PhoneWindowManager;->finishedWakingUp(I)V
-PLcom/android/server/policy/PhoneWindowManager;->getAccessibilityShortcutTimeout()J
+HPLcom/android/server/policy/PhoneWindowManager;->getAccessibilityShortcutTimeout()J
 PLcom/android/server/policy/PhoneWindowManager;->getAudioManagerInternal()Landroid/media/AudioManagerInternal;
 HPLcom/android/server/policy/PhoneWindowManager;->getAudioService()Landroid/media/IAudioService;
 PLcom/android/server/policy/PhoneWindowManager;->getDisplayContext(Landroid/content/Context;I)Landroid/content/Context;
 HPLcom/android/server/policy/PhoneWindowManager;->getDreamManager()Landroid/service/dreams/IDreamManager;
-PLcom/android/server/policy/PhoneWindowManager;->getHdmiControl()Lcom/android/server/policy/PhoneWindowManager$HdmiControl;
+HPLcom/android/server/policy/PhoneWindowManager;->getHdmiControl()Lcom/android/server/policy/PhoneWindowManager$HdmiControl;
 HSPLcom/android/server/policy/PhoneWindowManager;->getKeyguardDrawnTimeout()J
 HSPLcom/android/server/policy/PhoneWindowManager;->getLidBehavior()I
 HSPLcom/android/server/policy/PhoneWindowManager;->getLongIntArray(Landroid/content/res/Resources;I)[J
@@ -27052,7 +27984,7 @@
 PLcom/android/server/policy/PhoneWindowManager;->getRingerToggleChordDelay()J
 PLcom/android/server/policy/PhoneWindowManager;->getScreenshotChordLongPressDelay()J
 PLcom/android/server/policy/PhoneWindowManager;->getStatusBarManagerInternal()Lcom/android/server/statusbar/StatusBarManagerInternal;
-PLcom/android/server/policy/PhoneWindowManager;->getStatusBarService()Lcom/android/internal/statusbar/IStatusBarService;
+HPLcom/android/server/policy/PhoneWindowManager;->getStatusBarService()Lcom/android/internal/statusbar/IStatusBarService;
 HPLcom/android/server/policy/PhoneWindowManager;->getTelecommService()Landroid/telecom/TelecomManager;
 HSPLcom/android/server/policy/PhoneWindowManager;->getUiMode()I
 HPLcom/android/server/policy/PhoneWindowManager;->getVibrationEffect(I)Landroid/os/VibrationEffect;
@@ -27082,7 +28014,7 @@
 HPLcom/android/server/policy/PhoneWindowManager;->interceptPowerKeyUp(Landroid/view/KeyEvent;ZZ)V
 HPLcom/android/server/policy/PhoneWindowManager;->interceptRingerToggleChord()V
 HPLcom/android/server/policy/PhoneWindowManager;->interceptScreenshotChord()V
-PLcom/android/server/policy/PhoneWindowManager;->interceptSystemNavigationKey(Landroid/view/KeyEvent;)V
+HPLcom/android/server/policy/PhoneWindowManager;->interceptSystemNavigationKey(Landroid/view/KeyEvent;)V
 PLcom/android/server/policy/PhoneWindowManager;->isDeviceProvisioned()Z
 PLcom/android/server/policy/PhoneWindowManager;->isKeyguardDrawnLw()Z
 HPLcom/android/server/policy/PhoneWindowManager;->isKeyguardHostWindow(Landroid/view/WindowManager$LayoutParams;)Z
@@ -27095,7 +28027,7 @@
 HSPLcom/android/server/policy/PhoneWindowManager;->isScreenOn()Z
 HPLcom/android/server/policy/PhoneWindowManager;->isTheaterModeEnabled()Z
 HPLcom/android/server/policy/PhoneWindowManager;->isUserSetupComplete()Z
-PLcom/android/server/policy/PhoneWindowManager;->isValidGlobalKey(I)Z
+HPLcom/android/server/policy/PhoneWindowManager;->isValidGlobalKey(I)Z
 PLcom/android/server/policy/PhoneWindowManager;->isWakeKeyWhenScreenOff(I)Z
 PLcom/android/server/policy/PhoneWindowManager;->keepScreenOnStartedLw()V
 PLcom/android/server/policy/PhoneWindowManager;->keepScreenOnStoppedLw()V
@@ -27131,7 +28063,7 @@
 HPLcom/android/server/policy/PhoneWindowManager;->sendSystemKeyToStatusBar(I)V
 HPLcom/android/server/policy/PhoneWindowManager;->sendSystemKeyToStatusBarAsync(I)V
 HSPLcom/android/server/policy/PhoneWindowManager;->setAllowLockscreenWhenOn(IZ)V
-PLcom/android/server/policy/PhoneWindowManager;->setAodShowing(Z)Z
+HSPLcom/android/server/policy/PhoneWindowManager;->setAodShowing(Z)Z
 HSPLcom/android/server/policy/PhoneWindowManager;->setDefaultDisplay(Lcom/android/server/policy/WindowManagerPolicy$DisplayContentInfo;)V
 HPLcom/android/server/policy/PhoneWindowManager;->setDismissImeOnBackKeyPressed(Z)V
 PLcom/android/server/policy/PhoneWindowManager;->setKeyguardCandidateLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)V
@@ -27179,11 +28111,13 @@
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$1;-><init>()V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZ)V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZZ)V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZZZZZ)V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->getExtraAppOpCode()I
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayAllowExtraAppOp()Z
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayDenyExtraAppOpIfGranted()Z
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayGrantPermission()Z
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;-><init>(ZI)V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;-><init>(ZZ)V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;->mayGrantPermission()Z
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><clinit>()V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><init>()V
@@ -27192,8 +28126,10 @@
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getMinimumTargetSDK(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;)I
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->hasUidRequestedLegacyExternalStorage(ILandroid/content/Context;)Z
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->hasWriteMediaStorageGrantedForUid(ILandroid/content/Context;)Z
-PLcom/android/server/policy/SplashScreenSurface;-><init>(Landroid/view/View;Landroid/os/IBinder;)V
-PLcom/android/server/policy/SplashScreenSurface;->remove()V
+HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->isChangeEnabled(Landroid/content/pm/ApplicationInfo;J)Z
+HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->isChangeEnabledForUid(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;J)Z
+HPLcom/android/server/policy/SplashScreenSurface;-><init>(Landroid/view/View;Landroid/os/IBinder;)V
+HPLcom/android/server/policy/SplashScreenSurface;->remove()V
 HSPLcom/android/server/policy/WakeGestureListener$1;-><init>(Lcom/android/server/policy/WakeGestureListener;)V
 HSPLcom/android/server/policy/WakeGestureListener$2;-><init>(Lcom/android/server/policy/WakeGestureListener;)V
 HSPLcom/android/server/policy/WakeGestureListener;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
@@ -27209,7 +28145,7 @@
 HSPLcom/android/server/policy/WindowManagerPolicy;->userRotationModeToString(I)Ljava/lang/String;
 HSPLcom/android/server/policy/WindowOrientationListener$OrientationJudge;-><init>(Lcom/android/server/policy/WindowOrientationListener;)V
 HSPLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge$1;-><init>(Lcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;)V
-PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge$1;->run()V
+HPLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge$1;->run()V
 HSPLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;-><init>(Lcom/android/server/policy/WindowOrientationListener;)V
 PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->access$402(Lcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;Z)Z
 HSPLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
@@ -27232,7 +28168,7 @@
 HSPLcom/android/server/policy/WindowOrientationListener;->canDetectOrientation()Z
 HPLcom/android/server/policy/WindowOrientationListener;->disable()V
 HSPLcom/android/server/policy/WindowOrientationListener;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-PLcom/android/server/policy/WindowOrientationListener;->enable(Z)V
+HPLcom/android/server/policy/WindowOrientationListener;->enable(Z)V
 PLcom/android/server/policy/WindowOrientationListener;->getHandler()Landroid/os/Handler;
 HPLcom/android/server/policy/WindowOrientationListener;->getProposedRotation()I
 HPLcom/android/server/policy/WindowOrientationListener;->onTouchEnd()V
@@ -27295,9 +28231,9 @@
 HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isShowing()Z
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isTrusted()Z
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onBootCompleted()V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStarted()V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStopped()V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onFinishedGoingToSleep(IZ)V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStarted()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStopped()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onFinishedGoingToSleep(IZ)V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onFinishedWakingUp()V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOff()V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOn()V
@@ -27320,7 +28256,7 @@
 HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onInputRestrictedStateChanged(Z)V
 HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onShowingStateChanged(Z)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onSimSecureStateChanged(Z)V
-PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onTrustedChanged(Z)V
+HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onTrustedChanged(Z)V
 HSPLcom/android/server/policy/role/LegacyRoleResolutionPolicy;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/policy/role/LegacyRoleResolutionPolicy;->getRoleHolders(Ljava/lang/String;I)Ljava/util/List;
 HPLcom/android/server/policy/role/LegacyRoleResolutionPolicy;->isSettingsApplication(Ljava/lang/String;I)Z
@@ -27339,8 +28275,8 @@
 HSPLcom/android/server/power/AttentionDetector$1;-><init>(Lcom/android/server/power/AttentionDetector;Landroid/os/Handler;Landroid/content/Context;)V
 PLcom/android/server/power/AttentionDetector$1;->onChange(Z)V
 PLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;-><init>(Lcom/android/server/power/AttentionDetector;I)V
-PLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;->onFailure(I)V
-PLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;->onSuccess(IJ)V
+HPLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;->onFailure(I)V
+HPLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;->onSuccess(IJ)V
 HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;)V
 HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;Lcom/android/server/power/AttentionDetector$1;)V
 HSPLcom/android/server/power/AttentionDetector;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
@@ -27351,7 +28287,7 @@
 PLcom/android/server/power/AttentionDetector;->access$500(Lcom/android/server/power/AttentionDetector;)V
 HSPLcom/android/server/power/AttentionDetector;->cancelCurrentRequestIfAny()V
 HPLcom/android/server/power/AttentionDetector;->dump(Ljava/io/PrintWriter;)V
-PLcom/android/server/power/AttentionDetector;->getPostDimCheckDurationMillis(J)J
+HPLcom/android/server/power/AttentionDetector;->getPostDimCheckDurationMillis(J)J
 HPLcom/android/server/power/AttentionDetector;->getPreDimCheckDurationMillis()J
 PLcom/android/server/power/AttentionDetector;->isAttentionServiceSupported()Z
 HSPLcom/android/server/power/AttentionDetector;->onUserActivity(JI)I
@@ -27386,7 +28322,7 @@
 PLcom/android/server/power/Notifier;->access$200(I)I
 PLcom/android/server/power/Notifier;->access$300(Lcom/android/server/power/Notifier;)Lcom/android/server/policy/WindowManagerPolicy;
 PLcom/android/server/power/Notifier;->access$400(Lcom/android/server/power/Notifier;)J
-PLcom/android/server/power/Notifier;->access$500(Lcom/android/server/power/Notifier;)V
+HPLcom/android/server/power/Notifier;->access$500(Lcom/android/server/power/Notifier;)V
 HSPLcom/android/server/power/Notifier;->access$600(Lcom/android/server/power/Notifier;)V
 PLcom/android/server/power/Notifier;->access$700(Lcom/android/server/power/Notifier;II)V
 PLcom/android/server/power/Notifier;->access$900(Lcom/android/server/power/Notifier;I)V
@@ -27433,10 +28369,12 @@
 HSPLcom/android/server/power/PowerManagerService$BinderService;-><init>(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService$BinderService;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
 PLcom/android/server/power/PowerManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/power/PowerManagerService$BinderService;->getBrightnessConstraint(I)F
 PLcom/android/server/power/PowerManagerService$BinderService;->getLastShutdownReason()I
 PLcom/android/server/power/PowerManagerService$BinderService;->getPowerSaveModeTrigger()I
 HSPLcom/android/server/power/PowerManagerService$BinderService;->getPowerSaveState(I)Landroid/os/PowerSaveState;
 HPLcom/android/server/power/PowerManagerService$BinderService;->goToSleep(JII)V
+HPLcom/android/server/power/PowerManagerService$BinderService;->isAmbientDisplayAvailable()Z
 HSPLcom/android/server/power/PowerManagerService$BinderService;->isDeviceIdleMode()Z
 HSPLcom/android/server/power/PowerManagerService$BinderService;->isInteractive()Z
 HSPLcom/android/server/power/PowerManagerService$BinderService;->isLightDeviceIdleMode()Z
@@ -27451,6 +28389,7 @@
 HPLcom/android/server/power/PowerManagerService$BinderService;->setDynamicPowerSaveHint(ZI)Z
 PLcom/android/server/power/PowerManagerService$BinderService;->setPowerSaveModeEnabled(Z)Z
 PLcom/android/server/power/PowerManagerService$BinderService;->shutdown(ZLjava/lang/String;Z)V
+HPLcom/android/server/power/PowerManagerService$BinderService;->suppressAmbientDisplay(Ljava/lang/String;Z)V
 HSPLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockUids(Landroid/os/IBinder;[I)V
 HSPLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
 HPLcom/android/server/power/PowerManagerService$BinderService;->userActivity(JII)V
@@ -27467,7 +28406,7 @@
 HPLcom/android/server/power/PowerManagerService$DreamReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$1;)V
-PLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;->onForegroundProfileSwitch(I)V
+HPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;->onForegroundProfileSwitch(I)V
 HSPLcom/android/server/power/PowerManagerService$Injector$1;-><init>(Lcom/android/server/power/PowerManagerService$Injector;)V
 HSPLcom/android/server/power/PowerManagerService$Injector$1;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/power/PowerManagerService$Injector$1;->set(Ljava/lang/String;Ljava/lang/String;)V
@@ -27540,7 +28479,7 @@
 HSPLcom/android/server/power/PowerManagerService;->access$2200(Lcom/android/server/power/PowerManagerService;)Z
 HSPLcom/android/server/power/PowerManagerService;->access$2400(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/SuspendBlocker;
 HSPLcom/android/server/power/PowerManagerService;->access$2500(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService;->access$2600(Lcom/android/server/power/PowerManagerService;)V
+HPLcom/android/server/power/PowerManagerService;->access$2600(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService;->access$2700(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService;->access$2900(Lcom/android/server/power/PowerManagerService;II)V
 PLcom/android/server/power/PowerManagerService;->access$300(Lcom/android/server/power/PowerManagerService;J)V
@@ -27569,7 +28508,10 @@
 PLcom/android/server/power/PowerManagerService;->access$5300(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverStateMachine;
 PLcom/android/server/power/PowerManagerService;->access$5500(Lcom/android/server/power/PowerManagerService;IZLjava/lang/String;Z)V
 HSPLcom/android/server/power/PowerManagerService;->access$5800(Lcom/android/server/power/PowerManagerService;Z)V
+PLcom/android/server/power/PowerManagerService;->access$5900(Lcom/android/server/power/PowerManagerService;)Landroid/hardware/display/AmbientDisplayConfiguration;
 HSPLcom/android/server/power/PowerManagerService;->access$600(Ljava/lang/String;)V
+PLcom/android/server/power/PowerManagerService;->access$6000(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/power/PowerManagerService;->access$6100(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;Z)V
 PLcom/android/server/power/PowerManagerService;->access$6200(Lcom/android/server/power/PowerManagerService;Ljava/io/FileDescriptor;)V
 PLcom/android/server/power/PowerManagerService;->access$6300(Lcom/android/server/power/PowerManagerService;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/power/PowerManagerService;->access$6400(Lcom/android/server/power/PowerManagerService;I)V
@@ -27593,6 +28535,7 @@
 HPLcom/android/server/power/PowerManagerService;->canDreamLocked()Z
 HPLcom/android/server/power/PowerManagerService;->checkForLongWakeLocks()V
 HSPLcom/android/server/power/PowerManagerService;->copyWorkSource(Landroid/os/WorkSource;)Landroid/os/WorkSource;
+HPLcom/android/server/power/PowerManagerService;->createAmbientDisplayToken(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/power/PowerManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
 HPLcom/android/server/power/PowerManagerService;->dumpProto(Ljava/io/FileDescriptor;)V
 HSPLcom/android/server/power/PowerManagerService;->enqueueNotifyLongMsgLocked(J)V
@@ -27633,7 +28576,7 @@
 HSPLcom/android/server/power/PowerManagerService;->maybeUpdateForegroundProfileLastActivityLocked(J)V
 HPLcom/android/server/power/PowerManagerService;->monitor()V
 PLcom/android/server/power/PowerManagerService;->napInternal(JI)V
-HPLcom/android/server/power/PowerManagerService;->napNoUpdateLocked(JI)Z
+PLcom/android/server/power/PowerManagerService;->napNoUpdateLocked(JI)Z
 HSPLcom/android/server/power/PowerManagerService;->needDisplaySuspendBlockerLocked()Z
 HSPLcom/android/server/power/PowerManagerService;->notifyWakeLockAcquiredLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
 HSPLcom/android/server/power/PowerManagerService;->notifyWakeLockChangingLocked(Lcom/android/server/power/PowerManagerService$WakeLock;ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;)V
@@ -27670,6 +28613,7 @@
 HSPLcom/android/server/power/PowerManagerService;->shouldUseProximitySensorLocked()Z
 HSPLcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
 PLcom/android/server/power/PowerManagerService;->shutdownOrRebootInternal(IZLjava/lang/String;Z)V
+HPLcom/android/server/power/PowerManagerService;->suppressAmbientDisplayInternal(Ljava/lang/String;Z)V
 HSPLcom/android/server/power/PowerManagerService;->systemReady(Lcom/android/internal/app/IAppOpsService;)V
 HSPLcom/android/server/power/PowerManagerService;->uidActiveInternal(I)V
 HSPLcom/android/server/power/PowerManagerService;->uidGoneInternal(I)V
@@ -27696,6 +28640,13 @@
 HSPLcom/android/server/power/PowerManagerService;->userActivityNoUpdateLocked(JIII)Z
 HPLcom/android/server/power/PowerManagerService;->wakeUpInternal(JILjava/lang/String;ILjava/lang/String;I)V
 HSPLcom/android/server/power/PowerManagerService;->wakeUpNoUpdateLocked(JILjava/lang/String;ILjava/lang/String;I)Z
+PLcom/android/server/power/PreRebootLogger;-><clinit>()V
+PLcom/android/server/power/PreRebootLogger;->dump(Ljava/io/File;)V
+PLcom/android/server/power/PreRebootLogger;->dumpLogsLocked(Ljava/io/File;Ljava/lang/String;)V
+PLcom/android/server/power/PreRebootLogger;->dumpServiceLocked(Ljava/io/File;Ljava/lang/String;)V
+PLcom/android/server/power/PreRebootLogger;->getDumpDir()Ljava/io/File;
+PLcom/android/server/power/PreRebootLogger;->log(Landroid/content/Context;)V
+PLcom/android/server/power/PreRebootLogger;->log(Landroid/content/Context;Ljava/io/File;)V
 PLcom/android/server/power/ShutdownThread$2;-><init>()V
 PLcom/android/server/power/ShutdownThread$3;-><init>(Lcom/android/server/power/ShutdownThread;)V
 PLcom/android/server/power/ShutdownThread$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -27845,20 +28796,20 @@
 HSPLcom/android/server/power/WakeLockLog;->tagNameReducer(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/power/WakeLockLog;->translateFlagsFromPowerManager(I)I
 HSPLcom/android/server/power/WirelessChargerDetector$1;-><init>(Lcom/android/server/power/WirelessChargerDetector;)V
-HPLcom/android/server/power/WirelessChargerDetector$1;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/power/WirelessChargerDetector$1;->onSensorChanged(Landroid/hardware/SensorEvent;)V
 HSPLcom/android/server/power/WirelessChargerDetector$2;-><init>(Lcom/android/server/power/WirelessChargerDetector;)V
-PLcom/android/server/power/WirelessChargerDetector$2;->run()V
+HSPLcom/android/server/power/WirelessChargerDetector$2;->run()V
 HSPLcom/android/server/power/WirelessChargerDetector;-><clinit>()V
 HSPLcom/android/server/power/WirelessChargerDetector;-><init>(Landroid/hardware/SensorManager;Lcom/android/server/power/SuspendBlocker;Landroid/os/Handler;)V
-PLcom/android/server/power/WirelessChargerDetector;->access$000(Lcom/android/server/power/WirelessChargerDetector;)Ljava/lang/Object;
-PLcom/android/server/power/WirelessChargerDetector;->access$100(Lcom/android/server/power/WirelessChargerDetector;FFF)V
-PLcom/android/server/power/WirelessChargerDetector;->access$200(Lcom/android/server/power/WirelessChargerDetector;)V
-PLcom/android/server/power/WirelessChargerDetector;->clearAtRestLocked()V
+HSPLcom/android/server/power/WirelessChargerDetector;->access$000(Lcom/android/server/power/WirelessChargerDetector;)Ljava/lang/Object;
+HSPLcom/android/server/power/WirelessChargerDetector;->access$100(Lcom/android/server/power/WirelessChargerDetector;FFF)V
+HSPLcom/android/server/power/WirelessChargerDetector;->access$200(Lcom/android/server/power/WirelessChargerDetector;)V
+HSPLcom/android/server/power/WirelessChargerDetector;->clearAtRestLocked()V
 HPLcom/android/server/power/WirelessChargerDetector;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/power/WirelessChargerDetector;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
-PLcom/android/server/power/WirelessChargerDetector;->finishDetectionLocked()V
-HPLcom/android/server/power/WirelessChargerDetector;->hasMoved(FFFFFF)Z
-HPLcom/android/server/power/WirelessChargerDetector;->processSampleLocked(FFF)V
+HSPLcom/android/server/power/WirelessChargerDetector;->finishDetectionLocked()V
+HSPLcom/android/server/power/WirelessChargerDetector;->hasMoved(FFFFFF)Z
+HSPLcom/android/server/power/WirelessChargerDetector;->processSampleLocked(FFF)V
 HSPLcom/android/server/power/WirelessChargerDetector;->startDetectionLocked()V
 HSPLcom/android/server/power/WirelessChargerDetector;->update(ZI)Z
 PLcom/android/server/power/batterysaver/-$$Lambda$BatterySaverPolicy$7a-wfvqpjaa389r6FVZsJX98cd8;-><init>(Lcom/android/server/power/batterysaver/BatterySaverPolicy;[Lcom/android/server/power/batterysaver/BatterySaverPolicy$BatterySaverPolicyListener;)V
@@ -27915,7 +28866,7 @@
 HSPLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->onSystemReady(Lcom/android/server/power/batterysaver/BatterySaverController;)V
 HSPLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->updateLocationState(Lcom/android/server/power/batterysaver/BatterySaverController;)V
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;-><init>(FZZZZZZZZZZZZZZLandroid/util/ArrayMap;Landroid/util/ArrayMap;ZZI)V
-PLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->equals(Ljava/lang/Object;)Z
 HPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->fromConfig(Landroid/os/BatterySaverPolicyConfig;)Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->fromSettings(Ljava/lang/String;Ljava/lang/String;Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;-><clinit>()V
@@ -27930,7 +28881,7 @@
 PLcom/android/server/power/batterysaver/BatterySaverPolicy;->getFileValues(Z)Landroid/util/ArrayMap;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGlobalSetting(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGpsMode()I
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->isLaunchBoostDisabled()Z
+HPLcom/android/server/power/batterysaver/BatterySaverPolicy;->isLaunchBoostDisabled()Z
 PLcom/android/server/power/batterysaver/BatterySaverPolicy;->lambda$refreshSettings$1$BatterySaverPolicy([Lcom/android/server/power/batterysaver/BatterySaverPolicy$BatterySaverPolicyListener;)V
 PLcom/android/server/power/batterysaver/BatterySaverPolicy;->lambda$systemReady$0$BatterySaverPolicy(Z)V
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->onChange(ZLandroid/net/Uri;)V
@@ -27999,7 +28950,7 @@
 HSPLcom/android/server/power/batterysaver/BatterySavingStats;->injectBatteryLevel()I
 HSPLcom/android/server/power/batterysaver/BatterySavingStats;->injectBatteryPercent()I
 HSPLcom/android/server/power/batterysaver/BatterySavingStats;->injectCurrentTime()J
-HPLcom/android/server/power/batterysaver/BatterySavingStats;->startCharging()V
+HSPLcom/android/server/power/batterysaver/BatterySavingStats;->startCharging()V
 HSPLcom/android/server/power/batterysaver/BatterySavingStats;->startNewStateLocked(IJII)V
 HSPLcom/android/server/power/batterysaver/BatterySavingStats;->statesToIndex(III)I
 HSPLcom/android/server/power/batterysaver/BatterySavingStats;->transitionState(III)V
@@ -28511,7 +29462,7 @@
 HSPLcom/android/server/role/RoleManagerService;->getOrCreateUserState(I)Lcom/android/server/role/RoleUserState;
 PLcom/android/server/role/RoleManagerService;->lambda$TCTA4I2bhEypguZihxs4ezif6t0(Lcom/android/server/role/RoleManagerService;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/role/RoleManagerService;->lambda$computeComponentStateHash$2(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;ILandroid/content/pm/parsing/AndroidPackage;)V
-PLcom/android/server/role/RoleManagerService;->lambda$maybeGrantDefaultRolesAsync$0$RoleManagerService(I)V
+HPLcom/android/server/role/RoleManagerService;->lambda$maybeGrantDefaultRolesAsync$0$RoleManagerService(I)V
 HPLcom/android/server/role/RoleManagerService;->lambda$maybeGrantDefaultRolesInternal$1(Lcom/android/server/role/RoleUserState;Ljava/lang/String;Lcom/android/internal/infra/AndroidFuture;Ljava/lang/Boolean;)V
 HPLcom/android/server/role/RoleManagerService;->maybeGrantDefaultRolesAsync(I)V
 HSPLcom/android/server/role/RoleManagerService;->maybeGrantDefaultRolesInternal(I)Lcom/android/internal/infra/AndroidFuture;
@@ -28648,16 +29599,17 @@
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$000(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$100(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Landroid/os/Handler;
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1000()J
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1000(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1000(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1000(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1002(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)J
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1100()J
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1002(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)J
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1100()J
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1100(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1100(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1102(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)J
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1200()J
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1200(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1200(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1300(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1300(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1400(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1500(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1600(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
@@ -28665,6 +29617,7 @@
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$300()Z
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$300(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$400(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/lang/Object;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$500(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$600(Lcom/android/server/rollback/RollbackManagerServiceImpl;Landroid/os/UserHandle;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$700(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$800(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;)V
@@ -28692,6 +29645,7 @@
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getRecentlyCommittedRollbacks()Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getRollbackForId(I)Lcom/android/server/rollback/Rollback;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->getRollbackForSessionLocked(I)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->isModule(Ljava/lang/String;)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->isRollbackWhitelisted(Ljava/lang/String;)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$commitRollback$0$RollbackManagerServiceImpl(ILandroid/content/pm/ParceledListSlice;Ljava/lang/String;Landroid/content/IntentSender;)V
@@ -28803,7 +29757,7 @@
 PLcom/android/server/search/SearchManagerService;->onUnlockUser(I)V
 PLcom/android/server/search/Searchables$1;-><init>()V
 PLcom/android/server/search/Searchables$1;->compare(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I
-PLcom/android/server/search/Searchables$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLcom/android/server/search/Searchables$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/search/Searchables;-><clinit>()V
 PLcom/android/server/search/Searchables;-><init>(Landroid/content/Context;I)V
 PLcom/android/server/search/Searchables;->access$000(Landroid/content/pm/ResolveInfo;)Z
@@ -28873,7 +29827,7 @@
 HSPLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>(Lcom/android/server/signedconfig/SignedConfigService$1;)V
 PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/signedconfig/SignedConfigService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/signedconfig/SignedConfigService;->handlePackageBroadcast(Landroid/content/Intent;)V
+HPLcom/android/server/signedconfig/SignedConfigService;->handlePackageBroadcast(Landroid/content/Intent;)V
 HSPLcom/android/server/signedconfig/SignedConfigService;->registerUpdateReceiver(Landroid/content/Context;)V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$2PaYhOaggf1E5xg82LTTEwxmLE4;-><clinit>()V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$2PaYhOaggf1E5xg82LTTEwxmLE4;-><init>()V
@@ -28883,7 +29837,7 @@
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$TZdoqC_LDA8If7sQ7WXz9LM6VHg;-><init>(Lcom/android/server/slice/PinnedSliceState;)V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$TZdoqC_LDA8If7sQ7WXz9LM6VHg;->run()V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$j_JfEZwPCa729MjgsTSd8MAItIw;-><init>(Lcom/android/server/slice/PinnedSliceState;[Landroid/app/slice/SliceSpec;)V
-PLcom/android/server/slice/-$$Lambda$PinnedSliceState$j_JfEZwPCa729MjgsTSd8MAItIw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/slice/-$$Lambda$PinnedSliceState$j_JfEZwPCa729MjgsTSd8MAItIw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$t5Vl61Ns1u_83c4ri7920sczEu0;-><init>(Lcom/android/server/slice/PinnedSliceState;)V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$t5Vl61Ns1u_83c4ri7920sczEu0;->run()V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$vxnx7v9Z67Tj9aywVmtdX48br1M;-><clinit>()V
@@ -28910,19 +29864,19 @@
 PLcom/android/server/slice/PinnedSliceState;->getSpecs()[Landroid/app/slice/SliceSpec;
 PLcom/android/server/slice/PinnedSliceState;->getUri()Landroid/net/Uri;
 PLcom/android/server/slice/PinnedSliceState;->handleRecheckListeners()V
-PLcom/android/server/slice/PinnedSliceState;->handleSendPinned()V
-PLcom/android/server/slice/PinnedSliceState;->handleSendUnpinned()V
+HPLcom/android/server/slice/PinnedSliceState;->handleSendPinned()V
+HPLcom/android/server/slice/PinnedSliceState;->handleSendUnpinned()V
 PLcom/android/server/slice/PinnedSliceState;->hasPinOrListener()Z
 PLcom/android/server/slice/PinnedSliceState;->lambda$KzxFkvfomRuMb5PD8_pIHDIhUUE(Lcom/android/server/slice/PinnedSliceState;)V
 PLcom/android/server/slice/PinnedSliceState;->lambda$TZdoqC_LDA8If7sQ7WXz9LM6VHg(Lcom/android/server/slice/PinnedSliceState;)V
-PLcom/android/server/slice/PinnedSliceState;->lambda$mergeSpecs$0$PinnedSliceState([Landroid/app/slice/SliceSpec;Landroid/app/slice/SliceSpec;)Landroid/app/slice/SliceSpec;
+HPLcom/android/server/slice/PinnedSliceState;->lambda$mergeSpecs$0$PinnedSliceState([Landroid/app/slice/SliceSpec;Landroid/app/slice/SliceSpec;)Landroid/app/slice/SliceSpec;
 PLcom/android/server/slice/PinnedSliceState;->lambda$mergeSpecs$1(Landroid/app/slice/SliceSpec;)Z
 PLcom/android/server/slice/PinnedSliceState;->lambda$mergeSpecs$2(I)[Landroid/app/slice/SliceSpec;
 PLcom/android/server/slice/PinnedSliceState;->lambda$t5Vl61Ns1u_83c4ri7920sczEu0(Lcom/android/server/slice/PinnedSliceState;)V
 PLcom/android/server/slice/PinnedSliceState;->mergeSpecs([Landroid/app/slice/SliceSpec;)V
 HPLcom/android/server/slice/PinnedSliceState;->pin(Ljava/lang/String;[Landroid/app/slice/SliceSpec;Landroid/os/IBinder;)V
 HPLcom/android/server/slice/PinnedSliceState;->setSlicePinned(Z)V
-PLcom/android/server/slice/PinnedSliceState;->unpin(Ljava/lang/String;Landroid/os/IBinder;)Z
+HPLcom/android/server/slice/PinnedSliceState;->unpin(Ljava/lang/String;Landroid/os/IBinder;)Z
 HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;-><init>(Ljava/lang/String;Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
 HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->access$000(Lcom/android/server/slice/SliceClientPermissions$SliceAuthority;)Ljava/lang/String;
 HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->access$100(Lcom/android/server/slice/SliceClientPermissions$SliceAuthority;)Lcom/android/server/slice/SlicePermissionManager$PkgUser;
@@ -28934,14 +29888,14 @@
 HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->isPathPrefixMatch([Ljava/lang/String;[Ljava/lang/String;)Z
 HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->readFrom(Lorg/xmlpull/v1/XmlPullParser;)V
 HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/slice/SliceClientPermissions;-><clinit>()V
-PLcom/android/server/slice/SliceClientPermissions;-><init>(Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
-PLcom/android/server/slice/SliceClientPermissions;->access$200()Ljava/lang/String;
-PLcom/android/server/slice/SliceClientPermissions;->clear()V
+HSPLcom/android/server/slice/SliceClientPermissions;-><clinit>()V
+HSPLcom/android/server/slice/SliceClientPermissions;-><init>(Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
+HPLcom/android/server/slice/SliceClientPermissions;->access$200()Ljava/lang/String;
+HSPLcom/android/server/slice/SliceClientPermissions;->clear()V
 HPLcom/android/server/slice/SliceClientPermissions;->createFrom(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/slice/DirtyTracker;)Lcom/android/server/slice/SliceClientPermissions;
 HPLcom/android/server/slice/SliceClientPermissions;->getAuthority(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Lcom/android/server/slice/SliceClientPermissions$SliceAuthority;
 PLcom/android/server/slice/SliceClientPermissions;->getFileName()Ljava/lang/String;
-PLcom/android/server/slice/SliceClientPermissions;->getFileName(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Ljava/lang/String;
+HSPLcom/android/server/slice/SliceClientPermissions;->getFileName(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Ljava/lang/String;
 HPLcom/android/server/slice/SliceClientPermissions;->getOrCreateAuthority(Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Lcom/android/server/slice/SliceClientPermissions$SliceAuthority;
 HPLcom/android/server/slice/SliceClientPermissions;->grantUri(Landroid/net/Uri;Lcom/android/server/slice/SlicePermissionManager$PkgUser;)V
 HPLcom/android/server/slice/SliceClientPermissions;->hasFullAccess()Z
@@ -28950,7 +29904,7 @@
 PLcom/android/server/slice/SliceClientPermissions;->removeAuthority(Ljava/lang/String;I)V
 HPLcom/android/server/slice/SliceClientPermissions;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/slice/SliceManagerService$1;-><init>(Lcom/android/server/slice/SliceManagerService;)V
-HPLcom/android/server/slice/SliceManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/slice/SliceManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/slice/SliceManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/slice/SliceManagerService$Lifecycle;->onBootPhase(I)V
 HSPLcom/android/server/slice/SliceManagerService$Lifecycle;->onStart()V
@@ -28960,7 +29914,7 @@
 HPLcom/android/server/slice/SliceManagerService$PackageMatchingCache;->matches(Ljava/lang/String;)Z
 HSPLcom/android/server/slice/SliceManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/slice/SliceManagerService;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/slice/SliceManagerService;->access$000(Lcom/android/server/slice/SliceManagerService;)Lcom/android/server/slice/SlicePermissionManager;
+HSPLcom/android/server/slice/SliceManagerService;->access$000(Lcom/android/server/slice/SliceManagerService;)Lcom/android/server/slice/SlicePermissionManager;
 HSPLcom/android/server/slice/SliceManagerService;->access$100(Lcom/android/server/slice/SliceManagerService;)V
 PLcom/android/server/slice/SliceManagerService;->access$200(Lcom/android/server/slice/SliceManagerService;I)V
 PLcom/android/server/slice/SliceManagerService;->access$300(Lcom/android/server/slice/SliceManagerService;I)V
@@ -29002,35 +29956,35 @@
 HPLcom/android/server/slice/SliceManagerService;->verifyCaller(Ljava/lang/String;)V
 HSPLcom/android/server/slice/SlicePermissionManager$H;-><init>(Lcom/android/server/slice/SlicePermissionManager;Landroid/os/Looper;)V
 HPLcom/android/server/slice/SlicePermissionManager$H;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/slice/SlicePermissionManager$ParserHolder;-><init>(Lcom/android/server/slice/SlicePermissionManager;)V
-PLcom/android/server/slice/SlicePermissionManager$ParserHolder;-><init>(Lcom/android/server/slice/SlicePermissionManager;Lcom/android/server/slice/SlicePermissionManager$1;)V
-PLcom/android/server/slice/SlicePermissionManager$ParserHolder;->access$100(Lcom/android/server/slice/SlicePermissionManager$ParserHolder;)Lorg/xmlpull/v1/XmlPullParser;
+HSPLcom/android/server/slice/SlicePermissionManager$ParserHolder;-><init>(Lcom/android/server/slice/SlicePermissionManager;)V
+HSPLcom/android/server/slice/SlicePermissionManager$ParserHolder;-><init>(Lcom/android/server/slice/SlicePermissionManager;Lcom/android/server/slice/SlicePermissionManager$1;)V
+HPLcom/android/server/slice/SlicePermissionManager$ParserHolder;->access$100(Lcom/android/server/slice/SlicePermissionManager$ParserHolder;)Lorg/xmlpull/v1/XmlPullParser;
 PLcom/android/server/slice/SlicePermissionManager$ParserHolder;->access$102(Lcom/android/server/slice/SlicePermissionManager$ParserHolder;Lorg/xmlpull/v1/XmlPullParser;)Lorg/xmlpull/v1/XmlPullParser;
 PLcom/android/server/slice/SlicePermissionManager$ParserHolder;->access$300(Lcom/android/server/slice/SlicePermissionManager$ParserHolder;)Ljava/io/InputStream;
 PLcom/android/server/slice/SlicePermissionManager$ParserHolder;->access$302(Lcom/android/server/slice/SlicePermissionManager$ParserHolder;Ljava/io/InputStream;)Ljava/io/InputStream;
 HPLcom/android/server/slice/SlicePermissionManager$ParserHolder;->close()V
 HPLcom/android/server/slice/SlicePermissionManager$PkgUser;-><init>(Ljava/lang/String;)V
-HPLcom/android/server/slice/SlicePermissionManager$PkgUser;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/server/slice/SlicePermissionManager$PkgUser;-><init>(Ljava/lang/String;I)V
 HPLcom/android/server/slice/SlicePermissionManager$PkgUser;->equals(Ljava/lang/Object;)Z
 PLcom/android/server/slice/SlicePermissionManager$PkgUser;->getPkg()Ljava/lang/String;
 PLcom/android/server/slice/SlicePermissionManager$PkgUser;->getUserId()I
-HPLcom/android/server/slice/SlicePermissionManager$PkgUser;->hashCode()I
-HPLcom/android/server/slice/SlicePermissionManager$PkgUser;->toString()Ljava/lang/String;
+HSPLcom/android/server/slice/SlicePermissionManager$PkgUser;->hashCode()I
+HSPLcom/android/server/slice/SlicePermissionManager$PkgUser;->toString()Ljava/lang/String;
 HSPLcom/android/server/slice/SlicePermissionManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 HSPLcom/android/server/slice/SlicePermissionManager;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/io/File;)V
 PLcom/android/server/slice/SlicePermissionManager;->access$400(Lcom/android/server/slice/SlicePermissionManager;)Landroid/util/ArraySet;
 PLcom/android/server/slice/SlicePermissionManager;->access$600(Lcom/android/server/slice/SlicePermissionManager;)Landroid/util/ArrayMap;
 PLcom/android/server/slice/SlicePermissionManager;->access$700(Lcom/android/server/slice/SlicePermissionManager;)Landroid/util/ArrayMap;
-HPLcom/android/server/slice/SlicePermissionManager;->getClient(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Lcom/android/server/slice/SliceClientPermissions;
-HPLcom/android/server/slice/SlicePermissionManager;->getFile(Ljava/lang/String;)Landroid/util/AtomicFile;
-HPLcom/android/server/slice/SlicePermissionManager;->getParser(Ljava/lang/String;)Lcom/android/server/slice/SlicePermissionManager$ParserHolder;
-HPLcom/android/server/slice/SlicePermissionManager;->getProvider(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Lcom/android/server/slice/SliceProviderPermissions;
+HSPLcom/android/server/slice/SlicePermissionManager;->getClient(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Lcom/android/server/slice/SliceClientPermissions;
+HSPLcom/android/server/slice/SlicePermissionManager;->getFile(Ljava/lang/String;)Landroid/util/AtomicFile;
+HSPLcom/android/server/slice/SlicePermissionManager;->getParser(Ljava/lang/String;)Lcom/android/server/slice/SlicePermissionManager$ParserHolder;
+HSPLcom/android/server/slice/SlicePermissionManager;->getProvider(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Lcom/android/server/slice/SliceProviderPermissions;
 HPLcom/android/server/slice/SlicePermissionManager;->grantSliceAccess(Ljava/lang/String;ILjava/lang/String;ILandroid/net/Uri;)V
 PLcom/android/server/slice/SlicePermissionManager;->handlePersist()V
 HPLcom/android/server/slice/SlicePermissionManager;->hasFullAccess(Ljava/lang/String;I)Z
 HPLcom/android/server/slice/SlicePermissionManager;->hasPermission(Ljava/lang/String;ILandroid/net/Uri;)Z
 HPLcom/android/server/slice/SlicePermissionManager;->onPersistableDirty(Lcom/android/server/slice/DirtyTracker$Persistable;)V
-HPLcom/android/server/slice/SlicePermissionManager;->removePkg(Ljava/lang/String;I)V
+HSPLcom/android/server/slice/SlicePermissionManager;->removePkg(Ljava/lang/String;I)V
 HPLcom/android/server/slice/SlicePermissionManager;->writeBackup(Lorg/xmlpull/v1/XmlSerializer;)V
 HPLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;-><init>(Ljava/lang/String;Lcom/android/server/slice/DirtyTracker;)V
 PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->access$000(Lcom/android/server/slice/SliceProviderPermissions$SliceAuthority;)Ljava/lang/String;
@@ -29039,13 +29993,13 @@
 PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->getPkgs()Ljava/util/Collection;
 HPLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->readFrom(Lorg/xmlpull/v1/XmlPullParser;)V
 HPLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/slice/SliceProviderPermissions;-><clinit>()V
-HPLcom/android/server/slice/SliceProviderPermissions;-><init>(Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
+HSPLcom/android/server/slice/SliceProviderPermissions;-><clinit>()V
+HSPLcom/android/server/slice/SliceProviderPermissions;-><init>(Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
 HPLcom/android/server/slice/SliceProviderPermissions;->access$100()Ljava/lang/String;
 HPLcom/android/server/slice/SliceProviderPermissions;->createFrom(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/slice/DirtyTracker;)Lcom/android/server/slice/SliceProviderPermissions;
-HPLcom/android/server/slice/SliceProviderPermissions;->getAuthorities()Ljava/util/Collection;
+HSPLcom/android/server/slice/SliceProviderPermissions;->getAuthorities()Ljava/util/Collection;
 PLcom/android/server/slice/SliceProviderPermissions;->getFileName()Ljava/lang/String;
-PLcom/android/server/slice/SliceProviderPermissions;->getFileName(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Ljava/lang/String;
+HSPLcom/android/server/slice/SliceProviderPermissions;->getFileName(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Ljava/lang/String;
 HPLcom/android/server/slice/SliceProviderPermissions;->getOrCreateAuthority(Ljava/lang/String;)Lcom/android/server/slice/SliceProviderPermissions$SliceAuthority;
 PLcom/android/server/slice/SliceProviderPermissions;->onPersistableDirty(Lcom/android/server/slice/DirtyTracker$Persistable;)V
 HPLcom/android/server/slice/SliceProviderPermissions;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
@@ -29054,6 +30008,7 @@
 HPLcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$crQZgbDmIG6q92Mrkm49T2yqrs0;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;I)V
 PLcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$crQZgbDmIG6q92Mrkm49T2yqrs0;->run(ILandroid/media/soundtrigger/ISoundTriggerDetectionService;)V
 HPLcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$pFqiq_C9KJsoa_HQOdj7lmMixsI;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
+PLcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$pFqiq_C9KJsoa_HQOdj7lmMixsI;->run()V
 HPLcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$t5mBYXswwLAAdm47WS10stLjYng;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;)V
 HPLcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$t5mBYXswwLAAdm47WS10stLjYng;->run()V
 PLcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$wfDlqQ7aPvu9qZCZ24jJu4tfUMY;-><clinit>()V
@@ -29076,14 +30031,14 @@
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getCallback()Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getHandle()I
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getModelId()Ljava/util/UUID;
-PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getRecognitionConfig()Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
+HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getRecognitionConfig()Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getSoundModel()Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isGenericModel()Z
-PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isKeyphraseModel()Z
+HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isKeyphraseModel()Z
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isModelLoaded()Z
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isModelNotLoaded()Z
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isModelStarted()Z
-PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isRequested()Z
+HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isRequested()Z
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->modelTypeToString()Ljava/lang/String;
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->requestedToString()Ljava/lang/String;
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setCallback(Landroid/hardware/soundtrigger/IRecognitionStatusCallback;)V
@@ -29093,7 +30048,7 @@
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setRequested(Z)V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStarted()V
-PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStopped()V
+HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStopped()V
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->stateToString()Ljava/lang/String;
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->toString()Ljava/lang/String;
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->uuidToString()Ljava/lang/String;
@@ -29110,7 +30065,7 @@
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->createKeyphraseModelDataLocked(Ljava/util/UUID;I)Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->forceStopAndUnloadModelLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Ljava/lang/Exception;)V
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->forceStopAndUnloadModelLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Ljava/lang/Exception;Ljava/util/Iterator;)V
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->forceStopAndUnloadModelLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Ljava/lang/Exception;Ljava/util/Iterator;)V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->getGenericModelState(Ljava/util/UUID;)I
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->getKeyphraseIdFromEvent(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)I
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->getKeyphraseModelDataLocked(I)Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;
@@ -29121,13 +30076,13 @@
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->internalClearGlobalStateLocked()V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->internalClearModelStateLocked()V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->isKeyphraseRecognitionEvent(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;)Z
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->isRecognitionAllowed()Z
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->isRecognitionAllowed()Z
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->isRecognitionRequested(Ljava/util/UUID;)Z
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->onCallStateChangedLocked(Z)V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->onGenericRecognitionSuccessLocked(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->onKeyphraseRecognitionSuccessLocked(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->onPowerSaveModeChangedLocked(Z)V
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->onRecognition(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;)V
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->onRecognition(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->onServiceDied()V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->onServiceDiedLocked()V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->onServiceStateChange(I)V
@@ -29140,13 +30095,13 @@
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->startRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Z)I
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->stopAndUnloadDeadModelsLocked()V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->stopGenericRecognition(Ljava/util/UUID;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->stopKeyphraseRecognition(ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->stopRecognition(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->stopRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Z)I
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->tryStopAndUnloadLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;ZZ)I
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->stopKeyphraseRecognition(ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->stopRecognition(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->stopRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Z)I
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->tryStopAndUnloadLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;ZZ)I
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->unloadGenericSoundModel(Ljava/util/UUID;)I
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->unloadKeyphraseSoundModel(I)I
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->updateAllRecognitionsLocked(Z)V
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->updateAllRecognitionsLocked(Z)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->updateRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;ZZ)I
 HSPLcom/android/server/soundtrigger/SoundTriggerInternal;-><init>()V
 PLcom/android/server/soundtrigger/SoundTriggerLogger$Event;-><clinit>()V
@@ -29184,17 +30139,19 @@
 PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->access$1500(Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;)Z
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->access$1600(Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;)V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->bind()V
+PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->createAudioRecordForEvent(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)Landroid/media/AudioRecord;
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->destroy()V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->disconnectLocked()V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->lambda$onError$3$SoundTriggerService$RemoteSoundTriggerDetectionService()V
 PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->lambda$onError$4$SoundTriggerService$RemoteSoundTriggerDetectionService(IILandroid/media/soundtrigger/ISoundTriggerDetectionService;)V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->lambda$onGenericSoundTriggerDetected$0$SoundTriggerService$RemoteSoundTriggerDetectionService()V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->lambda$onGenericSoundTriggerDetected$1$SoundTriggerService$RemoteSoundTriggerDetectionService(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;ILandroid/media/soundtrigger/ISoundTriggerDetectionService;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->lambda$onGenericSoundTriggerDetected$2$SoundTriggerService$RemoteSoundTriggerDetectionService(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
 PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->lambda$wfDlqQ7aPvu9qZCZ24jJu4tfUMY(Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;)V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onError(I)V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onGenericSoundTriggerDetected(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
-PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onRecognitionPaused()V
-PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onRecognitionResumed()V
+HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onRecognitionPaused()V
+HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onRecognitionResumed()V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->pingBinder()Z
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->runOrAddOperation(Lcom/android/server/soundtrigger/SoundTriggerService$Operation;)V
@@ -29226,7 +30183,7 @@
 PLcom/android/server/soundtrigger/SoundTriggerService;->access$500(Lcom/android/server/soundtrigger/SoundTriggerService;)Lcom/android/server/soundtrigger/SoundTriggerDbHelper;
 PLcom/android/server/soundtrigger/SoundTriggerService;->access$600(Lcom/android/server/soundtrigger/SoundTriggerService;)Ljava/lang/Object;
 PLcom/android/server/soundtrigger/SoundTriggerService;->access$700(Lcom/android/server/soundtrigger/SoundTriggerService;)Ljava/util/TreeMap;
-PLcom/android/server/soundtrigger/SoundTriggerService;->access$800(Lcom/android/server/soundtrigger/SoundTriggerService;)Ljava/lang/Object;
+HPLcom/android/server/soundtrigger/SoundTriggerService;->access$800(Lcom/android/server/soundtrigger/SoundTriggerService;)Ljava/lang/Object;
 PLcom/android/server/soundtrigger/SoundTriggerService;->access$900(Lcom/android/server/soundtrigger/SoundTriggerService;)Ljava/util/TreeMap;
 HPLcom/android/server/soundtrigger/SoundTriggerService;->enforceCallingPermission(Ljava/lang/String;)V
 HSPLcom/android/server/soundtrigger/SoundTriggerService;->initSoundTriggerHelper()V
@@ -29240,8 +30197,6 @@
 HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$TgbC0Y00RFANX4qn5-S2zqA0RJU;->onValues(ILandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;)V
 PLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$ewHo6fX75Dw1073KIePOuh3oLIE;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;)V
 PLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$ewHo6fX75Dw1073KIePOuh3oLIE;->onValues(II)V
-HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$fbvBJLiyU152ejAJj5a9PvFEhUI;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;)V
-HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$fbvBJLiyU152ejAJj5a9PvFEhUI;->onValues(ILandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;)V
 HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerMiddlewareService$Lifecycle$-t8UndY0AHGyM6n9ce2y6qok3Ho;-><clinit>()V
 HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerMiddlewareService$Lifecycle$-t8UndY0AHGyM6n9ce2y6qok3Ho;-><init>()V
 HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerMiddlewareService$Lifecycle$-t8UndY0AHGyM6n9ce2y6qok3Ho;->create()Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;
@@ -29249,7 +30204,6 @@
 PLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlPhrase(Landroid/media/soundtrigger_middleware/Phrase;)Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Phrase;
 HPLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlPhraseRecognitionExtra(Landroid/media/soundtrigger_middleware/PhraseRecognitionExtra;)Landroid/hardware/soundtrigger/V2_0/PhraseRecognitionExtra;
 PLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlPhraseSoundModel(Landroid/media/soundtrigger_middleware/PhraseSoundModel;)Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$PhraseSoundModel;
-PLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlRecognitionConfig(Landroid/media/soundtrigger_middleware/RecognitionConfig;)Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$RecognitionConfig;
 HPLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlRecognitionConfig(Landroid/media/soundtrigger_middleware/RecognitionConfig;)Landroid/hardware/soundtrigger/V2_3/RecognitionConfig;
 PLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlRecognitionModes(I)I
 HPLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlSoundModel(Landroid/media/soundtrigger_middleware/SoundModel;)Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;
@@ -29286,19 +30240,16 @@
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->as2_1()Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->as2_2()Landroid/hardware/soundtrigger/V2_2/ISoundTriggerHw;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->as2_3()Landroid/hardware/soundtrigger/V2_3/ISoundTriggerHw;
-PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->getModelState(I)V
-HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->getProperties()Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->getModelState(I)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->getProperties()Landroid/hardware/soundtrigger/V2_3/Properties;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->getProperties_2_0()Landroid/hardware/soundtrigger/V2_3/Properties;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->handleHalStatus(ILjava/lang/String;)V
-HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$getProperties$0(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;ILandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$getProperties_2_0$5(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;ILandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$loadPhraseSoundModel$2(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;II)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$loadSoundModel$1(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;II)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->loadPhraseSoundModel(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)I
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->loadSoundModel(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)I
-PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->startRecognition(ILandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$RecognitionConfig;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->startRecognition(ILandroid/hardware/soundtrigger/V2_3/RecognitionConfig;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->startRecognition_2_1(ILandroid/hardware/soundtrigger/V2_3/RecognitionConfig;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->stopRecognition(I)V
@@ -29315,10 +30266,11 @@
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$Lifecycle;->onStart()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState$Activity;-><clinit>()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState$Activity;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState;-><init>()V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState;-><init>()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->attach(Landroid/media/soundtrigger_middleware/ISoundTriggerModule;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->detach()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->detachInternal()V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->forceRecognitionEvent(I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->loadModel(Landroid/media/soundtrigger_middleware/SoundModel;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->loadPhraseModel(Landroid/media/soundtrigger_middleware/PhraseSoundModel;)I
@@ -29363,7 +30315,7 @@
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->recognitionCallback(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->setState(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->startRecognition(Landroid/media/soundtrigger_middleware/RecognitionConfig;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->stopRecognition()V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->stopRecognition()V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->unload()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$1;)V
@@ -29373,6 +30325,7 @@
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->access$2200(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;)Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->access$300(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->checkValid()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->detach()V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->forceRecognitionEvent(I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->loadModel(Landroid/media/soundtrigger_middleware/SoundModel;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->loadPhraseModel(Landroid/media/soundtrigger_middleware/PhraseSoundModel;)I
@@ -29693,7 +30646,7 @@
 PLcom/android/server/stats/pull/StatsPullAtomService;->access$000(Lcom/android/server/stats/pull/StatsPullAtomService;IILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->addNetworkStats(ILjava/util/List;Landroid/net/NetworkStats;Z)V
 HPLcom/android/server/stats/pull/StatsPullAtomService;->awaitControllerInfo(Landroid/os/SynchronousResultReceiver;)Landroid/os/Parcelable;
-PLcom/android/server/stats/pull/StatsPullAtomService;->fetchBluetoothData()Landroid/bluetooth/BluetoothActivityEnergyInfo;
+HPLcom/android/server/stats/pull/StatsPullAtomService;->fetchBluetoothData()Landroid/bluetooth/BluetoothActivityEnergyInfo;
 HPLcom/android/server/stats/pull/StatsPullAtomService;->getINetworkStatsService()Landroid/net/INetworkStatsService;
 PLcom/android/server/stats/pull/StatsPullAtomService;->getIStoragedService()Landroid/os/IStoraged;
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->getIThermalService()Landroid/os/IThermalService;
@@ -29764,12 +30717,12 @@
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullBatteryLevel(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullBinderCallsStats(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullBluetoothActivityInfo(ILjava/util/List;)I
-PLcom/android/server/stats/pull/StatsPullAtomService;->pullBluetoothBytesTransfer(ILjava/util/List;)I
+HPLcom/android/server/stats/pull/StatsPullAtomService;->pullBluetoothBytesTransfer(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullCategorySize(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullCooldownDevice(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuTimePerThreadFreq(ILjava/util/List;)I
-PLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuTimePerUid(ILjava/util/List;)I
-PLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuTimeperUidFreq(ILjava/util/List;)I
+HPLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuTimePerUid(ILjava/util/List;)I
+HPLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuTimeperUidFreq(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullDangerousPermissionState(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullDebugElapsedClock(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullDebugFailingElapsedClock(ILjava/util/List;)I
@@ -29779,7 +30732,7 @@
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullExternalStorageInfo(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullFaceSettings(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullHealthHal(ILjava/util/List;)I
-PLcom/android/server/stats/pull/StatsPullAtomService;->pullIonHeapSize(ILjava/util/List;)I
+HPLcom/android/server/stats/pull/StatsPullAtomService;->pullIonHeapSize(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullKernelWakelock(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullLooperStats(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullMobileBytesTransfer(ILjava/util/List;)I
@@ -29859,8 +30812,8 @@
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerWifiBytesTransfer()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerWifiBytesTransferBackground()V
 HPLcom/android/server/stats/pull/StatsPullAtomService;->rollupNetworkStatsByFGBG(Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
-PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$E67OP8P-DuCzmX46ISCwIyOv93Q;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$E67OP8P-DuCzmX46ISCwIyOv93Q;->run()V
+HSPLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$E67OP8P-DuCzmX46ISCwIyOv93Q;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
+HSPLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$E67OP8P-DuCzmX46ISCwIyOv93Q;->run()V
 PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$KPqmL9kxt0YFCz4dBAFkiUMRWw8;-><clinit>()V
 PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$KPqmL9kxt0YFCz4dBAFkiUMRWw8;-><init>()V
 PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$KPqmL9kxt0YFCz4dBAFkiUMRWw8;->run()V
@@ -29870,7 +30823,7 @@
 HPLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$dQguzfF4tEgBOj3Pr8MpGRN8HT0;->run()V
 HSPLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$uF0ibEnnXe7Lxunxb98QQLJjgZM;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;IZZ)V
 HSPLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$uF0ibEnnXe7Lxunxb98QQLJjgZM;->run()V
-PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$yr21OX4Hyd_XfExwnVnVIn3Jfe4;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;I)V
+HPLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$yr21OX4Hyd_XfExwnVnVIn3Jfe4;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;I)V
 HPLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$yr21OX4Hyd_XfExwnVnVIn3Jfe4;->run()V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
 PLcom/android/server/statusbar/StatusBarManagerService$1;->abortTransient(I[I)V
@@ -29878,10 +30831,10 @@
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->appTransitionFinished(I)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->appTransitionPending(I)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->appTransitionStarting(IJJ)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->hideToast(Ljava/lang/String;Landroid/os/IBinder;)V
+HPLcom/android/server/statusbar/StatusBarManagerService$1;->hideToast(Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/statusbar/StatusBarManagerService$1;->onCameraLaunchGestureDetected(I)V
 PLcom/android/server/statusbar/StatusBarManagerService$1;->onDisplayReady(I)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->onProposedRotationChanged(IZ)V
+HPLcom/android/server/statusbar/StatusBarManagerService$1;->onProposedRotationChanged(IZ)V
 HPLcom/android/server/statusbar/StatusBarManagerService$1;->onRecentsAnimationStateChanged(Z)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->onSystemBarAppearanceChanged(II[Lcom/android/internal/view/AppearanceRegion;Z)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->setDisableFlags(IILjava/lang/String;)V
@@ -29892,7 +30845,7 @@
 PLcom/android/server/statusbar/StatusBarManagerService$1;->showChargingAnimation(I)V
 PLcom/android/server/statusbar/StatusBarManagerService$1;->showRecentApps(Z)V
 PLcom/android/server/statusbar/StatusBarManagerService$1;->showShutdownUi(ZLjava/lang/String;)Z
-PLcom/android/server/statusbar/StatusBarManagerService$1;->showToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/os/IBinder;ILandroid/app/ITransientNotificationCallback;)V
+HPLcom/android/server/statusbar/StatusBarManagerService$1;->showToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/os/IBinder;ILandroid/app/ITransientNotificationCallback;)V
 PLcom/android/server/statusbar/StatusBarManagerService$1;->showTransient(I[I)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->topAppWindowChanged(IZZ)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$2;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
@@ -29902,7 +30855,7 @@
 HSPLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/statusbar/StatusBarManagerService$1;)V
 PLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;->binderDied()V
-PLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;->linkToDeath()V
+HSPLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;->linkToDeath()V
 HSPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;ILandroid/os/IBinder;)V
 PLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->binderDied()V
 HSPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->getFlags(I)I
@@ -29920,17 +30873,17 @@
 PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2000(Lcom/android/server/statusbar/StatusBarManagerService$UiState;II)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2100(Lcom/android/server/statusbar/StatusBarManagerService$UiState;Z)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2200(Lcom/android/server/statusbar/StatusBarManagerService$UiState;Z)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2300(Lcom/android/server/statusbar/StatusBarManagerService$UiState;IIZLandroid/os/IBinder;)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2400(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Landroid/util/ArraySet;
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2500(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2600(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)[Lcom/android/internal/view/AppearanceRegion;
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2700(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2800(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2900(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3000(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Landroid/os/IBinder;
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3100(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3200(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3300(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
+HPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2300(Lcom/android/server/statusbar/StatusBarManagerService$UiState;IIZLandroid/os/IBinder;)V
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2400(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Landroid/util/ArraySet;
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2500(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2600(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)[Lcom/android/internal/view/AppearanceRegion;
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2700(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2800(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2900(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3000(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Landroid/os/IBinder;
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3100(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3200(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3300(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
 PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3400(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
 HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->appearanceEquals(I[Lcom/android/internal/view/AppearanceRegion;Z)Z
 PLcom/android/server/statusbar/StatusBarManagerService$UiState;->clearTransient([I)V
@@ -29940,7 +30893,7 @@
 HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->setAppearance(I[Lcom/android/internal/view/AppearanceRegion;Z)V
 PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setDisabled(II)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->setFullscreen(Z)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setImeWindowState(IIZLandroid/os/IBinder;)V
+HPLcom/android/server/statusbar/StatusBarManagerService$UiState;->setImeWindowState(IIZLandroid/os/IBinder;)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;->setImmersive(Z)V
 PLcom/android/server/statusbar/StatusBarManagerService$UiState;->showTransient([I)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;-><init>(Landroid/content/Context;)V
@@ -29953,15 +30906,16 @@
 PLcom/android/server/statusbar/StatusBarManagerService;->access$1800(Lcom/android/server/statusbar/StatusBarManagerService;)Lcom/android/server/policy/GlobalActionsProvider$GlobalActionsListener;
 PLcom/android/server/statusbar/StatusBarManagerService;->access$1802(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/policy/GlobalActionsProvider$GlobalActionsListener;)Lcom/android/server/policy/GlobalActionsProvider$GlobalActionsListener;
 PLcom/android/server/statusbar/StatusBarManagerService;->access$200(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->access$300(Lcom/android/server/statusbar/StatusBarManagerService;)Lcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;
+HSPLcom/android/server/statusbar/StatusBarManagerService;->access$300(Lcom/android/server/statusbar/StatusBarManagerService;)Lcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;
 HSPLcom/android/server/statusbar/StatusBarManagerService;->access$502(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/notification/NotificationDelegate;)Lcom/android/server/notification/NotificationDelegate;
 HSPLcom/android/server/statusbar/StatusBarManagerService;->access$600(Lcom/android/server/statusbar/StatusBarManagerService;IZZ)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->access$700(Lcom/android/server/statusbar/StatusBarManagerService;IILjava/lang/String;)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->access$800(Lcom/android/server/statusbar/StatusBarManagerService;)V
+PLcom/android/server/statusbar/StatusBarManagerService;->addTile(Landroid/content/ComponentName;)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->clearInlineReplyUriPermissions(Ljava/lang/String;)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->clearNotificationEffects()V
 PLcom/android/server/statusbar/StatusBarManagerService;->collapsePanels()V
-PLcom/android/server/statusbar/StatusBarManagerService;->disable(ILandroid/os/IBinder;Ljava/lang/String;)V
+HPLcom/android/server/statusbar/StatusBarManagerService;->disable(ILandroid/os/IBinder;Ljava/lang/String;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->disable2(ILandroid/os/IBinder;Ljava/lang/String;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->disable2ForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->disableForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
@@ -29972,21 +30926,22 @@
 HSPLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBar()V
 PLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBarOrShell()V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBarService()V
+PLcom/android/server/statusbar/StatusBarManagerService;->expandNotificationsPanel()V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->findMatchingRecordLocked(Landroid/os/IBinder;I)Landroid/util/Pair;
 HSPLcom/android/server/statusbar/StatusBarManagerService;->gatherDisableActionsLocked(II)I
-PLcom/android/server/statusbar/StatusBarManagerService;->getDisableFlags(Landroid/os/IBinder;I)[I
+HPLcom/android/server/statusbar/StatusBarManagerService;->getDisableFlags(Landroid/os/IBinder;I)[I
 PLcom/android/server/statusbar/StatusBarManagerService;->getUiContext()Landroid/content/Context;
 HSPLcom/android/server/statusbar/StatusBarManagerService;->getUiState(I)Lcom/android/server/statusbar/StatusBarManagerService$UiState;
 HPLcom/android/server/statusbar/StatusBarManagerService;->handleSystemKey(I)V
 PLcom/android/server/statusbar/StatusBarManagerService;->hideAuthenticationDialog()V
 PLcom/android/server/statusbar/StatusBarManagerService;->lambda$disableLocked$0$StatusBarManagerService(I)V
-PLcom/android/server/statusbar/StatusBarManagerService;->lambda$notifyBarAttachChanged$3$StatusBarManagerService()V
+HSPLcom/android/server/statusbar/StatusBarManagerService;->lambda$notifyBarAttachChanged$3$StatusBarManagerService()V
 PLcom/android/server/statusbar/StatusBarManagerService;->lambda$reboot$5(Z)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->lambda$setImeWindowStatus$2$StatusBarManagerService(ILandroid/os/IBinder;IIZZ)V
 PLcom/android/server/statusbar/StatusBarManagerService;->lambda$shutdown$4()V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->lambda$topAppWindowChanged$1$StatusBarManagerService(IZZ)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->manageDisableListLocked(IILandroid/os/IBinder;Ljava/lang/String;I)V
-PLcom/android/server/statusbar/StatusBarManagerService;->notifyBarAttachChanged()V
+HSPLcom/android/server/statusbar/StatusBarManagerService;->notifyBarAttachChanged()V
 PLcom/android/server/statusbar/StatusBarManagerService;->onBiometricAuthenticated()V
 PLcom/android/server/statusbar/StatusBarManagerService;->onBiometricError(III)V
 PLcom/android/server/statusbar/StatusBarManagerService;->onBubbleNotificationSuppressionChanged(Ljava/lang/String;Z)V
@@ -30010,7 +30965,7 @@
 HPLcom/android/server/statusbar/StatusBarManagerService;->onPanelHidden()V
 HPLcom/android/server/statusbar/StatusBarManagerService;->onPanelRevealed(ZI)V
 PLcom/android/server/statusbar/StatusBarManagerService;->reboot(Z)V
-PLcom/android/server/statusbar/StatusBarManagerService;->registerStatusBar(Lcom/android/internal/statusbar/IStatusBar;)Lcom/android/internal/statusbar/RegisterStatusBarResult;
+HSPLcom/android/server/statusbar/StatusBarManagerService;->registerStatusBar(Lcom/android/internal/statusbar/IStatusBar;)Lcom/android/internal/statusbar/RegisterStatusBarResult;
 PLcom/android/server/statusbar/StatusBarManagerService;->remTile(Landroid/content/ComponentName;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->removeIcon(Ljava/lang/String;)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->setDisableFlags(IILjava/lang/String;)V
@@ -30204,7 +31159,7 @@
 HSPLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$v_RQMbGOOwc6kjxGSNUrOugH8pw;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
 HSPLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$v_RQMbGOOwc6kjxGSNUrOugH8pw;->getPackages(I)[Ljava/lang/String;
 HSPLcom/android/server/telecom/TelecomLoaderService$1;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/TelecomLoaderService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/telecom/TelecomLoaderService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection$1;-><init>(Lcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;)V
 HSPLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
 HSPLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;-><init>(Lcom/android/server/telecom/TelecomLoaderService;Lcom/android/server/telecom/TelecomLoaderService$1;)V
@@ -30236,8 +31191,10 @@
 HSPLcom/android/server/testharness/TestHarnessModeService;->onStart()V
 HSPLcom/android/server/testharness/TestHarnessModeService;->setUpTestHarnessMode()V
 PLcom/android/server/testharness/TestHarnessModeService;->showNotificationIfEnabled()V
+PLcom/android/server/textclassifier/-$$Lambda$ClPEOpaEGm2gFpu1r4dox0RBPf4;-><init>(Landroid/view/textclassifier/TextClassificationConstants;)V
+HPLcom/android/server/textclassifier/-$$Lambda$ClPEOpaEGm2gFpu1r4dox0RBPf4;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$2sJrwO1jPjEX_2E7aDk6t5666lk;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$2sJrwO1jPjEX_2E7aDk6t5666lk;->runOrThrow()V
+HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$2sJrwO1jPjEX_2E7aDk6t5666lk;->runOrThrow()V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$64mAXU9GjFt2f69p_xdhRl7xXFQ;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/view/textclassifier/TextClassificationSessionId;)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$64mAXU9GjFt2f69p_xdhRl7xXFQ;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$C6b5fl8vcOQ42djzSJ_03hDc6yA;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
@@ -30252,11 +31209,13 @@
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$Mu95ZECYMawAFTgaMzQ9kasDiKU;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$NrhR3cz8qMQshjDDQuBK6HtZpyc;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$NrhR3cz8qMQshjDDQuBK6HtZpyc;->runOrThrow()V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$SessionCache$q4fGxygETn80gLCa2MrH-2YXaZA;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;Landroid/view/textclassifier/TextClassificationSessionId;)V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$SessionCache$q4fGxygETn80gLCa2MrH-2YXaZA;->binderDied()V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$XSRTA8JOHnkYT6Nx-j6ZQZBVb1k;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$XSRTA8JOHnkYT6Nx-j6ZQZBVb1k;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$YncBiGXrmV9iVRg9N6un11UZvEM;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$YncBiGXrmV9iVRg9N6un11UZvEM;->runOrThrow()V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$Zo3yKbNMpKbAhJ7coUzTv5c-zZI;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
+HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$Zo3yKbNMpKbAhJ7coUzTv5c-zZI;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$Zo3yKbNMpKbAhJ7coUzTv5c-zZI;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$bskC2PS7oOlLzDJkBbOVEdfy1Gg;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$bskC2PS7oOlLzDJkBbOVEdfy1Gg;->runOrThrow()V
@@ -30264,8 +31223,8 @@
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$dSVln_o2_pbF3ORGnBQ8z407M10;->acceptOrThrow(Ljava/lang/Object;)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$e1UWpNtFzY7M9iYeMHhCrNauxak;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$e1UWpNtFzY7M9iYeMHhCrNauxak;->runOrThrow()V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$eHPAXa73mXK1X6ykNeph3K0mXtg;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$eHPAXa73mXK1X6ykNeph3K0mXtg;->acceptOrThrow(Ljava/lang/Object;)V
+HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$eHPAXa73mXK1X6ykNeph3K0mXtg;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
+HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$eHPAXa73mXK1X6ykNeph3K0mXtg;->acceptOrThrow(Ljava/lang/Object;)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$f_vDZ7EFXK9b8SQpksrEkEWKPq8;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;I)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$f_vDZ7EFXK9b8SQpksrEkEWKPq8;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$kUVQfCEBNt6jzkS89Io4xSHSuIs;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
@@ -30281,41 +31240,57 @@
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$x-GZDBev2pMmhyvF3nP65PH7VPo;-><init>(Ljava/lang/String;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$x-GZDBev2pMmhyvF3nP65PH7VPo;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/textclassifier/-$$Lambda$k-7KcqZH2A0AukChaKa6Xru13_Q;-><init>(Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/-$$Lambda$k-7KcqZH2A0AukChaKa6Xru13_Q;->runOrThrow()V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$1;-><init>()V
 HPLcom/android/server/textclassifier/TextClassificationManagerService$1;->asBinder()Landroid/os/IBinder;
+PLcom/android/server/textclassifier/TextClassificationManagerService$1;->onFailure()V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onStart()V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onStartUser(I)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onStopUser(I)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onUnlockUser(I)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->processAnyPendingWork(I)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;-><init>(Ljava/lang/String;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Landroid/os/IBinder;Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;I)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;-><init>(Ljava/lang/String;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Landroid/os/IBinder;Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;I)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;-><init>(Ljava/lang/String;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Landroid/os/IBinder;Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;I)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1200(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)I
 HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1300(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/String;
-PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1400(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)I
+HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1400(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)I
 HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1400(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/Runnable;
-PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1500(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/String;
+HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1500(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/String;
 HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1600(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Landroid/os/IBinder;
-PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1600(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/Runnable;
-PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1800(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Landroid/os/IBinder;
+HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1600(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/Runnable;
+PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1700(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/Runnable;
+HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1800(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Landroid/os/IBinder;
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;I)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->cleanupService()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->init(Landroid/service/textclassifier/ITextClassifierService;Landroid/content/ComponentName;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onNullBinding(Landroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILjava/lang/String;Z)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILjava/lang/String;ZLcom/android/server/textclassifier/TextClassificationManagerService$1;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$1200(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$1300(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$2100(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;ILandroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$2200(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$500(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$600(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;ILjava/lang/String;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindIfHasPendingRequestsLocked()Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindLocked()Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->checkRequestAcceptedLocked(ILjava/lang/String;)Z
+HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindLocked()Z
+HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->checkRequestAcceptedLocked(ILjava/lang/String;)Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->getTextClassifierServiceComponent()Landroid/content/ComponentName;
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->handlePendingRequestsLocked()V
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->isBoundLocked()Z
+HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->handlePendingRequestsLocked()V
+HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->isBoundLocked()Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->updateServiceInfoLocked(ILandroid/content/ComponentName;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;-><init>(Ljava/lang/Object;)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;->get(Landroid/view/textclassifier/TextClassificationSessionId;)Lcom/android/server/textclassifier/TextClassificationManagerService$StrippedTextClassificationContext;
+HPLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;->lambda$put$0$TextClassificationManagerService$SessionCache(Landroid/view/textclassifier/TextClassificationSessionId;)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;->put(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassificationContext;)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;->remove(Landroid/view/textclassifier/TextClassificationSessionId;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;->size()I
+HPLcom/android/server/textclassifier/TextClassificationManagerService$StrippedTextClassificationContext;-><init>(Landroid/view/textclassifier/TextClassificationContext;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/content/Context;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->registerObserver()V
@@ -30338,7 +31313,7 @@
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$500(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$600(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;ILjava/lang/String;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$600(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$700(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)Z
+HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$700(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$800(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;ILjava/lang/String;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$800(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$900(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/content/ComponentName;)Z
@@ -30346,9 +31321,11 @@
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindIfHasPendingRequestsLocked()Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindLocked()Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->checkRequestAcceptedLocked(ILjava/lang/String;)Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->cleanupServiceLocked()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->dump(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;Ljava/lang/String;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getAllServiceStatesLocked()Ljava/util/List;
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getServiceStateLocked(Z)Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;
+HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getServiceStateLocked(Z)Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getServiceUid(Landroid/content/ComponentName;I)I
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->handlePendingRequestsLocked()V
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->isBoundLocked()Z
@@ -30362,27 +31339,27 @@
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$100(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1000(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1100(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1100(Lcom/android/server/textclassifier/TextClassificationManagerService;)Landroid/view/textclassifier/TextClassificationConstants;
+HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$1100(Lcom/android/server/textclassifier/TextClassificationManagerService;)Landroid/view/textclassifier/TextClassificationConstants;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1900(Lcom/android/server/textclassifier/TextClassificationManagerService;)Landroid/content/Context;
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$200(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/Object;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$2000(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$2000(Lcom/android/server/textclassifier/TextClassificationManagerService;Ljava/lang/String;I)I
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$300(Lcom/android/server/textclassifier/TextClassificationManagerService;I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$700(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
+HPLcom/android/server/textclassifier/TextClassificationManagerService;->access$700(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$800(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->getUserStateLocked(I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->handleRequest(ILjava/lang/String;ZLcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Ljava/lang/String;Landroid/service/textclassifier/ITextClassifierCallback;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->handleRequest(ILjava/lang/String;ZZLcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Ljava/lang/String;Landroid/service/textclassifier/ITextClassifierCallback;)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService;->handleRequest(ILjava/lang/String;ZZLcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Ljava/lang/String;Landroid/service/textclassifier/ITextClassifierCallback;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$dump$9$TextClassificationManagerService(Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$handleRequest$10(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$handleRequest$10(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$handleRequest$10(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$logOnFailure$10(Ljava/lang/String;Ljava/lang/Throwable;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$logOnFailure$11(Ljava/lang/String;Ljava/lang/Throwable;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onClassifyText$1(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;Landroid/service/textclassifier/ITextClassifierService;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onClassifyText$1(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onCreateTextClassificationSession$7$TextClassificationManagerService(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;ILandroid/service/textclassifier/ITextClassifierService;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onCreateTextClassificationSession$7$TextClassificationManagerService(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/service/textclassifier/ITextClassifierService;)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onCreateTextClassificationSession$7$TextClassificationManagerService(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/service/textclassifier/ITextClassifierService;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onCreateTextClassificationSession$7$TextClassificationManagerService(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;I)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onDestroyTextClassificationSession$8$TextClassificationManagerService(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/service/textclassifier/ITextClassifierService;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onDestroyTextClassificationSession$8$TextClassificationManagerService(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;)V
@@ -30411,7 +31388,7 @@
 PLcom/android/server/textclassifier/TextClassificationManagerService;->unbindServiceIfNecessary()V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->validateCallingPackage(Ljava/lang/String;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->validateInput(Landroid/content/Context;Ljava/lang/String;I)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->validateUser(I)V
+HPLcom/android/server/textclassifier/TextClassificationManagerService;->validateUser(I)V
 HPLcom/android/server/textservices/-$$Lambda$TextServicesManagerService$SpellCheckerBindGroup$H2umvFNjpgILSC1ZJmUoLxzCdSk;-><init>(Landroid/os/IBinder;)V
 PLcom/android/server/textservices/-$$Lambda$TextServicesManagerService$SpellCheckerBindGroup$H2umvFNjpgILSC1ZJmUoLxzCdSk;->test(Ljava/lang/Object;)Z
 PLcom/android/server/textservices/LocaleUtils;->getSuitableLocalesForSpellChecker(Ljava/util/Locale;)Ljava/util/ArrayList;
@@ -30420,7 +31397,7 @@
 HSPLcom/android/server/textservices/TextServicesManagerInternal;-><init>()V
 HSPLcom/android/server/textservices/TextServicesManagerInternal;->get()Lcom/android/server/textservices/TextServicesManagerInternal;
 HPLcom/android/server/textservices/TextServicesManagerService$ISpellCheckerServiceCallbackBinder;-><init>(Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
-PLcom/android/server/textservices/TextServicesManagerService$ISpellCheckerServiceCallbackBinder;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+HPLcom/android/server/textservices/TextServicesManagerService$ISpellCheckerServiceCallbackBinder;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;)V
 HPLcom/android/server/textservices/TextServicesManagerService$InternalDeathRecipients;-><init>(Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;)V
 PLcom/android/server/textservices/TextServicesManagerService$InternalDeathRecipients;->onCallbackDied(Landroid/os/IInterface;)V
 PLcom/android/server/textservices/TextServicesManagerService$InternalDeathRecipients;->onCallbackDied(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
@@ -30448,7 +31425,7 @@
 PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->access$600(Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;)Ljava/util/ArrayList;
 PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->access$700(Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;)Lcom/android/server/textservices/TextServicesManagerService$InternalDeathRecipients;
 HPLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->cleanLocked()V
-PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->getISpellCheckerSessionOrQueueLocked(Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
+HPLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->getISpellCheckerSessionOrQueueLocked(Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
 PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->lambda$removeListener$0(Landroid/os/IBinder;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)Z
 HPLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onServiceConnectedLocked(Lcom/android/internal/textservice/ISpellCheckerService;)V
 PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onServiceDisconnectedLocked()V
@@ -30502,6 +31479,8 @@
 PLcom/android/server/textservices/TextServicesManagerService;->startSpellCheckerServiceInnerLocked(Landroid/view/textservice/SpellCheckerInfo;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;
 PLcom/android/server/textservices/TextServicesManagerService;->unbindServiceLocked(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)V
 HPLcom/android/server/textservices/TextServicesManagerService;->verifyUser(I)V
+PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$-psn4dtQQi-8j8LFHWcI7Y6I83U;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/TelephonyTimeSuggestion;)V
+PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$-psn4dtQQi-8j8LFHWcI7Y6I83U;->run()V
 HPLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$CIVCmMHYHAlLayNvm792RTW8F3U;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/PhoneTimeSuggestion;)V
 HPLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$CIVCmMHYHAlLayNvm792RTW8F3U;->run()V
 PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$nU2ruOeSUWWPVvB4A7i7qaumT4s;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/NetworkTimeSuggestion;)V
@@ -30518,13 +31497,15 @@
 PLcom/android/server/timedetector/TimeDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestNetworkTimePermission()V
 HPLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestPhoneTimePermission()V
+PLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestTelephonyTimePermission()V
 PLcom/android/server/timedetector/TimeDetectorService;->handleAutoTimeDetectionToggle()V
 PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestNetworkTime$2$TimeDetectorService(Landroid/app/timedetector/NetworkTimeSuggestion;)V
 PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestPhoneTime$0$TimeDetectorService(Landroid/app/timedetector/PhoneTimeSuggestion;)V
-PLcom/android/server/timedetector/TimeDetectorService;->suggestNetworkTime(Landroid/app/timedetector/NetworkTimeSuggestion;)V
+PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestTelephonyTime$0$TimeDetectorService(Landroid/app/timedetector/TelephonyTimeSuggestion;)V
+HPLcom/android/server/timedetector/TimeDetectorService;->suggestNetworkTime(Landroid/app/timedetector/NetworkTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorService;->suggestPhoneTime(Landroid/app/timedetector/PhoneTimeSuggestion;)V
+HPLcom/android/server/timedetector/TimeDetectorService;->suggestTelephonyTime(Landroid/app/timedetector/TelephonyTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategy;->getTimeAt(Landroid/os/TimestampedValue;J)J
-PLcom/android/server/timedetector/TimeDetectorStrategy;->getTimeAt(Landroid/util/TimestampedValue;J)J
 HSPLcom/android/server/timedetector/TimeDetectorStrategyCallbackImpl;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyCallbackImpl;->acquireWakeLock()V
 HPLcom/android/server/timedetector/TimeDetectorStrategyCallbackImpl;->checkWakeLockHeld()V
@@ -30539,26 +31520,28 @@
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->doAutoTimeDetection(Ljava/lang/String;)V
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->findBestPhoneSuggestion()Landroid/app/timedetector/PhoneTimeSuggestion;
+HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->findBestTelephonySuggestion()Landroid/app/timedetector/TelephonyTimeSuggestion;
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->findLatestValidNetworkSuggestion()Landroid/app/timedetector/NetworkTimeSuggestion;
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->handleAutoTimeDetectionChanged()V
 HSPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->initialize(Lcom/android/server/timedetector/TimeDetectorStrategy$Callback;)V
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->isOriginAutomatic(I)Z
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->scorePhoneSuggestion(JLandroid/app/timedetector/PhoneTimeSuggestion;)I
+HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->scorePhoneSuggestion(JLandroid/app/timedetector/PhoneTimeSuggestion;)I
+HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->scoreTelephonySuggestion(JLandroid/app/timedetector/TelephonyTimeSuggestion;)I
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockIfRequired(ILandroid/os/TimestampedValue;Ljava/lang/String;)V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockIfRequired(ILandroid/util/TimestampedValue;Ljava/lang/String;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockUnderWakeLock(ILandroid/os/TimestampedValue;Ljava/lang/Object;)V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockUnderWakeLock(ILandroid/util/TimestampedValue;Ljava/lang/Object;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestNetworkTime(Landroid/app/timedetector/NetworkTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestPhoneTime(Landroid/app/timedetector/PhoneTimeSuggestion;)V
+HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestTelephonyTime(Landroid/app/timedetector/TelephonyTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateAndStorePhoneSuggestion(Landroid/app/timedetector/PhoneTimeSuggestion;)Z
+HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateAndStoreTelephonySuggestion(Landroid/app/timedetector/TelephonyTimeSuggestion;)Z
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionTime(Landroid/os/TimestampedValue;Ljava/lang/Object;)Z
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionTime(Landroid/util/TimestampedValue;Ljava/lang/Object;)Z
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionUtcTime(JLandroid/os/TimestampedValue;)Z
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionUtcTime(JLandroid/util/TimestampedValue;)Z
 PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$9xvncY35tAcP2eoRcnDHHViAoZw;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$9xvncY35tAcP2eoRcnDHHViAoZw;->run()V
 PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$UdeBqzyBZX1S4jHLM7d2cKvE_-U;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/ManualTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$UdeBqzyBZX1S4jHLM7d2cKvE_-U;->run()V
+PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$fVU6C2loDoPZ5MLRbaxmXaLRy_s;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
+PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$fVU6C2loDoPZ5MLRbaxmXaLRy_s;->run()V
 HSPLcom/android/server/timezonedetector/ArrayMapWithHistory;-><init>(I)V
 PLcom/android/server/timezonedetector/ArrayMapWithHistory;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 HPLcom/android/server/timezonedetector/ArrayMapWithHistory;->get(Ljava/lang/Object;)Ljava/lang/Object;
@@ -30577,7 +31560,7 @@
 HPLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->isAutoTimeZoneDetectionEnabled()Z
 HPLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->isDeviceTimeZoneInitialized()Z
 PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->setDeviceTimeZone(Ljava/lang/String;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService$1;-><init>(Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorService;)V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$1;-><init>(Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorService;)V
 HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$1;-><init>(Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService$1;->onChange(Z)V
 HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;-><init>(Landroid/content/Context;)V
@@ -30588,10 +31571,13 @@
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceSuggestManualTimeZonePermission()V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceSuggestPhoneTimeZonePermission()V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceSuggestTelephonyTimeZonePermission()V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;->lambda$suggestManualTimeZone$0$TimeZoneDetectorService(Landroid/app/timezonedetector/ManualTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;->lambda$suggestPhoneTimeZone$1$TimeZoneDetectorService(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService;->lambda$suggestTelephonyTimeZone$1$TimeZoneDetectorService(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;->suggestManualTimeZone(Landroid/app/timezonedetector/ManualTimeZoneSuggestion;)V
 HPLcom/android/server/timezonedetector/TimeZoneDetectorService;->suggestPhoneTimeZone(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
+HPLcom/android/server/timezonedetector/TimeZoneDetectorService;->suggestTelephonyTimeZone(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy$QualifiedPhoneTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;I)V
 HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategy$QualifiedPhoneTimeZoneSuggestion;->toString()Ljava/lang/String;
 HSPLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$Callback;)V
@@ -30607,23 +31593,29 @@
 HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->suggestPhoneTimeZone(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedPhoneTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;I)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedPhoneTimeZoneSuggestion;->toString()Ljava/lang/String;
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$Callback;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->create(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->doAutoTimeZoneDetection(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;I)V
+HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;->toString()Ljava/lang/String;
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$Callback;)V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->create(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;
+HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->doAutoTimeZoneDetection(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->findBestPhoneSuggestion()Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedPhoneTimeZoneSuggestion;
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->findBestTelephonySuggestion()Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->isOriginAutomatic(I)Z
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->scorePhoneSuggestion(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)I
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->scoreTelephonySuggestion(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)I
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->setDeviceTimeZoneIfRequired(ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->suggestPhoneTimeZone(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
+HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->suggestTelephonyTimeZone(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
 HSPLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;-><clinit>()V
 HSPLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;-><init>()V
-HPLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;->run()V
+HSPLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;->run()V
 PLcom/android/server/trust/TrustAgentWrapper$1;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
 PLcom/android/server/trust/TrustAgentWrapper$2;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
-PLcom/android/server/trust/TrustAgentWrapper$2;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/trust/TrustAgentWrapper$2;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/trust/TrustAgentWrapper$3;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
-PLcom/android/server/trust/TrustAgentWrapper$3;->grantTrust(Ljava/lang/CharSequence;JI)V
-PLcom/android/server/trust/TrustAgentWrapper$3;->revokeTrust()V
+HPLcom/android/server/trust/TrustAgentWrapper$3;->grantTrust(Ljava/lang/CharSequence;JI)V
+HPLcom/android/server/trust/TrustAgentWrapper$3;->revokeTrust()V
 PLcom/android/server/trust/TrustAgentWrapper$3;->setManagingTrust(Z)V
 PLcom/android/server/trust/TrustAgentWrapper$4;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
 PLcom/android/server/trust/TrustAgentWrapper$4;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
@@ -30650,7 +31642,6 @@
 PLcom/android/server/trust/TrustAgentWrapper;->access$500()Z
 PLcom/android/server/trust/TrustAgentWrapper;->destroy()V
 PLcom/android/server/trust/TrustAgentWrapper;->getMessage()Ljava/lang/CharSequence;
-PLcom/android/server/trust/TrustAgentWrapper;->getScheduledRestartUptimeMillis()J
 PLcom/android/server/trust/TrustAgentWrapper;->isBound()Z
 HPLcom/android/server/trust/TrustAgentWrapper;->isConnected()Z
 PLcom/android/server/trust/TrustAgentWrapper;->isManagingTrust()Z
@@ -30667,11 +31658,11 @@
 HPLcom/android/server/trust/TrustArchive$Event;-><init>(IILandroid/content/ComponentName;Ljava/lang/String;JIZLcom/android/server/trust/TrustArchive$1;)V
 HSPLcom/android/server/trust/TrustArchive;-><init>()V
 HPLcom/android/server/trust/TrustArchive;->addEvent(Lcom/android/server/trust/TrustArchive$Event;)V
-PLcom/android/server/trust/TrustArchive;->dump(Ljava/io/PrintWriter;IILjava/lang/String;Z)V
+HPLcom/android/server/trust/TrustArchive;->dump(Ljava/io/PrintWriter;IILjava/lang/String;Z)V
 PLcom/android/server/trust/TrustArchive;->dumpGrantFlags(I)Ljava/lang/String;
 PLcom/android/server/trust/TrustArchive;->dumpType(I)Ljava/lang/String;
 PLcom/android/server/trust/TrustArchive;->formatDuration(J)Ljava/lang/String;
-PLcom/android/server/trust/TrustArchive;->formatElapsed(J)Ljava/lang/String;
+HPLcom/android/server/trust/TrustArchive;->formatElapsed(J)Ljava/lang/String;
 PLcom/android/server/trust/TrustArchive;->getSimpleName(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/trust/TrustArchive;->logAgentConnected(ILandroid/content/ComponentName;)V
 PLcom/android/server/trust/TrustArchive;->logAgentDied(ILandroid/content/ComponentName;)V
@@ -30692,9 +31683,9 @@
 HSPLcom/android/server/trust/TrustManagerService$1;->enforceListenerPermission()V
 HSPLcom/android/server/trust/TrustManagerService$1;->enforceReportPermission()V
 HPLcom/android/server/trust/TrustManagerService$1;->isDeviceLocked(I)Z
-HPLcom/android/server/trust/TrustManagerService$1;->isDeviceSecure(I)Z
+HSPLcom/android/server/trust/TrustManagerService$1;->isDeviceSecure(I)Z
 HSPLcom/android/server/trust/TrustManagerService$1;->isTrustUsuallyManaged(I)Z
-PLcom/android/server/trust/TrustManagerService$1;->lambda$reportKeyguardShowingChanged$0()V
+HSPLcom/android/server/trust/TrustManagerService$1;->lambda$reportKeyguardShowingChanged$0()V
 HSPLcom/android/server/trust/TrustManagerService$1;->registerTrustListener(Landroid/app/trust/ITrustListener;)V
 PLcom/android/server/trust/TrustManagerService$1;->reportEnabledTrustAgentsChanged(I)V
 HSPLcom/android/server/trust/TrustManagerService$1;->reportKeyguardShowingChanged()V
@@ -30724,7 +31715,7 @@
 HSPLcom/android/server/trust/TrustManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
 HSPLcom/android/server/trust/TrustManagerService$SettingsObserver;->updateContentObserver()V
 HSPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/content/Context;)V
-PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->allowTrustFromUnlock(I)V
+HPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->allowTrustFromUnlock(I)V
 HPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->canAgentsRunForUser(I)Z
 PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
 PLcom/android/server/trust/TrustManagerService$TrustTimeoutAlarmListener;-><init>(Lcom/android/server/trust/TrustManagerService;I)V
@@ -30740,12 +31731,12 @@
 PLcom/android/server/trust/TrustManagerService;->access$1300(Lcom/android/server/trust/TrustManagerService;)Landroid/util/ArraySet;
 PLcom/android/server/trust/TrustManagerService;->access$1400(Lcom/android/server/trust/TrustManagerService;)Landroid/util/SparseBooleanArray;
 HSPLcom/android/server/trust/TrustManagerService;->access$1500(Lcom/android/server/trust/TrustManagerService;I)Z
-PLcom/android/server/trust/TrustManagerService;->access$1600(Lcom/android/server/trust/TrustManagerService;)Landroid/util/SparseBooleanArray;
+HPLcom/android/server/trust/TrustManagerService;->access$1600(Lcom/android/server/trust/TrustManagerService;)Landroid/util/SparseBooleanArray;
 PLcom/android/server/trust/TrustManagerService;->access$1700(Lcom/android/server/trust/TrustManagerService;)Lcom/android/server/trust/TrustManagerService$SettingsObserver;
 HSPLcom/android/server/trust/TrustManagerService;->access$1800(Lcom/android/server/trust/TrustManagerService;Landroid/app/trust/ITrustListener;)V
 PLcom/android/server/trust/TrustManagerService;->access$2000(Lcom/android/server/trust/TrustManagerService;ZI)V
 PLcom/android/server/trust/TrustManagerService;->access$2100(Lcom/android/server/trust/TrustManagerService;II)V
-HPLcom/android/server/trust/TrustManagerService;->access$2200(Lcom/android/server/trust/TrustManagerService;I)V
+HSPLcom/android/server/trust/TrustManagerService;->access$2200(Lcom/android/server/trust/TrustManagerService;I)V
 PLcom/android/server/trust/TrustManagerService;->access$2300(Lcom/android/server/trust/TrustManagerService;IZ)V
 PLcom/android/server/trust/TrustManagerService;->access$2400(Lcom/android/server/trust/TrustManagerService;)Landroid/util/SparseBooleanArray;
 PLcom/android/server/trust/TrustManagerService;->access$2500(Lcom/android/server/trust/TrustManagerService;IIZ)V
@@ -30757,8 +31748,8 @@
 PLcom/android/server/trust/TrustManagerService;->access$3000(Lcom/android/server/trust/TrustManagerService;)Landroid/util/ArrayMap;
 PLcom/android/server/trust/TrustManagerService;->access$3100(Lcom/android/server/trust/TrustManagerService;)Landroid/app/AlarmManager;
 PLcom/android/server/trust/TrustManagerService;->access$3200(Lcom/android/server/trust/TrustManagerService;I)V
-HPLcom/android/server/trust/TrustManagerService;->access$400(Lcom/android/server/trust/TrustManagerService;)Lcom/android/internal/widget/LockPatternUtils;
-HPLcom/android/server/trust/TrustManagerService;->access$500(Lcom/android/server/trust/TrustManagerService;I)I
+HSPLcom/android/server/trust/TrustManagerService;->access$400(Lcom/android/server/trust/TrustManagerService;)Lcom/android/internal/widget/LockPatternUtils;
+HSPLcom/android/server/trust/TrustManagerService;->access$500(Lcom/android/server/trust/TrustManagerService;I)I
 HSPLcom/android/server/trust/TrustManagerService;->access$600(Lcom/android/server/trust/TrustManagerService;)Landroid/content/Context;
 PLcom/android/server/trust/TrustManagerService;->access$700(Lcom/android/server/trust/TrustManagerService;)Z
 PLcom/android/server/trust/TrustManagerService;->access$800(Lcom/android/server/trust/TrustManagerService;)Landroid/os/UserManager;
@@ -30773,7 +31764,7 @@
 HSPLcom/android/server/trust/TrustManagerService;->getComponentName(Landroid/content/pm/ResolveInfo;)Landroid/content/ComponentName;
 PLcom/android/server/trust/TrustManagerService;->getDefaultFactoryTrustAgent(Landroid/content/Context;)Landroid/content/ComponentName;
 HSPLcom/android/server/trust/TrustManagerService;->getSettingsAttrs(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)Lcom/android/server/trust/TrustManagerService$SettingsAttrs;
-PLcom/android/server/trust/TrustManagerService;->handleScheduleTrustTimeout(II)V
+HPLcom/android/server/trust/TrustManagerService;->handleScheduleTrustTimeout(II)V
 HSPLcom/android/server/trust/TrustManagerService;->isDeviceLockedInner(I)Z
 HSPLcom/android/server/trust/TrustManagerService;->isTrustUsuallyManagedInternal(I)Z
 PLcom/android/server/trust/TrustManagerService;->maybeEnableFactoryTrustAgents(Lcom/android/internal/widget/LockPatternUtils;I)V
@@ -30789,8 +31780,8 @@
 HPLcom/android/server/trust/TrustManagerService;->removeAgentsOfPackage(Ljava/lang/String;)V
 PLcom/android/server/trust/TrustManagerService;->resetAgent(Landroid/content/ComponentName;I)V
 HSPLcom/android/server/trust/TrustManagerService;->resolveAllowedTrustAgents(Landroid/content/pm/PackageManager;I)Ljava/util/List;
-HPLcom/android/server/trust/TrustManagerService;->resolveProfileParent(I)I
-PLcom/android/server/trust/TrustManagerService;->scheduleTrustTimeout(IZ)V
+HSPLcom/android/server/trust/TrustManagerService;->resolveProfileParent(I)I
+HPLcom/android/server/trust/TrustManagerService;->scheduleTrustTimeout(IZ)V
 HSPLcom/android/server/trust/TrustManagerService;->setDeviceLockedForUser(IZ)V
 HSPLcom/android/server/trust/TrustManagerService;->updateDevicePolicyFeatures()V
 HSPLcom/android/server/trust/TrustManagerService;->updateTrust(II)V
@@ -30812,8 +31803,8 @@
 HSPLcom/android/server/twilight/TwilightService;->access$000(Lcom/android/server/twilight/TwilightService;)Landroid/util/ArrayMap;
 HSPLcom/android/server/twilight/TwilightService;->access$100(Lcom/android/server/twilight/TwilightService;)Landroid/os/Handler;
 PLcom/android/server/twilight/TwilightService;->access$200(Lcom/android/server/twilight/TwilightService;)V
-PLcom/android/server/twilight/TwilightService;->calculateTwilightState(Landroid/location/Location;J)Lcom/android/server/twilight/TwilightState;
-PLcom/android/server/twilight/TwilightService;->handleMessage(Landroid/os/Message;)Z
+HPLcom/android/server/twilight/TwilightService;->calculateTwilightState(Landroid/location/Location;J)Lcom/android/server/twilight/TwilightState;
+HSPLcom/android/server/twilight/TwilightService;->handleMessage(Landroid/os/Message;)Z
 PLcom/android/server/twilight/TwilightService;->lambda$updateTwilightState$0(Lcom/android/server/twilight/TwilightListener;Lcom/android/server/twilight/TwilightState;)V
 PLcom/android/server/twilight/TwilightService;->onAlarm()V
 HSPLcom/android/server/twilight/TwilightService;->onBootPhase(I)V
@@ -30824,18 +31815,18 @@
 PLcom/android/server/twilight/TwilightService;->startListening()V
 PLcom/android/server/twilight/TwilightService;->stopListening()V
 HPLcom/android/server/twilight/TwilightService;->updateTwilightState()V
-PLcom/android/server/twilight/TwilightState;-><init>(JJ)V
+HPLcom/android/server/twilight/TwilightState;-><init>(JJ)V
 PLcom/android/server/twilight/TwilightState;->equals(Lcom/android/server/twilight/TwilightState;)Z
-PLcom/android/server/twilight/TwilightState;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/twilight/TwilightState;->equals(Ljava/lang/Object;)Z
 HPLcom/android/server/twilight/TwilightState;->isNight()Z
-PLcom/android/server/twilight/TwilightState;->sunrise()Ljava/time/LocalDateTime;
+HPLcom/android/server/twilight/TwilightState;->sunrise()Ljava/time/LocalDateTime;
 PLcom/android/server/twilight/TwilightState;->sunriseTimeMillis()J
-PLcom/android/server/twilight/TwilightState;->sunset()Ljava/time/LocalDateTime;
+HPLcom/android/server/twilight/TwilightState;->sunset()Ljava/time/LocalDateTime;
 PLcom/android/server/twilight/TwilightState;->sunsetTimeMillis()J
 PLcom/android/server/twilight/TwilightState;->toString()Ljava/lang/String;
 PLcom/android/server/updates/CertPinInstallReceiver;-><init>()V
 PLcom/android/server/updates/ConfigUpdateInstallReceiver$1;-><init>(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;Landroid/content/Context;)V
-PLcom/android/server/updates/ConfigUpdateInstallReceiver$1;->run()V
+HPLcom/android/server/updates/ConfigUpdateInstallReceiver$1;->run()V
 PLcom/android/server/updates/ConfigUpdateInstallReceiver;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$000(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;)I
 PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$100(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;)Ljava/lang/String;
@@ -30873,10 +31864,11 @@
 HPLcom/android/server/uri/GrantUri;->toString()Ljava/lang/String;
 PLcom/android/server/uri/NeededUriGrants;-><init>(Ljava/lang/String;II)V
 HSPLcom/android/server/uri/UriGrantsManagerService$H;-><init>(Lcom/android/server/uri/UriGrantsManagerService;Landroid/os/Looper;)V
+PLcom/android/server/uri/UriGrantsManagerService$H;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/uri/UriGrantsManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/uri/UriGrantsManagerService$Lifecycle;->onStart()V
 HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;-><init>(Lcom/android/server/uri/UriGrantsManagerService;)V
-HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
+HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
 HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
 HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;I)Lcom/android/server/uri/NeededUriGrants;
 HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkUriPermission(Lcom/android/server/uri/GrantUri;II)Z
@@ -30889,17 +31881,18 @@
 HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->onActivityManagerInternalAdded()V
 HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->onSystemReady()V
 HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->removeUriPermissionIfNeeded(Lcom/android/server/uri/UriPermission;)V
-HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->removeUriPermissionsForPackage(Ljava/lang/String;IZZ)V
+HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->removeUriPermissionsForPackage(Ljava/lang/String;IZZ)V
 HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->revokeUriPermission(Ljava/lang/String;ILcom/android/server/uri/GrantUri;I)V
 HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->revokeUriPermissionFromOwner(Landroid/os/IBinder;Landroid/net/Uri;II)V
 HSPLcom/android/server/uri/UriGrantsManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;-><init>(Landroid/content/Context;Lcom/android/server/uri/UriGrantsManagerService$1;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;->access$100(Lcom/android/server/uri/UriGrantsManagerService;)V
+PLcom/android/server/uri/UriGrantsManagerService;->access$200(Lcom/android/server/uri/UriGrantsManagerService;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;->access$300(Lcom/android/server/uri/UriGrantsManagerService;)Ljava/lang/Object;
 PLcom/android/server/uri/UriGrantsManagerService;->access$400(Lcom/android/server/uri/UriGrantsManagerService;Lcom/android/server/uri/UriPermission;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;->access$500(Lcom/android/server/uri/UriGrantsManagerService;Ljava/lang/String;)V
 PLcom/android/server/uri/UriGrantsManagerService;->access$600(Lcom/android/server/uri/UriGrantsManagerService;)Landroid/util/SparseArray;
-HPLcom/android/server/uri/UriGrantsManagerService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
+HSPLcom/android/server/uri/UriGrantsManagerService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
 HPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
 HPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;II)I
 HSPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;I)Lcom/android/server/uri/NeededUriGrants;
@@ -30908,25 +31901,29 @@
 HPLcom/android/server/uri/UriGrantsManagerService;->checkUriPermission(Lcom/android/server/uri/GrantUri;II)Z
 HSPLcom/android/server/uri/UriGrantsManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;->findOrCreateUriPermission(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
-PLcom/android/server/uri/UriGrantsManagerService;->findUriPermissionLocked(ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
-PLcom/android/server/uri/UriGrantsManagerService;->getGrantedUriPermissions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/uri/UriGrantsManagerService;->findUriPermissionLocked(ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
+HPLcom/android/server/uri/UriGrantsManagerService;->getGrantedUriPermissions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
 HPLcom/android/server/uri/UriGrantsManagerService;->getUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;I)V
 HSPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;Lcom/android/server/uri/UriPermissionOwner;I)V
 HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromOwner(Landroid/os/IBinder;ILjava/lang/String;Landroid/net/Uri;III)V
 HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionUnchecked(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;)V
-PLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionUncheckedFromIntent(Lcom/android/server/uri/NeededUriGrants;Lcom/android/server/uri/UriPermissionOwner;)V
-PLcom/android/server/uri/UriGrantsManagerService;->matchesProvider(Landroid/net/Uri;Landroid/content/pm/ProviderInfo;)Z
+HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionUncheckedFromIntent(Lcom/android/server/uri/NeededUriGrants;Lcom/android/server/uri/UriPermissionOwner;)V
+HPLcom/android/server/uri/UriGrantsManagerService;->matchesProvider(Landroid/net/Uri;Landroid/content/pm/ProviderInfo;)Z
 PLcom/android/server/uri/UriGrantsManagerService;->maybePrunePersistedUriGrants(I)Z
 HSPLcom/android/server/uri/UriGrantsManagerService;->onActivityManagerInternalAdded()V
 HSPLcom/android/server/uri/UriGrantsManagerService;->readGrantedUriPermissions()V
 PLcom/android/server/uri/UriGrantsManagerService;->releasePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
 HPLcom/android/server/uri/UriGrantsManagerService;->removeUriPermissionIfNeeded(Lcom/android/server/uri/UriPermission;)V
-HPLcom/android/server/uri/UriGrantsManagerService;->removeUriPermissionsForPackage(Ljava/lang/String;IZZ)V
+HSPLcom/android/server/uri/UriGrantsManagerService;->removeUriPermissionsForPackage(Ljava/lang/String;IZZ)V
 HPLcom/android/server/uri/UriGrantsManagerService;->revokeUriPermission(Ljava/lang/String;ILcom/android/server/uri/GrantUri;I)V
+PLcom/android/server/uri/UriGrantsManagerService;->schedulePersistUriGrants()V
 HSPLcom/android/server/uri/UriGrantsManagerService;->start()V
-PLcom/android/server/uri/UriGrantsManagerService;->takePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
+HPLcom/android/server/uri/UriGrantsManagerService;->takePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
+PLcom/android/server/uri/UriGrantsManagerService;->writeGrantedUriPermissions()V
+PLcom/android/server/uri/UriPermission$Snapshot;-><init>(Lcom/android/server/uri/UriPermission;)V
+PLcom/android/server/uri/UriPermission$Snapshot;-><init>(Lcom/android/server/uri/UriPermission;Lcom/android/server/uri/UriPermission$1;)V
 HSPLcom/android/server/uri/UriPermission;-><init>(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)V
 HPLcom/android/server/uri/UriPermission;->addReadOwner(Lcom/android/server/uri/UriPermissionOwner;)V
 PLcom/android/server/uri/UriPermission;->addWriteOwner(Lcom/android/server/uri/UriPermissionOwner;)V
@@ -30938,6 +31935,7 @@
 HPLcom/android/server/uri/UriPermission;->removeReadOwner(Lcom/android/server/uri/UriPermissionOwner;)V
 PLcom/android/server/uri/UriPermission;->removeWriteOwner(Lcom/android/server/uri/UriPermissionOwner;)V
 HPLcom/android/server/uri/UriPermission;->revokeModes(IZ)Z
+PLcom/android/server/uri/UriPermission;->snapshot()Lcom/android/server/uri/UriPermission$Snapshot;
 PLcom/android/server/uri/UriPermission;->takePersistableModes(I)Z
 HPLcom/android/server/uri/UriPermission;->toString()Ljava/lang/String;
 HSPLcom/android/server/uri/UriPermission;->updateModeFlags()V
@@ -30949,7 +31947,7 @@
 HPLcom/android/server/uri/UriPermissionOwner;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/uri/UriPermissionOwner;->fromExternalToken(Landroid/os/IBinder;)Lcom/android/server/uri/UriPermissionOwner;
 HSPLcom/android/server/uri/UriPermissionOwner;->getExternalToken()Landroid/os/Binder;
-PLcom/android/server/uri/UriPermissionOwner;->removeReadPermission(Lcom/android/server/uri/UriPermission;)V
+HPLcom/android/server/uri/UriPermissionOwner;->removeReadPermission(Lcom/android/server/uri/UriPermission;)V
 HPLcom/android/server/uri/UriPermissionOwner;->removeUriPermission(Lcom/android/server/uri/GrantUri;I)V
 PLcom/android/server/uri/UriPermissionOwner;->removeUriPermissions()V
 HPLcom/android/server/uri/UriPermissionOwner;->removeUriPermissions(I)V
@@ -30962,6 +31960,7 @@
 PLcom/android/server/usage/-$$Lambda$UserUsageStatsService$wWX7s9XZT5O4B7JcG_IB_VcPI9s;-><init>(JJLjava/lang/String;Landroid/util/ArraySet;Z)V
 HPLcom/android/server/usage/-$$Lambda$UserUsageStatsService$wWX7s9XZT5O4B7JcG_IB_VcPI9s;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)V
 PLcom/android/server/usage/AppTimeLimitController$AppUsageGroup;-><init>(Lcom/android/server/usage/AppTimeLimitController;Lcom/android/server/usage/AppTimeLimitController$UserData;Lcom/android/server/usage/AppTimeLimitController$ObserverAppData;I[Ljava/lang/String;JLandroid/app/PendingIntent;)V
+PLcom/android/server/usage/AppTimeLimitController$AppUsageGroup;->onLimitReached()V
 PLcom/android/server/usage/AppTimeLimitController$AppUsageGroup;->remove()V
 PLcom/android/server/usage/AppTimeLimitController$AppUsageLimitGroup;-><init>(Lcom/android/server/usage/AppTimeLimitController;Lcom/android/server/usage/AppTimeLimitController$UserData;Lcom/android/server/usage/AppTimeLimitController$ObserverAppData;I[Ljava/lang/String;JJLandroid/app/PendingIntent;)V
 PLcom/android/server/usage/AppTimeLimitController$AppUsageLimitGroup;->getTotaUsageLimit()J
@@ -30987,7 +31986,7 @@
 PLcom/android/server/usage/AppTimeLimitController$UsageGroup;->checkTimeout(J)V
 HPLcom/android/server/usage/AppTimeLimitController$UsageGroup;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/usage/AppTimeLimitController$UsageGroup;->noteUsageStart(J)V
-PLcom/android/server/usage/AppTimeLimitController$UsageGroup;->noteUsageStart(JJ)V
+HPLcom/android/server/usage/AppTimeLimitController$UsageGroup;->noteUsageStart(JJ)V
 HPLcom/android/server/usage/AppTimeLimitController$UsageGroup;->noteUsageStop(J)V
 PLcom/android/server/usage/AppTimeLimitController$UsageGroup;->onLimitReached()V
 PLcom/android/server/usage/AppTimeLimitController$UsageGroup;->remove()V
@@ -31022,7 +32021,7 @@
 HPLcom/android/server/usage/AppTimeLimitController;->getUptimeMillis()J
 PLcom/android/server/usage/AppTimeLimitController;->getUsageSessionObserverPerUidLimit()J
 PLcom/android/server/usage/AppTimeLimitController;->noteActiveLocked(Lcom/android/server/usage/AppTimeLimitController$UserData;Lcom/android/server/usage/AppTimeLimitController$UsageGroup;J)V
-PLcom/android/server/usage/AppTimeLimitController;->noteUsageStart(Ljava/lang/String;I)V
+HPLcom/android/server/usage/AppTimeLimitController;->noteUsageStart(Ljava/lang/String;I)V
 HPLcom/android/server/usage/AppTimeLimitController;->noteUsageStart(Ljava/lang/String;IJ)V
 HPLcom/android/server/usage/AppTimeLimitController;->noteUsageStop(Ljava/lang/String;I)V
 PLcom/android/server/usage/AppTimeLimitController;->onUserRemoved(I)V
@@ -31122,7 +32121,7 @@
 HPLcom/android/server/usage/UsageStatsDatabase;->getBackupPayload(Ljava/lang/String;I)[B
 PLcom/android/server/usage/UsageStatsDatabase;->getBuildFingerprint()Ljava/lang/String;
 PLcom/android/server/usage/UsageStatsDatabase;->getLatestUsageStats(I)Lcom/android/server/usage/IntervalStats;
-PLcom/android/server/usage/UsageStatsDatabase;->indexFilesLocked()V
+HPLcom/android/server/usage/UsageStatsDatabase;->indexFilesLocked()V
 PLcom/android/server/usage/UsageStatsDatabase;->init(J)V
 PLcom/android/server/usage/UsageStatsDatabase;->isNewUpdate()Z
 HPLcom/android/server/usage/UsageStatsDatabase;->obfuscateCurrentStats([Lcom/android/server/usage/IntervalStats;)V
@@ -31174,7 +32173,7 @@
 HPLcom/android/server/usage/UsageStatsProtoV2;->write(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;)V
 HPLcom/android/server/usage/UsageStatsProtoV2;->writeChooserCounts(Landroid/util/proto/ProtoOutputStream;Landroid/app/usage/UsageStats;)V
 HPLcom/android/server/usage/UsageStatsProtoV2;->writeConfigStats(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/ConfigurationStats;Z)V
-PLcom/android/server/usage/UsageStatsProtoV2;->writeCountAndTime(Landroid/util/proto/ProtoOutputStream;JIJ)V
+HPLcom/android/server/usage/UsageStatsProtoV2;->writeCountAndTime(Landroid/util/proto/ProtoOutputStream;JIJ)V
 HPLcom/android/server/usage/UsageStatsProtoV2;->writeCountsForAction(Landroid/util/proto/ProtoOutputStream;Landroid/util/SparseIntArray;)V
 HPLcom/android/server/usage/UsageStatsProtoV2;->writeEvent(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/UsageEvents$Event;)V
 HPLcom/android/server/usage/UsageStatsProtoV2;->writeObfuscatedData(Ljava/io/OutputStream;Lcom/android/server/usage/PackagesTokenData;)V
@@ -31197,7 +32196,7 @@
 HSPLcom/android/server/usage/UsageStatsService$BinderService;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$1;)V
 HPLcom/android/server/usage/UsageStatsService$BinderService;->checkCallerIsSameApp(Ljava/lang/String;)V
 PLcom/android/server/usage/UsageStatsService$BinderService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
-PLcom/android/server/usage/UsageStatsService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/usage/UsageStatsService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/usage/UsageStatsService$BinderService;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I
 HPLcom/android/server/usage/UsageStatsService$BinderService;->getAppStandbyBuckets(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/usage/UsageStatsService$BinderService;->getUsageSource()I
@@ -31216,6 +32215,7 @@
 PLcom/android/server/usage/UsageStatsService$BinderService;->registerAppUsageObserver(I[Ljava/lang/String;JLandroid/app/PendingIntent;Ljava/lang/String;)V
 PLcom/android/server/usage/UsageStatsService$BinderService;->registerUsageSessionObserver(I[Ljava/lang/String;JJLandroid/app/PendingIntent;Landroid/app/PendingIntent;Ljava/lang/String;)V
 PLcom/android/server/usage/UsageStatsService$BinderService;->reportChooserSelection(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/usage/UsageStatsService$BinderService;->setAppInactive(Ljava/lang/String;ZI)V
 HPLcom/android/server/usage/UsageStatsService$BinderService;->setAppStandbyBuckets(Landroid/content/pm/ParceledListSlice;I)V
 PLcom/android/server/usage/UsageStatsService$BinderService;->unregisterAppUsageLimitObserver(ILjava/lang/String;)V
 PLcom/android/server/usage/UsageStatsService$BinderService;->unregisterAppUsageObserver(ILjava/lang/String;)V
@@ -31250,7 +32250,7 @@
 HPLcom/android/server/usage/UsageStatsService$LocalService;->setLastJobRunTime(Ljava/lang/String;IJ)V
 HSPLcom/android/server/usage/UsageStatsService$MyPackageMonitor;-><init>(Lcom/android/server/usage/UsageStatsService;)V
 HSPLcom/android/server/usage/UsageStatsService$MyPackageMonitor;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$1;)V
-HPLcom/android/server/usage/UsageStatsService$MyPackageMonitor;->onPackageRemoved(Ljava/lang/String;I)V
+HSPLcom/android/server/usage/UsageStatsService$MyPackageMonitor;->onPackageRemoved(Ljava/lang/String;I)V
 HSPLcom/android/server/usage/UsageStatsService$UserActionsReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;)V
 HSPLcom/android/server/usage/UsageStatsService$UserActionsReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$1;)V
 HSPLcom/android/server/usage/UsageStatsService$UserActionsReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -31261,7 +32261,7 @@
 HSPLcom/android/server/usage/UsageStatsService;->access$1100()Ljava/io/File;
 PLcom/android/server/usage/UsageStatsService;->access$1200(Lcom/android/server/usage/UsageStatsService;)Landroid/app/admin/DevicePolicyManagerInternal;
 HPLcom/android/server/usage/UsageStatsService;->access$1300(Lcom/android/server/usage/UsageStatsService;II)Z
-PLcom/android/server/usage/UsageStatsService;->access$1400(Lcom/android/server/usage/UsageStatsService;ILjava/lang/String;II)Z
+HPLcom/android/server/usage/UsageStatsService;->access$1400(Lcom/android/server/usage/UsageStatsService;ILjava/lang/String;II)Z
 PLcom/android/server/usage/UsageStatsService;->access$1500(Lcom/android/server/usage/UsageStatsService;)Ljava/lang/Object;
 PLcom/android/server/usage/UsageStatsService;->access$1600(Lcom/android/server/usage/UsageStatsService;)Ljava/lang/Object;
 PLcom/android/server/usage/UsageStatsService;->access$1700(Lcom/android/server/usage/UsageStatsService;)Landroid/util/SparseBooleanArray;
@@ -31271,7 +32271,7 @@
 PLcom/android/server/usage/UsageStatsService;->access$1900(Lcom/android/server/usage/UsageStatsService;I)Z
 PLcom/android/server/usage/UsageStatsService;->access$2000(Lcom/android/server/usage/UsageStatsService;I)Z
 PLcom/android/server/usage/UsageStatsService;->access$800(Lcom/android/server/usage/UsageStatsService;I)V
-PLcom/android/server/usage/UsageStatsService;->access$900(Lcom/android/server/usage/UsageStatsService;ILjava/lang/String;)V
+HSPLcom/android/server/usage/UsageStatsService;->access$900(Lcom/android/server/usage/UsageStatsService;ILjava/lang/String;)V
 PLcom/android/server/usage/UsageStatsService;->deleteLegacyDir(I)V
 PLcom/android/server/usage/UsageStatsService;->deleteRecursively(Ljava/io/File;)V
 HPLcom/android/server/usage/UsageStatsService;->dump([Ljava/lang/String;Ljava/io/PrintWriter;)V
@@ -31286,7 +32286,7 @@
 PLcom/android/server/usage/UsageStatsService;->migrateStatsToSystemCeIfNeededLocked(I)V
 HSPLcom/android/server/usage/UsageStatsService;->onBootPhase(I)V
 PLcom/android/server/usage/UsageStatsService;->onNewUpdate(I)V
-HPLcom/android/server/usage/UsageStatsService;->onPackageRemoved(ILjava/lang/String;)V
+HSPLcom/android/server/usage/UsageStatsService;->onPackageRemoved(ILjava/lang/String;)V
 HSPLcom/android/server/usage/UsageStatsService;->onStart()V
 HSPLcom/android/server/usage/UsageStatsService;->onStartUser(Landroid/content/pm/UserInfo;)V
 PLcom/android/server/usage/UsageStatsService;->onStatsReloaded()V
@@ -31309,7 +32309,7 @@
 HPLcom/android/server/usage/UsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;I)V
 HSPLcom/android/server/usage/UsageStatsService;->reportEventOrAddToQueue(ILandroid/app/usage/UsageEvents$Event;)V
 HPLcom/android/server/usage/UsageStatsService;->reportEventToAllUserId(Landroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/usage/UsageStatsService;->shouldHideShortcutInvocationEvents(ILjava/lang/String;II)Z
+HPLcom/android/server/usage/UsageStatsService;->shouldHideShortcutInvocationEvents(ILjava/lang/String;II)Z
 HPLcom/android/server/usage/UsageStatsService;->shouldObfuscateInstantAppsForCaller(II)Z
 PLcom/android/server/usage/UsageStatsService;->shutdown()V
 PLcom/android/server/usage/UsageStatsService;->unregisterAppUsageLimitObserver(III)V
@@ -31379,6 +32379,7 @@
 PLcom/android/server/usb/MtpNotificationManager;->hideNotification(I)V
 PLcom/android/server/usb/MtpNotificationManager;->isMtpDevice(Landroid/hardware/usb/UsbDevice;)Z
 PLcom/android/server/usb/MtpNotificationManager;->shouldShowNotification(Landroid/content/pm/PackageManager;Landroid/hardware/usb/UsbDevice;)Z
+PLcom/android/server/usb/MtpNotificationManager;->showNotification(Landroid/hardware/usb/UsbDevice;)V
 PLcom/android/server/usb/UsbAlsaDevice;-><init>(Landroid/media/IAudioService;IILjava/lang/String;ZZZZ)V
 PLcom/android/server/usb/UsbAlsaDevice;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 PLcom/android/server/usb/UsbAlsaDevice;->getAlsaCardDeviceString()Ljava/lang/String;
@@ -31429,7 +32430,7 @@
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->dumpFunctions(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JJ)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->finishBoot()V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getAppliedFunctions(J)J
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getAppliedFunctions(J)J
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getChargingFunctions()J
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getEnabledFunctions()J
@@ -31442,14 +32443,14 @@
 HPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbStateChanged(Landroid/content/Intent;)Z
 HPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbTransferAllowed()Z
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->notifyAccessoryModeExit()V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(ILjava/lang/Object;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(ILjava/lang/Object;)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(ILjava/lang/Object;Z)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(IZ)V
-HPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessageDelayed(IZJ)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessageDelayed(IZJ)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendStickyBroadcast(Landroid/content/Intent;)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->setAdbEnabled(Z)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->setScreenUnlockedFunctions()V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->setSystemProperty(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->setSystemProperty(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateAdbNotification(Z)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateCurrentAccessory()V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateHostState(Landroid/hardware/usb/UsbPort;Landroid/hardware/usb/UsbPortStatus;)V
@@ -31461,18 +32462,18 @@
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$ServiceNotification;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$ServiceNotification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;IJZ)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;IJZ)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;->getCurrentUsbFunctionsCb(JI)V
-HPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;->setCurrentUsbFunctionsCb(JI)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;->setCurrentUsbFunctionsCb(JI)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetDeathRecipient;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;-><init>(Landroid/os/Looper;Landroid/content/Context;Lcom/android/server/usb/UsbDeviceManager;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbPermissionManager;)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->access$700(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)I
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->access$700(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)I
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->setEnabledFunctions(JZ)V
-HPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->setUsbConfig(JZ)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->setEnabledFunctions(JZ)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->setUsbConfig(JZ)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;-><init>(Lcom/android/server/usb/UsbDeviceManager;Lcom/android/server/usb/UsbDeviceManager$1;)V
-HPLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;->onUEvent(Landroid/os/UEventObserver$UEvent;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;->onUEvent(Landroid/os/UEventObserver$UEvent;)V
 HSPLcom/android/server/usb/UsbDeviceManager;-><clinit>()V
 HSPLcom/android/server/usb/UsbDeviceManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbSettingsManager;Lcom/android/server/usb/UsbPermissionManager;)V
 HSPLcom/android/server/usb/UsbDeviceManager;->access$000(Lcom/android/server/usb/UsbDeviceManager;)Lcom/android/server/usb/UsbDeviceManager$UsbHandler;
@@ -31488,12 +32489,12 @@
 PLcom/android/server/usb/UsbDeviceManager;->getCurrentSettings()Lcom/android/server/usb/UsbProfileGroupSettingsManager;
 HSPLcom/android/server/usb/UsbDeviceManager;->initRndisAddress()V
 HPLcom/android/server/usb/UsbDeviceManager;->onAwakeStateChanged(Z)V
-HPLcom/android/server/usb/UsbDeviceManager;->onKeyguardStateChanged(Z)V
+HSPLcom/android/server/usb/UsbDeviceManager;->onKeyguardStateChanged(Z)V
 PLcom/android/server/usb/UsbDeviceManager;->onUnlockUser(I)V
 PLcom/android/server/usb/UsbDeviceManager;->openAccessory(Landroid/hardware/usb/UsbAccessory;Lcom/android/server/usb/UsbUserPermissionManager;I)Landroid/os/ParcelFileDescriptor;
-PLcom/android/server/usb/UsbDeviceManager;->setCurrentFunctions(J)V
+HSPLcom/android/server/usb/UsbDeviceManager;->setCurrentFunctions(J)V
 HSPLcom/android/server/usb/UsbDeviceManager;->setCurrentUser(ILcom/android/server/usb/UsbProfileGroupSettingsManager;)V
-PLcom/android/server/usb/UsbDeviceManager;->startAccessoryMode()V
+HSPLcom/android/server/usb/UsbDeviceManager;->startAccessoryMode()V
 HSPLcom/android/server/usb/UsbDeviceManager;->systemReady()V
 HSPLcom/android/server/usb/UsbDeviceManager;->updateUserRestrictions()V
 HSPLcom/android/server/usb/UsbHandlerManager;-><clinit>()V
@@ -31502,7 +32503,7 @@
 PLcom/android/server/usb/UsbHandlerManager;->createDialogIntent()Landroid/content/Intent;
 PLcom/android/server/usb/UsbHandlerManager;->selectUsbHandler(Ljava/util/ArrayList;Landroid/os/UserHandle;Landroid/content/Intent;)V
 PLcom/android/server/usb/UsbHostManager$ConnectionRecord;-><init>(Lcom/android/server/usb/UsbHostManager;Ljava/lang/String;I[B)V
-PLcom/android/server/usb/UsbHostManager$ConnectionRecord;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+HPLcom/android/server/usb/UsbHostManager$ConnectionRecord;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 HSPLcom/android/server/usb/UsbHostManager;-><clinit>()V
 HSPLcom/android/server/usb/UsbHostManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbPermissionManager;)V
 PLcom/android/server/usb/UsbHostManager;->addConnectionRecord(Ljava/lang/String;I[B)V
@@ -31533,6 +32534,7 @@
 HSPLcom/android/server/usb/UsbPortManager$HALCallback;-><init>(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usb/UsbPortManager;)V
 HSPLcom/android/server/usb/UsbPortManager$HALCallback;->notifyPortStatusChange_1_1(Ljava/util/ArrayList;I)V
 HSPLcom/android/server/usb/UsbPortManager$HALCallback;->notifyPortStatusChange_1_2(Ljava/util/ArrayList;I)V
+PLcom/android/server/usb/UsbPortManager$HALCallback;->notifyRoleSwitchStatus(Ljava/lang/String;Landroid/hardware/usb/V1_0/PortRole;I)V
 HSPLcom/android/server/usb/UsbPortManager$PortInfo;-><init>(Landroid/hardware/usb/UsbManager;Ljava/lang/String;IIZZ)V
 PLcom/android/server/usb/UsbPortManager$PortInfo;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 HSPLcom/android/server/usb/UsbPortManager$PortInfo;->setStatus(IZIZIZIII)Z
@@ -31567,6 +32569,7 @@
 HSPLcom/android/server/usb/UsbPortManager;->logAndPrint(ILcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/usb/UsbPortManager;->logToStatsd(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
 HSPLcom/android/server/usb/UsbPortManager;->sendPortChangedBroadcastLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;)V
+PLcom/android/server/usb/UsbPortManager;->setPortRoles(Ljava/lang/String;IILcom/android/internal/util/IndentingPrintWriter;)V
 HSPLcom/android/server/usb/UsbPortManager;->systemReady()V
 HSPLcom/android/server/usb/UsbPortManager;->updateContaminantNotification()V
 HSPLcom/android/server/usb/UsbPortManager;->updatePortsLocked(Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/ArrayList;)V
@@ -31592,7 +32595,7 @@
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->deviceAttached(Landroid/hardware/usb/UsbDevice;)V
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getAccessoryFilters(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)Ljava/util/ArrayList;
-PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getAccessoryMatchesLocked(Landroid/hardware/usb/UsbAccessory;Landroid/content/Intent;)Ljava/util/ArrayList;
+HPLcom/android/server/usb/UsbProfileGroupSettingsManager;->getAccessoryMatchesLocked(Landroid/hardware/usb/UsbAccessory;Landroid/content/Intent;)Ljava/util/ArrayList;
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getDefaultActivityLocked(Ljava/util/ArrayList;Lcom/android/server/usb/UsbProfileGroupSettingsManager$UserPackage;)Landroid/content/pm/ActivityInfo;
 HPLcom/android/server/usb/UsbProfileGroupSettingsManager;->getDeviceFilters(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)Ljava/util/ArrayList;
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getDeviceMatchesLocked(Landroid/hardware/usb/UsbDevice;Landroid/content/Intent;)Ljava/util/ArrayList;
@@ -31635,6 +32638,7 @@
 PLcom/android/server/usb/UsbService;->access$100(Lcom/android/server/usb/UsbService;Landroid/os/UserHandle;)V
 HSPLcom/android/server/usb/UsbService;->access$200(Lcom/android/server/usb/UsbService;)Lcom/android/server/usb/UsbDeviceManager;
 PLcom/android/server/usb/UsbService;->bootCompleted()V
+PLcom/android/server/usb/UsbService;->clearDefaults(Ljava/lang/String;I)V
 PLcom/android/server/usb/UsbService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/usb/UsbService;->getControlFd(J)Landroid/os/ParcelFileDescriptor;
 PLcom/android/server/usb/UsbService;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
@@ -31656,6 +32660,7 @@
 PLcom/android/server/usb/UsbService;->requestDevicePermission(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;Landroid/app/PendingIntent;)V
 PLcom/android/server/usb/UsbService;->setCurrentFunctions(J)V
 PLcom/android/server/usb/UsbService;->setDevicePackage(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;I)V
+PLcom/android/server/usb/UsbService;->setPortRoles(Ljava/lang/String;II)V
 HSPLcom/android/server/usb/UsbService;->systemReady()V
 HSPLcom/android/server/usb/UsbSettingsManager;-><clinit>()V
 HSPLcom/android/server/usb/UsbSettingsManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbService;)V
@@ -31965,7 +32970,7 @@
 HSPLcom/android/server/utils/quota/UptcMap;->forEach(Ljava/util/function/Consumer;)V
 HSPLcom/android/server/utils/quota/UptcMap;->get(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
 HSPLcom/android/server/utils/quota/UptcMap;->getOrCreate(ILjava/lang/String;Ljava/lang/String;Ljava/util/function/Function;)Ljava/lang/Object;
-PLcom/android/server/utils/quota/UptcMap;->getPackageNameAtIndex(II)Ljava/lang/String;
+HPLcom/android/server/utils/quota/UptcMap;->getPackageNameAtIndex(II)Ljava/lang/String;
 HPLcom/android/server/utils/quota/UptcMap;->getTagAtIndex(III)Ljava/lang/String;
 PLcom/android/server/utils/quota/UptcMap;->getUserIdAtIndex(I)I
 HSPLcom/android/server/utils/quota/UptcMap;->lambda$forEach$0(Ljava/util/function/Consumer;Landroid/util/ArrayMap;)V
@@ -31977,7 +32982,7 @@
 PLcom/android/server/voiceinteraction/-$$Lambda$VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2$_YjGqp96fW1i83gthgQe_rVHY5s;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/voiceinteraction/DatabaseHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/voiceinteraction/DatabaseHelper;->deleteKeyphraseSoundModel(IILjava/lang/String;)Z
-PLcom/android/server/voiceinteraction/DatabaseHelper;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/voiceinteraction/DatabaseHelper;->dump(Ljava/io/PrintWriter;)V
 HPLcom/android/server/voiceinteraction/DatabaseHelper;->getArrayForCommaSeparatedString(Ljava/lang/String;)[I
 PLcom/android/server/voiceinteraction/DatabaseHelper;->getCommaSeparatedString([I)Ljava/lang/String;
 HPLcom/android/server/voiceinteraction/DatabaseHelper;->getKeyphraseSoundModel(IILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
@@ -32022,7 +33027,7 @@
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getForceVoiceInteractionServicePackage(Landroid/content/res/Resources;)Ljava/lang/String;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getKeyphraseSoundModel(ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getUserDisabledShowContext()I
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->hideCurrentSession()V
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->hideCurrentSession()V
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->hideSessionFromSession(Landroid/os/IBinder;)Z
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initForUser(I)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initForUserNoTracing(I)V
@@ -32107,7 +33112,7 @@
 PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->grantClipDataItemPermission(Landroid/content/ClipData$Item;IIILjava/lang/String;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->grantClipDataPermissions(Landroid/content/ClipData;IIILjava/lang/String;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->grantUriPermission(Landroid/net/Uri;IIILjava/lang/String;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->hideLocked()Z
+HPLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->hideLocked()Z
 PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->notifyPendingShowCallbacksShownLocked()V
 PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistDataReceivedLocked(Landroid/os/Bundle;II)V
 PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistScreenshotReceivedLocked(Landroid/graphics/Bitmap;)V
@@ -32201,7 +33206,7 @@
 PLcom/android/server/vr/VrManagerService;->isCurrentVrListener(Ljava/lang/String;I)Z
 HSPLcom/android/server/vr/VrManagerService;->isDefaultAllowed(Ljava/lang/String;)Z
 HSPLcom/android/server/vr/VrManagerService;->isPermissionUserUpdated(Ljava/lang/String;Ljava/lang/String;I)Z
-PLcom/android/server/vr/VrManagerService;->onAwakeStateChanged(Z)V
+HPLcom/android/server/vr/VrManagerService;->onAwakeStateChanged(Z)V
 HSPLcom/android/server/vr/VrManagerService;->onBootPhase(I)V
 PLcom/android/server/vr/VrManagerService;->onCleanupUser(I)V
 HSPLcom/android/server/vr/VrManagerService;->onEnabledComponentChanged()V
@@ -32209,7 +33214,7 @@
 HSPLcom/android/server/vr/VrManagerService;->onStart()V
 HSPLcom/android/server/vr/VrManagerService;->onStartUser(I)V
 PLcom/android/server/vr/VrManagerService;->onStopUser(I)V
-PLcom/android/server/vr/VrManagerService;->removeStateCallback(Landroid/service/vr/IVrStateCallbacks;)V
+HPLcom/android/server/vr/VrManagerService;->removeStateCallback(Landroid/service/vr/IVrStateCallbacks;)V
 PLcom/android/server/vr/VrManagerService;->setPersistentModeAndNotifyListenersLocked(Z)V
 HSPLcom/android/server/vr/VrManagerService;->setScreenOn(Z)V
 HSPLcom/android/server/vr/VrManagerService;->setSystemState(IZ)V
@@ -32296,7 +33301,7 @@
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$onServiceDisconnected$1(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$onServiceDisconnected$2$WallpaperManagerService$WallpaperConnection()V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->processDisconnect(Landroid/content/ServiceConnection;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->scheduleTimeoutLocked()V
@@ -32320,7 +33325,7 @@
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->access$1900(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->access$200(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/util/SparseArray;
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->access$2000(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/content/Context;
-PLcom/android/server/wallpaper/WallpaperManagerService;->access$2100(Lcom/android/server/wallpaper/WallpaperManagerService;)I
+HPLcom/android/server/wallpaper/WallpaperManagerService;->access$2100(Lcom/android/server/wallpaper/WallpaperManagerService;)I
 PLcom/android/server/wallpaper/WallpaperManagerService;->access$2200(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/content/ComponentName;
 PLcom/android/server/wallpaper/WallpaperManagerService;->access$2300(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;II)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->access$2400(Lcom/android/server/wallpaper/WallpaperManagerService;)Z
@@ -32337,7 +33342,7 @@
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->attachServiceLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->bindWallpaperComponentLocked(Landroid/content/ComponentName;ZZLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Landroid/os/IRemoteCallback;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;->changingToSame(Landroid/content/ComponentName;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->checkPermission(Ljava/lang/String;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->checkPermission(Ljava/lang/String;)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaper(Ljava/lang/String;II)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaperComponentLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaperLocked(ZIILandroid/os/IRemoteCallback;)V
@@ -32394,7 +33399,7 @@
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService;->saveSettingsLocked(I)V
 HPLcom/android/server/wallpaper/WallpaperManagerService;->setInAmbientMode(ZJ)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaper(Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;ZLandroid/os/Bundle;ILandroid/app/IWallpaperManagerCallback;I)Landroid/os/ParcelFileDescriptor;
 PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperComponent(Landroid/content/ComponentName;I)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperComponentChecked(Landroid/content/ComponentName;Ljava/lang/String;I)V
@@ -32494,10 +33499,10 @@
 HSPLcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
@@ -32563,12 +33568,14 @@
 HSPLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$sZFHZi7b6t6yjfx5mx3RtECSlEU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/-$$Lambda$ActivityRecord$HCzV5lDTWOurUvy4cOGaHiRsYqY;-><init>(Lcom/android/server/wm/ActivityRecord;[F[F)V
 PLcom/android/server/wm/-$$Lambda$ActivityRecord$HCzV5lDTWOurUvy4cOGaHiRsYqY;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$IKQ7cgWGEqQBcP5npSaTqcxAkhg;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$IKQ7cgWGEqQBcP5npSaTqcxAkhg;->run()V
 HSPLcom/android/server/wm/-$$Lambda$ActivityRecord$QP-eHsXODaflS0pyRnr8fdoF6BU;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$ActivityRecord$QP-eHsXODaflS0pyRnr8fdoF6BU;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$ActivityRecord$QP-eHsXODaflS0pyRnr8fdoF6BU;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityRecord$XnMxHSlbhK9x7qGQcZpHSkPOQvQ;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityRecord$XnMxHSlbhK9x7qGQcZpHSkPOQvQ;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityRecord$XnMxHSlbhK9x7qGQcZpHSkPOQvQ;->accept(Ljava/lang/Object;)V
@@ -32617,8 +33624,8 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$BqE10FCv9how7gdM55red1ApUGs;-><init>(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$BqE10FCv9how7gdM55red1ApUGs;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$BqE10FCv9how7gdM55red1ApUGs;-><init>(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;)V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$BqE10FCv9how7gdM55red1ApUGs;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$Bw4s_aT8NefvklvOlavSngajM-8;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$Bw4s_aT8NefvklvOlavSngajM-8;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$Bw4s_aT8NefvklvOlavSngajM-8;->accept(Ljava/lang/Object;)V
@@ -32628,7 +33635,7 @@
 HSPLcom/android/server/wm/-$$Lambda$ActivityStack$FkaZkaRIeozTqSdHkmYZNbNtF1I;-><init>(Lcom/android/server/wm/ActivityStack;IZZZZZ)V
 HSPLcom/android/server/wm/-$$Lambda$ActivityStack$FkaZkaRIeozTqSdHkmYZNbNtF1I;->run()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$FmEEyG-_GV_nB2HunZ086MlsGbw;-><init>(Lcom/android/server/wm/ActivityRecord;[I[Landroid/content/Intent;)V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$FmEEyG-_GV_nB2HunZ086MlsGbw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$FmEEyG-_GV_nB2HunZ086MlsGbw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -32671,7 +33678,7 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStack$ZeqjtPeTSrJ3k2l6y2bUmw5uqo0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$bz2cGPwYAKpE4bX0VyxJRH8LJRE;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$bz2cGPwYAKpE4bX0VyxJRH8LJRE;->run()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$bzlcMWlmDol-PMxBdUW69zw6n4Q;-><init>(ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;)V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$bzlcMWlmDol-PMxBdUW69zw6n4Q;-><init>(ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;)V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$bzlcMWlmDol-PMxBdUW69zw6n4Q;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$ccf0sRiFvFeqRiJQ6iXIEF1eN1Q;-><init>(Lcom/android/server/wm/ActivityStack;ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;)V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$ccf0sRiFvFeqRiJQ6iXIEF1eN1Q;->accept(Ljava/lang/Object;)V
@@ -32690,7 +33697,7 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$28Zuzbi6usdgbDcOi8hrJg6nZO0;->run()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -32720,8 +33727,8 @@
 PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$U6g1UdnOPnEF9wX1OTm9nKVXY5k;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$Uli7s8UWTEj0IpBUtoST5bmgvKk;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
 HPLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$Uli7s8UWTEj0IpBUtoST5bmgvKk;->run()V
-HPLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$iduseKQrjIWQYD0hJ8Q5DMmuSfE;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
-HPLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$iduseKQrjIWQYD0hJ8Q5DMmuSfE;->run()V
+HSPLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$iduseKQrjIWQYD0hJ8Q5DMmuSfE;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
+HSPLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$iduseKQrjIWQYD0hJ8Q5DMmuSfE;->run()V
 PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$js0zprxhKzo_Mx9ozR8logP_1-c;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/app/PictureInPictureParams;)V
 PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$js0zprxhKzo_Mx9ozR8logP_1-c;->run()V
 HSPLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$oP6xxIfnD4kb4JN7aSJU073ULR4;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V
@@ -32743,7 +33750,7 @@
 HSPLcom/android/server/wm/-$$Lambda$AppTransition$xrq-Gwel_FcpfDvO2DrCfGN_3bk;-><init>(Lcom/android/server/wm/AppTransition;)V
 PLcom/android/server/wm/-$$Lambda$AppTransition$xrq-Gwel_FcpfDvO2DrCfGN_3bk;->run()V
 HPLcom/android/server/wm/-$$Lambda$AppTransitionController$KP68kgUCojUmpcFh_s6uhO2M93o;-><init>(Ljava/util/ArrayList;)V
-PLcom/android/server/wm/-$$Lambda$AppTransitionController$KP68kgUCojUmpcFh_s6uhO2M93o;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+HPLcom/android/server/wm/-$$Lambda$AppTransitionController$KP68kgUCojUmpcFh_s6uhO2M93o;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HSPLcom/android/server/wm/-$$Lambda$AppTransitionController$ZU-2ppbyGJ7-UsXREbcW1x9TJH0;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$AppTransitionController$ZU-2ppbyGJ7-UsXREbcW1x9TJH0;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$AppTransitionController$ZU-2ppbyGJ7-UsXREbcW1x9TJH0;->test(Ljava/lang/Object;)Z
@@ -32773,9 +33780,9 @@
 HSPLcom/android/server/wm/-$$Lambda$CD-g9zNm970tG9hCSQ-1BiBOrwY;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$CD-g9zNm970tG9hCSQ-1BiBOrwY;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$CD-g9zNm970tG9hCSQ-1BiBOrwY;->applyAsInt(Ljava/lang/Object;)I
-PLcom/android/server/wm/-$$Lambda$CkqCuQmAGdLOVExbosZfF3sXdHQ;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/-$$Lambda$CkqCuQmAGdLOVExbosZfF3sXdHQ;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/-$$Lambda$CkqCuQmAGdLOVExbosZfF3sXdHQ;->get()Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$CvWmQaXToMTllLb80KQ9WdJHYXo;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/-$$Lambda$CvWmQaXToMTllLb80KQ9WdJHYXo;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/-$$Lambda$CvWmQaXToMTllLb80KQ9WdJHYXo;->run()V
 HSPLcom/android/server/wm/-$$Lambda$DLUVMr0q4HDD6VD11G3xgCuJfHo;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$DLUVMr0q4HDD6VD11G3xgCuJfHo;-><init>()V
@@ -32788,8 +33795,8 @@
 PLcom/android/server/wm/-$$Lambda$DeprecatedTargetSdkVersionDialog$ZkWArfvd086vsF78_zwSd67uSUs;-><init>(Landroid/content/Context;Landroid/content/Intent;)V
 HPLcom/android/server/wm/-$$Lambda$Dimmer$DimState$QYvwJex5H10MFMe0LEzEUs1b2G0;-><init>(Lcom/android/server/wm/Dimmer$DimState;Lcom/android/server/wm/Dimmer$DimAnimatable;)V
 PLcom/android/server/wm/-$$Lambda$Dimmer$DimState$QYvwJex5H10MFMe0LEzEUs1b2G0;->run()V
-PLcom/android/server/wm/-$$Lambda$Dimmer$DimState$wU1YjYaM1_enRLsRLQ25SnC1ECw;-><init>(Lcom/android/server/wm/Dimmer$DimState;Lcom/android/server/wm/Dimmer$DimAnimatable;)V
-PLcom/android/server/wm/-$$Lambda$Dimmer$DimState$wU1YjYaM1_enRLsRLQ25SnC1ECw;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+HPLcom/android/server/wm/-$$Lambda$Dimmer$DimState$wU1YjYaM1_enRLsRLQ25SnC1ECw;-><init>(Lcom/android/server/wm/Dimmer$DimState;Lcom/android/server/wm/Dimmer$DimAnimatable;)V
+HPLcom/android/server/wm/-$$Lambda$Dimmer$DimState$wU1YjYaM1_enRLsRLQ25SnC1ECw;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayArea$Tokens$m3rhEbIWQl888W_2uGBIkkXLdlA;-><init>(Lcom/android/server/wm/DisplayArea$Tokens;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayArea$Tokens$m3rhEbIWQl888W_2uGBIkkXLdlA;->test(Ljava/lang/Object;)Z
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$-t02M5j-NY8t_HMWggKym0SrI5k;-><init>([I[ILandroid/graphics/Region;)V
@@ -32824,13 +33831,13 @@
 PLcom/android/server/wm/-$$Lambda$DisplayContent$Ei1gEKrsGOVbEpUtkye4DxvMrow;-><init>()V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$Ei1gEKrsGOVbEpUtkye4DxvMrow;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$GdYfLI7hkBs2XfGJkN6DbdzEs8U;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$GdYfLI7hkBs2XfGJkN6DbdzEs8U;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$GdYfLI7hkBs2XfGJkN6DbdzEs8U;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$Gs1I9c16qswnvvDSPXoEhteQcFM;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;[I)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$Gs1I9c16qswnvvDSPXoEhteQcFM;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$JKV50ExZuoi3fuNRue0nZXh8ijA;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$JKV50ExZuoi3fuNRue0nZXh8ijA;-><init>()V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$JKV50ExZuoi3fuNRue0nZXh8ijA;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$JYsrGdifTPH6ASJDC3B9YWMD2pw;-><init>(I)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$JKV50ExZuoi3fuNRue0nZXh8ijA;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$JYsrGdifTPH6ASJDC3B9YWMD2pw;-><init>(I)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$JYsrGdifTPH6ASJDC3B9YWMD2pw;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$JibsaX4YnJd0ta_wiDDdSp-PjQk;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$JibsaX4YnJd0ta_wiDDdSp-PjQk;->accept(Ljava/lang/Object;)V
@@ -32851,7 +33858,7 @@
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$SeHNTr4WUVpGmQniHULUi1ST7k8;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$TPj3OjTsuIg5GTLb5nMmFqIghA4;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$TPj3OjTsuIg5GTLb5nMmFqIghA4;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskContainers$O93kVOZBPruBUoIqFi--Pvv3DF0;-><init>(Ljava/util/ArrayList;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$TaskContainers$O93kVOZBPruBUoIqFi--Pvv3DF0;-><init>(Ljava/util/ArrayList;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$TaskContainers$O93kVOZBPruBUoIqFi--Pvv3DF0;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$TaskContainers$sOc7NEp-0tqs2Dj7F4JTNjgQacU;-><init>(Lcom/android/server/wm/DisplayContent$TaskContainers;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$TaskContainers$sOc7NEp-0tqs2Dj7F4JTNjgQacU;->onPreAssignChildLayers()V
@@ -32882,7 +33889,7 @@
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$gpAoT7pBNdi6jYEHs_L3kzaRF0g;-><init>([I[ILandroid/graphics/Region;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$gpAoT7pBNdi6jYEHs_L3kzaRF0g;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$hRKjZwmneu0T85LNNY6_Zcs4gKM;-><init>(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/-$$Lambda$DisplayContent$hRKjZwmneu0T85LNNY6_Zcs4gKM;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$hRKjZwmneu0T85LNNY6_Zcs4gKM;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$k7ctHGhg6DCeupTBZO8cyEJDjLM;-><init>(Lcom/android/server/wm/DisplayContent;Z)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$k7ctHGhg6DCeupTBZO8cyEJDjLM;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$mRojqgB8byVtZRzyTl2qSRFPgIo;-><init>(I)V
@@ -32968,6 +33975,7 @@
 HSPLcom/android/server/wm/-$$Lambda$ERD-2J5ieyabZSu134oI85tDnME;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ERD-2J5ieyabZSu134oI85tDnME;->startAnimation(Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 PLcom/android/server/wm/-$$Lambda$EmbeddedWindowController$Q0HHIdTKm8MX4DsCYgzZ2UOUXPQ;-><init>(Lcom/android/server/wm/EmbeddedWindowController;Landroid/os/IBinder;)V
+PLcom/android/server/wm/-$$Lambda$EmbeddedWindowController$Q0HHIdTKm8MX4DsCYgzZ2UOUXPQ;->binderDied()V
 HSPLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$Bbb3nMFa3F8er_OBuKA7-SpeSKo;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$Bbb3nMFa3F8er_OBuKA7-SpeSKo;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$Bbb3nMFa3F8er_OBuKA7-SpeSKo;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -32986,7 +33994,7 @@
 HSPLcom/android/server/wm/-$$Lambda$HtepUMgqPLKO-76U6SMEmchALsM;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$HtepUMgqPLKO-76U6SMEmchALsM;-><init>()V
 PLcom/android/server/wm/-$$Lambda$HtepUMgqPLKO-76U6SMEmchALsM;->startAnimation(Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZLjava/lang/Runnable;)V
-PLcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;->get()Ljava/lang/Object;
 PLcom/android/server/wm/-$$Lambda$InputMonitor$ew_vdS116C6DH9LxWaTuVXJYZPE;-><init>(Lcom/android/server/wm/InputMonitor;)V
 PLcom/android/server/wm/-$$Lambda$InputMonitor$ew_vdS116C6DH9LxWaTuVXJYZPE;->run()V
@@ -33009,8 +34017,8 @@
 PLcom/android/server/wm/-$$Lambda$LI60v4Y5Me6khV12IZ-zEQtSx7A;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$LI60v4Y5Me6khV12IZ-zEQtSx7A;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$LI60v4Y5Me6khV12IZ-zEQtSx7A;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-HPLcom/android/server/wm/-$$Lambda$LYW1ECaEajjYgarzgKdTZ4O1fi0;-><init>(Landroid/app/ActivityManagerInternal;)V
-HPLcom/android/server/wm/-$$Lambda$LYW1ECaEajjYgarzgKdTZ4O1fi0;->run()V
+HSPLcom/android/server/wm/-$$Lambda$LYW1ECaEajjYgarzgKdTZ4O1fi0;-><init>(Landroid/app/ActivityManagerInternal;)V
+HSPLcom/android/server/wm/-$$Lambda$LYW1ECaEajjYgarzgKdTZ4O1fi0;->run()V
 PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$FhvLqBbd_XMsJK45WV5Mlt8JSYM;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$FhvLqBbd_XMsJK45WV5Mlt8JSYM;-><init>()V
 PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$FhvLqBbd_XMsJK45WV5Mlt8JSYM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -33023,9 +34031,9 @@
 HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$UGY1OclnLIQLMEL9B55qjERFf4o;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$UGY1OclnLIQLMEL9B55qjERFf4o;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$UGY1OclnLIQLMEL9B55qjERFf4o;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;-><init>()V
-PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -33139,8 +34147,8 @@
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$9Gi6QLDM5W-SF-EH_zfgZZvIlo0;-><init>(Landroid/util/ArraySet;Z)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$9Gi6QLDM5W-SF-EH_zfgZZvIlo0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$FtQd5Yte3ooh7jQ1sV_WSAmocV8;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$FtQd5Yte3ooh7jQ1sV_WSAmocV8;-><init>()V
@@ -33179,7 +34187,7 @@
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$qT2ficAmvrvFcBdiJIGNKxJ8Z9Q;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
 HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$qT2ficAmvrvFcBdiJIGNKxJ8Z9Q;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$smSIq2r4GMdbTUsLaRS4KHth6DY;-><init>(Landroid/util/proto/ProtoOutputStream;I)V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$smSIq2r4GMdbTUsLaRS4KHth6DY;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$smSIq2r4GMdbTUsLaRS4KHth6DY;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$vMW2dyMvZQ0PDhptvNKN5WXpK_w;-><init>(IZ)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$vMW2dyMvZQ0PDhptvNKN5WXpK_w;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$y9wG_endhUBCwGznyjN4RSIYTyg;-><init>(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZ)V
@@ -33192,7 +34200,7 @@
 HPLcom/android/server/wm/-$$Lambda$RunningTasks$hR_Ryk91b0B2BdJN9eCfQfPwC3g;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$R3Rh3gcwK_nBUAZq4hlWwmQXjXA;-><init>(Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;)V
 HPLcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$R3Rh3gcwK_nBUAZq4hlWwmQXjXA;->run()V
-PLcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$mryOPi3UUpYZkQThzDJyjGBpl5c;-><init>(Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;)V
+HPLcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$mryOPi3UUpYZkQThzDJyjGBpl5c;-><init>(Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;)V
 PLcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$mryOPi3UUpYZkQThzDJyjGBpl5c;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/-$$Lambda$Session$15hO_YO9_yR6FTMdPPe87fZzL1c;-><init>(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/-$$Lambda$Session$15hO_YO9_yR6FTMdPPe87fZzL1c;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -33243,11 +34251,17 @@
 PLcom/android/server/wm/-$$Lambda$Task$CKQ9RLMNPYajktwO1VrUoQGHF_8;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$Task$CKQ9RLMNPYajktwO1VrUoQGHF_8;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$Task$CKQ9RLMNPYajktwO1VrUoQGHF_8;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$Task$Cht49HFU7XWpGlhw2YJ9bd8TX-Q;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$Task$Cht49HFU7XWpGlhw2YJ9bd8TX-Q;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$Task$Cht49HFU7XWpGlhw2YJ9bd8TX-Q;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/-$$Lambda$Task$HQ9aJbE-z0XuxiYHPMxxaMHkKFY;-><init>(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/wm/-$$Lambda$Task$HQ9aJbE-z0XuxiYHPMxxaMHkKFY;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$Task$MOqNuoCL9YLiX2dQsNRKxRa9HMk;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$Task$MOqNuoCL9YLiX2dQsNRKxRa9HMk;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$Task$MOqNuoCL9YLiX2dQsNRKxRa9HMk;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$Task$N2dM5PIhuaw--o5HD3NnXAFoPzg;-><init>(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/wm/-$$Lambda$Task$N2dM5PIhuaw--o5HD3NnXAFoPzg;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$Task$N6swnhdrHvxOfp81yUqye9AbX7A;-><clinit>()V
@@ -33256,18 +34270,22 @@
 PLcom/android/server/wm/-$$Lambda$Task$OQmaRDKXdgA0v6VfNwTX7wOkwBs;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$Task$OQmaRDKXdgA0v6VfNwTX7wOkwBs;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$Task$OQmaRDKXdgA0v6VfNwTX7wOkwBs;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$Task$RbZcOw6lwdHzgJZl6wML-Q7wl3w;-><init>(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/-$$Lambda$Task$RbZcOw6lwdHzgJZl6wML-Q7wl3w;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HPLcom/android/server/wm/-$$Lambda$Task$SRt5iDqxFMzfuMULgjnmoyWp73o;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;[ILjava/lang/String;Z)V
 HPLcom/android/server/wm/-$$Lambda$Task$SRt5iDqxFMzfuMULgjnmoyWp73o;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$Task$TZa8EpS1fM9BHkBe2HWJbm9X1-8;-><init>(Ljava/lang/String;)V
+PLcom/android/server/wm/-$$Lambda$Task$TZa8EpS1fM9BHkBe2HWJbm9X1-8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$Task$UZHgJINsQMxoLLbKNADHN5xbji8;-><init>(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/wm/-$$Lambda$Task$UZHgJINsQMxoLLbKNADHN5xbji8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$Task$WFXOGUsP9k2SctNXpn2eb_XUKP0;-><init>(Landroid/util/proto/ProtoOutputStream;I)V
-PLcom/android/server/wm/-$$Lambda$Task$WFXOGUsP9k2SctNXpn2eb_XUKP0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$Task$WFXOGUsP9k2SctNXpn2eb_XUKP0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$Task$XRtJRRfvaa_neQ0BbpDvRIqXzf4;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$Task$XRtJRRfvaa_neQ0BbpDvRIqXzf4;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$Task$XRtJRRfvaa_neQ0BbpDvRIqXzf4;->test(Ljava/lang/Object;)Z
@@ -33279,6 +34297,9 @@
 PLcom/android/server/wm/-$$Lambda$Task$hJlIVNsWJQJ_mIrVCbuZDn-cUwE;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$Task$hJlIVNsWJQJ_mIrVCbuZDn-cUwE;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$Task$hJlIVNsWJQJ_mIrVCbuZDn-cUwE;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$Task$jYM3OAa6LxTqP_4XSZWfdd7SzV8;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$Task$jYM3OAa6LxTqP_4XSZWfdd7SzV8;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$Task$jYM3OAa6LxTqP_4XSZWfdd7SzV8;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$Task$lqGdYR9ABiPuG3_68w1VS6hrr8c;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$Task$lqGdYR9ABiPuG3_68w1VS6hrr8c;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$Task$lqGdYR9ABiPuG3_68w1VS6hrr8c;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -33324,7 +34345,7 @@
 HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$PSFFTNiSSqx5-emiM-hoY62N04M;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SByuGj5tpcCpjTH9lf5zHHv2gNM;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SByuGj5tpcCpjTH9lf5zHHv2gNM;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$UexNbaqPy0mc3VxTw2coCctHho8;-><clinit>()V
@@ -33415,26 +34436,12 @@
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$-A4y17DMfFWJcsomzkr9vLbjQAE;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$-A4y17DMfFWJcsomzkr9vLbjQAE;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$-A4y17DMfFWJcsomzkr9vLbjQAE;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$2rGzqVQd2W3E16Whknxg9bmDzTY;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$2rGzqVQd2W3E16Whknxg9bmDzTY;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$2rGzqVQd2W3E16Whknxg9bmDzTY;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$4sX6UUtugZXD_J917yuWIm58Q9M;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$4sX6UUtugZXD_J917yuWIm58Q9M;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$4sX6UUtugZXD_J917yuWIm58Q9M;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$Gpo6ayyekClulCV4pWn8r_9sFj8;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$Gpo6ayyekClulCV4pWn8r_9sFj8;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$Gpo6ayyekClulCV4pWn8r_9sFj8;->test(Ljava/lang/Object;)Z
-HSPLcom/android/server/wm/-$$Lambda$WindowContainer$LBjDP_WAw_7yWAmt8ZHABKob-8M;-><clinit>()V
-HSPLcom/android/server/wm/-$$Lambda$WindowContainer$LBjDP_WAw_7yWAmt8ZHABKob-8M;-><init>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$LBjDP_WAw_7yWAmt8ZHABKob-8M;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$MJv6PFywp2VpmiV3-w1JgxopvP0;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$MJv6PFywp2VpmiV3-w1JgxopvP0;-><init>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$MJv6PFywp2VpmiV3-w1JgxopvP0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$Nezf9LuhT9GSLKWzqEWp7WKs5W8;-><init>(Lcom/android/server/wm/WindowContainer;)V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$Nezf9LuhT9GSLKWzqEWp7WKs5W8;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;->test(Ljava/lang/Object;)Z
@@ -33443,32 +34450,17 @@
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$WskrGbNwLeexLlAXUNUyGLhHEWA;->test(Ljava/lang/Object;)Z
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$a-4AX8BeEa4UpmUmPJfszEypbe8;-><init>(Lcom/android/server/wm/WindowContainer;)V
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$a-4AX8BeEa4UpmUmPJfszEypbe8;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$aOnsenmCzcAbVIVfb4GaJb6lURI;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$aOnsenmCzcAbVIVfb4GaJb6lURI;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$aOnsenmCzcAbVIVfb4GaJb6lURI;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$bIb_8MdCB21XDQtqSZBnQ6UsdVY;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$bIb_8MdCB21XDQtqSZBnQ6UsdVY;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$bIb_8MdCB21XDQtqSZBnQ6UsdVY;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$dnx35h_Pw7Bg2H7Ehkb7sSfFoyI;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$dnx35h_Pw7Bg2H7Ehkb7sSfFoyI;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$dnx35h_Pw7Bg2H7Ehkb7sSfFoyI;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$WindowContainer$fQfr0FFMMdeUY3lZFLkiF4glOP0;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/policy/WindowManagerPolicy;)V
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$fQfr0FFMMdeUY3lZFLkiF4glOP0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;->test(Ljava/lang/Object;)Z
-HSPLcom/android/server/wm/-$$Lambda$WindowContainer$hIGRJSXS2_nuTiN5-y-qjXv-Wwk;-><clinit>()V
-HSPLcom/android/server/wm/-$$Lambda$WindowContainer$hIGRJSXS2_nuTiN5-y-qjXv-Wwk;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$WindowContainer$hIGRJSXS2_nuTiN5-y-qjXv-Wwk;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$qSbR9_kgF0JT89cFcOglSsU0Y94;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$qSbR9_kgF0JT89cFcOglSsU0Y94;-><init>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$qSbR9_kgF0JT89cFcOglSsU0Y94;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;->test(Ljava/lang/Object;)Z
@@ -33477,6 +34469,7 @@
 PLcom/android/server/wm/-$$Lambda$WindowContainerThumbnail$eaIKGhnBPQly7snIrFjjw1Gda8k;-><init>(Lcom/android/server/wm/WindowContainerThumbnail;)V
 PLcom/android/server/wm/-$$Lambda$WindowContainerThumbnail$eaIKGhnBPQly7snIrFjjw1Gda8k;->run()V
 HSPLcom/android/server/wm/-$$Lambda$WindowManagerConstants$H0Vnr9H2xLD72_22unzb68d1fSM;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerConstants$H0Vnr9H2xLD72_22unzb68d1fSM;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/wm/-$$Lambda$WindowManagerConstants$YOsWod8qOtbBnduZqPrYHSwyJ5E;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 HSPLcom/android/server/wm/-$$Lambda$WindowManagerConstants$vqhvZbTPHnj84vQKH9wjAhgVP44;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
 HSPLcom/android/server/wm/-$$Lambda$WindowManagerService$-84S7IuSlM65nKgepHJEvVFHdC8;-><init>(Lcom/android/server/wm/WindowManagerService;)V
@@ -33489,7 +34482,7 @@
 HPLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$_nYJRiVOgbON7mI191FIzNAk4Xs;-><init>(Ljava/lang/String;)V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$_nYJRiVOgbON7mI191FIzNAk4Xs;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$rEGrcIRCgYp-4kzr5xA12LKQX0E;-><init>(Ljava/lang/String;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$rEGrcIRCgYp-4kzr5xA12LKQX0E;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$rEGrcIRCgYp-4kzr5xA12LKQX0E;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$Zv37mcLTUXyG89YznyHzluaKNE0;-><init>(Landroid/app/IAssistDataReceiver;Landroid/graphics/Bitmap;)V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$Zv37mcLTUXyG89YznyHzluaKNE0;->run()V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$eaG2e7SQKd8e2ZcXySkFGa1yxFk;-><init>(Ljava/io/PrintWriter;)V
@@ -33574,33 +34567,38 @@
 PLcom/android/server/wm/-$$Lambda$zuO3rEvETpKsuJLTTdIHB2ijeho;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$zuO3rEvETpKsuJLTTdIHB2ijeho;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$zuO3rEvETpKsuJLTTdIHB2ijeho;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow$AnimationController;-><init>(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;Landroid/content/Context;Landroid/os/Looper;)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow$AnimationController;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow$AnimationController;->onFrameShownStateChanged(ZZ)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;-><init>(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;Landroid/content/Context;)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->drawIfNeeded(Landroid/view/SurfaceControl$Transaction;)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->invalidate(Landroid/graphics/Rect;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->releaseSurface()V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->setAlpha(I)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->setBounds(Landroid/graphics/Region;)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->setShown(ZZ)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->setShown(ZZ)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;->updateSize(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;-><init>(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->access$1200(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;)Landroid/graphics/Point;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->access$1300(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;)F
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->access$1400(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;)I
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->access$1400(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;)Landroid/view/WindowManager;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->destroyWindow()V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->drawWindowIfNeededLocked(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->getLetterboxBounds(Lcom/android/server/wm/WindowState;)Landroid/graphics/Region;
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->getLetterboxBounds(Lcom/android/server/wm/WindowState;)Landroid/graphics/Region;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->getMagnificationRegionLocked(Landroid/graphics/Region;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->getMagnificationSpecLocked()Landroid/view/MagnificationSpec;
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->getMagnifiedFrameInContentCoordsLocked(Landroid/graphics/Rect;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->isMagnifyingLocked()Z
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->lambda$populateWindowsOnScreenLocked$0$AccessibilityController$DisplayMagnifier$MagnifiedViewport(Landroid/util/SparseArray;Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->onRotationChangedLocked(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->populateWindowsOnScreenLocked(Landroid/util/SparseArray;)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->recomputeBoundsLocked()V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->setMagnifiedRegionBorderShownLocked(ZZ)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->updateMagnificationSpecLocked(Landroid/view/MagnificationSpec;)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->setMagnifiedRegionBorderShownLocked(ZZ)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;->updateMagnificationSpecLocked(Landroid/view/MagnificationSpec;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MyHandler;-><init>(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;Landroid/os/Looper;)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MyHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Landroid/view/Display;Lcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;)V
@@ -33608,6 +34606,8 @@
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$100(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Landroid/view/Display;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$1000(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Lcom/android/server/wm/WindowManagerService;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$1100(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$1500(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Lcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$1600(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$1600(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Lcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$200(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Landroid/os/Handler;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->access$300(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;)Landroid/graphics/Region;
@@ -33621,15 +34621,17 @@
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->getMagnificationSpecForWindowLocked(Lcom/android/server/wm/WindowState;)Landroid/view/MagnificationSpec;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->isForceShowingMagnifiableBoundsLocked()Z
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onAppWindowTransitionLocked(II)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onRectangleOnScreenRequestedLocked(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onRectangleOnScreenRequestedLocked(Landroid/graphics/Rect;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onRotationChangedLocked(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onWindowTransitionLocked(Lcom/android/server/wm/WindowState;I)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->setMagnificationSpecLocked(Landroid/view/MagnificationSpec;)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onWindowTransitionLocked(Lcom/android/server/wm/WindowState;I)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->setForceShowMagnifiableBoundsLocked(Z)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->setMagnificationSpecLocked(Landroid/view/MagnificationSpec;)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->showMagnificationBoundsIfNeeded()V
 PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver$MyHandler;-><init>(Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;Landroid/os/Looper;)V
 HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver$MyHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;-><init>(Lcom/android/server/wm/WindowManagerService;ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)V
 HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->addPopulatedWindowInfo(Lcom/android/server/wm/WindowState;Landroid/graphics/Region;Ljava/util/List;Ljava/util/Set;)V
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->clearAndRecycleWindows(Ljava/util/List;)V
+HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->clearAndRecycleWindows(Ljava/util/List;)V
 HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->computeChangedWindows(Z)V
 HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->computeWindowRegionInScreen(Lcom/android/server/wm/WindowState;Landroid/graphics/Region;)V
 HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->findRootDisplayParentWindow(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/WindowState;
@@ -33658,8 +34660,9 @@
 HPLcom/android/server/wm/AccessibilityController;->onWindowTransitionLocked(Lcom/android/server/wm/WindowState;I)V
 HPLcom/android/server/wm/AccessibilityController;->performComputeChangedWindowsNotLocked(IZ)V
 PLcom/android/server/wm/AccessibilityController;->populateTransformationMatrixLocked(Lcom/android/server/wm/WindowState;Landroid/graphics/Matrix;)V
+PLcom/android/server/wm/AccessibilityController;->setForceShowMagnifiableBoundsLocked(IZ)V
 PLcom/android/server/wm/AccessibilityController;->setMagnificationCallbacksLocked(ILcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;)Z
-PLcom/android/server/wm/AccessibilityController;->setMagnificationSpecLocked(ILandroid/view/MagnificationSpec;)V
+HPLcom/android/server/wm/AccessibilityController;->setMagnificationSpecLocked(ILandroid/view/MagnificationSpec;)V
 PLcom/android/server/wm/AccessibilityController;->setWindowsForAccessibilityCallbackLocked(ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)Z
 HSPLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;-><init>()V
 HSPLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->access$000(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;)J
@@ -33679,24 +34682,24 @@
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;-><init>(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Lcom/android/server/wm/ActivityMetricsLogger$1;)V
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;-><init>(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Lcom/android/server/wm/ActivityRecord;I)V
 PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;-><init>(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityMetricsLogger$1;)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$1100(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Lcom/android/server/wm/WindowProcessController;
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$1100(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Lcom/android/server/wm/WindowProcessController;
 PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$1200(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$300(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$400(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$300(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Landroid/content/pm/ApplicationInfo;
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$400(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
 PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$500(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$600(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$700(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$800(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$900(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$600(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$700(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$800(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$900(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->getLaunchState()I
 HSPLcom/android/server/wm/ActivityMetricsLogger;-><clinit>()V
 HSPLcom/android/server/wm/ActivityMetricsLogger;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Landroid/os/Looper;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->abort(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityMetricsLogger;->abort(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;)V
 HSPLcom/android/server/wm/ActivityMetricsLogger;->checkVisibility(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityMetricsLogger;->convertActivityRecordToProto(Lcom/android/server/wm/ActivityRecord;)[B
-PLcom/android/server/wm/ActivityMetricsLogger;->convertAppStartTransitionType(I)I
+HSPLcom/android/server/wm/ActivityMetricsLogger;->convertAppStartTransitionType(I)I
 HSPLcom/android/server/wm/ActivityMetricsLogger;->convertTransitionTypeToLaunchObserverTemperature(I)I
-HPLcom/android/server/wm/ActivityMetricsLogger;->done(ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;J)V
+HSPLcom/android/server/wm/ActivityMetricsLogger;->done(ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;J)V
 HSPLcom/android/server/wm/ActivityMetricsLogger;->getActiveTransitionInfo(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
 PLcom/android/server/wm/ActivityMetricsLogger;->getArtManagerInternal()Landroid/content/pm/dex/ArtManagerInternal;
 HSPLcom/android/server/wm/ActivityMetricsLogger;->getLastDrawnDelayMs(Lcom/android/server/wm/ActivityRecord;)I
@@ -33708,7 +34711,7 @@
 HPLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionFinished$2$ActivityMetricsLogger(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
 PLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionReportedDrawn$3$ActivityMetricsLogger(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 PLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionReportedDrawn$4$ActivityMetricsLogger(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunchCancelled(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+HSPLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunchCancelled(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 HPLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunchFinished(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;J)V
 HSPLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 HPLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyIntentFailed()V
@@ -33719,10 +34722,10 @@
 HPLcom/android/server/wm/ActivityMetricsLogger;->logAppFullyDrawn(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
 HPLcom/android/server/wm/ActivityMetricsLogger;->logAppStartMemoryStateCapture(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
 HPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransition(IILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-HPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionCancel(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+HSPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionCancel(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 HPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionFinished(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 HPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionReportedDrawn(Lcom/android/server/wm/ActivityRecord;Z)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;
-HPLcom/android/server/wm/ActivityMetricsLogger;->logWindowState()V
+HSPLcom/android/server/wm/ActivityMetricsLogger;->logWindowState()V
 HSPLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;ILcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunching(Landroid/content/Intent;)Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;
 HSPLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunching(Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;
@@ -33734,7 +34737,7 @@
 HSPLcom/android/server/wm/ActivityMetricsLogger;->notifyVisibilityChanged(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityMetricsLogger;->notifyWindowsDrawn(Lcom/android/server/wm/ActivityRecord;J)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;
 HSPLcom/android/server/wm/ActivityMetricsLogger;->startLaunchTrace(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-HPLcom/android/server/wm/ActivityMetricsLogger;->stopLaunchTrace(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+HSPLcom/android/server/wm/ActivityMetricsLogger;->stopLaunchTrace(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 PLcom/android/server/wm/ActivityRecord$1;-><clinit>()V
 HSPLcom/android/server/wm/ActivityRecord$1;-><init>(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityRecord$1;->run()V
@@ -33744,7 +34747,7 @@
 PLcom/android/server/wm/ActivityRecord$3;->run()V
 HSPLcom/android/server/wm/ActivityRecord$4;-><init>(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityRecord$4;->run()V
-PLcom/android/server/wm/ActivityRecord$5;-><clinit>()V
+HSPLcom/android/server/wm/ActivityRecord$5;-><clinit>()V
 HSPLcom/android/server/wm/ActivityRecord$AddStartingWindow;-><init>(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityRecord$AddStartingWindow;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord$1;)V
 HPLcom/android/server/wm/ActivityRecord$AddStartingWindow;->run()V
@@ -33764,23 +34767,24 @@
 HPLcom/android/server/wm/ActivityRecord$Token;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityRecord$Token;->tokenToActivityRecordLocked(Lcom/android/server/wm/ActivityRecord$Token;)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/ActivityRecord;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowProcessController;IILjava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IZZLcom/android/server/wm/ActivityStackSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowProcessController;IILjava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IZZLcom/android/server/wm/ActivityStackSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityRecord;->access$000(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/ActivityRecord;->activityPaused(Z)V
+HSPLcom/android/server/wm/ActivityRecord;->activityPaused(Z)V
 HSPLcom/android/server/wm/ActivityRecord;->activityResumedLocked(Landroid/os/IBinder;)V
-HPLcom/android/server/wm/ActivityRecord;->activityStopped(Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
+HSPLcom/android/server/wm/ActivityRecord;->activityStopped(Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
 PLcom/android/server/wm/ActivityRecord;->activityStoppedLocked(Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
 HPLcom/android/server/wm/ActivityRecord;->addNewIntentLocked(Lcom/android/internal/content/ReferrerIntent;)V
 HPLcom/android/server/wm/ActivityRecord;->addResultLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IILandroid/content/Intent;)V
 HSPLcom/android/server/wm/ActivityRecord;->addStartingWindow(Ljava/lang/String;ILandroid/content/res/CompatibilityInfo;Ljava/lang/CharSequence;IIIILandroid/os/IBinder;ZZZZZZ)Z
 HPLcom/android/server/wm/ActivityRecord;->addToFinishingAndWaitForIdle()Z
-HPLcom/android/server/wm/ActivityRecord;->addToStopping(ZZLjava/lang/String;)V
+HSPLcom/android/server/wm/ActivityRecord;->addToStopping(ZZLjava/lang/String;)V
 HSPLcom/android/server/wm/ActivityRecord;->addWindow(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/ActivityRecord;->allDrawnStatesConsidered()Z
 HSPLcom/android/server/wm/ActivityRecord;->allowMoveToFront()Z
 HSPLcom/android/server/wm/ActivityRecord;->allowTaskSnapshot()Z
 HPLcom/android/server/wm/ActivityRecord;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Z
 PLcom/android/server/wm/ActivityRecord;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZLcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)Z
-PLcom/android/server/wm/ActivityRecord;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZLjava/lang/Runnable;)Z
+HPLcom/android/server/wm/ActivityRecord;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZLjava/lang/Runnable;)Z
 HSPLcom/android/server/wm/ActivityRecord;->applyAspectRatio(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/ActivityRecord;->applyOptionsLocked()V
 HSPLcom/android/server/wm/ActivityRecord;->applyOptionsLocked(Landroid/app/ActivityOptions;Landroid/content/Intent;)V
@@ -33792,7 +34796,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->canBeLaunchedOnDisplay(I)Z
 HSPLcom/android/server/wm/ActivityRecord;->canBeTopRunning()Z
 PLcom/android/server/wm/ActivityRecord;->canLaunchAssistActivity(Ljava/lang/String;)Z
-PLcom/android/server/wm/ActivityRecord;->canLaunchHomeActivity(ILcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityRecord;->canLaunchHomeActivity(ILcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/ActivityRecord;->canResumeByCompat()Z
 HSPLcom/android/server/wm/ActivityRecord;->canShowWhenLocked()Z
 HSPLcom/android/server/wm/ActivityRecord;->canShowWindows()Z
@@ -33803,7 +34807,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->checkAppWindowsReadyToShow()V
 HSPLcom/android/server/wm/ActivityRecord;->checkCompleteDeferredRemoval()Z
 HPLcom/android/server/wm/ActivityRecord;->checkEnterPictureInPictureAppOpsState()Z
-HPLcom/android/server/wm/ActivityRecord;->checkEnterPictureInPictureState(Ljava/lang/String;Z)Z
+HSPLcom/android/server/wm/ActivityRecord;->checkEnterPictureInPictureState(Ljava/lang/String;Z)Z
 HSPLcom/android/server/wm/ActivityRecord;->checkKeyguardFlagsChanged()V
 HPLcom/android/server/wm/ActivityRecord;->cleanUp(ZZ)V
 PLcom/android/server/wm/ActivityRecord;->cleanUpActivityServices()V
@@ -33813,6 +34817,7 @@
 HPLcom/android/server/wm/ActivityRecord;->clearOptionsLocked()V
 HSPLcom/android/server/wm/ActivityRecord;->clearOptionsLocked(Z)V
 PLcom/android/server/wm/ActivityRecord;->clearRelaunching()V
+PLcom/android/server/wm/ActivityRecord;->clearSizeCompatMode()V
 HSPLcom/android/server/wm/ActivityRecord;->clearThumbnail()V
 HSPLcom/android/server/wm/ActivityRecord;->commitVisibility(ZZ)V
 HPLcom/android/server/wm/ActivityRecord;->completeFinishing(Ljava/lang/String;)Lcom/android/server/wm/ActivityRecord;
@@ -33834,8 +34839,8 @@
 HPLcom/android/server/wm/ActivityRecord;->deliverNewIntentLocked(ILandroid/content/Intent;Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityRecord;->destroyIfPossible(Ljava/lang/String;)Z
 HPLcom/android/server/wm/ActivityRecord;->destroyImmediately(ZLjava/lang/String;)Z
-HPLcom/android/server/wm/ActivityRecord;->destroySurfaces()V
-HPLcom/android/server/wm/ActivityRecord;->destroySurfaces(Z)V
+HSPLcom/android/server/wm/ActivityRecord;->destroySurfaces()V
+HSPLcom/android/server/wm/ActivityRecord;->destroySurfaces(Z)V
 HPLcom/android/server/wm/ActivityRecord;->destroyed(Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityRecord;->detachChildren()V
 HPLcom/android/server/wm/ActivityRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
@@ -33873,7 +34878,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->getDisplayId()I
 HSPLcom/android/server/wm/ActivityRecord;->getDisplayedBounds()Landroid/graphics/Rect;
 PLcom/android/server/wm/ActivityRecord;->getHighestAnimLayerWindow(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/ActivityRecord;->getImeTargetBelowWindow(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/ActivityRecord;->getImeTargetBelowWindow(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/ActivityRecord;->getLetterboxInnerBounds(Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityRecord;->getLetterboxInsets()Landroid/graphics/Rect;
 HSPLcom/android/server/wm/ActivityRecord;->getLockTaskLaunchMode(Landroid/content/pm/ActivityInfo;Landroid/app/ActivityOptions;)I
@@ -33891,7 +34896,7 @@
 PLcom/android/server/wm/ActivityRecord;->getStackId()I
 HSPLcom/android/server/wm/ActivityRecord;->getStackLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityStack;
 HPLcom/android/server/wm/ActivityRecord;->getStartingWindowType(ZZZZZZLandroid/app/ActivityManager$TaskSnapshot;)I
-HPLcom/android/server/wm/ActivityRecord;->getState()Lcom/android/server/wm/ActivityStack$ActivityState;
+HSPLcom/android/server/wm/ActivityRecord;->getState()Lcom/android/server/wm/ActivityStack$ActivityState;
 HSPLcom/android/server/wm/ActivityRecord;->getTask()Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/ActivityRecord;->getTaskForActivityLocked(Landroid/os/IBinder;Z)I
 HPLcom/android/server/wm/ActivityRecord;->getTopFullscreenOpaqueWindow()Lcom/android/server/wm/WindowState;
@@ -33904,7 +34909,7 @@
 PLcom/android/server/wm/ActivityRecord;->getWaitingHistoryRecordLocked()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/ActivityRecord;->handleAlreadyVisible()V
 HSPLcom/android/server/wm/ActivityRecord;->hasActivity()Z
-PLcom/android/server/wm/ActivityRecord;->hasNonDefaultColorWindow()Z
+HPLcom/android/server/wm/ActivityRecord;->hasNonDefaultColorWindow()Z
 HSPLcom/android/server/wm/ActivityRecord;->hasProcess()Z
 PLcom/android/server/wm/ActivityRecord;->hasResizeChange(I)Z
 PLcom/android/server/wm/ActivityRecord;->hasSavedState()Z
@@ -33921,15 +34926,15 @@
 HSPLcom/android/server/wm/ActivityRecord;->isFreezingScreen()Z
 HSPLcom/android/server/wm/ActivityRecord;->isHomeIntent(Landroid/content/Intent;)Z
 HSPLcom/android/server/wm/ActivityRecord;->isInChangeTransition()Z
-PLcom/android/server/wm/ActivityRecord;->isInHistory()Z
+HSPLcom/android/server/wm/ActivityRecord;->isInHistory()Z
 HPLcom/android/server/wm/ActivityRecord;->isInStackLocked()Z
 HSPLcom/android/server/wm/ActivityRecord;->isInStackLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/ActivityRecord;->isInVrUiMode(Landroid/content/res/Configuration;)Z
 PLcom/android/server/wm/ActivityRecord;->isInterestingToUserLocked()Z
-PLcom/android/server/wm/ActivityRecord;->isLastWindow(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/ActivityRecord;->isLastWindow(Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/ActivityRecord;->isLetterboxOverlappingWith(Landroid/graphics/Rect;)Z
 HPLcom/android/server/wm/ActivityRecord;->isMainIntent(Landroid/content/Intent;)Z
-HPLcom/android/server/wm/ActivityRecord;->isNoHistory()Z
+HSPLcom/android/server/wm/ActivityRecord;->isNoHistory()Z
 PLcom/android/server/wm/ActivityRecord;->isNonResizableOrForcedResizable(I)Z
 HSPLcom/android/server/wm/ActivityRecord;->isPersistable()Z
 HSPLcom/android/server/wm/ActivityRecord;->isProcessRunning()Z
@@ -33941,7 +34946,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->isResolverOrDelegateActivity()Z
 PLcom/android/server/wm/ActivityRecord;->isResumedActivityOnDisplay()Z
 HSPLcom/android/server/wm/ActivityRecord;->isRootOfTask()Z
-HPLcom/android/server/wm/ActivityRecord;->isSleeping()Z
+HSPLcom/android/server/wm/ActivityRecord;->isSleeping()Z
 HSPLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;)Z
 PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;)Z
 PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;)Z
@@ -33961,9 +34966,10 @@
 PLcom/android/server/wm/ActivityRecord;->lambda$layoutLetterbox$2$ActivityRecord()Landroid/view/SurfaceControl$Builder;
 PLcom/android/server/wm/ActivityRecord;->lambda$new$0$ActivityRecord([F[F)V
 PLcom/android/server/wm/ActivityRecord;->lambda$new$1$ActivityRecord([F[F)V
-HPLcom/android/server/wm/ActivityRecord;->lambda$postApplyAnimation$7(Lcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/ActivityRecord;->lambda$postApplyAnimation$7(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/ActivityRecord;->lambda$prAsqx_JQJTqW1jNxmkuU3AV8AU(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityRecord;->lambda$removeStartingWindow$3(Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;)V
+HPLcom/android/server/wm/ActivityRecord;->lambda$removeStartingWindow$3(Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;)V
+PLcom/android/server/wm/ActivityRecord;->lambda$restartProcessIfVisible$10$ActivityRecord()V
 PLcom/android/server/wm/ActivityRecord;->lambda$setVisibility$6(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/ActivityRecord;->lambda$shouldUseAppThemeSnapshot$8(Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/ActivityRecord;->lambda$showAllWindowsLocked$9(Lcom/android/server/wm/WindowState;)V
@@ -33973,7 +34979,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->makeActiveIfNeeded(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityRecord;->makeClientVisible()V
 PLcom/android/server/wm/ActivityRecord;->makeFinishingLocked()V
-HPLcom/android/server/wm/ActivityRecord;->makeInvisible()V
+HSPLcom/android/server/wm/ActivityRecord;->makeInvisible()V
 HPLcom/android/server/wm/ActivityRecord;->makeVisibleIfNeeded(Lcom/android/server/wm/ActivityRecord;Z)V
 HSPLcom/android/server/wm/ActivityRecord;->matchParentBounds()Z
 HSPLcom/android/server/wm/ActivityRecord;->mayFreezeScreenLocked()Z
@@ -33981,7 +34987,7 @@
 HPLcom/android/server/wm/ActivityRecord;->moveFocusableActivityToTop(Ljava/lang/String;)Z
 HSPLcom/android/server/wm/ActivityRecord;->needsZBoost()Z
 HPLcom/android/server/wm/ActivityRecord;->notifyAppResumed(Z)V
-HPLcom/android/server/wm/ActivityRecord;->notifyAppStopped()V
+HSPLcom/android/server/wm/ActivityRecord;->notifyAppStopped()V
 HSPLcom/android/server/wm/ActivityRecord;->notifyUnknownVisibilityLaunchedForKeyguardTransition()V
 HSPLcom/android/server/wm/ActivityRecord;->occludesParent()Z
 HSPLcom/android/server/wm/ActivityRecord;->okToShowLocked()Z
@@ -33997,9 +35003,9 @@
 HPLcom/android/server/wm/ActivityRecord;->onRemovedFromDisplay()V
 PLcom/android/server/wm/ActivityRecord;->onWindowReplacementTimeout()V
 HSPLcom/android/server/wm/ActivityRecord;->onWindowsDrawn(ZJ)V
-PLcom/android/server/wm/ActivityRecord;->onWindowsGone()V
+HSPLcom/android/server/wm/ActivityRecord;->onWindowsGone()V
 HSPLcom/android/server/wm/ActivityRecord;->onWindowsVisible()V
-PLcom/android/server/wm/ActivityRecord;->onlyVrUiModeChanged(ILandroid/content/res/Configuration;)Z
+HPLcom/android/server/wm/ActivityRecord;->onlyVrUiModeChanged(ILandroid/content/res/Configuration;)Z
 HPLcom/android/server/wm/ActivityRecord;->pauseKeyDispatchingLocked()V
 HSPLcom/android/server/wm/ActivityRecord;->postApplyAnimation(Z)V
 HPLcom/android/server/wm/ActivityRecord;->postWindowRemoveStartingWindowCleanup(Lcom/android/server/wm/WindowState;)V
@@ -34017,11 +35023,11 @@
 PLcom/android/server/wm/ActivityRecord;->removeIfPossible()V
 PLcom/android/server/wm/ActivityRecord;->removeImmediately()V
 HSPLcom/android/server/wm/ActivityRecord;->removeLaunchTickRunnable()V
-HPLcom/android/server/wm/ActivityRecord;->removePauseTimeout()V
+HSPLcom/android/server/wm/ActivityRecord;->removePauseTimeout()V
 HSPLcom/android/server/wm/ActivityRecord;->removeReplacedWindowIfNeeded(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/ActivityRecord;->removeResultsLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;I)V
 HSPLcom/android/server/wm/ActivityRecord;->removeStartingWindow()V
-HPLcom/android/server/wm/ActivityRecord;->removeStopTimeout()V
+HSPLcom/android/server/wm/ActivityRecord;->removeStopTimeout()V
 HPLcom/android/server/wm/ActivityRecord;->removeTimeouts()V
 HPLcom/android/server/wm/ActivityRecord;->removeUriPermissionsLocked()V
 PLcom/android/server/wm/ActivityRecord;->reparent(Lcom/android/server/wm/Task;ILjava/lang/String;)V
@@ -34031,13 +35037,14 @@
 HSPLcom/android/server/wm/ActivityRecord;->requestUpdateWallpaperIfNeeded()V
 HSPLcom/android/server/wm/ActivityRecord;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
 HPLcom/android/server/wm/ActivityRecord;->resolveSizeCompatModeConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/ActivityRecord;->restartProcessIfVisible()V
 HSPLcom/android/server/wm/ActivityRecord;->resumeKeyDispatchingLocked()V
 PLcom/android/server/wm/ActivityRecord;->savePinnedStackBounds()V
 PLcom/android/server/wm/ActivityRecord;->scheduleActivityMovedToDisplay(ILandroid/content/res/Configuration;)V
 HPLcom/android/server/wm/ActivityRecord;->scheduleAddStartingWindow()V
 HPLcom/android/server/wm/ActivityRecord;->scheduleConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/ActivityRecord;->scheduleMultiWindowModeChanged(Landroid/content/res/Configuration;)V
-HPLcom/android/server/wm/ActivityRecord;->schedulePauseTimeout()V
+HSPLcom/android/server/wm/ActivityRecord;->schedulePauseTimeout()V
 PLcom/android/server/wm/ActivityRecord;->schedulePictureInPictureModeChanged(Landroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/ActivityRecord;->scheduleTopResumedActivityChanged(Z)Z
 PLcom/android/server/wm/ActivityRecord;->sendResult(ILjava/lang/String;IILandroid/content/Intent;)V
@@ -34045,7 +35052,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->setAppLayoutChanges(ILjava/lang/String;)V
 HSPLcom/android/server/wm/ActivityRecord;->setClientVisible(Z)V
 PLcom/android/server/wm/ActivityRecord;->setCurrentLaunchCanTurnScreenOn(Z)V
-PLcom/android/server/wm/ActivityRecord;->setDeferHidingClient(Z)V
+HSPLcom/android/server/wm/ActivityRecord;->setDeferHidingClient(Z)V
 PLcom/android/server/wm/ActivityRecord;->setDisablePreviewScreenshots(Z)V
 HSPLcom/android/server/wm/ActivityRecord;->setLastReportedConfiguration(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/ActivityRecord;->setLastReportedConfiguration(Landroid/util/MergedConfiguration;)V
@@ -34069,7 +35076,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->setVisibility(Z)V
 HSPLcom/android/server/wm/ActivityRecord;->setVisibility(ZZ)V
 HSPLcom/android/server/wm/ActivityRecord;->setVisible(Z)V
-HPLcom/android/server/wm/ActivityRecord;->setWillCloseOrEnterPip(Z)V
+HSPLcom/android/server/wm/ActivityRecord;->setWillCloseOrEnterPip(Z)V
 PLcom/android/server/wm/ActivityRecord;->setWillReplaceChildWindows()V
 HPLcom/android/server/wm/ActivityRecord;->shouldApplyAnimation(Z)Z
 HSPLcom/android/server/wm/ActivityRecord;->shouldBeResumed(Lcom/android/server/wm/ActivityRecord;)Z
@@ -34079,7 +35086,7 @@
 PLcom/android/server/wm/ActivityRecord;->shouldFreezeBounds()Z
 HSPLcom/android/server/wm/ActivityRecord;->shouldMakeActive(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/ActivityRecord;->shouldPauseActivity(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityRecord;->shouldRelaunchLocked(ILandroid/content/res/Configuration;)Z
+HPLcom/android/server/wm/ActivityRecord;->shouldRelaunchLocked(ILandroid/content/res/Configuration;)Z
 HSPLcom/android/server/wm/ActivityRecord;->shouldResumeActivity(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/ActivityRecord;->shouldStartActivity()Z
 HSPLcom/android/server/wm/ActivityRecord;->shouldStartChangeTransition(II)Z
@@ -34099,7 +35106,7 @@
 HPLcom/android/server/wm/ActivityRecord;->startingWindowStateToString(I)Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityRecord;->stopFreezingScreen(ZZ)V
 HSPLcom/android/server/wm/ActivityRecord;->stopFreezingScreenLocked(Z)V
-HPLcom/android/server/wm/ActivityRecord;->stopIfPossible()V
+HSPLcom/android/server/wm/ActivityRecord;->stopIfPossible()V
 HSPLcom/android/server/wm/ActivityRecord;->supportsFreeform()Z
 HSPLcom/android/server/wm/ActivityRecord;->supportsPictureInPicture()Z
 HSPLcom/android/server/wm/ActivityRecord;->supportsResizeableMultiWindow()Z
@@ -34122,7 +35129,7 @@
 PLcom/android/server/wm/ActivityRecord;->updatePictureInPictureMode(Landroid/graphics/Rect;Z)V
 HSPLcom/android/server/wm/ActivityRecord;->updateReportedVisibilityLocked()V
 HSPLcom/android/server/wm/ActivityRecord;->updateSizeCompatMode()V
-PLcom/android/server/wm/ActivityRecord;->updateTaskDescription(Ljava/lang/CharSequence;)V
+HSPLcom/android/server/wm/ActivityRecord;->updateTaskDescription(Ljava/lang/CharSequence;)V
 HSPLcom/android/server/wm/ActivityRecord;->windowsAreFocusable()Z
 HSPLcom/android/server/wm/ActivityRecord;->windowsAreFocusable(Z)Z
 HSPLcom/android/server/wm/ActivityRecord;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
@@ -34143,7 +35150,7 @@
 PLcom/android/server/wm/ActivityStack$ActivityStackHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/wm/ActivityStack$ActivityState;-><clinit>()V
 HSPLcom/android/server/wm/ActivityStack$ActivityState;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/wm/ActivityStack$ActivityState;->values()[Lcom/android/server/wm/ActivityStack$ActivityState;
+HSPLcom/android/server/wm/ActivityStack$ActivityState;->values()[Lcom/android/server/wm/ActivityStack$ActivityState;
 HSPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack$1;)V
 HSPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;->lambda$hxEhv3lodv2mTq0c1tG208T2TSs(Lcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
@@ -34163,6 +35170,7 @@
 HPLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->processActivity(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStack;-><clinit>()V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/app/ActivityManager$TaskDescription;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/DisplayContent;ILcom/android/server/wm/ActivityStackSupervisor;I)V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/DisplayContent;ILcom/android/server/wm/ActivityStackSupervisor;IIZ)V
@@ -34192,16 +35200,16 @@
 HSPLcom/android/server/wm/ActivityStack;->checkKeyguardVisibility(Lcom/android/server/wm/ActivityRecord;ZZ)Z
 HSPLcom/android/server/wm/ActivityStack;->checkReadyForSleep()V
 HSPLcom/android/server/wm/ActivityStack;->checkTranslucentActivityWaiting(Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/ActivityStack;->clearLaunchTime(Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/ActivityStack;->completePauseLocked(ZLcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/ActivityStack;->clearLaunchTime(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/ActivityStack;->completePauseLocked(ZLcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStack;->computeMinPosition(II)I
-HPLcom/android/server/wm/ActivityStack;->containsActivityFromStack(Ljava/util/List;)Z
+HSPLcom/android/server/wm/ActivityStack;->containsActivityFromStack(Ljava/util/List;)Z
 HSPLcom/android/server/wm/ActivityStack;->continueUpdateBounds()V
 PLcom/android/server/wm/ActivityStack;->convertActivityToTranslucent(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->createTask(ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Z)Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/ActivityStack;->createTask(ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ZLcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/ActivityStack;->createTask(ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Z)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStack;->deferScheduleMultiWindowModeChanged()Z
+HPLcom/android/server/wm/ActivityStack;->deferScheduleMultiWindowModeChanged()Z
 PLcom/android/server/wm/ActivityStack;->deferUpdateBounds()V
 HPLcom/android/server/wm/ActivityStack;->dim(F)V
 PLcom/android/server/wm/ActivityStack;->dismissPip()V
@@ -34234,8 +35242,9 @@
 HPLcom/android/server/wm/ActivityStack;->getDockSide(Landroid/content/res/Configuration;Landroid/graphics/Rect;)I
 HPLcom/android/server/wm/ActivityStack;->getDockSide(Lcom/android/server/wm/DisplayContent;Landroid/content/res/Configuration;Landroid/graphics/Rect;)I
 PLcom/android/server/wm/ActivityStack;->getDockSideForDisplay(Lcom/android/server/wm/DisplayContent;)I
-PLcom/android/server/wm/ActivityStack;->getDumpActivitiesLocked(Ljava/lang/String;)Ljava/util/ArrayList;
+HPLcom/android/server/wm/ActivityStack;->getDumpActivitiesLocked(Ljava/lang/String;)Ljava/util/ArrayList;
 PLcom/android/server/wm/ActivityStack;->getFinalAnimationBounds(Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityStack;->getFinalAnimationSourceHintBounds(Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityStack;->getMinTopStackBottom(Landroid/graphics/Rect;I)I
 HSPLcom/android/server/wm/ActivityStack;->getName()Ljava/lang/String;
 PLcom/android/server/wm/ActivityStack;->getOrientation()I
@@ -34252,7 +35261,7 @@
 HSPLcom/android/server/wm/ActivityStack;->getTopNonFinishingActivity()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/ActivityStack;->getVisibility(Lcom/android/server/wm/ActivityRecord;)I
 HPLcom/android/server/wm/ActivityStack;->goToSleep()V
-HPLcom/android/server/wm/ActivityStack;->goToSleepIfPossible(Z)Z
+HSPLcom/android/server/wm/ActivityStack;->goToSleepIfPossible(Z)Z
 HSPLcom/android/server/wm/ActivityStack;->handleAppDied(Lcom/android/server/wm/WindowProcessController;)Z
 HSPLcom/android/server/wm/ActivityStack;->handleAppDiedLocked(Lcom/android/server/wm/WindowProcessController;)Z
 PLcom/android/server/wm/ActivityStack;->inLruList(Lcom/android/server/wm/ActivityRecord;)Z
@@ -34287,7 +35296,7 @@
 HPLcom/android/server/wm/ActivityStack;->lambda$GDPUuzTvyfp2z6wYxqAF0vhMJK8(Lcom/android/server/wm/Task;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->lambda$N2PfGF62p6Y1TYGt9lvFtsW9LmQ(Lcom/android/server/wm/ActivityRecord;Landroid/os/IBinder;)Z
-PLcom/android/server/wm/ActivityStack;->lambda$U5MWhpArTVT_b8W6GtTa1Ao8HFs(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityStack;->lambda$U5MWhpArTVT_b8W6GtTa1Ao8HFs(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->lambda$VIuWlCdKwIo4qqRlevMLniedZ7o(Lcom/android/server/wm/Task;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/ActivityStack;->lambda$YAQEcQUrLqR06xiJJApMvOPIxhg(Lcom/android/server/wm/Task;Landroid/os/IBinder;)V
 PLcom/android/server/wm/ActivityStack;->lambda$animateResizePinnedStack$15$ActivityStack(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Rect;Landroid/graphics/Rect;IIZZI)V
@@ -34303,9 +35312,9 @@
 PLcom/android/server/wm/ActivityStack;->lambda$endImeAdjustAnimation$19(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStack;->lambda$finishAllActivitiesImmediately$9(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->lambda$finishIfVoiceTask$8(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStack;->lambda$getDumpActivitiesLocked$14(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityStack;->lambda$getDumpActivitiesLocked$14(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$goToSleep$6(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStack;->lambda$navigateUpTo$10(Landroid/content/ComponentName;Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityStack;->lambda$navigateUpTo$10(Landroid/content/ComponentName;Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->lambda$navigateUpTo$11(Lcom/android/server/wm/ActivityRecord;[I[Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;)Ljava/lang/Boolean;
 PLcom/android/server/wm/ActivityStack;->lambda$onAnimationStart$20(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/ActivityStack;->lambda$onConfigurationChanged$0(Lcom/android/server/wm/WindowState;)V
@@ -34324,7 +35333,7 @@
 HSPLcom/android/server/wm/ActivityStack;->moveToFront(Ljava/lang/String;)V
 HSPLcom/android/server/wm/ActivityStack;->moveToFront(Ljava/lang/String;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStack;->moveToFrontAndResumeStateIfNeeded(Lcom/android/server/wm/ActivityRecord;ZZZLjava/lang/String;)V
-PLcom/android/server/wm/ActivityStack;->navigateUpTo(Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;ILandroid/content/Intent;)Z
+HPLcom/android/server/wm/ActivityStack;->navigateUpTo(Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;ILandroid/content/Intent;)Z
 HSPLcom/android/server/wm/ActivityStack;->notifyActivityDrawnLocked(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStack;->onActivityAddedToStack(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStack;->onActivityRemovedFromStack(Lcom/android/server/wm/ActivityRecord;)V
@@ -34352,7 +35361,7 @@
 HSPLcom/android/server/wm/ActivityStack;->removeHistoryRecordsForApp(Lcom/android/server/wm/WindowProcessController;)Z
 HSPLcom/android/server/wm/ActivityStack;->removeHistoryRecordsForApp(Ljava/util/ArrayList;Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityStack;->removeIfPossible()V
-PLcom/android/server/wm/ActivityStack;->removeImmediately()V
+HPLcom/android/server/wm/ActivityStack;->removeImmediately()V
 HSPLcom/android/server/wm/ActivityStack;->removeLaunchTickMessages()V
 PLcom/android/server/wm/ActivityStack;->removePauseTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->removeStopTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
@@ -34395,7 +35404,7 @@
 PLcom/android/server/wm/ActivityStack;->shouldUpRecreateTaskLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)Z
 PLcom/android/server/wm/ActivityStack;->snapDockedStackAfterRotation(Landroid/content/res/Configuration;Landroid/view/DisplayCutout;Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/ActivityStack;->startActivityLocked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;ZZLandroid/app/ActivityOptions;)V
-HPLcom/android/server/wm/ActivityStack;->startPausingLocked(ZZLcom/android/server/wm/ActivityRecord;)Z
+HSPLcom/android/server/wm/ActivityStack;->startPausingLocked(ZZLcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->stopDimming()V
 HSPLcom/android/server/wm/ActivityStack;->toShortString()Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityStack;->toString()Ljava/lang/String;
@@ -34418,7 +35427,7 @@
 HPLcom/android/server/wm/ActivityStack;->updateTransitLocked(ILandroid/app/ActivityOptions;)V
 PLcom/android/server/wm/ActivityStack;->willActivityBeVisible(Landroid/os/IBinder;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Landroid/os/Looper;)V
-HPLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->activityIdleFromMessage(Lcom/android/server/wm/ActivityRecord;Z)V
+HSPLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->activityIdleFromMessage(Lcom/android/server/wm/ActivityRecord;Z)V
 PLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->activityIdleInternal(Lcom/android/server/wm/ActivityRecord;Z)V
 HSPLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->handleMessageInner(Landroid/os/Message;)Z
@@ -34443,13 +35452,14 @@
 PLcom/android/server/wm/ActivityStackSupervisor;->activityIdleInternalLocked(Landroid/os/IBinder;ZZLandroid/content/res/Configuration;)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/ActivityStackSupervisor;->activityRelaunchedLocked(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->activitySleptLocked(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStackSupervisor;->addToMultiWindowModeChangedList(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->addToMultiWindowModeChangedList(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->addToPipModeChangedList(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->beginDeferResume()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->canPlaceEntityOnDisplay(IIILandroid/content/pm/ActivityInfo;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor;->canUseActivityOptionsLaunchBounds(Landroid/app/ActivityOptions;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor;->checkFinishBootingLocked()Z
-HPLcom/android/server/wm/ActivityStackSupervisor;->checkReadyForSleepLocked(Z)V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->checkReadyForSleepLocked(Z)V
+PLcom/android/server/wm/ActivityStackSupervisor;->checkStartAnyActivityPermission(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;ZZLcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor;->checkStartAnyActivityPermission(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIILjava/lang/String;ZZLcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)Z
 HPLcom/android/server/wm/ActivityStackSupervisor;->cleanUpRemovedTaskLocked(Lcom/android/server/wm/Task;ZZ)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->cleanupActivity(Lcom/android/server/wm/ActivityRecord;)V
@@ -34461,8 +35471,10 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->endDeferResume()V
 HPLcom/android/server/wm/ActivityStackSupervisor;->findTaskToMoveToFront(Lcom/android/server/wm/Task;ILandroid/app/ActivityOptions;Ljava/lang/String;Z)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->getActionRestrictionForCallingPackage(Ljava/lang/String;Ljava/lang/String;II)I
+PLcom/android/server/wm/ActivityStackSupervisor;->getActionRestrictionForCallingPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getActivityMetricsLogger()Lcom/android/server/wm/ActivityMetricsLogger;
 HPLcom/android/server/wm/ActivityStackSupervisor;->getComponentRestrictionForCallingPackage(Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIZ)I
+PLcom/android/server/wm/ActivityStackSupervisor;->getComponentRestrictionForCallingPackage(Landroid/content/pm/ActivityInfo;Ljava/lang/String;Ljava/lang/String;IIZ)I
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getKeyguardController()Lcom/android/server/wm/KeyguardController;
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getLaunchParamsController()Lcom/android/server/wm/LaunchParamsController;
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getNextTaskIdForUser()I
@@ -34472,12 +35484,12 @@
 PLcom/android/server/wm/ActivityStackSupervisor;->getRunningTasks()Lcom/android/server/wm/RunningTasks;
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getSystemChooserActivity()Landroid/content/ComponentName;
 PLcom/android/server/wm/ActivityStackSupervisor;->getUserInfo(I)Landroid/content/pm/UserInfo;
-HPLcom/android/server/wm/ActivityStackSupervisor;->goingToSleepLocked()V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->goingToSleepLocked()V
 HPLcom/android/server/wm/ActivityStackSupervisor;->handleForcedResizableTaskIfNeeded(Lcom/android/server/wm/Task;I)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->handleLaunchTaskBehindCompleteLocked(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;IILcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;IILcom/android/server/wm/ActivityStack;Z)V
-HPLcom/android/server/wm/ActivityStackSupervisor;->handleTopResumedStateReleased(Z)V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->handleTopResumedStateReleased(Z)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->initPowerManagement()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->initialize()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->isCallerAllowedToLaunchOnDisplay(IIILandroid/content/pm/ActivityInfo;)Z
@@ -34490,7 +35502,7 @@
 PLcom/android/server/wm/ActivityStackSupervisor;->lambda$moveTasksToFullscreenStackLocked$1$ActivityStackSupervisor(Lcom/android/server/wm/ActivityStack;Z)V
 PLcom/android/server/wm/ActivityStackSupervisor;->lambda$removeStack$2$ActivityStackSupervisor(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->logIfTransactionTooLarge(Landroid/content/Intent;Landroid/os/Bundle;)V
-PLcom/android/server/wm/ActivityStackSupervisor;->logStackState()V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->logStackState()V
 HPLcom/android/server/wm/ActivityStackSupervisor;->moveHomeStackToFrontIfNeeded(ILcom/android/server/wm/DisplayContent;Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->moveTasksToFullscreenStackInSurfaceTransaction(Lcom/android/server/wm/ActivityStack;IZ)V
 PLcom/android/server/wm/ActivityStackSupervisor;->moveTasksToFullscreenStackLocked(Lcom/android/server/wm/ActivityStack;Z)V
@@ -34501,7 +35513,6 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->onSystemReady()V
 PLcom/android/server/wm/ActivityStackSupervisor;->onUserUnlocked(I)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->printThisActivity(Ljava/io/PrintWriter;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;ZLjava/lang/String;)Z
-PLcom/android/server/wm/ActivityStackSupervisor;->processStoppingActivities(Lcom/android/server/wm/ActivityRecord;ZZLjava/lang/String;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->processStoppingActivitiesLocked(Lcom/android/server/wm/ActivityRecord;ZZ)Ljava/util/ArrayList;
 HSPLcom/android/server/wm/ActivityStackSupervisor;->processStoppingAndFinishingActivities(Lcom/android/server/wm/ActivityRecord;ZLjava/lang/String;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->readyToResume()Z
@@ -34509,7 +35520,7 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->removeHistoryRecords(Lcom/android/server/wm/WindowProcessController;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->removeHistoryRecords(Ljava/util/ArrayList;Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->removeIdleTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/ActivityStackSupervisor;->removeSleepTimeouts()V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->removeSleepTimeouts()V
 PLcom/android/server/wm/ActivityStackSupervisor;->removeStack(Lcom/android/server/wm/ActivityStack;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->removeStackInSurfaceTransaction(Lcom/android/server/wm/ActivityStack;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->removeTask(Lcom/android/server/wm/Task;ZZLjava/lang/String;)V
@@ -34518,23 +35529,23 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->reportActivityLaunchedLocked(ZLcom/android/server/wm/ActivityRecord;JI)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->reportResumedActivityLocked(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor;->reportWaitingActivityLaunchedIfNeeded(Lcom/android/server/wm/ActivityRecord;I)V
-PLcom/android/server/wm/ActivityStackSupervisor;->resizeDockedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Z)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->resizeDockedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Z)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->resizeDockedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->resizePinnedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->resolveActivity(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;ILandroid/app/ProfilerInfo;)Landroid/content/pm/ActivityInfo;
 PLcom/android/server/wm/ActivityStackSupervisor;->resolveActivity(Landroid/content/Intent;Ljava/lang/String;ILandroid/app/ProfilerInfo;II)Landroid/content/pm/ActivityInfo;
 HPLcom/android/server/wm/ActivityStackSupervisor;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
 PLcom/android/server/wm/ActivityStackSupervisor;->restoreRecentTaskLocked(Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;Z)Z
-HPLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdle()V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdle()V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdleLocked()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdleTimeout(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdleTimeoutLocked(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->scheduleLaunchTaskBehindComplete(Landroid/os/IBinder;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleProcessStoppingAndFinishingActivities()V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleResumeTopActivities()V
-HPLcom/android/server/wm/ActivityStackSupervisor;->scheduleSleepTimeout()V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->scheduleSleepTimeout()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->scheduleTopResumedActivityStateIfNeeded()V
-HPLcom/android/server/wm/ActivityStackSupervisor;->scheduleTopResumedStateLossTimeout(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->scheduleTopResumedStateLossTimeout(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->scheduleUpdateMultiWindowMode(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleUpdatePictureInPictureModeIfNeeded(Lcom/android/server/wm/Task;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleUpdatePictureInPictureModeIfNeeded(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityStack;)V
@@ -34561,8 +35572,8 @@
 HSPLcom/android/server/wm/ActivityStartController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStarter$Factory;)V
 PLcom/android/server/wm/ActivityStartController;->access$000(Lcom/android/server/wm/ActivityStartController;)Lcom/android/server/wm/ActivityTaskManagerService;
 PLcom/android/server/wm/ActivityStartController;->addPendingActivityLaunch(Lcom/android/server/wm/ActivityStackSupervisor$PendingActivityLaunch;)V
-PLcom/android/server/wm/ActivityStartController;->checkTargetUser(IZIILjava/lang/String;)I
-HPLcom/android/server/wm/ActivityStartController;->clearPendingActivityLaunches(Ljava/lang/String;)Z
+HPLcom/android/server/wm/ActivityStartController;->checkTargetUser(IZIILjava/lang/String;)I
+HSPLcom/android/server/wm/ActivityStartController;->clearPendingActivityLaunches(Ljava/lang/String;)Z
 HSPLcom/android/server/wm/ActivityStartController;->doPendingActivityLaunches(Z)V
 PLcom/android/server/wm/ActivityStartController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityStartController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
@@ -34572,6 +35583,7 @@
 PLcom/android/server/wm/ActivityStartController;->postStartActivityProcessingForLastStarter(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityStack;)V
 PLcom/android/server/wm/ActivityStartController;->registerRemoteAnimationForNextActivityStart(Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
 HPLcom/android/server/wm/ActivityStartController;->schedulePendingActivityLaunches(J)V
+PLcom/android/server/wm/ActivityStartController;->startActivities(Landroid/app/IApplicationThread;IIILjava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;ILjava/lang/String;Lcom/android/server/am/PendingIntentRecord;Z)I
 HPLcom/android/server/wm/ActivityStartController;->startActivities(Landroid/app/IApplicationThread;IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;ILjava/lang/String;Lcom/android/server/am/PendingIntentRecord;Z)I
 PLcom/android/server/wm/ActivityStartController;->startActivitiesInPackage(IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
 PLcom/android/server/wm/ActivityStartController;->startActivitiesInPackage(ILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
@@ -34592,6 +35604,7 @@
 HSPLcom/android/server/wm/ActivityStartInterceptor;->interceptWithConfirmCredentialsIfNeeded(Landroid/content/pm/ActivityInfo;I)Landroid/content/Intent;
 HSPLcom/android/server/wm/ActivityStartInterceptor;->interceptWorkProfileChallengeIfNeeded()Z
 HSPLcom/android/server/wm/ActivityStartInterceptor;->setStates(IIIILjava/lang/String;)V
+PLcom/android/server/wm/ActivityStartInterceptor;->setStates(IIIILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartInterceptor;)V
 HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;->obtain()Lcom/android/server/wm/ActivityStarter;
 HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;->recycle(Lcom/android/server/wm/ActivityStarter;)V
@@ -34617,13 +35630,14 @@
 HSPLcom/android/server/wm/ActivityStarter;->execute()I
 HSPLcom/android/server/wm/ActivityStarter;->executeRequest(Lcom/android/server/wm/ActivityStarter$Request;)I
 HSPLcom/android/server/wm/ActivityStarter;->getExternalResult(I)I
+PLcom/android/server/wm/ActivityStarter;->getIntent()Landroid/content/Intent;
 HSPLcom/android/server/wm/ActivityStarter;->getLaunchStack(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/Task;Landroid/app/ActivityOptions;)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/ActivityStarter;->getReusableTask()Lcom/android/server/wm/Task;
 PLcom/android/server/wm/ActivityStarter;->handleBackgroundActivityAbort(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/ActivityStarter;->handleStartResult(Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/ActivityStarter;->isAllowedToStart(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)I
 PLcom/android/server/wm/ActivityStarter;->isDocumentLaunchesIntoExisting(I)Z
-PLcom/android/server/wm/ActivityStarter;->isLaunchModeOneOf(II)Z
+HPLcom/android/server/wm/ActivityStarter;->isLaunchModeOneOf(II)Z
 HSPLcom/android/server/wm/ActivityStarter;->onExecutionComplete()V
 HSPLcom/android/server/wm/ActivityStarter;->postStartActivityProcessing(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityStack;)V
 HPLcom/android/server/wm/ActivityStarter;->recycleTask(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)I
@@ -34638,6 +35652,7 @@
 PLcom/android/server/wm/ActivityStarter;->setAllowBackgroundActivityStart(Z)Lcom/android/server/wm/ActivityStarter;
 PLcom/android/server/wm/ActivityStarter;->setAllowPendingRemoteAnimationRegistryLookup(Z)Lcom/android/server/wm/ActivityStarter;
 PLcom/android/server/wm/ActivityStarter;->setCaller(Landroid/app/IApplicationThread;)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setCallingFeatureId(Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
 PLcom/android/server/wm/ActivityStarter;->setCallingPackage(Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
 PLcom/android/server/wm/ActivityStarter;->setCallingPid(I)Lcom/android/server/wm/ActivityStarter;
 HSPLcom/android/server/wm/ActivityStarter;->setCallingUid(I)Lcom/android/server/wm/ActivityStarter;
@@ -34673,10 +35688,10 @@
 PLcom/android/server/wm/ActivityTaskManagerInternal$ActivityTokens;->getActivityToken()Landroid/os/IBinder;
 PLcom/android/server/wm/ActivityTaskManagerInternal$ActivityTokens;->getApplicationThread()Landroid/app/IApplicationThread;
 PLcom/android/server/wm/ActivityTaskManagerInternal$ActivityTokens;->getAssistToken()Landroid/os/IBinder;
-HPLcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;-><init>()V
+HSPLcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;-><init>()V
 HSPLcom/android/server/wm/ActivityTaskManagerInternal;-><init>()V
 HSPLcom/android/server/wm/ActivityTaskManagerService$1;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$1;->run()V
+HSPLcom/android/server/wm/ActivityTaskManagerService$1;->run()V
 PLcom/android/server/wm/ActivityTaskManagerService$2;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/Runnable;)V
 PLcom/android/server/wm/ActivityTaskManagerService$2;->onDismissSucceeded()V
 HSPLcom/android/server/wm/ActivityTaskManagerService$FontScaleSettingObserver;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
@@ -34702,7 +35717,7 @@
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dumpActivity(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZZZ)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dumpForProcesses(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZLjava/lang/String;IZZI)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enableScreenAfterBoot(Z)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->finishTopCrashedActivities(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)I
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeIntent()Landroid/content/Intent;
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeProcess()Lcom/android/server/wm/WindowProcessController;
@@ -34729,19 +35744,19 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyActiveVoiceInteractionServiceChanged(Landroid/content/ComponentName;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyAppTransitionCancelled()V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyAppTransitionFinished()V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyDockedStackMinimizedChanged(Z)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyDockedStackMinimizedChanged(Z)V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyKeyguardFlagsChanged(Ljava/lang/Runnable;I)V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyKeyguardTrustedChanged()V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyLockedProfile(II)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifySingleTaskDisplayDrawn(I)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onCleanUpApplicationRecord(Lcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onForceStopPackage(Ljava/lang/String;ZZI)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onForceStopPackage(Ljava/lang/String;ZZI)Z
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onHandleAppCrash(Lcom/android/server/wm/WindowProcessController;)V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onImeWindowSetOnDisplay(II)V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageAdded(Ljava/lang/String;Z)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageDataCleared(Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageReplaced(Landroid/content/pm/ApplicationInfo;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageUninstalled(Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageUninstalled(Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackagesSuspendedChanged([Ljava/lang/String;ZI)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessAdded(Lcom/android/server/wm/WindowProcessController;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessMapped(ILcom/android/server/wm/WindowProcessController;)V
@@ -34756,7 +35771,7 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->preBindApplication(Lcom/android/server/wm/WindowProcessController;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->rankTaskLayersIfNeeded()V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->registerScreenObserver(Lcom/android/server/wm/ActivityTaskManagerInternal$ScreenObserver;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->removeRecentTasksByPackageName(Ljava/lang/String;I)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->removeRecentTasksByPackageName(Ljava/lang/String;I)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->removeUser(I)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->resumeTopActivities(Z)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->saveANRState(Ljava/lang/String;)V
@@ -34777,7 +35792,7 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->updateTopComponentForFactoryTest()V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->writeActivitiesToProto(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->writeProcessesToProto(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;IZ)V
-PLcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/os/Bundle;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;I)V
+HPLcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/os/Bundle;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;I)V
 PLcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;->run()V
 HSPLcom/android/server/wm/ActivityTaskManagerService$UiHandler;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;-><init>()V
@@ -34791,9 +35806,9 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1200(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/util/proto/ProtoOutputStream;IZ)V
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1300(Lcom/android/server/wm/ActivityTaskManagerService;)Landroid/util/SparseArray;
 HSPLcom/android/server/wm/ActivityTaskManagerService;->access$1300(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/MirrorActiveUids;
-PLcom/android/server/wm/ActivityTaskManagerService;->access$1400(Lcom/android/server/wm/ActivityTaskManagerService;)Landroid/util/SparseArray;
+HPLcom/android/server/wm/ActivityTaskManagerService;->access$1400(Lcom/android/server/wm/ActivityTaskManagerService;)Landroid/util/SparseArray;
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1400(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/RecentTasks;
-PLcom/android/server/wm/ActivityTaskManagerService;->access$1500(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/RecentTasks;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->access$1500(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/RecentTasks;
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1600(Lcom/android/server/wm/ActivityTaskManagerService;IZZ)Landroid/app/ActivityManager$TaskSnapshot;
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1700(Lcom/android/server/wm/ActivityTaskManagerService;)Ljava/util/Map;
 HPLcom/android/server/wm/ActivityTaskManagerService;->access$1700(Lcom/android/server/wm/ActivityTaskManagerService;IZZ)Landroid/app/ActivityManager$TaskSnapshot;
@@ -34803,20 +35818,20 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->access$500(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/TaskChangeNotificationController;
 PLcom/android/server/wm/ActivityTaskManagerService;->access$600(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
 PLcom/android/server/wm/ActivityTaskManagerService;->access$600(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->access$700(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->access$700(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->access$700(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
 PLcom/android/server/wm/ActivityTaskManagerService;->access$800(Lcom/android/server/wm/ActivityTaskManagerService;)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->access$800(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->access$900(Lcom/android/server/wm/ActivityTaskManagerService;)Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->acquireSleepToken(Ljava/lang/String;I)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->acquireSleepToken(Ljava/lang/String;I)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
 HPLcom/android/server/wm/ActivityTaskManagerService;->activityDestroyed(Landroid/os/IBinder;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->activityPaused(Landroid/os/IBinder;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->activityPaused(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->activityRelaunched(Landroid/os/IBinder;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->activityResumed(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->activitySlept(Landroid/os/IBinder;)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->activityTopResumedStateLost()V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->activityTopResumedStateLost()V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->addWindowLayoutReasons(I)V
 PLcom/android/server/wm/ActivityTaskManagerService;->animateResizePinnedStack(ILandroid/graphics/Rect;I)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->applyContainerTransaction(Landroid/view/WindowContainerTransaction;)V
@@ -34830,7 +35845,7 @@
 HPLcom/android/server/wm/ActivityTaskManagerService;->cancelRecentsAnimation(Z)V
 PLcom/android/server/wm/ActivityTaskManagerService;->checkAllowAppSwitchUid(I)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->checkAppSwitchAllowedLocked(IIIILjava/lang/String;)Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->checkCallingPermission(Ljava/lang/String;)I
+HSPLcom/android/server/wm/ActivityTaskManagerService;->checkCallingPermission(Ljava/lang/String;)I
 HSPLcom/android/server/wm/ActivityTaskManagerService;->checkComponentPermission(Ljava/lang/String;IIIZ)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->checkGetTasksPermission(Ljava/lang/String;II)I
 HSPLcom/android/server/wm/ActivityTaskManagerService;->checkPermission(Ljava/lang/String;II)I
@@ -34857,7 +35872,7 @@
 HPLcom/android/server/wm/ActivityTaskManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->enqueueAssistContext(ILandroid/content/Intent;Ljava/lang/String;Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZILandroid/os/Bundle;JI)Lcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;
 HSPLcom/android/server/wm/ActivityTaskManagerService;->ensureConfigAndVisibilityAfterUpdate(Lcom/android/server/wm/ActivityRecord;I)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->ensureValidPictureInPictureActivityParamsLocked(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/ActivityTaskManagerService;->ensureValidPictureInPictureActivityParamsLocked(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/ActivityTaskManagerService;->enterPictureInPictureMode(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Z
 PLcom/android/server/wm/ActivityTaskManagerService;->expireStartAsCallerTokenMsg(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
@@ -34908,7 +35923,7 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService;->getRecentTasks()Lcom/android/server/wm/RecentTasks;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getRequestedOrientation(Landroid/os/IBinder;)I
-HPLcom/android/server/wm/ActivityTaskManagerService;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskBounds(I)Landroid/graphics/Rect;
 HSPLcom/android/server/wm/ActivityTaskManagerService;->getTaskChangeNotificationController()Lcom/android/server/wm/TaskChangeNotificationController;
 PLcom/android/server/wm/ActivityTaskManagerService;->getTaskDescription(I)Landroid/app/ActivityManager$TaskDescription;
@@ -34944,7 +35959,7 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->isKeyguardLocked()Z
 HPLcom/android/server/wm/ActivityTaskManagerService;->isSameApp(ILjava/lang/String;)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->isSleepingLocked()Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->isSleepingOrShuttingDownLocked()Z
+HSPLcom/android/server/wm/ActivityTaskManagerService;->isSleepingOrShuttingDownLocked()Z
 HPLcom/android/server/wm/ActivityTaskManagerService;->isTopOfTask(Landroid/os/IBinder;)Z
 HPLcom/android/server/wm/ActivityTaskManagerService;->isUidForeground(I)Z
 HPLcom/android/server/wm/ActivityTaskManagerService;->keyguardGoingAway(I)V
@@ -34958,13 +35973,14 @@
 HPLcom/android/server/wm/ActivityTaskManagerService;->lambda$onScreenAwakeChanged$3$ActivityTaskManagerService(Z)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->lambda$postFinishBooting$6$ActivityTaskManagerService(ZZ)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->lambda$scheduleAppGcsLocked$7$ActivityTaskManagerService()V
-HPLcom/android/server/wm/ActivityTaskManagerService;->lambda$setLockScreenShown$2$ActivityTaskManagerService(Z)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->lambda$setLockScreenShown$2$ActivityTaskManagerService(Z)V
 PLcom/android/server/wm/ActivityTaskManagerService;->lambda$yP9TbBmrgQ4lrgcxb-8oL1pBAs4(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/res/Configuration;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->logAppTooSlow(Lcom/android/server/wm/WindowProcessController;JLjava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->logPictureInPictureArgs(Landroid/app/PictureInPictureParams;)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->logPictureInPictureArgs(Landroid/app/PictureInPictureParams;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->moveActivityTaskToBack(Landroid/os/IBinder;Z)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->moveTaskToFront(Landroid/app/IApplicationThread;Ljava/lang/String;IILandroid/os/Bundle;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->moveTaskToFrontLocked(Landroid/app/IApplicationThread;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->navigateUpTo(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/Intent;)Z
+HPLcom/android/server/wm/ActivityTaskManagerService;->navigateUpTo(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/Intent;)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->notifyActivityDrawn(Landroid/os/IBinder;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->notifyEnterAnimationComplete(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->notifyLaunchTaskBehindComplete(Landroid/os/IBinder;)V
@@ -34995,7 +36011,7 @@
 HPLcom/android/server/wm/ActivityTaskManagerService;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->reportSizeConfigurations(Landroid/os/IBinder;[I[I[I)V
 PLcom/android/server/wm/ActivityTaskManagerService;->requestAssistContextExtras(ILandroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZ)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->requestAutofillData(Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;I)Z
+HPLcom/android/server/wm/ActivityTaskManagerService;->requestAutofillData(Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;I)Z
 PLcom/android/server/wm/ActivityTaskManagerService;->requestStartActivityPermissionToken(Landroid/os/IBinder;)Landroid/os/IBinder;
 HPLcom/android/server/wm/ActivityTaskManagerService;->resizeDockedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->resizePinnedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
@@ -35014,9 +36030,9 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService;->setDeviceOwnerUid(I)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->setDisablePreviewScreenshots(Landroid/os/IBinder;Z)V
 PLcom/android/server/wm/ActivityTaskManagerService;->setDisplayToSingleTaskInstance(I)V
-PLcom/android/server/wm/ActivityTaskManagerService;->setFocusedTask(I)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->setFocusedTask(I)V
 PLcom/android/server/wm/ActivityTaskManagerService;->setImmersive(Landroid/os/IBinder;Z)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->setLockScreenShown(ZZ)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->setLockScreenShown(ZZ)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->setPictureInPictureParams(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->setRecentTasks(Lcom/android/server/wm/RecentTasks;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->setRequestedOrientation(Landroid/os/IBinder;I)V
@@ -35030,11 +36046,15 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->shouldDisableNonVrUiLocked()Z
 PLcom/android/server/wm/ActivityTaskManagerService;->shouldUpRecreateTask(Landroid/os/IBinder;Ljava/lang/String;)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->start()V
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
 PLcom/android/server/wm/ActivityTaskManagerService;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
 PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsCaller(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/os/IBinder;ZI)I
-PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
+HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityFromRecents(ILandroid/os/Bundle;)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityIntentSender(Landroid/app/IApplicationThread;Landroid/content/IIntentSender;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityWithConfig(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/content/res/Configuration;Landroid/os/Bundle;I)I
@@ -35057,13 +36077,13 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZ)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZ)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->updateCpuStats()V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateCpuStats()V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateEventDispatchingLocked(Z)V
 PLcom/android/server/wm/ActivityTaskManagerService;->updateFontScaleIfNeeded(I)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateGlobalConfigurationLocked(Landroid/content/res/Configuration;ZZIZ)I
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskFeatures(II)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskPackages(I[Ljava/lang/String;)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->updateOomAdj()V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateOomAdj()V
 PLcom/android/server/wm/ActivityTaskManagerService;->updatePersistentConfiguration(Landroid/content/res/Configuration;I)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateResumedAppTrace(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->updateShouldShowDialogsLocked(Landroid/content/res/Configuration;)V
@@ -35079,7 +36099,7 @@
 PLcom/android/server/wm/AlertWindowNotification;->lambda$cancel$0$AlertWindowNotification(Z)V
 PLcom/android/server/wm/AlertWindowNotification;->lambda$iVtcJMb6VtqtAgEtGUDCkGay0tM(Lcom/android/server/wm/AlertWindowNotification;)V
 PLcom/android/server/wm/AlertWindowNotification;->onCancelNotification(Z)V
-PLcom/android/server/wm/AlertWindowNotification;->onPostNotification()V
+HPLcom/android/server/wm/AlertWindowNotification;->onPostNotification()V
 PLcom/android/server/wm/AlertWindowNotification;->post()V
 HSPLcom/android/server/wm/AnimatingActivityRegistry;-><init>()V
 HSPLcom/android/server/wm/AnimatingActivityRegistry;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
@@ -35106,19 +36126,20 @@
 HSPLcom/android/server/wm/AppTransition;->clear()V
 PLcom/android/server/wm/AppTransition;->computePivot(IF)F
 PLcom/android/server/wm/AppTransition;->createAspectScaledThumbnailEnterExitAnimationLocked(IIIILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLcom/android/server/wm/WindowContainer;)Landroid/view/animation/Animation;
-PLcom/android/server/wm/AppTransition;->createClipRevealAnimationLocked(IZLandroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/view/animation/Animation;
+HPLcom/android/server/wm/AppTransition;->createClipRevealAnimationLocked(IZLandroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->createCrossProfileAppsThumbnail(ILandroid/graphics/Rect;)Landroid/graphics/GraphicBuffer;
 PLcom/android/server/wm/AppTransition;->createCrossProfileAppsThumbnailAnimationLocked(Landroid/graphics/Rect;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->createCurvedMotion(FFFF)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->createCurvedPath(FFFF)Landroid/graphics/Path;
 PLcom/android/server/wm/AppTransition;->createScaleUpAnimationLocked(IZLandroid/graphics/Rect;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->createThumbnailAspectScaleAnimationLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/GraphicBuffer;Lcom/android/server/wm/WindowContainer;II)Landroid/view/animation/Animation;
+PLcom/android/server/wm/AppTransition;->createThumbnailEnterExitAnimationLocked(ILandroid/graphics/Rect;ILcom/android/server/wm/WindowContainer;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->doAnimationCallback(Landroid/os/IRemoteCallback;)V
 PLcom/android/server/wm/AppTransition;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/AppTransition;->fetchAppTransitionSpecsFromFuture()V
 PLcom/android/server/wm/AppTransition;->freeze()V
 PLcom/android/server/wm/AppTransition;->getAnimationStyleResId(Landroid/view/WindowManager$LayoutParams;)I
-PLcom/android/server/wm/AppTransition;->getAppStackClipMode()I
+HPLcom/android/server/wm/AppTransition;->getAppStackClipMode()I
 HSPLcom/android/server/wm/AppTransition;->getAppTransition()I
 PLcom/android/server/wm/AppTransition;->getAppTransitionThumbnailHeader(Lcom/android/server/wm/WindowContainer;)Landroid/graphics/GraphicBuffer;
 PLcom/android/server/wm/AppTransition;->getAspectScaleDuration()J
@@ -35128,7 +36149,7 @@
 PLcom/android/server/wm/AppTransition;->getDefaultNextAppTransitionStartRect(Landroid/graphics/Rect;)V
 PLcom/android/server/wm/AppTransition;->getLastClipRevealTransitionDuration()J
 PLcom/android/server/wm/AppTransition;->getNextAppTransitionStartRect(Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/AppTransition;->getRemoteAnimationController()Lcom/android/server/wm/RemoteAnimationController;
+HPLcom/android/server/wm/AppTransition;->getRemoteAnimationController()Lcom/android/server/wm/RemoteAnimationController;
 PLcom/android/server/wm/AppTransition;->getThumbnailTransitionState(Z)I
 HSPLcom/android/server/wm/AppTransition;->getTransitFlags()I
 HSPLcom/android/server/wm/AppTransition;->goodToGo(ILcom/android/server/wm/ActivityRecord;Landroid/util/ArraySet;)I
@@ -35155,7 +36176,7 @@
 HPLcom/android/server/wm/AppTransition;->loadAnimation(Landroid/view/WindowManager$LayoutParams;IZIILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZLcom/android/server/wm/WindowContainer;)Landroid/view/animation/Animation;
 HPLcom/android/server/wm/AppTransition;->loadAnimationAttr(Landroid/view/WindowManager$LayoutParams;II)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->loadAnimationRes(Landroid/view/WindowManager$LayoutParams;I)Landroid/view/animation/Animation;
-PLcom/android/server/wm/AppTransition;->loadAnimationRes(Ljava/lang/String;I)Landroid/view/animation/Animation;
+HPLcom/android/server/wm/AppTransition;->loadAnimationRes(Ljava/lang/String;I)Landroid/view/animation/Animation;
 HPLcom/android/server/wm/AppTransition;->loadAnimationSafely(Landroid/content/Context;I)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->loadKeyguardExitAnimation(I)Landroid/view/animation/Animation;
 HSPLcom/android/server/wm/AppTransition;->needsBoosting()Z
@@ -35170,9 +36191,11 @@
 HPLcom/android/server/wm/AppTransition;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;)V
 PLcom/android/server/wm/AppTransition;->overridePendingAppTransitionScaleUp(IIII)V
 PLcom/android/server/wm/AppTransition;->overridePendingAppTransitionStartCrossProfileApps()V
+PLcom/android/server/wm/AppTransition;->overridePendingAppTransitionThumb(Landroid/graphics/GraphicBuffer;IILandroid/os/IRemoteCallback;Z)V
 HSPLcom/android/server/wm/AppTransition;->postAnimationCallback()V
 HSPLcom/android/server/wm/AppTransition;->prepare()Z
 HSPLcom/android/server/wm/AppTransition;->prepareAppTransitionLocked(IZIZ)Z
+PLcom/android/server/wm/AppTransition;->prepareThumbnailAnimation(Landroid/view/animation/Animation;III)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->prepareThumbnailAnimationWithDuration(Landroid/view/animation/Animation;IIJLandroid/view/animation/Interpolator;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->putDefaultNextAppTransitionCoordinates(IIIILandroid/graphics/GraphicBuffer;)V
 HSPLcom/android/server/wm/AppTransition;->registerListenerLocked(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
@@ -35218,34 +36241,35 @@
 HSPLcom/android/server/wm/AppTransitionController;->transitionGoodToGo(Landroid/util/ArraySet;Landroid/util/ArrayMap;)Z
 HSPLcom/android/server/wm/AppWarnings$ConfigHandler;-><init>(Lcom/android/server/wm/AppWarnings;Landroid/os/Looper;)V
 PLcom/android/server/wm/AppWarnings$ConfigHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/wm/AppWarnings$ConfigHandler;->scheduleWrite()V
+HSPLcom/android/server/wm/AppWarnings$ConfigHandler;->scheduleWrite()V
 HSPLcom/android/server/wm/AppWarnings$UiHandler;-><init>(Lcom/android/server/wm/AppWarnings;Landroid/os/Looper;)V
 HSPLcom/android/server/wm/AppWarnings$UiHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/wm/AppWarnings$UiHandler;->hideDialogsForPackage(Ljava/lang/String;)V
+HSPLcom/android/server/wm/AppWarnings$UiHandler;->hideDialogsForPackage(Ljava/lang/String;)V
 HSPLcom/android/server/wm/AppWarnings$UiHandler;->hideUnsupportedDisplaySizeDialog()V
 PLcom/android/server/wm/AppWarnings$UiHandler;->showDeprecatedTargetDialog(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/AppWarnings;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;Ljava/io/File;)V
 HSPLcom/android/server/wm/AppWarnings;->access$100(Lcom/android/server/wm/AppWarnings;)V
-PLcom/android/server/wm/AppWarnings;->access$300(Lcom/android/server/wm/AppWarnings;Ljava/lang/String;)V
+HSPLcom/android/server/wm/AppWarnings;->access$300(Lcom/android/server/wm/AppWarnings;Ljava/lang/String;)V
 PLcom/android/server/wm/AppWarnings;->access$400(Lcom/android/server/wm/AppWarnings;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/AppWarnings;->access$500(Lcom/android/server/wm/AppWarnings;)V
 PLcom/android/server/wm/AppWarnings;->getPackageFlags(Ljava/lang/String;)I
 PLcom/android/server/wm/AppWarnings;->hasPackageFlag(Ljava/lang/String;I)Z
-PLcom/android/server/wm/AppWarnings;->hideDialogsForPackageUiThread(Ljava/lang/String;)V
+HSPLcom/android/server/wm/AppWarnings;->hideDialogsForPackageUiThread(Ljava/lang/String;)V
 HSPLcom/android/server/wm/AppWarnings;->hideUnsupportedDisplaySizeDialogUiThread()V
 HSPLcom/android/server/wm/AppWarnings;->onDensityChanged()V
 PLcom/android/server/wm/AppWarnings;->onPackageDataCleared(Ljava/lang/String;)V
-PLcom/android/server/wm/AppWarnings;->onPackageUninstalled(Ljava/lang/String;)V
+HSPLcom/android/server/wm/AppWarnings;->onPackageUninstalled(Ljava/lang/String;)V
 HPLcom/android/server/wm/AppWarnings;->onResumeActivity(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/AppWarnings;->onStartActivity(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/AppWarnings;->readConfigFromFileAmsThread()V
-PLcom/android/server/wm/AppWarnings;->removePackageAndHideDialogs(Ljava/lang/String;)V
+HSPLcom/android/server/wm/AppWarnings;->removePackageAndHideDialogs(Ljava/lang/String;)V
 PLcom/android/server/wm/AppWarnings;->setPackageFlag(Ljava/lang/String;IZ)V
 HSPLcom/android/server/wm/AppWarnings;->showDeprecatedTargetDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/AppWarnings;->showDeprecatedTargetSdkDialogUiThread(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/AppWarnings;->showUnsupportedCompileSdkDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/AppWarnings;->showUnsupportedDisplaySizeDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/AppWarnings;->writeConfigToFileAmsThread()V
+HSPLcom/android/server/wm/BLASTSyncEngine;-><init>()V
 HPLcom/android/server/wm/BarController$1;-><init>(Lcom/android/server/wm/BarController;I)V
 HPLcom/android/server/wm/BarController$1;->run()V
 HSPLcom/android/server/wm/BarController$BarHandler;-><init>(Lcom/android/server/wm/BarController;)V
@@ -35325,11 +36349,11 @@
 PLcom/android/server/wm/BoundsAnimationController;->updateBooster()V
 HSPLcom/android/server/wm/ClientLifecycleManager;-><init>()V
 HSPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V
-HPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ActivityLifecycleItem;)V
+HSPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ActivityLifecycleItem;)V
 HSPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ClientTransactionItem;)V
 HSPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
 HSPLcom/android/server/wm/ClientLifecycleManager;->transactionWithCallback(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ClientTransactionItem;)Landroid/app/servertransaction/ClientTransaction;
-HPLcom/android/server/wm/ClientLifecycleManager;->transactionWithState(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ActivityLifecycleItem;)Landroid/app/servertransaction/ClientTransaction;
+HSPLcom/android/server/wm/ClientLifecycleManager;->transactionWithState(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ActivityLifecycleItem;)Landroid/app/servertransaction/ClientTransaction;
 HSPLcom/android/server/wm/CompatModePackages$CompatHandler;-><init>(Lcom/android/server/wm/CompatModePackages;Landroid/os/Looper;)V
 HSPLcom/android/server/wm/CompatModePackages;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/io/File;Landroid/os/Handler;)V
 HSPLcom/android/server/wm/CompatModePackages;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
@@ -35337,8 +36361,8 @@
 PLcom/android/server/wm/CompatModePackages;->getPackages()Ljava/util/HashMap;
 HPLcom/android/server/wm/CompatModePackages;->handlePackageAddedLocked(Ljava/lang/String;Z)V
 PLcom/android/server/wm/CompatModePackages;->handlePackageDataClearedLocked(Ljava/lang/String;)V
-PLcom/android/server/wm/CompatModePackages;->handlePackageUninstalledLocked(Ljava/lang/String;)V
-PLcom/android/server/wm/CompatModePackages;->removePackage(Ljava/lang/String;)V
+HSPLcom/android/server/wm/CompatModePackages;->handlePackageUninstalledLocked(Ljava/lang/String;)V
+HSPLcom/android/server/wm/CompatModePackages;->removePackage(Ljava/lang/String;)V
 HSPLcom/android/server/wm/ConfigurationContainer$RemoteToken;-><init>(Lcom/android/server/wm/ConfigurationContainer;)V
 PLcom/android/server/wm/ConfigurationContainer$RemoteToken;->fromBinder(Landroid/os/IBinder;)Lcom/android/server/wm/ConfigurationContainer$RemoteToken;
 PLcom/android/server/wm/ConfigurationContainer$RemoteToken;->getContainer()Lcom/android/server/wm/ConfigurationContainer;
@@ -35420,7 +36444,7 @@
 PLcom/android/server/wm/Dimmer$DimState;->lambda$new$0$Dimmer$DimState(Lcom/android/server/wm/Dimmer$DimAnimatable;ILcom/android/server/wm/AnimationAdapter;)V
 HSPLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Dimmer$SurfaceAnimatorStarter;)V
-PLcom/android/server/wm/Dimmer;->access$000(Lcom/android/server/wm/Dimmer;)Lcom/android/server/wm/WindowContainer;
+HPLcom/android/server/wm/Dimmer;->access$000(Lcom/android/server/wm/Dimmer;)Lcom/android/server/wm/WindowContainer;
 HPLcom/android/server/wm/Dimmer;->dim(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;IF)V
 HPLcom/android/server/wm/Dimmer;->dimAbove(Landroid/view/SurfaceControl$Transaction;F)V
 HPLcom/android/server/wm/Dimmer;->dimBelow(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;F)V
@@ -35432,13 +36456,13 @@
 HPLcom/android/server/wm/Dimmer;->startAnim(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;FF)V
 PLcom/android/server/wm/Dimmer;->startDimEnter(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/Dimmer;->startDimExit(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/Dimmer;->stopDim(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/Dimmer;->stopDim(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/Dimmer;->updateDims(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Rect;)Z
 HSPLcom/android/server/wm/DisplayArea$1;-><clinit>()V
 HSPLcom/android/server/wm/DisplayArea$Root;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 HPLcom/android/server/wm/DisplayArea$Root;->getDimmer()Lcom/android/server/wm/Dimmer;
 HSPLcom/android/server/wm/DisplayArea$Root;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/DisplayArea$Root;->getSurfaceControl()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/DisplayArea$Root;->getSurfaceControl()Landroid/view/SurfaceControl;
 PLcom/android/server/wm/DisplayArea$Root;->getSurfaceHeight()I
 PLcom/android/server/wm/DisplayArea$Root;->getSurfaceWidth()I
 PLcom/android/server/wm/DisplayArea$Root;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
@@ -35462,22 +36486,25 @@
 PLcom/android/server/wm/DisplayArea;->commitPendingTransaction()V
 HPLcom/android/server/wm/DisplayArea;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 HSPLcom/android/server/wm/DisplayArea;->fillsParent()Z
-PLcom/android/server/wm/DisplayArea;->getAnimationLeashParent()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/DisplayArea;->getAnimationLeashParent()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayArea;->getName()Ljava/lang/String;
-PLcom/android/server/wm/DisplayArea;->getParentSurfaceControl()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/DisplayArea;->getParentSurfaceControl()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayArea;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
 HSPLcom/android/server/wm/DisplayArea;->getSurfaceControl()Landroid/view/SurfaceControl;
-PLcom/android/server/wm/DisplayArea;->getSurfaceHeight()I
-PLcom/android/server/wm/DisplayArea;->getSurfaceWidth()I
-PLcom/android/server/wm/DisplayArea;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
-PLcom/android/server/wm/DisplayArea;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/DisplayArea;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/DisplayArea;->getSurfaceHeight()I
+HPLcom/android/server/wm/DisplayArea;->getSurfaceWidth()I
+HPLcom/android/server/wm/DisplayArea;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
+HPLcom/android/server/wm/DisplayArea;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
+HPLcom/android/server/wm/DisplayArea;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/DisplayArea;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/DisplayArea;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/DisplayAreaPolicy$1;-><clinit>()V
+HSPLcom/android/server/wm/DisplayAreaPolicy$Default$Provider;-><init>()V
+HSPLcom/android/server/wm/DisplayAreaPolicy$Default$Provider;->instantiate(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent$TaskContainers;)Lcom/android/server/wm/DisplayAreaPolicy;
 HSPLcom/android/server/wm/DisplayAreaPolicy$Default;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent$TaskContainers;)V
 HPLcom/android/server/wm/DisplayAreaPolicy$Default;->addWindow(Lcom/android/server/wm/WindowToken;)V
 HSPLcom/android/server/wm/DisplayAreaPolicy$Default;->attachDisplayAreas()V
+HSPLcom/android/server/wm/DisplayAreaPolicy$Provider;->fromResources(Landroid/content/res/Resources;)Lcom/android/server/wm/DisplayAreaPolicy$Provider;
 HSPLcom/android/server/wm/DisplayAreaPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent$TaskContainers;)V
 HSPLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;Lcom/android/server/wm/WindowManagerService;)V
 HSPLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
@@ -35519,10 +36546,10 @@
 PLcom/android/server/wm/DisplayContent$TaskContainers;->getAppAnimationLayer(I)Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getIndexOf(Lcom/android/server/wm/ActivityStack;)I
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getOrientation(I)I
-HPLcom/android/server/wm/DisplayContent$TaskContainers;->getRootHomeTask()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getRootHomeTask()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getRootPinnedTask()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getRootSplitScreenPrimaryTask()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/DisplayContent$TaskContainers;->getSplitScreenDividerAnchor()Landroid/view/SurfaceControl;
+HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getSplitScreenDividerAnchor()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getStack(II)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->getTopStack()Lcom/android/server/wm/ActivityStack;
 PLcom/android/server/wm/DisplayContent$TaskContainers;->getVisibleTasks()Ljava/util/ArrayList;
@@ -35534,7 +36561,7 @@
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->positionChildAt(ILcom/android/server/wm/ActivityStack;Z)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
 PLcom/android/server/wm/DisplayContent$TaskContainers;->removeChild(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/DisplayContent$TaskContainers;->removeChild(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/DisplayContent$TaskContainers;->removeChild(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->removeExistingAppTokensIfPossible()V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->removeStackReferenceIfNeeded(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->setExitingTokensHasVisible(Z)V
@@ -35613,7 +36640,7 @@
 HSPLcom/android/server/wm/DisplayContent;->alwaysCreateStack(II)Z
 HSPLcom/android/server/wm/DisplayContent;->amendWindowTapExcludeRegion(Landroid/graphics/Region;)V
 HPLcom/android/server/wm/DisplayContent;->animateForIme(FFF)Z
-PLcom/android/server/wm/DisplayContent;->applyMagnificationSpec(Landroid/view/MagnificationSpec;)V
+HPLcom/android/server/wm/DisplayContent;->applyMagnificationSpec(Landroid/view/MagnificationSpec;)V
 HPLcom/android/server/wm/DisplayContent;->applyRotationLocked(II)V
 HSPLcom/android/server/wm/DisplayContent;->applySurfaceChangesTransaction(Z)V
 HSPLcom/android/server/wm/DisplayContent;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
@@ -35648,11 +36675,11 @@
 HSPLcom/android/server/wm/DisplayContent;->createStackUnchecked(IIIZ)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->createStackUnchecked(IIIZLandroid/content/pm/ActivityInfo;Landroid/content/Intent;)Lcom/android/server/wm/ActivityStack;
 PLcom/android/server/wm/DisplayContent;->deferUpdateImeTarget()V
-PLcom/android/server/wm/DisplayContent;->deltaRotation(II)I
+HPLcom/android/server/wm/DisplayContent;->deltaRotation(II)I
 HSPLcom/android/server/wm/DisplayContent;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
-PLcom/android/server/wm/DisplayContent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HPLcom/android/server/wm/DisplayContent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 HPLcom/android/server/wm/DisplayContent;->dumpDebugInner(Landroid/util/proto/ProtoOutputStream;JI)V
-PLcom/android/server/wm/DisplayContent;->dumpTokens(Ljava/io/PrintWriter;Z)V
+HPLcom/android/server/wm/DisplayContent;->dumpTokens(Ljava/io/PrintWriter;Z)V
 PLcom/android/server/wm/DisplayContent;->dumpWindowAnimators(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/wm/DisplayContent;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZZ)V
 HSPLcom/android/server/wm/DisplayContent;->executeAppTransition()V
@@ -35685,7 +36712,7 @@
 HSPLcom/android/server/wm/DisplayContent;->getLastHasContent()Z
 HSPLcom/android/server/wm/DisplayContent;->getLastOrientation()I
 PLcom/android/server/wm/DisplayContent;->getLastWindowForcedOrientation()I
-PLcom/android/server/wm/DisplayContent;->getLocationInParentDisplay()Landroid/graphics/Point;
+HPLcom/android/server/wm/DisplayContent;->getLocationInParentDisplay()Landroid/graphics/Point;
 PLcom/android/server/wm/DisplayContent;->getLocationInParentWindow()Landroid/graphics/Point;
 HSPLcom/android/server/wm/DisplayContent;->getMetricsLogger()Lcom/android/internal/logging/MetricsLogger;
 PLcom/android/server/wm/DisplayContent;->getName()Ljava/lang/String;
@@ -35702,13 +36729,13 @@
 HPLcom/android/server/wm/DisplayContent;->getPresentUIDs()Landroid/util/IntArray;
 HSPLcom/android/server/wm/DisplayContent;->getRecentsStack()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getResumedActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/DisplayContent;->getRootHomeTask()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getRootHomeTask()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getRootPinnedTask()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getRootSplitScreenPrimaryTask()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getRotation()I
 HSPLcom/android/server/wm/DisplayContent;->getRotationAnimation()Lcom/android/server/wm/ScreenRotationAnimation;
 HSPLcom/android/server/wm/DisplayContent;->getSession()Landroid/view/SurfaceSession;
-PLcom/android/server/wm/DisplayContent;->getSplitScreenDividerAnchor()Landroid/view/SurfaceControl;
+HSPLcom/android/server/wm/DisplayContent;->getSplitScreenDividerAnchor()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayContent;->getSplitScreenPrimaryStack()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getSplitScreenPrimaryStackIgnoringVisibility()Lcom/android/server/wm/ActivityStack;
 PLcom/android/server/wm/DisplayContent;->getStableRect(Landroid/graphics/Rect;)V
@@ -35724,7 +36751,7 @@
 PLcom/android/server/wm/DisplayContent;->getVisibleTasks()Ljava/util/ArrayList;
 PLcom/android/server/wm/DisplayContent;->getWindowCornerRadius()F
 HSPLcom/android/server/wm/DisplayContent;->getWindowToken(Landroid/os/IBinder;)Lcom/android/server/wm/WindowToken;
-PLcom/android/server/wm/DisplayContent;->getWindowingLayer()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/DisplayContent;->getWindowingLayer()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayContent;->handleActivitySizeCompatModeIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/DisplayContent;->handleAnimatingStoppedAndTransition()V
 HSPLcom/android/server/wm/DisplayContent;->handlesOrientationChangeFromDescendant()Z
@@ -35779,7 +36806,7 @@
 HPLcom/android/server/wm/DisplayContent;->lambda$hasSecureWindowOnScreen$20(Lcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/DisplayContent;->lambda$new$0$DisplayContent(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/DisplayContent;->lambda$new$1$DisplayContent(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/DisplayContent;->lambda$new$2$DisplayContent(Lcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/DisplayContent;->lambda$new$2$DisplayContent(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/DisplayContent;->lambda$new$2$DisplayContent(Lcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/DisplayContent;->lambda$new$3$DisplayContent(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/DisplayContent;->lambda$new$3$DisplayContent(Lcom/android/server/wm/WindowState;)Z
@@ -35792,7 +36819,7 @@
 HSPLcom/android/server/wm/DisplayContent;->lambda$new$8$DisplayContent(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->lambda$notifyLocationInParentDisplayChanged$23(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->lambda$onWindowFreezeTimeout$21$DisplayContent(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$onWindowFreezeTimeout$22$DisplayContent(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->lambda$onWindowFreezeTimeout$22$DisplayContent(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->lambda$pointWithinAppWindow$10([IIILcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/DisplayContent;->lambda$pointWithinAppWindow$11([IIILcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/DisplayContent;->lambda$shouldWaitForSystemDecorWindowsOnBoot$18$DisplayContent(Landroid/util/SparseBooleanArray;Lcom/android/server/wm/WindowState;)Z
@@ -35802,7 +36829,7 @@
 HPLcom/android/server/wm/DisplayContent;->lambda$updateSystemUiVisibility$20(IILcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/DisplayContent;->lambda$updateSystemUiVisibility$21(IILcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/DisplayContent;->layoutAndAssignWindowLayersIfNeeded()V
-HPLcom/android/server/wm/DisplayContent;->logsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;)Z
+HSPLcom/android/server/wm/DisplayContent;->logsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/DisplayContent;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
 HPLcom/android/server/wm/DisplayContent;->makeOverlay()Landroid/view/SurfaceControl$Builder;
 PLcom/android/server/wm/DisplayContent;->moveHomeActivityToTop(Ljava/lang/String;)V
@@ -35826,7 +36853,7 @@
 PLcom/android/server/wm/DisplayContent;->onSplitScreenModeActivated()V
 PLcom/android/server/wm/DisplayContent;->onSplitScreenModeDismissed()V
 HSPLcom/android/server/wm/DisplayContent;->onStackOrderChanged(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/DisplayContent;->onStackRemoved(Lcom/android/server/wm/ActivityStack;)V
+HPLcom/android/server/wm/DisplayContent;->onStackRemoved(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/DisplayContent;->onStackWindowingModeChanged(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/DisplayContent;->onWindowFocusChanged(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->onWindowFreezeTimeout()V
@@ -35882,12 +36909,13 @@
 HSPLcom/android/server/wm/DisplayContent;->setExitingTokensHasVisible(Z)V
 HSPLcom/android/server/wm/DisplayContent;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/DisplayContent;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;Z)V
+PLcom/android/server/wm/DisplayContent;->setForcedDensity(II)V
 PLcom/android/server/wm/DisplayContent;->setForwardedInsets(Landroid/graphics/Insets;)V
 HSPLcom/android/server/wm/DisplayContent;->setInputMethodTarget(Lcom/android/server/wm/WindowState;Z)V
 HPLcom/android/server/wm/DisplayContent;->setInputMethodWindowLocked(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->setInsetProvider(ILcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriConsumer;)V
 PLcom/android/server/wm/DisplayContent;->setInsetProvider(ILcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriConsumer;Lcom/android/internal/util/function/TriConsumer;)V
-PLcom/android/server/wm/DisplayContent;->setIsSleeping(Z)V
+HSPLcom/android/server/wm/DisplayContent;->setIsSleeping(Z)V
 HSPLcom/android/server/wm/DisplayContent;->setLayoutNeeded()V
 PLcom/android/server/wm/DisplayContent;->setRotationAnimation(Lcom/android/server/wm/ScreenRotationAnimation;)V
 HSPLcom/android/server/wm/DisplayContent;->setStackOnDisplay(Lcom/android/server/wm/ActivityStack;I)V
@@ -35898,6 +36926,7 @@
 HPLcom/android/server/wm/DisplayContent;->startKeyguardExitOnNonAppWindows(ZZZ)V
 HSPLcom/android/server/wm/DisplayContent;->statusBarVisibilityChanged(I)V
 HPLcom/android/server/wm/DisplayContent;->supportsSystemDecorations()Z
+PLcom/android/server/wm/DisplayContent;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/DisplayContent;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/DisplayContent;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
 HPLcom/android/server/wm/DisplayContent;->unregisterStackOrderChangedListener(Lcom/android/server/wm/DisplayContent$OnStackOrderChangedListener;)V
@@ -35910,7 +36939,7 @@
 HSPLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked()Z
 HSPLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z
 HSPLcom/android/server/wm/DisplayContent;->updateFocusedWindowLocked(IZI)Z
-PLcom/android/server/wm/DisplayContent;->updateImeControlTarget(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->updateImeControlTarget(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/DisplayContent;->updateImeParent()V
 PLcom/android/server/wm/DisplayContent;->updateLocation(Lcom/android/server/wm/WindowState;II)V
 HSPLcom/android/server/wm/DisplayContent;->updateOrientation()Z
@@ -35936,7 +36965,7 @@
 PLcom/android/server/wm/DisplayPolicy$2;->getOrientationListener()Lcom/android/server/policy/WindowOrientationListener;
 PLcom/android/server/wm/DisplayPolicy$2;->onDebug()V
 PLcom/android/server/wm/DisplayPolicy$2;->onDown()V
-PLcom/android/server/wm/DisplayPolicy$2;->onFling(I)V
+HPLcom/android/server/wm/DisplayPolicy$2;->onFling(I)V
 PLcom/android/server/wm/DisplayPolicy$2;->onSwipeFromBottom()V
 HPLcom/android/server/wm/DisplayPolicy$2;->onSwipeFromLeft()V
 HPLcom/android/server/wm/DisplayPolicy$2;->onSwipeFromRight()V
@@ -36164,7 +37193,7 @@
 HSPLcom/android/server/wm/DisplayRotation;->isFixedToUserRotation()Z
 PLcom/android/server/wm/DisplayRotation;->isLandscapeOrSeascape(I)Z
 HSPLcom/android/server/wm/DisplayRotation;->isRotatingSeamlessly()Z
-PLcom/android/server/wm/DisplayRotation;->isRotationChoicePossible(I)Z
+HPLcom/android/server/wm/DisplayRotation;->isRotationChoicePossible(I)Z
 PLcom/android/server/wm/DisplayRotation;->isRotationFrozen()Z
 PLcom/android/server/wm/DisplayRotation;->isValidRotationChoice(I)Z
 HSPLcom/android/server/wm/DisplayRotation;->isWaitingForRemoteRotation()Z
@@ -36223,6 +37252,7 @@
 HSPLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayContent;)I
 HSPLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayWindowSettings$Entry;I)I
 HSPLcom/android/server/wm/DisplayWindowSettings;->readSettings()V
+PLcom/android/server/wm/DisplayWindowSettings;->setForcedDensity(Lcom/android/server/wm/DisplayContent;II)V
 HPLcom/android/server/wm/DisplayWindowSettings;->shouldShowSystemDecorsLocked(Lcom/android/server/wm/DisplayContent;)Z
 HSPLcom/android/server/wm/DisplayWindowSettings;->updateSettingsForDisplay(Lcom/android/server/wm/DisplayContent;)Z
 HSPLcom/android/server/wm/DockedStackDividerController;-><clinit>()V
@@ -36248,33 +37278,33 @@
 HSPLcom/android/server/wm/DockedStackDividerController;->initSnapAlgorithmForRotations()V
 PLcom/android/server/wm/DockedStackDividerController;->isAnimationMaximizing()Z
 PLcom/android/server/wm/DockedStackDividerController;->isDockSideAllowed(IIIZ)Z
-PLcom/android/server/wm/DockedStackDividerController;->isHomeStackResizable()Z
+HSPLcom/android/server/wm/DockedStackDividerController;->isHomeStackResizable()Z
 PLcom/android/server/wm/DockedStackDividerController;->isImeHideRequested()Z
 HSPLcom/android/server/wm/DockedStackDividerController;->isMinimizedDock()Z
 HSPLcom/android/server/wm/DockedStackDividerController;->isResizing()Z
 HPLcom/android/server/wm/DockedStackDividerController;->isWithinDisplay(Lcom/android/server/wm/Task;)Z
 HSPLcom/android/server/wm/DockedStackDividerController;->loadDimens()V
-PLcom/android/server/wm/DockedStackDividerController;->notifyAdjustedForImeChanged(ZJ)V
+HSPLcom/android/server/wm/DockedStackDividerController;->notifyAdjustedForImeChanged(ZJ)V
 HSPLcom/android/server/wm/DockedStackDividerController;->notifyAppTransitionStarting(Landroid/util/ArraySet;I)V
 HSPLcom/android/server/wm/DockedStackDividerController;->notifyAppVisibilityChanged()V
 PLcom/android/server/wm/DockedStackDividerController;->notifyDockSideChanged(I)V
-PLcom/android/server/wm/DockedStackDividerController;->notifyDockedDividerVisibilityChanged(Z)V
-PLcom/android/server/wm/DockedStackDividerController;->notifyDockedStackExistsChanged(Z)V
-HPLcom/android/server/wm/DockedStackDividerController;->notifyDockedStackMinimizedChanged(ZZZ)V
+HSPLcom/android/server/wm/DockedStackDividerController;->notifyDockedDividerVisibilityChanged(Z)V
+HSPLcom/android/server/wm/DockedStackDividerController;->notifyDockedStackExistsChanged(Z)V
+HSPLcom/android/server/wm/DockedStackDividerController;->notifyDockedStackMinimizedChanged(ZZZ)V
 HSPLcom/android/server/wm/DockedStackDividerController;->onConfigurationChanged()V
 HPLcom/android/server/wm/DockedStackDividerController;->positionDockedStackedDivider(Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/DockedStackDividerController;->reevaluateVisibility(Z)V
-PLcom/android/server/wm/DockedStackDividerController;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
+HSPLcom/android/server/wm/DockedStackDividerController;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
 PLcom/android/server/wm/DockedStackDividerController;->resetDragResizingChangeReported()V
 PLcom/android/server/wm/DockedStackDividerController;->resetImeHideRequested()V
 HSPLcom/android/server/wm/DockedStackDividerController;->setAdjustedForIme(ZZZLcom/android/server/wm/WindowState;I)V
-PLcom/android/server/wm/DockedStackDividerController;->setMinimizedDockedStack(ZZ)V
+HSPLcom/android/server/wm/DockedStackDividerController;->setMinimizedDockedStack(ZZ)V
 HPLcom/android/server/wm/DockedStackDividerController;->setResizeDimLayer(ZIF)V
 PLcom/android/server/wm/DockedStackDividerController;->setResizing(Z)V
-PLcom/android/server/wm/DockedStackDividerController;->setTouchRegion(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/DockedStackDividerController;->setWindow(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DockedStackDividerController;->setTouchRegion(Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/DockedStackDividerController;->setWindow(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DockedStackDividerController;->startImeAdjustAnimation(ZZLcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DockedStackDividerController;->wasVisible()Z
+HSPLcom/android/server/wm/DockedStackDividerController;->wasVisible()Z
 HSPLcom/android/server/wm/DragDropController$1;-><init>(Lcom/android/server/wm/DragDropController;)V
 HSPLcom/android/server/wm/DragDropController$DragHandler;-><init>(Lcom/android/server/wm/DragDropController;Lcom/android/server/wm/WindowManagerService;Landroid/os/Looper;)V
 PLcom/android/server/wm/DragDropController$DragHandler;->handleMessage(Landroid/os/Message;)V
@@ -36320,14 +37350,19 @@
 HPLcom/android/server/wm/DragState;->obtainDragEvent(Lcom/android/server/wm/WindowState;IFFLjava/lang/Object;Landroid/content/ClipDescription;Landroid/content/ClipData;Lcom/android/internal/view/IDragAndDropPermissions;Z)Landroid/view/DragEvent;
 PLcom/android/server/wm/DragState;->overridePointerIconLocked(I)V
 PLcom/android/server/wm/DragState;->register(Landroid/view/Display;)V
-PLcom/android/server/wm/DragState;->sendDragStartedIfNeededLocked(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DragState;->sendDragStartedIfNeededLocked(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DragState;->sendDragStartedLocked(Lcom/android/server/wm/WindowState;FFLandroid/content/ClipDescription;)V
 PLcom/android/server/wm/DragState;->showInputSurface()V
+PLcom/android/server/wm/DragState;->targetWindowSupportsGlobalDrag(Lcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;-><init>(Landroid/view/IWindow;Lcom/android/server/wm/WindowState;II)V
+PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getApplicationHandle()Landroid/view/InputApplicationHandle;
+HPLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getName()Ljava/lang/String;
 HSPLcom/android/server/wm/EmbeddedWindowController;-><init>(Ljava/lang/Object;)V
 PLcom/android/server/wm/EmbeddedWindowController;->add(Landroid/os/IBinder;Landroid/view/IWindow;Lcom/android/server/wm/WindowState;II)V
+HPLcom/android/server/wm/EmbeddedWindowController;->add(Landroid/os/IBinder;Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;)V
 PLcom/android/server/wm/EmbeddedWindowController;->getHostWindow(Landroid/os/IBinder;)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/EmbeddedWindowController;->remove(Landroid/view/IWindow;)V
+PLcom/android/server/wm/EmbeddedWindowController;->lambda$add$0$EmbeddedWindowController(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/EmbeddedWindowController;->remove(Landroid/view/IWindow;)V
 HPLcom/android/server/wm/EmbeddedWindowController;->removeWindowsWithHost(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->lambda$Bbb3nMFa3F8er_OBuKA7-SpeSKo(Lcom/android/server/wm/EnsureActivitiesVisibleHelper;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Z)V
@@ -36337,24 +37372,24 @@
 HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->reset(Lcom/android/server/wm/ActivityRecord;IZZ)V
 HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->setActivityVisibilityState(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Z)V
 HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->setActivityVisibilityState(Lcom/android/server/wm/ActivityRecord;Z)V
-HPLcom/android/server/wm/EventLogTags;->writeWmAddToStopping(IILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/wm/EventLogTags;->writeWmAddToStopping(IILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/EventLogTags;->writeWmBootAnimationDone(J)V
 HSPLcom/android/server/wm/EventLogTags;->writeWmCreateTask(II)V
 HPLcom/android/server/wm/EventLogTags;->writeWmDestroyActivity(IIILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmFailedToPause(IILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/wm/EventLogTags;->writeWmFailedToPause(IILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmFinishActivity(IIILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmFocusedStack(IIIILjava/lang/String;)V
-HPLcom/android/server/wm/EventLogTags;->writeWmPauseActivity(IILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/wm/EventLogTags;->writeWmPauseActivity(IILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/EventLogTags;->writeWmRelaunchActivity(IIILjava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmRelaunchResumeActivity(IIILjava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmRemoveTask(II)V
 HSPLcom/android/server/wm/EventLogTags;->writeWmRestartActivity(IIILjava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmResumeActivity(IIILjava/lang/String;)V
-HPLcom/android/server/wm/EventLogTags;->writeWmSetKeyguardShown(IIILjava/lang/String;)V
+HSPLcom/android/server/wm/EventLogTags;->writeWmSetKeyguardShown(IIILjava/lang/String;)V
 HSPLcom/android/server/wm/EventLogTags;->writeWmSetResumedActivity(ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/wm/EventLogTags;->writeWmStackCreated(I)V
 HPLcom/android/server/wm/EventLogTags;->writeWmStackRemoved(I)V
-HPLcom/android/server/wm/EventLogTags;->writeWmStopActivity(IILjava/lang/String;)V
+HSPLcom/android/server/wm/EventLogTags;->writeWmStopActivity(IILjava/lang/String;)V
 HSPLcom/android/server/wm/EventLogTags;->writeWmTaskCreated(II)V
 HSPLcom/android/server/wm/EventLogTags;->writeWmTaskMoved(III)V
 HPLcom/android/server/wm/EventLogTags;->writeWmTaskRemoved(ILjava/lang/String;)V
@@ -36429,7 +37464,7 @@
 PLcom/android/server/wm/InputConsumerImpl;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;Ljava/lang/String;Landroid/view/InputChannel;ILandroid/os/UserHandle;I)V
 PLcom/android/server/wm/InputConsumerImpl;->binderDied()V
 PLcom/android/server/wm/InputConsumerImpl;->disposeChannelsLw()V
-PLcom/android/server/wm/InputConsumerImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/wm/InputConsumerImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/InputConsumerImpl;->getLayerLw(I)I
 HPLcom/android/server/wm/InputConsumerImpl;->hide(Landroid/view/SurfaceControl$Transaction;)V
 HPLcom/android/server/wm/InputConsumerImpl;->layout(Landroid/view/SurfaceControl$Transaction;II)V
@@ -36532,6 +37567,7 @@
 HPLcom/android/server/wm/InsetsPolicy;->onInsetsModified(Lcom/android/server/wm/WindowState;Landroid/view/InsetsState;)V
 PLcom/android/server/wm/InsetsPolicy;->showTransient(Landroid/util/IntArray;)V
 PLcom/android/server/wm/InsetsPolicy;->startAnimation(Landroid/util/IntArray;ZLjava/lang/Runnable;)V
+HPLcom/android/server/wm/InsetsPolicy;->startAnimation(ZLjava/lang/Runnable;)V
 HSPLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/InsetsSourceProvider;-><init>(Landroid/view/InsetsSource;Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/InsetsSourceProvider;->getControl(Lcom/android/server/wm/InsetsControlTarget;)Landroid/view/InsetsSourceControl;
@@ -36568,9 +37604,9 @@
 HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;I)V
 PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$000(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$100(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$200(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$300(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->acquiredSleepToken()V
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$200(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$300(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->acquiredSleepToken()V
 PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->dumpStatus(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->getStackForControllingOccluding(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/ActivityStack;
@@ -36583,10 +37619,10 @@
 PLcom/android/server/wm/KeyguardController;->access$600(Lcom/android/server/wm/KeyguardController;)Lcom/android/server/wm/WindowManagerService;
 HSPLcom/android/server/wm/KeyguardController;->beginActivityVisibilityUpdate()V
 PLcom/android/server/wm/KeyguardController;->canDismissKeyguard()Z
-HPLcom/android/server/wm/KeyguardController;->canShowActivityWhileKeyguardShowing(Lcom/android/server/wm/ActivityRecord;Z)Z
+HSPLcom/android/server/wm/KeyguardController;->canShowActivityWhileKeyguardShowing(Lcom/android/server/wm/ActivityRecord;Z)Z
 PLcom/android/server/wm/KeyguardController;->canShowWhileOccluded(ZZ)Z
 PLcom/android/server/wm/KeyguardController;->convertTransitFlags(I)I
-HPLcom/android/server/wm/KeyguardController;->dismissDockedStackIfNeeded()V
+HSPLcom/android/server/wm/KeyguardController;->dismissDockedStackIfNeeded()V
 PLcom/android/server/wm/KeyguardController;->dismissKeyguard(Landroid/os/IBinder;Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
 HSPLcom/android/server/wm/KeyguardController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/wm/KeyguardController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
@@ -36595,20 +37631,20 @@
 HSPLcom/android/server/wm/KeyguardController;->getDisplay(I)Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;
 PLcom/android/server/wm/KeyguardController;->handleDismissKeyguard()V
 HPLcom/android/server/wm/KeyguardController;->handleOccludedChanged(I)V
-HPLcom/android/server/wm/KeyguardController;->isDisplayOccluded(I)Z
+HSPLcom/android/server/wm/KeyguardController;->isDisplayOccluded(I)Z
 HSPLcom/android/server/wm/KeyguardController;->isKeyguardGoingAway()Z
 HSPLcom/android/server/wm/KeyguardController;->isKeyguardLocked()Z
 HSPLcom/android/server/wm/KeyguardController;->isKeyguardOrAodShowing(I)Z
 PLcom/android/server/wm/KeyguardController;->isKeyguardShowing(I)Z
-HPLcom/android/server/wm/KeyguardController;->isKeyguardUnoccludedOrAodShowing(I)Z
+HSPLcom/android/server/wm/KeyguardController;->isKeyguardUnoccludedOrAodShowing(I)Z
 HPLcom/android/server/wm/KeyguardController;->keyguardGoingAway(I)V
 PLcom/android/server/wm/KeyguardController;->onDisplayRemoved(I)V
 PLcom/android/server/wm/KeyguardController;->resolveOccludeTransit()I
-PLcom/android/server/wm/KeyguardController;->setKeyguardGoingAway(Z)V
-HPLcom/android/server/wm/KeyguardController;->setKeyguardShown(ZZ)V
+HSPLcom/android/server/wm/KeyguardController;->setKeyguardGoingAway(Z)V
+HSPLcom/android/server/wm/KeyguardController;->setKeyguardShown(ZZ)V
 HSPLcom/android/server/wm/KeyguardController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
-HPLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken()V
-HPLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken(I)V
+HSPLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken()V
+HSPLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken(I)V
 HSPLcom/android/server/wm/KeyguardController;->visibilitiesUpdated()V
 PLcom/android/server/wm/KeyguardController;->writeDisplayStatesToProto(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/KeyguardDisableHandler$1;-><init>(Lcom/android/server/wm/KeyguardDisableHandler;)V
@@ -36628,7 +37664,7 @@
 HSPLcom/android/server/wm/KeyguardDisableHandler;->updateKeyguardEnabledLocked(I)V
 PLcom/android/server/wm/KeyguardDisableHandler;->watcherForCallingUid(Landroid/os/IBinder;I)Lcom/android/server/utils/UserTokenWatcher;
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;-><init>(Landroid/os/Looper;)V
-HPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunchCancelled([B)V
+HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunchCancelled([B)V
 HPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunchFinished([BJ)V
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunched([BI)V
 HPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnIntentFailed()V
@@ -36636,13 +37672,13 @@
 HPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnReportFullyDrawn([BJ)V
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleRegisterLaunchObserver(Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
 PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$FhvLqBbd_XMsJK45WV5Mlt8JSYM(Lcom/android/server/wm/LaunchObserverRegistryImpl;[BJ)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$KukKmVpn5W_1xSV6Dnp8wW2H2Ks(Lcom/android/server/wm/LaunchObserverRegistryImpl;)V
+HPLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$KukKmVpn5W_1xSV6Dnp8wW2H2Ks(Lcom/android/server/wm/LaunchObserverRegistryImpl;)V
 HPLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$QcawcFcJtEX4EhYptq_Vb4j368Y(Lcom/android/server/wm/LaunchObserverRegistryImpl;[BJ)V
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$UGY1OclnLIQLMEL9B55qjERFf4o(Lcom/android/server/wm/LaunchObserverRegistryImpl;[BI)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$lAGPwfsXJvBWsyG2rbEfo3sTv34(Lcom/android/server/wm/LaunchObserverRegistryImpl;[B)V
+HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$lAGPwfsXJvBWsyG2rbEfo3sTv34(Lcom/android/server/wm/LaunchObserverRegistryImpl;[B)V
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$pWUDt4Ot3BWLJOTAhXMkkhHUhpc(Lcom/android/server/wm/LaunchObserverRegistryImpl;Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$veRn_GhgLZLlOHOJ0ZYT6KcfYqo(Lcom/android/server/wm/LaunchObserverRegistryImpl;Landroid/content/Intent;J)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunchCancelled([B)V
+HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunchCancelled([B)V
 HPLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunchFinished([BJ)V
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunched([BI)V
 HPLcom/android/server/wm/LaunchObserverRegistryImpl;->onIntentFailed()V
@@ -36668,7 +37704,7 @@
 PLcom/android/server/wm/LaunchParamsPersister$PackageListObserver;->onPackageAdded(Ljava/lang/String;I)V
 PLcom/android/server/wm/LaunchParamsPersister$PackageListObserver;->onPackageRemoved(Ljava/lang/String;I)V
 HPLcom/android/server/wm/LaunchParamsPersister$PersistableLaunchParams;-><init>(Lcom/android/server/wm/LaunchParamsPersister;)V
-PLcom/android/server/wm/LaunchParamsPersister$PersistableLaunchParams;-><init>(Lcom/android/server/wm/LaunchParamsPersister;Lcom/android/server/wm/LaunchParamsPersister$1;)V
+HPLcom/android/server/wm/LaunchParamsPersister$PersistableLaunchParams;-><init>(Lcom/android/server/wm/LaunchParamsPersister;Lcom/android/server/wm/LaunchParamsPersister$1;)V
 HPLcom/android/server/wm/LaunchParamsPersister$PersistableLaunchParams;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/wm/LaunchParamsPersister;-><init>(Lcom/android/server/wm/PersisterQueue;Lcom/android/server/wm/ActivityStackSupervisor;)V
 HSPLcom/android/server/wm/LaunchParamsPersister;-><init>(Lcom/android/server/wm/PersisterQueue;Lcom/android/server/wm/ActivityStackSupervisor;Ljava/util/function/IntFunction;)V
@@ -36719,7 +37755,7 @@
 HPLcom/android/server/wm/LocalAnimationAdapter;->lambda$startAnimation$0$LocalAnimationAdapter(Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HPLcom/android/server/wm/LocalAnimationAdapter;->lambda$startAnimation$0$LocalAnimationAdapter(Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V
 PLcom/android/server/wm/LocalAnimationAdapter;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/LocalAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
+HPLcom/android/server/wm/LocalAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HPLcom/android/server/wm/LocalAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HSPLcom/android/server/wm/LockTaskController$LockTaskToken;-><init>()V
 HSPLcom/android/server/wm/LockTaskController$LockTaskToken;-><init>(Lcom/android/server/wm/LockTaskController$1;)V
@@ -36769,7 +37805,7 @@
 HSPLcom/android/server/wm/MirrorActiveUids;->onUidInactive(I)V
 HSPLcom/android/server/wm/MirrorActiveUids;->onUidProcStateChanged(II)V
 HPLcom/android/server/wm/PendingRemoteAnimationRegistry$Entry;-><init>(Lcom/android/server/wm/PendingRemoteAnimationRegistry;Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
-PLcom/android/server/wm/PendingRemoteAnimationRegistry$Entry;->lambda$new$0$PendingRemoteAnimationRegistry$Entry(Ljava/lang/String;)V
+HPLcom/android/server/wm/PendingRemoteAnimationRegistry$Entry;->lambda$new$0$PendingRemoteAnimationRegistry$Entry(Ljava/lang/String;)V
 HSPLcom/android/server/wm/PendingRemoteAnimationRegistry;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/Handler;)V
 HSPLcom/android/server/wm/PendingRemoteAnimationRegistry;-><init>(Lcom/android/server/wm/WindowManagerGlobalLock;Landroid/os/Handler;)V
 PLcom/android/server/wm/PendingRemoteAnimationRegistry;->access$000(Lcom/android/server/wm/PendingRemoteAnimationRegistry;)Landroid/os/Handler;
@@ -36825,21 +37861,21 @@
 HSPLcom/android/server/wm/PinnedStackController;->getMovementBounds(Landroid/graphics/Rect;)Landroid/graphics/Rect;
 HSPLcom/android/server/wm/PinnedStackController;->getMovementBounds(Landroid/graphics/Rect;Z)Landroid/graphics/Rect;
 PLcom/android/server/wm/PinnedStackController;->isSameDimensionAndRotation(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)Z
-PLcom/android/server/wm/PinnedStackController;->isValidPictureInPictureAspectRatio(F)Z
-PLcom/android/server/wm/PinnedStackController;->notifyActionsChanged(Ljava/util/List;)V
+HPLcom/android/server/wm/PinnedStackController;->isValidPictureInPictureAspectRatio(F)Z
+HSPLcom/android/server/wm/PinnedStackController;->notifyActionsChanged(Ljava/util/List;)V
 PLcom/android/server/wm/PinnedStackController;->notifyAspectRatioChanged(F)V
 HSPLcom/android/server/wm/PinnedStackController;->notifyDisplayInfoChanged(Landroid/view/DisplayInfo;)V
-HPLcom/android/server/wm/PinnedStackController;->notifyImeVisibilityChanged(ZI)V
-PLcom/android/server/wm/PinnedStackController;->notifyMinimizeChanged(Z)V
+HSPLcom/android/server/wm/PinnedStackController;->notifyImeVisibilityChanged(ZI)V
+HSPLcom/android/server/wm/PinnedStackController;->notifyMinimizeChanged(Z)V
 HSPLcom/android/server/wm/PinnedStackController;->notifyMovementBoundsChanged(ZZ)V
 PLcom/android/server/wm/PinnedStackController;->notifyPrepareAnimation(Landroid/graphics/Rect;FLandroid/graphics/Rect;)V
 HSPLcom/android/server/wm/PinnedStackController;->onConfigurationChanged()V
 HSPLcom/android/server/wm/PinnedStackController;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V
 PLcom/android/server/wm/PinnedStackController;->onTaskStackBoundsChanged(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 PLcom/android/server/wm/PinnedStackController;->prepareAnimation(Landroid/graphics/Rect;FLandroid/graphics/Rect;)V
-PLcom/android/server/wm/PinnedStackController;->registerPinnedStackListener(Landroid/view/IPinnedStackListener;)V
+HSPLcom/android/server/wm/PinnedStackController;->registerPinnedStackListener(Landroid/view/IPinnedStackListener;)V
 HSPLcom/android/server/wm/PinnedStackController;->reloadResources()V
-HPLcom/android/server/wm/PinnedStackController;->resetReentryBounds(Landroid/content/ComponentName;)V
+HSPLcom/android/server/wm/PinnedStackController;->resetReentryBounds(Landroid/content/ComponentName;)V
 PLcom/android/server/wm/PinnedStackController;->saveReentryBounds(Landroid/content/ComponentName;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/PinnedStackController;->setActions(Ljava/util/List;)V
 HSPLcom/android/server/wm/PinnedStackController;->setAdjustedForIme(ZI)V
@@ -36887,6 +37923,7 @@
 HPLcom/android/server/wm/RecentTasks;->getRecentTasks(IIZZII)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/wm/RecentTasks;->getRecentTasksImpl(IIZZII)Ljava/util/ArrayList;
 PLcom/android/server/wm/RecentTasks;->getRecentsComponent()Landroid/content/ComponentName;
+PLcom/android/server/wm/RecentTasks;->getRecentsComponentFeatureId()Ljava/lang/String;
 PLcom/android/server/wm/RecentTasks;->getRecentsComponentUid()I
 HSPLcom/android/server/wm/RecentTasks;->getTask(I)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/RecentTasks;->getTaskDescriptionIcon(Ljava/lang/String;)Landroid/graphics/Bitmap;
@@ -36917,7 +37954,7 @@
 HPLcom/android/server/wm/RecentTasks;->remove(Lcom/android/server/wm/Task;)V
 HPLcom/android/server/wm/RecentTasks;->removeAllVisibleTasks(I)V
 HSPLcom/android/server/wm/RecentTasks;->removeForAddTask(Lcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/RecentTasks;->removeTasksByPackageName(Ljava/lang/String;I)V
+HSPLcom/android/server/wm/RecentTasks;->removeTasksByPackageName(Ljava/lang/String;I)V
 PLcom/android/server/wm/RecentTasks;->removeTasksForUserLocked(I)V
 PLcom/android/server/wm/RecentTasks;->removeUnreachableHiddenTasks(I)V
 HPLcom/android/server/wm/RecentTasks;->resetFreezeTaskListReordering(Lcom/android/server/wm/Task;)V
@@ -36931,6 +37968,7 @@
 HPLcom/android/server/wm/RecentTasks;->usersWithRecentsLoadedLocked()[I
 PLcom/android/server/wm/RecentsAnimation;-><clinit>()V
 HPLcom/android/server/wm/RecentsAnimation;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/WindowManagerService;Landroid/content/Intent;Landroid/content/ComponentName;ILcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/RecentsAnimation;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/WindowManagerService;Landroid/content/Intent;Landroid/content/ComponentName;Ljava/lang/String;ILcom/android/server/wm/WindowProcessController;)V
 HPLcom/android/server/wm/RecentsAnimation;->finishAnimation(IZ)V
 HPLcom/android/server/wm/RecentsAnimation;->getTargetActivity(Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/ActivityRecord;
 HPLcom/android/server/wm/RecentsAnimation;->getTopNonAlwaysOnTopStack()Lcom/android/server/wm/ActivityStack;
@@ -36940,7 +37978,7 @@
 PLcom/android/server/wm/RecentsAnimation;->notifyAnimationCancelBeforeStart(Landroid/view/IRecentsAnimationRunner;)V
 PLcom/android/server/wm/RecentsAnimation;->onAnimationFinished(IZ)V
 PLcom/android/server/wm/RecentsAnimation;->onStackOrderChanged(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/RecentsAnimation;->preloadRecentsActivity()V
+HPLcom/android/server/wm/RecentsAnimation;->preloadRecentsActivity()V
 HPLcom/android/server/wm/RecentsAnimation;->startRecentsActivity(Landroid/view/IRecentsAnimationRunner;)V
 PLcom/android/server/wm/RecentsAnimation;->startRecentsActivityInBackground(Ljava/lang/String;)V
 HPLcom/android/server/wm/RecentsAnimationController$1;-><init>(Lcom/android/server/wm/RecentsAnimationController;)V
@@ -36958,9 +37996,9 @@
 HPLcom/android/server/wm/RecentsAnimationController$2;->setSplitScreenMinimized(Z)V
 PLcom/android/server/wm/RecentsAnimationController$2;->setWillFinishToHome(Z)V
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;-><init>(Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/Task;Z)V
-PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1200(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)I
+HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1200(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)I
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1200(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
-PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1300(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
+HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1300(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$600(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
 PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
@@ -37033,7 +38071,7 @@
 HPLcom/android/server/wm/RemoteAnimationController$FinishedCallback;->release()V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;Landroid/graphics/Point;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->access$000(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
-PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->access$100(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;)I
+HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->access$100(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;)I
 PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->getDurationHint()J
@@ -37047,11 +38085,11 @@
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->getMode()I
 HPLcom/android/server/wm/RemoteAnimationController;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/RemoteAnimationAdapter;Landroid/os/Handler;)V
 HPLcom/android/server/wm/RemoteAnimationController;->access$100(Lcom/android/server/wm/RemoteAnimationController;)V
-PLcom/android/server/wm/RemoteAnimationController;->access$200(Lcom/android/server/wm/RemoteAnimationController;)V
+HPLcom/android/server/wm/RemoteAnimationController;->access$200(Lcom/android/server/wm/RemoteAnimationController;)V
 HPLcom/android/server/wm/RemoteAnimationController;->access$300(Lcom/android/server/wm/RemoteAnimationController;)Landroid/view/RemoteAnimationAdapter;
-PLcom/android/server/wm/RemoteAnimationController;->access$400(Lcom/android/server/wm/RemoteAnimationController;)Landroid/view/RemoteAnimationAdapter;
+HPLcom/android/server/wm/RemoteAnimationController;->access$400(Lcom/android/server/wm/RemoteAnimationController;)Landroid/view/RemoteAnimationAdapter;
 PLcom/android/server/wm/RemoteAnimationController;->access$400(Lcom/android/server/wm/RemoteAnimationController;)Ljava/util/ArrayList;
-PLcom/android/server/wm/RemoteAnimationController;->access$500(Lcom/android/server/wm/RemoteAnimationController;)Ljava/util/ArrayList;
+HPLcom/android/server/wm/RemoteAnimationController;->access$500(Lcom/android/server/wm/RemoteAnimationController;)Ljava/util/ArrayList;
 PLcom/android/server/wm/RemoteAnimationController;->binderDied()V
 PLcom/android/server/wm/RemoteAnimationController;->cancelAnimation(Ljava/lang/String;)V
 HPLcom/android/server/wm/RemoteAnimationController;->createAppAnimations()[Landroid/view/RemoteAnimationTarget;
@@ -37070,7 +38108,7 @@
 HSPLcom/android/server/wm/ResetTargetTaskHelper;-><init>()V
 PLcom/android/server/wm/ResetTargetTaskHelper;->finishActivities(Ljava/util/ArrayList;Ljava/lang/String;)V
 HPLcom/android/server/wm/ResetTargetTaskHelper;->lambda$APiSnEpUwnLFg5o4cp87NyJw4j4(Lcom/android/server/wm/ResetTargetTaskHelper;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ResetTargetTaskHelper;->lambda$O-Gmp4WswvLHsJ0Qd1g0pv2tF14(Lcom/android/server/wm/ResetTargetTaskHelper;Lcom/android/server/wm/ActivityRecord;Z)Z
+HPLcom/android/server/wm/ResetTargetTaskHelper;->lambda$O-Gmp4WswvLHsJ0Qd1g0pv2tF14(Lcom/android/server/wm/ResetTargetTaskHelper;Lcom/android/server/wm/ActivityRecord;Z)Z
 PLcom/android/server/wm/ResetTargetTaskHelper;->process(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/Task;Z)Landroid/app/ActivityOptions;
 HPLcom/android/server/wm/ResetTargetTaskHelper;->process(Lcom/android/server/wm/Task;Z)Landroid/app/ActivityOptions;
 HPLcom/android/server/wm/ResetTargetTaskHelper;->processActivity(Lcom/android/server/wm/ActivityRecord;Z)Z
@@ -37201,15 +38239,15 @@
 PLcom/android/server/wm/RootWindowContainer$FindTaskResult;->setTo(Lcom/android/server/wm/RootWindowContainer$FindTaskResult;)V
 HSPLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
 HPLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->lambda$XWfRTrqNP6c1kx7wtT2Pvy6K9-c(Lcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->process(Ljava/lang/String;Ljava/util/Set;ZZI)Z
+HSPLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->process(Ljava/lang/String;Ljava/util/Set;ZZI)Z
 HPLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->processActivity(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->reset(Ljava/lang/String;Ljava/util/Set;ZZI)V
+HSPLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->reset(Ljava/lang/String;Ljava/util/Set;ZZI)V
 HSPLcom/android/server/wm/RootWindowContainer$MyHandler;-><init>(Lcom/android/server/wm/RootWindowContainer;Landroid/os/Looper;)V
 HSPLcom/android/server/wm/RootWindowContainer$MyHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/wm/RootWindowContainer$SleepTokenImpl;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;I)V
+HSPLcom/android/server/wm/RootWindowContainer$SleepTokenImpl;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;I)V
 PLcom/android/server/wm/RootWindowContainer$SleepTokenImpl;->access$100(Lcom/android/server/wm/RootWindowContainer$SleepTokenImpl;)I
 HPLcom/android/server/wm/RootWindowContainer$SleepTokenImpl;->release()V
-PLcom/android/server/wm/RootWindowContainer$SleepTokenImpl;->toString()Ljava/lang/String;
+HPLcom/android/server/wm/RootWindowContainer$SleepTokenImpl;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/RootWindowContainer;-><clinit>()V
 HSPLcom/android/server/wm/RootWindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 HPLcom/android/server/wm/RootWindowContainer;->access$200(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer$SleepTokenImpl;)V
@@ -37232,13 +38270,13 @@
 HPLcom/android/server/wm/RootWindowContainer;->closeSystemDialogs(Ljava/lang/String;)V
 HSPLcom/android/server/wm/RootWindowContainer;->continueUpdateBounds(I)V
 HSPLcom/android/server/wm/RootWindowContainer;->copyAnimToLayoutParams()Z
-HPLcom/android/server/wm/RootWindowContainer;->createSleepToken(Ljava/lang/String;I)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
+HSPLcom/android/server/wm/RootWindowContainer;->createSleepToken(Ljava/lang/String;I)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
 PLcom/android/server/wm/RootWindowContainer;->deferUpdateBounds(I)V
-PLcom/android/server/wm/RootWindowContainer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/wm/RootWindowContainer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/wm/RootWindowContainer;->dumpActivities(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZZLjava/lang/String;)Z
 PLcom/android/server/wm/RootWindowContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 PLcom/android/server/wm/RootWindowContainer;->dumpDebugInner(Landroid/util/proto/ProtoOutputStream;JI)V
-PLcom/android/server/wm/RootWindowContainer;->dumpDisplayConfigs(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/wm/RootWindowContainer;->dumpDisplayConfigs(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/wm/RootWindowContainer;->dumpDisplayContents(Ljava/io/PrintWriter;)V
 PLcom/android/server/wm/RootWindowContainer;->dumpLayoutNeededDisplayIds(Ljava/io/PrintWriter;)V
 PLcom/android/server/wm/RootWindowContainer;->dumpTokens(Ljava/io/PrintWriter;Z)V
@@ -37251,7 +38289,7 @@
 HPLcom/android/server/wm/RootWindowContainer;->findActivity(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Z)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/RootWindowContainer;->findStackBehind(Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/RootWindowContainer;->findTask(Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootWindowContainer;->finishDisabledPackageActivities(Ljava/lang/String;Ljava/util/Set;ZZI)Z
+HSPLcom/android/server/wm/RootWindowContainer;->finishDisabledPackageActivities(Ljava/lang/String;Ljava/util/Set;ZZI)Z
 HPLcom/android/server/wm/RootWindowContainer;->finishTopCrashedActivities(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)I
 HPLcom/android/server/wm/RootWindowContainer;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
 HSPLcom/android/server/wm/RootWindowContainer;->forAllDisplayPolicies(Ljava/util/function/Consumer;)V
@@ -37266,7 +38304,7 @@
 PLcom/android/server/wm/RootWindowContainer;->getDisplayContextsWithNonToastVisibleWindows(ILjava/util/List;)V
 HSPLcom/android/server/wm/RootWindowContainer;->getDisplayOverrideConfiguration(I)Landroid/content/res/Configuration;
 PLcom/android/server/wm/RootWindowContainer;->getDisplayUiContext(I)Landroid/content/Context;
-PLcom/android/server/wm/RootWindowContainer;->getDumpActivities(Ljava/lang/String;ZZ)Ljava/util/ArrayList;
+HPLcom/android/server/wm/RootWindowContainer;->getDumpActivities(Ljava/lang/String;ZZ)Ljava/util/ArrayList;
 PLcom/android/server/wm/RootWindowContainer;->getLaunchStack(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/RootWindowContainer;->getLaunchStack(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;ZLcom/android/server/wm/LaunchParamsController$LaunchParams;II)Lcom/android/server/wm/ActivityStack;
 PLcom/android/server/wm/RootWindowContainer;->getName()Ljava/lang/String;
@@ -37275,7 +38313,7 @@
 HPLcom/android/server/wm/RootWindowContainer;->getStack(I)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/RootWindowContainer;->getStack(II)Lcom/android/server/wm/ActivityStack;
 HPLcom/android/server/wm/RootWindowContainer;->getStackInfo(I)Landroid/app/ActivityManager$StackInfo;
-HPLcom/android/server/wm/RootWindowContainer;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
+HSPLcom/android/server/wm/RootWindowContainer;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
 HPLcom/android/server/wm/RootWindowContainer;->getStackInfo(Lcom/android/server/wm/ActivityStack;)Landroid/app/ActivityManager$StackInfo;
 HSPLcom/android/server/wm/RootWindowContainer;->getTopDisplayFocusedStack()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/RootWindowContainer;->getTopFocusedDisplayContent()Lcom/android/server/wm/DisplayContent;
@@ -37304,10 +38342,10 @@
 PLcom/android/server/wm/RootWindowContainer;->lambda$JVx5SVc0AsTnwnLxXYLgV6AKHPg(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/Task;I)V
 HPLcom/android/server/wm/RootWindowContainer;->lambda$JZALJLRYsvQWgNnzHdoTfj_f3QY(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$StackInfo;[I)V
 HSPLcom/android/server/wm/RootWindowContainer;->lambda$SVJucJygDtyF-4eKB9wPXWaNBDM(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$addStartingWindowsForVisibleActivities$11(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/RootWindowContainer;->lambda$addStartingWindowsForVisibleActivities$11(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$bRRfWu3QSW54eS51jCvFD02TPt8(Lcom/android/server/wm/ActivityRecord;IZLandroid/content/Intent;Landroid/content/ComponentName;)Z
 HPLcom/android/server/wm/RootWindowContainer;->lambda$closeSystemDialogs$12(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$dumpDebug$10(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/RootWindowContainer;->lambda$dumpDebug$10(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$dumpDebug$11(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$dumpDebugInner$10(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$dumpWindowsNoHeader$10(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZLcom/android/server/wm/WindowState;)V
@@ -37340,7 +38378,7 @@
 PLcom/android/server/wm/RootWindowContainer;->prepareForShutdown()V
 HSPLcom/android/server/wm/RootWindowContainer;->prepareFreezingTaskBounds()V
 HPLcom/android/server/wm/RootWindowContainer;->processTaskForStackInfo(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$StackInfo;[I)V
-HPLcom/android/server/wm/RootWindowContainer;->putStacksToSleep(ZZ)Z
+HSPLcom/android/server/wm/RootWindowContainer;->putStacksToSleep(ZZ)Z
 HSPLcom/android/server/wm/RootWindowContainer;->rankTaskLayerForActivity(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/RootWindowContainer;->rankTaskLayersIfNeeded()V
 PLcom/android/server/wm/RootWindowContainer;->removeChild(Lcom/android/server/wm/DisplayContent;)V
@@ -37358,7 +38396,7 @@
 HSPLcom/android/server/wm/RootWindowContainer;->sendPowerHintForLaunchEndIfNeeded()V
 HSPLcom/android/server/wm/RootWindowContainer;->sendPowerHintForLaunchStartIfNeeded(ZLcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/RootWindowContainer;->setDisplayOverrideConfigurationIfNeeded(Landroid/content/res/Configuration;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/RootWindowContainer;->setDockedStackMinimized(Z)V
+HSPLcom/android/server/wm/RootWindowContainer;->setDockedStackMinimized(Z)V
 HSPLcom/android/server/wm/RootWindowContainer;->setRootActivityContainer(Lcom/android/server/wm/RootActivityContainer;)V
 HSPLcom/android/server/wm/RootWindowContainer;->setSecureSurfaceState(IZ)V
 HSPLcom/android/server/wm/RootWindowContainer;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
@@ -37377,7 +38415,7 @@
 PLcom/android/server/wm/RootWindowContainer;->updateAppOpsState()V
 HSPLcom/android/server/wm/RootWindowContainer;->updateFocusedWindowLocked(IZ)Z
 PLcom/android/server/wm/RootWindowContainer;->updateHiddenWhileSuspendedState(Landroid/util/ArraySet;Z)V
-HPLcom/android/server/wm/RootWindowContainer;->updatePreviousProcess(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/RootWindowContainer;->updatePreviousProcess(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/RootWindowContainer;->updateUIDsPresentOnDisplay()V
 HSPLcom/android/server/wm/RootWindowContainer;->updateUserStack(ILcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/RunningTasks;-><clinit>()V
@@ -37413,26 +38451,26 @@
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->onAnimationEnd()V
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->onAnimationEnd(ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startAnimation()V
-PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startAnimation(Lcom/android/server/wm/SurfaceAnimator$Animatable;Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)Lcom/android/server/wm/SurfaceAnimator;
+HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startAnimation(Lcom/android/server/wm/SurfaceAnimator$Animatable;Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)Lcom/android/server/wm/SurfaceAnimator;
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startAnimation(Lcom/android/server/wm/SurfaceAnimator$Animatable;Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Ljava/lang/Runnable;)Lcom/android/server/wm/SurfaceAnimator;
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startColorAnimation()V
 PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startCustomAnimation()V
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startDisplayRotation()Lcom/android/server/wm/SurfaceAnimator;
 PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startEnterBlackFrameAnimation()Lcom/android/server/wm/SurfaceAnimator;
-PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenRotationAnimation()V
+HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenRotationAnimation()V
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenshotAlphaAnimation()Lcom/android/server/wm/SurfaceAnimator;
 HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenshotRotationAnimation()Lcom/android/server/wm/SurfaceAnimator;
 HPLcom/android/server/wm/ScreenRotationAnimation;-><init>(Landroid/content/Context;Lcom/android/server/wm/DisplayContent;ZZLcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/ScreenRotationAnimation;->access$000(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/BlackFrame;
-PLcom/android/server/wm/ScreenRotationAnimation;->access$000(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/WindowManagerService;
+HPLcom/android/server/wm/ScreenRotationAnimation;->access$000(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/WindowManagerService;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$100(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/BlackFrame;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$1000(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/content/Context;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$1000(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$1100(Lcom/android/server/wm/ScreenRotationAnimation;)F
 PLcom/android/server/wm/ScreenRotationAnimation;->access$1100(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/WindowManagerService;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$1200(Lcom/android/server/wm/ScreenRotationAnimation;)F
-PLcom/android/server/wm/ScreenRotationAnimation;->access$1300(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/ScreenRotationAnimation;->access$200(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/DisplayContent;
+HPLcom/android/server/wm/ScreenRotationAnimation;->access$1300(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/ScreenRotationAnimation;->access$200(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/DisplayContent;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$300(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$400(Lcom/android/server/wm/ScreenRotationAnimation;)I
 PLcom/android/server/wm/ScreenRotationAnimation;->access$500(Lcom/android/server/wm/ScreenRotationAnimation;)I
@@ -37444,10 +38482,10 @@
 PLcom/android/server/wm/ScreenRotationAnimation;->access$900(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/SurfaceControl;
 PLcom/android/server/wm/ScreenRotationAnimation;->access$900(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/animation/Animation;
 PLcom/android/server/wm/ScreenRotationAnimation;->createRotationMatrix(IIILandroid/graphics/Matrix;)V
-PLcom/android/server/wm/ScreenRotationAnimation;->dismiss(Landroid/view/SurfaceControl$Transaction;JFIIII)Z
+HPLcom/android/server/wm/ScreenRotationAnimation;->dismiss(Landroid/view/SurfaceControl$Transaction;JFIIII)Z
 PLcom/android/server/wm/ScreenRotationAnimation;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HPLcom/android/server/wm/ScreenRotationAnimation;->getEnterTransformation()Landroid/view/animation/Transformation;
-PLcom/android/server/wm/ScreenRotationAnimation;->hasScreenshot()Z
+HPLcom/android/server/wm/ScreenRotationAnimation;->hasScreenshot()Z
 HPLcom/android/server/wm/ScreenRotationAnimation;->isAnimating()Z
 HPLcom/android/server/wm/ScreenRotationAnimation;->isRotating()Z
 HPLcom/android/server/wm/ScreenRotationAnimation;->kill()V
@@ -37471,6 +38509,7 @@
 HPLcom/android/server/wm/Session;->getDisplayFrame(Landroid/view/IWindow;Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/Session;->getInTouchMode()Z
 HPLcom/android/server/wm/Session;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
+HPLcom/android/server/wm/Session;->grantInputChannel(ILandroid/view/SurfaceControl;Landroid/view/IWindow;Landroid/os/IBinder;ILandroid/view/InputChannel;)V
 PLcom/android/server/wm/Session;->grantInputChannel(ILandroid/view/SurfaceControl;Landroid/view/IWindow;Landroid/os/IBinder;Landroid/view/InputChannel;)V
 HPLcom/android/server/wm/Session;->hasAlertWindowSurfaces(Lcom/android/server/wm/DisplayContent;)Z
 HPLcom/android/server/wm/Session;->insetsModified(Landroid/view/IWindow;Landroid/view/InsetsState;)V
@@ -37491,20 +38530,20 @@
 PLcom/android/server/wm/Session;->reparentDisplayContent(Landroid/view/IWindow;Landroid/view/SurfaceControl;I)V
 PLcom/android/server/wm/Session;->reportDropResult(Landroid/view/IWindow;Z)V
 HPLcom/android/server/wm/Session;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V
-PLcom/android/server/wm/Session;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
+HPLcom/android/server/wm/Session;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
 HPLcom/android/server/wm/Session;->setHasOverlayUi(Z)V
 PLcom/android/server/wm/Session;->setInTouchMode(Z)V
 HPLcom/android/server/wm/Session;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
 HPLcom/android/server/wm/Session;->setTransparentRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
 HPLcom/android/server/wm/Session;->setWallpaperPosition(Landroid/os/IBinder;FFFF)V
 PLcom/android/server/wm/Session;->toString()Ljava/lang/String;
-PLcom/android/server/wm/Session;->updateDisplayContentLocation(Landroid/view/IWindow;III)V
+HPLcom/android/server/wm/Session;->updateDisplayContentLocation(Landroid/view/IWindow;III)V
 HPLcom/android/server/wm/Session;->updatePointerIcon(Landroid/view/IWindow;)V
-PLcom/android/server/wm/Session;->updateTapExcludeRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
+HPLcom/android/server/wm/Session;->updateTapExcludeRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
 HPLcom/android/server/wm/Session;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
 HSPLcom/android/server/wm/Session;->windowAddedLocked(Ljava/lang/String;)V
 PLcom/android/server/wm/Session;->windowRemovedLocked()V
-PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;-><init>()V
+HPLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;-><init>()V
 PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$000(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)I
 PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$100(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)I
 PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$1000(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Ljava/util/function/Supplier;
@@ -37568,7 +38607,7 @@
 HSPLcom/android/server/wm/SurfaceAnimationRunner;-><init>(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Lcom/android/server/wm/SurfaceAnimationRunner$AnimatorFactory;Landroid/view/SurfaceControl$Transaction;Landroid/os/PowerManagerInternal;)V
 HSPLcom/android/server/wm/SurfaceAnimationRunner;-><init>(Ljava/util/function/Supplier;Landroid/os/PowerManagerInternal;)V
 HPLcom/android/server/wm/SurfaceAnimationRunner;->access$100(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object;
-PLcom/android/server/wm/SurfaceAnimationRunner;->access$200(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/SurfaceAnimationRunner;->access$200(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/view/SurfaceControl$Transaction;
 PLcom/android/server/wm/SurfaceAnimationRunner;->access$300(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object;
 PLcom/android/server/wm/SurfaceAnimationRunner;->access$400(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/animation/AnimationHandler;
 PLcom/android/server/wm/SurfaceAnimationRunner;->access$400(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/os/Handler;
@@ -37596,8 +38635,8 @@
 HPLcom/android/server/wm/SurfaceAnimator$Animatable;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
 HSPLcom/android/server/wm/SurfaceAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimator$Animatable;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;Lcom/android/server/wm/WindowManagerService;)V
 HSPLcom/android/server/wm/SurfaceAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimator$Animatable;Ljava/lang/Runnable;Lcom/android/server/wm/WindowManagerService;)V
-HPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation()V
-HPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation(Landroid/view/SurfaceControl$Transaction;ZZ)V
+HSPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation()V
+HSPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation(Landroid/view/SurfaceControl$Transaction;ZZ)V
 HPLcom/android/server/wm/SurfaceAnimator;->createAnimationLeash(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;IIZ)Landroid/view/SurfaceControl;
 PLcom/android/server/wm/SurfaceAnimator;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/wm/SurfaceAnimator;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
@@ -37607,17 +38646,17 @@
 HSPLcom/android/server/wm/SurfaceAnimator;->getFinishedCallback(Ljava/lang/Runnable;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
 HSPLcom/android/server/wm/SurfaceAnimator;->hasLeash()Z
 HSPLcom/android/server/wm/SurfaceAnimator;->isAnimating()Z
-PLcom/android/server/wm/SurfaceAnimator;->isAnimationStartDelayed()Z
+HPLcom/android/server/wm/SurfaceAnimator;->isAnimationStartDelayed()Z
 HPLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$0$SurfaceAnimator(Lcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V
 HPLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$0$SurfaceAnimator(Lcom/android/server/wm/AnimationAdapter;Ljava/lang/Runnable;)V
 HPLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$1$SurfaceAnimator(Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$1$SurfaceAnimator(Ljava/lang/Runnable;Lcom/android/server/wm/AnimationAdapter;)V
 PLcom/android/server/wm/SurfaceAnimator;->reparent(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
-HPLcom/android/server/wm/SurfaceAnimator;->reset(Landroid/view/SurfaceControl$Transaction;Z)V
+HSPLcom/android/server/wm/SurfaceAnimator;->reset(Landroid/view/SurfaceControl$Transaction;Z)V
 HSPLcom/android/server/wm/SurfaceAnimator;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
 HSPLcom/android/server/wm/SurfaceAnimator;->setRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
 HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;Z)V
-PLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZI)V
+HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZI)V
 HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZLjava/lang/Runnable;)V
 PLcom/android/server/wm/SurfaceAnimator;->transferAnimation(Lcom/android/server/wm/SurfaceAnimator;)V
@@ -37628,8 +38667,8 @@
 HSPLcom/android/server/wm/SystemGesturesPointerEventListener;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;)V
 HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->access$000(Lcom/android/server/wm/SystemGesturesPointerEventListener;)Landroid/content/Context;
 HPLcom/android/server/wm/SystemGesturesPointerEventListener;->access$100(Lcom/android/server/wm/SystemGesturesPointerEventListener;)J
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->access$102(Lcom/android/server/wm/SystemGesturesPointerEventListener;J)J
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->access$200(Lcom/android/server/wm/SystemGesturesPointerEventListener;)Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;
+HPLcom/android/server/wm/SystemGesturesPointerEventListener;->access$102(Lcom/android/server/wm/SystemGesturesPointerEventListener;J)J
+HPLcom/android/server/wm/SystemGesturesPointerEventListener;->access$200(Lcom/android/server/wm/SystemGesturesPointerEventListener;)Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;
 HPLcom/android/server/wm/SystemGesturesPointerEventListener;->captureDown(Landroid/view/MotionEvent;I)V
 HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->checkNull(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
 HPLcom/android/server/wm/SystemGesturesPointerEventListener;->currentGestureStartedInRegion(Landroid/graphics/Region;)Z
@@ -37652,11 +38691,13 @@
 HSPLcom/android/server/wm/Task$TaskActivitiesReport;->reset()V
 HSPLcom/android/server/wm/Task$TaskFactory;-><init>()V
 PLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/Task$TaskFactory;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wm/ActivityStackSupervisor;)Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/Task$TaskToken;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/ConfigurationContainer;)V
 HSPLcom/android/server/wm/Task$TaskToken;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/app/ActivityManager$TaskDescription;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/WindowContainer;I)V
@@ -37664,7 +38705,7 @@
 HSPLcom/android/server/wm/Task;->adjustForMinimalTaskDimensions(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/Task;->alignToAdjustedBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;Z)V
 HSPLcom/android/server/wm/Task;->asTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->autoRemoveFromRecents()Z
+HPLcom/android/server/wm/Task;->autoRemoveFromRecents()Z
 HSPLcom/android/server/wm/Task;->calculateInsetFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayInfo;)V
 HSPLcom/android/server/wm/Task;->canAffectSystemUiFlags()Z
 PLcom/android/server/wm/Task;->canBeLaunchedOnDisplay(I)Z
@@ -37681,7 +38722,7 @@
 HSPLcom/android/server/wm/Task;->computeMinUserPosition(II)I
 HSPLcom/android/server/wm/Task;->computeScreenLayoutOverride(III)I
 HSPLcom/android/server/wm/Task;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->createRemoteAnimationTarget(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;)Landroid/view/RemoteAnimationTarget;
+HPLcom/android/server/wm/Task;->createRemoteAnimationTarget(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;)Landroid/view/RemoteAnimationTarget;
 HSPLcom/android/server/wm/Task;->cropWindowsToStackBounds()Z
 HPLcom/android/server/wm/Task;->dim(F)V
 PLcom/android/server/wm/Task;->dontAnimateDimExit()V
@@ -37701,8 +38742,8 @@
 HSPLcom/android/server/wm/Task;->getActivityType()I
 HSPLcom/android/server/wm/Task;->getAdjustedAddPosition(Lcom/android/server/wm/ActivityRecord;I)I
 HSPLcom/android/server/wm/Task;->getAdjustedChildPosition(Lcom/android/server/wm/WindowContainer;I)I
-PLcom/android/server/wm/Task;->getAnimationBounds(I)Landroid/graphics/Rect;
-PLcom/android/server/wm/Task;->getAnimationFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/Task;->getAnimationBounds(I)Landroid/graphics/Rect;
+HPLcom/android/server/wm/Task;->getAnimationFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/Task;->getAnimationLeashParent()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/Task;->getBaseIntent()Landroid/content/Intent;
 HPLcom/android/server/wm/Task;->getDescendantTaskCount()I
@@ -37761,21 +38802,26 @@
 PLcom/android/server/wm/Task;->lambda$dumpDebug$10(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/Task;->lambda$dumpDebugInner$11(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/Task;->lambda$dumpDebugInnerTaskOnly$8(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->lambda$dumpDebugInnerTaskOnly$9(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/Task;->lambda$dumpDebugInnerTaskOnly$9(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/Task;->lambda$dumpDebugInnerTaskOnly$9(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/Task;->lambda$getAdjustedAddPosition$5(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/Task;->lambda$getDescendantTaskCount$3(Lcom/android/server/wm/Task;[I)V
 HPLcom/android/server/wm/Task;->lambda$getDescendantTaskCount$5(Lcom/android/server/wm/Task;[I)V
+HPLcom/android/server/wm/Task;->lambda$getTopFullscreenActivity$5(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/Task;->lambda$getTopFullscreenActivity$6(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/Task;->lambda$getTopFullscreenActivity$7(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/Task;->lambda$getTopVisibleActivity$6(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/Task;->lambda$getTopVisibleActivity$7(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/Task;->lambda$getTopVisibleActivity$8(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/Task;->lambda$isTaskAnimating$4$Task(Lcom/android/server/wm/Task;)Ljava/lang/Boolean;
 HPLcom/android/server/wm/Task;->lambda$isTaskAnimating$6$Task(Lcom/android/server/wm/Task;)Ljava/lang/Boolean;
 PLcom/android/server/wm/Task;->lambda$lqGdYR9ABiPuG3_68w1VS6hrr8c(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/Task;->lambda$onlyHasTaskOverlayActivities$1(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/Task;->lambda$onlyHasTaskOverlayActivities$2(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/Task;->lambda$performClearTaskAtIndexLocked$2(Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/Task;->lambda$performClearTaskAtIndexLocked$4(Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/Task;->lambda$topRunningActivityWithStartingWindowLocked$0(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->lockTaskAuthToString()Ljava/lang/String;
+HPLcom/android/server/wm/Task;->lockTaskAuthToString()Ljava/lang/String;
 HSPLcom/android/server/wm/Task;->makeSurface()Landroid/view/SurfaceControl$Builder;
 HPLcom/android/server/wm/Task;->matchesActivityInHistory(Lcom/android/server/wm/ActivityRecord;Landroid/content/ComponentName;)Z
 PLcom/android/server/wm/Task;->moveActivityToFrontLocked(Lcom/android/server/wm/ActivityRecord;)V
@@ -37861,17 +38907,19 @@
 HSPLcom/android/server/wm/TaskChangeNotificationController$MainHandler;-><init>(Lcom/android/server/wm/TaskChangeNotificationController;Landroid/os/Looper;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController$MainHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;-><init>(Ljava/lang/Object;Lcom/android/server/wm/ActivityStackSupervisor;Landroid/os/Handler;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->access$000(Lcom/android/server/wm/TaskChangeNotificationController;)Ljava/lang/Object;
-PLcom/android/server/wm/TaskChangeNotificationController;->access$100(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/ActivityStackSupervisor;
+HSPLcom/android/server/wm/TaskChangeNotificationController;->access$000(Lcom/android/server/wm/TaskChangeNotificationController;)Ljava/lang/Object;
+HSPLcom/android/server/wm/TaskChangeNotificationController;->access$100(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/ActivityStackSupervisor;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1000(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1100(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+PLcom/android/server/wm/TaskChangeNotificationController;->access$1200(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1300(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1400(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1600(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1900(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->access$200(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+HSPLcom/android/server/wm/TaskChangeNotificationController;->access$200(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$2000(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$2100(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+PLcom/android/server/wm/TaskChangeNotificationController;->access$2400(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 HSPLcom/android/server/wm/TaskChangeNotificationController;->access$2500(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 HSPLcom/android/server/wm/TaskChangeNotificationController;->access$2600(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$2700(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
@@ -37884,7 +38932,7 @@
 PLcom/android/server/wm/TaskChangeNotificationController;->access$900(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 HSPLcom/android/server/wm/TaskChangeNotificationController;->forAllLocalListeners(Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->forAllRemoteListeners(Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
-HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$0(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$0(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$1(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$10(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$11(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
@@ -37903,7 +38951,7 @@
 HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$3(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$4(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$6(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$7(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$7(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$8(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$9(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->notifyActivityDismissingDockedStack()V
@@ -37927,7 +38975,7 @@
 HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskRemoved(I)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
-HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskStackChanged()V
+HSPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskStackChanged()V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
 HSPLcom/android/server/wm/TaskLaunchParamsModifier;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;)V
@@ -37941,9 +38989,11 @@
 HSPLcom/android/server/wm/TaskOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 HSPLcom/android/server/wm/TaskOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowManagerGlobalLock;)V
 HPLcom/android/server/wm/TaskOrganizerController;->applyContainerTransaction(Landroid/view/WindowContainerTransaction;)V
+HPLcom/android/server/wm/TaskOrganizerController;->applyContainerTransaction(Landroid/view/WindowContainerTransaction;Landroid/view/ITaskOrganizer;)I
 PLcom/android/server/wm/TaskOrganizerController;->applyWindowContainerChange(Lcom/android/server/wm/WindowContainer;Landroid/view/WindowContainerTransaction$Change;)I
 HSPLcom/android/server/wm/TaskOrganizerController;->dispatchPendingTaskInfoChanges()V
-PLcom/android/server/wm/TaskOrganizerController;->enforceStackPermission(Ljava/lang/String;)V
+HPLcom/android/server/wm/TaskOrganizerController;->dispatchTaskInfoChanged(Lcom/android/server/wm/Task;Z)V
+HPLcom/android/server/wm/TaskOrganizerController;->enforceStackPermission(Ljava/lang/String;)V
 HSPLcom/android/server/wm/TaskOrganizerController;->getTaskOrganizer(I)Landroid/view/ITaskOrganizer;
 PLcom/android/server/wm/TaskOrganizerController;->resizePinnedStackIfNeeded(Lcom/android/server/wm/ConfigurationContainer;IILandroid/content/res/Configuration;)V
 PLcom/android/server/wm/TaskOrganizerController;->sanitizeAndApplyChange(Lcom/android/server/wm/WindowContainer;Landroid/view/WindowContainerTransaction$Change;)I
@@ -38020,7 +39070,7 @@
 HSPLcom/android/server/wm/TaskSnapshotController;->getClosingTasks(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
 HPLcom/android/server/wm/TaskSnapshotController;->getInsets(Lcom/android/server/wm/WindowState;)Landroid/graphics/Rect;
 HPLcom/android/server/wm/TaskSnapshotController;->getSnapshot(IIZZ)Landroid/app/ActivityManager$TaskSnapshot;
-HPLcom/android/server/wm/TaskSnapshotController;->getSnapshotMode(Lcom/android/server/wm/Task;)I
+HSPLcom/android/server/wm/TaskSnapshotController;->getSnapshotMode(Lcom/android/server/wm/Task;)I
 HPLcom/android/server/wm/TaskSnapshotController;->getSystemUiVisibility(Lcom/android/server/wm/Task;)I
 HSPLcom/android/server/wm/TaskSnapshotController;->handleClosingApps(Landroid/util/ArraySet;)V
 PLcom/android/server/wm/TaskSnapshotController;->lambda$findAppTokenForSnapshot$0(Lcom/android/server/wm/WindowState;)Z
@@ -38031,7 +39081,7 @@
 HSPLcom/android/server/wm/TaskSnapshotController;->notifyAppVisibilityChanged(Lcom/android/server/wm/ActivityRecord;Z)V
 PLcom/android/server/wm/TaskSnapshotController;->notifyTaskRemovedFromRecents(II)V
 PLcom/android/server/wm/TaskSnapshotController;->onAppDied(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/TaskSnapshotController;->onAppRemoved(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/TaskSnapshotController;->onAppRemoved(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/TaskSnapshotController;->onTransitionStarting(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/TaskSnapshotController;->prepareTaskSnapshot(Lcom/android/server/wm/Task;FILandroid/app/ActivityManager$TaskSnapshot$Builder;)Z
 PLcom/android/server/wm/TaskSnapshotController;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V
@@ -38067,7 +39117,7 @@
 HSPLcom/android/server/wm/TaskSnapshotPersister;-><clinit>()V
 HSPLcom/android/server/wm/TaskSnapshotPersister;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotPersister$DirectoryResolver;)V
 HSPLcom/android/server/wm/TaskSnapshotPersister;->access$100(Lcom/android/server/wm/TaskSnapshotPersister;)Ljava/lang/Object;
-PLcom/android/server/wm/TaskSnapshotPersister;->access$1000(Lcom/android/server/wm/TaskSnapshotPersister;)F
+HPLcom/android/server/wm/TaskSnapshotPersister;->access$1000(Lcom/android/server/wm/TaskSnapshotPersister;)F
 PLcom/android/server/wm/TaskSnapshotPersister;->access$1100(Lcom/android/server/wm/TaskSnapshotPersister;)Landroid/util/ArraySet;
 HSPLcom/android/server/wm/TaskSnapshotPersister;->access$200(Lcom/android/server/wm/TaskSnapshotPersister;)Z
 HSPLcom/android/server/wm/TaskSnapshotPersister;->access$300(Lcom/android/server/wm/TaskSnapshotPersister;)Ljava/util/ArrayDeque;
@@ -38110,10 +39160,10 @@
 PLcom/android/server/wm/TaskSnapshotSurface;->access$200(Lcom/android/server/wm/TaskSnapshotSurface;)V
 PLcom/android/server/wm/TaskSnapshotSurface;->access$300(Lcom/android/server/wm/TaskSnapshotSurface;)I
 PLcom/android/server/wm/TaskSnapshotSurface;->access$400()Landroid/os/Handler;
-PLcom/android/server/wm/TaskSnapshotSurface;->calculateSnapshotCrop()Landroid/graphics/Rect;
-PLcom/android/server/wm/TaskSnapshotSurface;->calculateSnapshotFrame(Landroid/graphics/Rect;)Landroid/graphics/Rect;
+HPLcom/android/server/wm/TaskSnapshotSurface;->calculateSnapshotCrop()Landroid/graphics/Rect;
+HPLcom/android/server/wm/TaskSnapshotSurface;->calculateSnapshotFrame(Landroid/graphics/Rect;)Landroid/graphics/Rect;
 HPLcom/android/server/wm/TaskSnapshotSurface;->create(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskSnapshot;)Lcom/android/server/wm/TaskSnapshotSurface;
-PLcom/android/server/wm/TaskSnapshotSurface;->drawBackgroundAndBars(Landroid/graphics/Canvas;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/TaskSnapshotSurface;->drawBackgroundAndBars(Landroid/graphics/Canvas;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/TaskSnapshotSurface;->drawSizeMismatchSnapshot()V
 HPLcom/android/server/wm/TaskSnapshotSurface;->drawSnapshot()V
 HPLcom/android/server/wm/TaskSnapshotSurface;->remove()V
@@ -38150,7 +39200,7 @@
 HPLcom/android/server/wm/WallpaperAnimationAdapter;-><init>(Lcom/android/server/wm/WallpaperWindowToken;JJLjava/util/function/Consumer;)V
 HPLcom/android/server/wm/WallpaperAnimationAdapter;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
 PLcom/android/server/wm/WallpaperAnimationAdapter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
-PLcom/android/server/wm/WallpaperAnimationAdapter;->getLastAnimationType()I
+HPLcom/android/server/wm/WallpaperAnimationAdapter;->getLastAnimationType()I
 PLcom/android/server/wm/WallpaperAnimationAdapter;->getLeash()Landroid/view/SurfaceControl;
 PLcom/android/server/wm/WallpaperAnimationAdapter;->getLeashFinishedCallback()Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
 HPLcom/android/server/wm/WallpaperAnimationAdapter;->lambda$startWallpaperAnimations$0(JJLjava/util/function/Consumer;Ljava/util/ArrayList;Ljava/util/ArrayList;Lcom/android/server/wm/WallpaperWindowToken;)V
@@ -38173,8 +39223,8 @@
 HSPLcom/android/server/wm/WallpaperController;->findWallpaperTarget()V
 HSPLcom/android/server/wm/WallpaperController;->getWallpaperTarget()Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WallpaperController;->hideDeferredWallpapersIfNeeded()V
-HPLcom/android/server/wm/WallpaperController;->hideWallpapers(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/WallpaperController;->isBelowWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
+HSPLcom/android/server/wm/WallpaperController;->hideWallpapers(Lcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/WallpaperController;->isBelowWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/WallpaperController;->isFullscreen(Landroid/view/WindowManager$LayoutParams;)Z
 HSPLcom/android/server/wm/WallpaperController;->isWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/WallpaperController;->isWallpaperTargetAnimating()Z
@@ -38186,7 +39236,7 @@
 PLcom/android/server/wm/WallpaperController;->removeWallpaperToken(Lcom/android/server/wm/WallpaperWindowToken;)V
 PLcom/android/server/wm/WallpaperController;->sendWindowWallpaperCommand(Lcom/android/server/wm/WindowState;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
 HPLcom/android/server/wm/WallpaperController;->setWindowWallpaperPosition(Lcom/android/server/wm/WindowState;FFFF)V
-PLcom/android/server/wm/WallpaperController;->startWallpaperAnimation(Landroid/view/animation/Animation;)V
+HPLcom/android/server/wm/WallpaperController;->startWallpaperAnimation(Landroid/view/animation/Animation;)V
 HSPLcom/android/server/wm/WallpaperController;->updateWallpaperOffset(Lcom/android/server/wm/WindowState;IIZ)Z
 HPLcom/android/server/wm/WallpaperController;->updateWallpaperOffsetLocked(Lcom/android/server/wm/WindowState;Z)V
 HSPLcom/android/server/wm/WallpaperController;->updateWallpaperTokens(Z)V
@@ -38201,10 +39251,10 @@
 HSPLcom/android/server/wm/WallpaperWindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;ZLcom/android/server/wm/DisplayContent;Z)V
 HPLcom/android/server/wm/WallpaperWindowToken;->forAllWallpaperWindows(Ljava/util/function/Consumer;)V
 HPLcom/android/server/wm/WallpaperWindowToken;->hasVisibleNotDrawnWallpaper()Z
-HPLcom/android/server/wm/WallpaperWindowToken;->hideWallpaperToken(ZLjava/lang/String;)V
+HSPLcom/android/server/wm/WallpaperWindowToken;->hideWallpaperToken(ZLjava/lang/String;)V
 PLcom/android/server/wm/WallpaperWindowToken;->sendWindowWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)V
 PLcom/android/server/wm/WallpaperWindowToken;->setExiting()V
-PLcom/android/server/wm/WallpaperWindowToken;->startAnimation(Landroid/view/animation/Animation;)V
+HPLcom/android/server/wm/WallpaperWindowToken;->startAnimation(Landroid/view/animation/Animation;)V
 HSPLcom/android/server/wm/WallpaperWindowToken;->toString()Ljava/lang/String;
 HPLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperOffset(IIZ)V
 HPLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperVisibility(Z)V
@@ -38260,18 +39310,20 @@
 HPLcom/android/server/wm/WindowContainer;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Z
 HPLcom/android/server/wm/WindowContainer;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZLcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)Z
 HPLcom/android/server/wm/WindowContainer;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZLjava/lang/Runnable;)Z
+HPLcom/android/server/wm/WindowContainer;->applyMagnificationSpec(Landroid/view/SurfaceControl$Transaction;Landroid/view/MagnificationSpec;)V
 HSPLcom/android/server/wm/WindowContainer;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/WindowContainer;->asTask()Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/WindowContainer;->assignChildLayers()V
 HSPLcom/android/server/wm/WindowContainer;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/WindowContainer;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
 HSPLcom/android/server/wm/WindowContainer;->assignRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
-HPLcom/android/server/wm/WindowContainer;->cancelAnimation()V
+HSPLcom/android/server/wm/WindowContainer;->cancelAnimation()V
 HSPLcom/android/server/wm/WindowContainer;->checkAppWindowsReadyToShow()V
 HSPLcom/android/server/wm/WindowContainer;->checkCompleteDeferredRemoval()Z
 HPLcom/android/server/wm/WindowContainer;->clearMagnificationSpec(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/WindowContainer;->commitPendingTransaction()V
+HSPLcom/android/server/wm/WindowContainer;->commitPendingTransaction()V
 HSPLcom/android/server/wm/WindowContainer;->compareTo(Lcom/android/server/wm/WindowContainer;)I
+PLcom/android/server/wm/WindowContainer;->createRemoteAnimationTarget(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;)Landroid/view/RemoteAnimationTarget;
 HSPLcom/android/server/wm/WindowContainer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
 HSPLcom/android/server/wm/WindowContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 HSPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Consumer;)V
@@ -38287,6 +39339,7 @@
 HSPLcom/android/server/wm/WindowContainer;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
 HSPLcom/android/server/wm/WindowContainer;->forAllWindows(Ljava/util/function/Consumer;Z)V
 PLcom/android/server/wm/WindowContainer;->forceWindowsScaleableInTransaction(Z)V
+PLcom/android/server/wm/WindowContainer;->fromBinder(Landroid/os/IBinder;)Lcom/android/server/wm/WindowContainer;
 HSPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ[Z)Lcom/android/server/wm/ActivityRecord;
@@ -38313,7 +39366,7 @@
 HSPLcom/android/server/wm/WindowContainer;->getOrientation(I)I
 HSPLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/ConfigurationContainer;
 HSPLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/WindowContainer;
-HPLcom/android/server/wm/WindowContainer;->getParentSurfaceControl()Landroid/view/SurfaceControl;
+HSPLcom/android/server/wm/WindowContainer;->getParentSurfaceControl()Landroid/view/SurfaceControl;
 HPLcom/android/server/wm/WindowContainer;->getParents(Ljava/util/LinkedList;)V
 HSPLcom/android/server/wm/WindowContainer;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
 HPLcom/android/server/wm/WindowContainer;->getPrefixOrderIndex()I
@@ -38321,7 +39374,7 @@
 HSPLcom/android/server/wm/WindowContainer;->getRelativeDisplayedPosition(Landroid/graphics/Point;)V
 HSPLcom/android/server/wm/WindowContainer;->getRequestedConfigurationOrientation()I
 HSPLcom/android/server/wm/WindowContainer;->getSession()Landroid/view/SurfaceSession;
-PLcom/android/server/wm/WindowContainer;->getSurfaceAnimationRunner()Lcom/android/server/wm/SurfaceAnimationRunner;
+HPLcom/android/server/wm/WindowContainer;->getSurfaceAnimationRunner()Lcom/android/server/wm/SurfaceAnimationRunner;
 HSPLcom/android/server/wm/WindowContainer;->getSurfaceControl()Landroid/view/SurfaceControl;
 HPLcom/android/server/wm/WindowContainer;->getSurfaceHeight()I
 HPLcom/android/server/wm/WindowContainer;->getSurfaceWidth()I
@@ -38329,7 +39382,7 @@
 HSPLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/WindowContainer;->getTopActivity(ZZ)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/WindowContainer;->getTopChild()Lcom/android/server/wm/WindowContainer;
-HPLcom/android/server/wm/WindowContainer;->getTopMostActivity()Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/WindowContainer;->getTopMostActivity()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/WindowContainer;->getTopMostTask()Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/WindowContainer;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowContainer;->handlesOrientationChangeFromDescendant()Z
@@ -38346,33 +39399,23 @@
 HSPLcom/android/server/wm/WindowContainer;->isVisible()Z
 HSPLcom/android/server/wm/WindowContainer;->isWaitingForTransitionStart()Z
 HPLcom/android/server/wm/WindowContainer;->lambda$getActivityAbove$1(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getActivityAbove$2(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/WindowContainer;->lambda$getActivityBelow$2(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getActivityBelow$3(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/WindowContainer;->lambda$getBottomMostActivity$3(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostActivity$4(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostTask$11(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostTask$12(Lcom/android/server/wm/Task;)Z
 HSPLcom/android/server/wm/WindowContainer;->lambda$getTopActivity$7(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getTopActivity$8(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getTopActivity$9(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getTopMostActivity$4(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getTopMostActivity$5(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/WindowContainer;->lambda$getTopActivity$8(Lcom/android/server/wm/ActivityRecord;)Z
+HSPLcom/android/server/wm/WindowContainer;->lambda$getTopMostActivity$4(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/WindowContainer;->lambda$getTopMostTask$12(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getTopMostTask$13(Lcom/android/server/wm/Task;)Z
 HSPLcom/android/server/wm/WindowContainer;->lambda$isAppTransitioning$0(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/WindowContainer;->lambda$isAppTransitioning$1(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/WindowContainer;->lambda$isWaitingForTransitionStart$0(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$13$WindowContainer(Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$13$WindowContainer(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$14$WindowContainer(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/WindowContainer;->loadAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Landroid/view/animation/Animation;
 HPLcom/android/server/wm/WindowContainer;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
 HSPLcom/android/server/wm/WindowContainer;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
 HSPLcom/android/server/wm/WindowContainer;->makeSurface()Landroid/view/SurfaceControl$Builder;
 HSPLcom/android/server/wm/WindowContainer;->needsZBoost()Z
 HSPLcom/android/server/wm/WindowContainer;->obtainConsumerWrapper(Ljava/util/function/Consumer;)Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;
-HPLcom/android/server/wm/WindowContainer;->okToAnimate()Z
+HSPLcom/android/server/wm/WindowContainer;->okToAnimate()Z
 HSPLcom/android/server/wm/WindowContainer;->okToAnimate(Z)Z
 HSPLcom/android/server/wm/WindowContainer;->okToDisplay()Z
 HSPLcom/android/server/wm/WindowContainer;->onAnimationFinished()V
@@ -38405,7 +39448,7 @@
 PLcom/android/server/wm/WindowContainer;->reparentSurfaceControl(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 HPLcom/android/server/wm/WindowContainer;->resetDragResizingChangeReported()V
 HSPLcom/android/server/wm/WindowContainer;->scheduleAnimation()V
-HPLcom/android/server/wm/WindowContainer;->sendAppVisibilityToClients()V
+HSPLcom/android/server/wm/WindowContainer;->sendAppVisibilityToClients()V
 HSPLcom/android/server/wm/WindowContainer;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
 HSPLcom/android/server/wm/WindowContainer;->setOrientation(I)V
 HSPLcom/android/server/wm/WindowContainer;->setOrientation(ILandroid/os/IBinder;Lcom/android/server/wm/ConfigurationContainer;)V
@@ -38413,6 +39456,7 @@
 HSPLcom/android/server/wm/WindowContainer;->setRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
 HSPLcom/android/server/wm/WindowContainer;->setSurfaceControl(Landroid/view/SurfaceControl;)V
 HPLcom/android/server/wm/WindowContainer;->setWaitingForDrawnIfResizingChanged()V
+HPLcom/android/server/wm/WindowContainer;->shouldMagnify()Z
 HPLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;Z)V
 PLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZI)V
 HPLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
@@ -38439,7 +39483,7 @@
 PLcom/android/server/wm/WindowContainerThumbnail;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 PLcom/android/server/wm/WindowContainerThumbnail;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 PLcom/android/server/wm/WindowContainerThumbnail;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowContainerThumbnail;->setShowing(Landroid/view/SurfaceControl$Transaction;Z)V
+HPLcom/android/server/wm/WindowContainerThumbnail;->setShowing(Landroid/view/SurfaceControl$Transaction;Z)V
 PLcom/android/server/wm/WindowContainerThumbnail;->startAnimation(Landroid/view/SurfaceControl$Transaction;Landroid/view/animation/Animation;)V
 PLcom/android/server/wm/WindowContainerThumbnail;->startAnimation(Landroid/view/SurfaceControl$Transaction;Landroid/view/animation/Animation;Landroid/graphics/Point;)V
 HSPLcom/android/server/wm/WindowFrames;-><clinit>()V
@@ -38448,7 +39492,7 @@
 HSPLcom/android/server/wm/WindowFrames;->calculateInsets(ZZLandroid/graphics/Rect;)V
 HSPLcom/android/server/wm/WindowFrames;->didFrameSizeChange()Z
 HPLcom/android/server/wm/WindowFrames;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HPLcom/android/server/wm/WindowFrames;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/WindowFrames;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/WindowFrames;->hasContentChanged()Z
 HSPLcom/android/server/wm/WindowFrames;->offsetFrames(II)V
 HSPLcom/android/server/wm/WindowFrames;->parentFrameWasClippedByDisplayCutout()Z
@@ -38468,6 +39512,8 @@
 HSPLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerGlobalLock;Ljava/lang/Runnable;Lcom/android/server/wm/utils/DeviceConfigInterface;)V
 HSPLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/utils/DeviceConfigInterface;)V
 PLcom/android/server/wm/WindowManagerConstants;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerConstants;->lambda$H0Vnr9H2xLD72_22unzb68d1fSM(Lcom/android/server/wm/WindowManagerConstants;Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/wm/WindowManagerConstants;->onWindowPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/wm/WindowManagerConstants;->start(Ljava/util/concurrent/Executor;)V
 HSPLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExcludedByPreQStickyImmersive()V
 HSPLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExclusionLimitDp()V
@@ -38520,10 +39566,10 @@
 PLcom/android/server/wm/WindowManagerService$LocalService;->getMagnificationRegion(ILandroid/graphics/Region;)V
 HPLcom/android/server/wm/WindowManagerService$LocalService;->getTopFocusedDisplayId()I
 PLcom/android/server/wm/WindowManagerService$LocalService;->getTopFocusedDisplayUiContext()Landroid/content/Context;
-PLcom/android/server/wm/WindowManagerService$LocalService;->getWindowOwnerUserId(Landroid/os/IBinder;)I
+HPLcom/android/server/wm/WindowManagerService$LocalService;->getWindowOwnerUserId(Landroid/os/IBinder;)I
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isHardKeyboardAvailable()Z
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isInputMethodClientFocus(III)Z
-PLcom/android/server/wm/WindowManagerService$LocalService;->isKeyguardShowingAndNotOccluded()Z
+HPLcom/android/server/wm/WindowManagerService$LocalService;->isKeyguardShowingAndNotOccluded()Z
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isStackVisibleLw(I)Z
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isUidAllowedOnDisplay(II)Z
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isUidFocused(I)Z
@@ -38535,9 +39581,10 @@
 PLcom/android/server/wm/WindowManagerService$LocalService;->reportPasswordChanged(I)V
 HSPLcom/android/server/wm/WindowManagerService$LocalService;->requestTraversalFromDisplayManager()V
 HPLcom/android/server/wm/WindowManagerService$LocalService;->setAccessibilityIdToSurfaceMetadata(Landroid/os/IBinder;I)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->setForceShowMagnifiableBounds(IZ)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setInputFilter(Landroid/view/IInputFilter;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setMagnificationCallbacks(ILcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;)Z
-PLcom/android/server/wm/WindowManagerService$LocalService;->setMagnificationSpec(ILandroid/view/MagnificationSpec;)V
+HPLcom/android/server/wm/WindowManagerService$LocalService;->setMagnificationSpec(ILandroid/view/MagnificationSpec;)V
 HSPLcom/android/server/wm/WindowManagerService$LocalService;->setOnHardKeyboardStatusChangeListener(Lcom/android/server/wm/WindowManagerInternal$OnHardKeyboardStatusChangeListener;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setWindowsForAccessibilityCallback(ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)Z
 PLcom/android/server/wm/WindowManagerService$LocalService;->shouldShowIme(I)Z
@@ -38563,7 +39610,9 @@
 HSPLcom/android/server/wm/WindowManagerService;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
 HSPLcom/android/server/wm/WindowManagerService;->access$000(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/KeyguardDisableHandler;
 PLcom/android/server/wm/WindowManagerService;->access$100(Lcom/android/server/wm/WindowManagerService;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowManagerService;->access$1000(Lcom/android/server/wm/WindowManagerService;)F
 PLcom/android/server/wm/WindowManagerService;->access$1000(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService;->access$1002(Lcom/android/server/wm/WindowManagerService;F)F
 HSPLcom/android/server/wm/WindowManagerService;->access$1100(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/WindowManagerService;->access$1300(Lcom/android/server/wm/WindowManagerService;)Z
 HPLcom/android/server/wm/WindowManagerService;->access$1400(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/RecentsAnimationController;
@@ -38588,20 +39637,21 @@
 PLcom/android/server/wm/WindowManagerService;->access$900(Lcom/android/server/wm/WindowManagerService;)F
 PLcom/android/server/wm/WindowManagerService;->access$902(Lcom/android/server/wm/WindowManagerService;F)F
 HSPLcom/android/server/wm/WindowManagerService;->addWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
-HPLcom/android/server/wm/WindowManagerService;->addWindowContextToken(Landroid/os/IBinder;IILjava/lang/String;)I
+HSPLcom/android/server/wm/WindowManagerService;->addWindowContextToken(Landroid/os/IBinder;IILjava/lang/String;)I
 HSPLcom/android/server/wm/WindowManagerService;->addWindowToken(Landroid/os/IBinder;II)V
 HPLcom/android/server/wm/WindowManagerService;->addWindowTokenWithOptions(Landroid/os/IBinder;IILandroid/os/Bundle;Ljava/lang/String;)I
 HSPLcom/android/server/wm/WindowManagerService;->applyForcedPropertiesForDefaultDisplay()Z
 PLcom/android/server/wm/WindowManagerService;->applyMagnificationSpecLocked(ILandroid/view/MagnificationSpec;)V
 HSPLcom/android/server/wm/WindowManagerService;->boostPriorityForLockedSection()V
 HPLcom/android/server/wm/WindowManagerService;->canStartRecentsAnimation()Z
-PLcom/android/server/wm/WindowManagerService;->cancelRecentsAnimation(ILjava/lang/String;)V
+HPLcom/android/server/wm/WindowManagerService;->cancelRecentsAnimation(ILjava/lang/String;)V
 PLcom/android/server/wm/WindowManagerService;->checkBootAnimationCompleteLocked()Z
-PLcom/android/server/wm/WindowManagerService;->checkCallerOwnsDisplay(I)V
+HPLcom/android/server/wm/WindowManagerService;->checkCallerOwnsDisplay(I)V
 HSPLcom/android/server/wm/WindowManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/wm/WindowManagerService;->checkDrawnWindowsLocked()V
 HPLcom/android/server/wm/WindowManagerService;->checkSplitScreenMinimizedChanged(Z)V
 HPLcom/android/server/wm/WindowManagerService;->cleanupRecentsAnimation(I)V
+PLcom/android/server/wm/WindowManagerService;->clearForcedDisplayDensityForUser(II)V
 HSPLcom/android/server/wm/WindowManagerService;->closeSurfaceTransaction(Ljava/lang/String;)V
 HPLcom/android/server/wm/WindowManagerService;->closeSystemDialogs(Ljava/lang/String;)V
 HSPLcom/android/server/wm/WindowManagerService;->computeNewConfiguration(I)Landroid/content/res/Configuration;
@@ -38644,14 +39694,14 @@
 PLcom/android/server/wm/WindowManagerService;->freezeDisplayRotation(II)V
 PLcom/android/server/wm/WindowManagerService;->freezeRotation(I)V
 PLcom/android/server/wm/WindowManagerService;->getAnimationScale(I)F
-PLcom/android/server/wm/WindowManagerService;->getBaseDisplayDensity(I)I
+HPLcom/android/server/wm/WindowManagerService;->getBaseDisplayDensity(I)I
 HSPLcom/android/server/wm/WindowManagerService;->getBaseDisplaySize(ILandroid/graphics/Point;)V
 HSPLcom/android/server/wm/WindowManagerService;->getCameraLensCoverState()I
 HSPLcom/android/server/wm/WindowManagerService;->getCurrentAnimatorScale()F
 HSPLcom/android/server/wm/WindowManagerService;->getDefaultDisplayContentLocked()Lcom/android/server/wm/DisplayContent;
 PLcom/android/server/wm/WindowManagerService;->getDefaultDisplayRotation()I
 HSPLcom/android/server/wm/WindowManagerService;->getDisplayContentOrCreate(ILandroid/os/IBinder;)Lcom/android/server/wm/DisplayContent;
-HPLcom/android/server/wm/WindowManagerService;->getDockedStackSide()I
+HSPLcom/android/server/wm/WindowManagerService;->getDockedStackSide()I
 HPLcom/android/server/wm/WindowManagerService;->getFocusedWindowLocked()Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowManagerService;->getForcedDisplayDensityForUserLocked(I)I
 HSPLcom/android/server/wm/WindowManagerService;->getImeFocusStackLocked()Lcom/android/server/wm/ActivityStack;
@@ -38662,8 +39712,8 @@
 HSPLcom/android/server/wm/WindowManagerService;->getLidState()I
 PLcom/android/server/wm/WindowManagerService;->getNavBarPosition(I)I
 HSPLcom/android/server/wm/WindowManagerService;->getRecentsAnimationController()Lcom/android/server/wm/RecentsAnimationController;
-HPLcom/android/server/wm/WindowManagerService;->getStableInsets(ILandroid/graphics/Rect;)V
-HPLcom/android/server/wm/WindowManagerService;->getStableInsetsLocked(ILandroid/graphics/Rect;)V
+HSPLcom/android/server/wm/WindowManagerService;->getStableInsets(ILandroid/graphics/Rect;)V
+HSPLcom/android/server/wm/WindowManagerService;->getStableInsetsLocked(ILandroid/graphics/Rect;)V
 HSPLcom/android/server/wm/WindowManagerService;->getStackBounds(IILandroid/graphics/Rect;)V
 HPLcom/android/server/wm/WindowManagerService;->getTaskSnapshot(IIZZ)Landroid/app/ActivityManager$TaskSnapshot;
 PLcom/android/server/wm/WindowManagerService;->getTransitionAnimationScaleLocked()F
@@ -38672,6 +39722,7 @@
 HPLcom/android/server/wm/WindowManagerService;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
 HSPLcom/android/server/wm/WindowManagerService;->getWindowInsets(Landroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)V
 HSPLcom/android/server/wm/WindowManagerService;->getWindowManagerLock()Ljava/lang/Object;
+HPLcom/android/server/wm/WindowManagerService;->grantInputChannel(IIILandroid/view/SurfaceControl;Landroid/view/IWindow;Landroid/os/IBinder;ILandroid/view/InputChannel;)V
 PLcom/android/server/wm/WindowManagerService;->grantInputChannel(IIILandroid/view/SurfaceControl;Landroid/view/IWindow;Landroid/os/IBinder;Landroid/view/InputChannel;)V
 HPLcom/android/server/wm/WindowManagerService;->handleTaskFocusChange(Lcom/android/server/wm/Task;)V
 HSPLcom/android/server/wm/WindowManagerService;->hasHdrSupport()Z
@@ -38683,7 +39734,7 @@
 HSPLcom/android/server/wm/WindowManagerService;->inSurfaceTransaction(Ljava/lang/Runnable;)V
 HSPLcom/android/server/wm/WindowManagerService;->initPolicy()V
 HPLcom/android/server/wm/WindowManagerService;->initializeRecentsAnimation(ILandroid/view/IRecentsAnimationRunner;Lcom/android/server/wm/RecentsAnimationController$RecentsAnimationCallbacks;ILandroid/util/SparseBooleanArray;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/WindowManagerService;->intersectDisplayInsetBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowManagerService;->intersectDisplayInsetBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/WindowManagerService;->isCurrentProfile(I)Z
 PLcom/android/server/wm/WindowManagerService;->isCurrentProfileLocked(I)Z
 PLcom/android/server/wm/WindowManagerService;->isDisplayRotationFrozen(I)Z
@@ -38742,8 +39793,8 @@
 HSPLcom/android/server/wm/WindowManagerService;->refreshScreenCaptureDisabled(I)V
 PLcom/android/server/wm/WindowManagerService;->registerAppFreezeListener(Lcom/android/server/wm/WindowManagerService$AppFreezeListener;)V
 HSPLcom/android/server/wm/WindowManagerService;->registerDisplayWindowListener(Landroid/view/IDisplayWindowListener;)V
-PLcom/android/server/wm/WindowManagerService;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
-PLcom/android/server/wm/WindowManagerService;->registerPinnedStackListener(ILandroid/view/IPinnedStackListener;)V
+HSPLcom/android/server/wm/WindowManagerService;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
+HSPLcom/android/server/wm/WindowManagerService;->registerPinnedStackListener(ILandroid/view/IPinnedStackListener;)V
 PLcom/android/server/wm/WindowManagerService;->registerShortcutKey(JLcom/android/internal/policy/IShortcutService;)V
 PLcom/android/server/wm/WindowManagerService;->registerSystemGestureExclusionListener(Landroid/view/ISystemGestureExclusionListener;I)V
 PLcom/android/server/wm/WindowManagerService;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)Z
@@ -38766,7 +39817,7 @@
 PLcom/android/server/wm/WindowManagerService;->screenTurningOff(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
 PLcom/android/server/wm/WindowManagerService;->setAnimationScale(IF)V
 HSPLcom/android/server/wm/WindowManagerService;->setAnimatorDurationScale(F)V
-HPLcom/android/server/wm/WindowManagerService;->setAodShowing(Z)V
+HSPLcom/android/server/wm/WindowManagerService;->setAodShowing(Z)V
 PLcom/android/server/wm/WindowManagerService;->setCurrentProfileIds([I)V
 HSPLcom/android/server/wm/WindowManagerService;->setDisplayWindowRotationController(Landroid/view/IDisplayWindowRotationController;)V
 PLcom/android/server/wm/WindowManagerService;->setDockedStackCreateStateLocked(ILandroid/graphics/Rect;)V
@@ -38778,8 +39829,8 @@
 HSPLcom/android/server/wm/WindowManagerService;->setHoldScreenLocked(Lcom/android/server/wm/Session;)V
 PLcom/android/server/wm/WindowManagerService;->setInTouchMode(Z)V
 HPLcom/android/server/wm/WindowManagerService;->setInsetsWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
-HPLcom/android/server/wm/WindowManagerService;->setKeyguardGoingAway(Z)V
-HPLcom/android/server/wm/WindowManagerService;->setKeyguardOrAodShowingOnDefaultDisplay(Z)V
+HSPLcom/android/server/wm/WindowManagerService;->setKeyguardGoingAway(Z)V
+HSPLcom/android/server/wm/WindowManagerService;->setKeyguardOrAodShowingOnDefaultDisplay(Z)V
 PLcom/android/server/wm/WindowManagerService;->setNavBarVirtualKeyHapticFeedbackEnabled(Z)V
 HSPLcom/android/server/wm/WindowManagerService;->setNewDisplayOverrideConfiguration(Landroid/content/res/Configuration;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/WindowManagerService;->setPipVisibility(Z)V
@@ -38790,6 +39841,7 @@
 PLcom/android/server/wm/WindowManagerService;->setWillReplaceWindows(Landroid/os/IBinder;Z)V
 PLcom/android/server/wm/WindowManagerService;->setWindowOpaqueLocked(Landroid/os/IBinder;Z)V
 PLcom/android/server/wm/WindowManagerService;->shouldShowIme(I)Z
+PLcom/android/server/wm/WindowManagerService;->shouldShowImeSystemWindowUncheckedLocked(I)Z
 PLcom/android/server/wm/WindowManagerService;->shouldShowSystemDecors(I)Z
 HSPLcom/android/server/wm/WindowManagerService;->showEmulatorDisplayOverlayIfNeeded()V
 PLcom/android/server/wm/WindowManagerService;->showRecentApps()V
@@ -38799,8 +39851,8 @@
 PLcom/android/server/wm/WindowManagerService;->thawDisplayRotation(I)V
 PLcom/android/server/wm/WindowManagerService;->thawRotation()V
 HPLcom/android/server/wm/WindowManagerService;->triggerAnimationFailsafe()V
-HPLcom/android/server/wm/WindowManagerService;->tryStartExitingAnimation(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;Z)Z
-HPLcom/android/server/wm/WindowManagerService;->unprivilegedAppCanCreateTokenWith(Lcom/android/server/wm/WindowState;IIILandroid/os/IBinder;Ljava/lang/String;)Z
+HSPLcom/android/server/wm/WindowManagerService;->tryStartExitingAnimation(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;Z)Z
+HSPLcom/android/server/wm/WindowManagerService;->unprivilegedAppCanCreateTokenWith(Lcom/android/server/wm/WindowState;IIILandroid/os/IBinder;Ljava/lang/String;)Z
 PLcom/android/server/wm/WindowManagerService;->unregisterAppFreezeListener(Lcom/android/server/wm/WindowManagerService$AppFreezeListener;)V
 PLcom/android/server/wm/WindowManagerService;->unregisterSystemGestureExclusionListener(Landroid/view/ISystemGestureExclusionListener;I)V
 PLcom/android/server/wm/WindowManagerService;->unregisterWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)V
@@ -38808,11 +39860,13 @@
 HPLcom/android/server/wm/WindowManagerService;->updateDisplayContentLocation(Landroid/view/IWindow;III)V
 HSPLcom/android/server/wm/WindowManagerService;->updateFocusedWindowLocked(IZ)Z
 PLcom/android/server/wm/WindowManagerService;->updateHiddenWhileSuspendedState(Landroid/util/ArraySet;Z)V
+HPLcom/android/server/wm/WindowManagerService;->updateInputChannel(Landroid/os/IBinder;IIILandroid/view/SurfaceControl;Ljava/lang/String;Landroid/view/InputApplicationHandle;I)V
 HSPLcom/android/server/wm/WindowManagerService;->updateNonSystemOverlayWindowsVisibilityIfNeeded(Lcom/android/server/wm/WindowState;Z)V
-PLcom/android/server/wm/WindowManagerService;->updatePointerIcon(Landroid/view/IWindow;)V
+HPLcom/android/server/wm/WindowManagerService;->updatePointerIcon(Landroid/view/IWindow;)V
 HSPLcom/android/server/wm/WindowManagerService;->updateRotation(ZZ)V
 HSPLcom/android/server/wm/WindowManagerService;->updateRotationUnchecked(ZZ)V
-PLcom/android/server/wm/WindowManagerService;->updateTapExcludeRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
+HPLcom/android/server/wm/WindowManagerService;->updateTapExcludeRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
+HSPLcom/android/server/wm/WindowManagerService;->useBLAST()Z
 HPLcom/android/server/wm/WindowManagerService;->watchRotation(Landroid/view/IRotationWatcher;I)I
 HSPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/os/IBinder;Z)Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/view/IWindow;Z)Lcom/android/server/wm/WindowState;
@@ -38833,7 +39887,7 @@
 HSPLcom/android/server/wm/WindowProcessController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;IILjava/lang/Object;Lcom/android/server/wm/WindowProcessListener;)V
 HSPLcom/android/server/wm/WindowProcessController;->addActivityIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/WindowProcessController;->addPackage(Ljava/lang/String;)V
-PLcom/android/server/wm/WindowProcessController;->addRecentTask(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/WindowProcessController;->addRecentTask(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/WindowProcessController;->appDied()V
 PLcom/android/server/wm/WindowProcessController;->appDied(Ljava/lang/String;)V
 HPLcom/android/server/wm/WindowProcessController;->appEarlyNotResponding(Ljava/lang/String;Ljava/lang/Runnable;)V
@@ -38841,6 +39895,7 @@
 PLcom/android/server/wm/WindowProcessController;->areBackgroundActivityStartsAllowed()Z
 HSPLcom/android/server/wm/WindowProcessController;->clearActivities()V
 HPLcom/android/server/wm/WindowProcessController;->clearPackageList()V
+PLcom/android/server/wm/WindowProcessController;->clearPackagePreferredForHomeActivities()V
 HSPLcom/android/server/wm/WindowProcessController;->clearRecentTasks()V
 HPLcom/android/server/wm/WindowProcessController;->computeOomAdjFromActivities(ILcom/android/server/wm/WindowProcessController$ComputeOomAdjCallback;)I
 HPLcom/android/server/wm/WindowProcessController;->computeRelaunchReason()I
@@ -38898,7 +39953,7 @@
 PLcom/android/server/wm/WindowProcessController;->registerDisplayConfigurationListener(Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/WindowProcessController;->registerDisplayConfigurationListenerLocked(Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/WindowProcessController;->registeredForDisplayConfigChanges()Z
-PLcom/android/server/wm/WindowProcessController;->releaseSomeActivities(Ljava/lang/String;)V
+HPLcom/android/server/wm/WindowProcessController;->releaseSomeActivities(Ljava/lang/String;)V
 HPLcom/android/server/wm/WindowProcessController;->removeActivity(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/WindowProcessController;->removeRecentTask(Lcom/android/server/wm/Task;)V
 HSPLcom/android/server/wm/WindowProcessController;->setAllowBackgroundActivityStarts(Z)V
@@ -38930,7 +39985,7 @@
 HPLcom/android/server/wm/WindowProcessController;->setRunningRemoteAnimation(Z)V
 HSPLcom/android/server/wm/WindowProcessController;->setThread(Landroid/app/IApplicationThread;)V
 HSPLcom/android/server/wm/WindowProcessController;->setUsingWrapper(Z)V
-HPLcom/android/server/wm/WindowProcessController;->setWhenUnimportant(J)V
+HSPLcom/android/server/wm/WindowProcessController;->setWhenUnimportant(J)V
 HPLcom/android/server/wm/WindowProcessController;->shouldKillProcessForRemovedTask(Lcom/android/server/wm/Task;)Z
 HSPLcom/android/server/wm/WindowProcessController;->shouldSetProfileProc()Z
 HPLcom/android/server/wm/WindowProcessController;->stopFreezingActivities()V
@@ -39007,15 +40062,16 @@
 HPLcom/android/server/wm/WindowState;->computeFrame(Lcom/android/server/wm/DisplayFrames;)V
 HSPLcom/android/server/wm/WindowState;->computeFrameLw()V
 HSPLcom/android/server/wm/WindowState;->cropRegionToStackBoundsIfNeeded(Landroid/graphics/Region;)V
-HPLcom/android/server/wm/WindowState;->destroySurface(ZZ)Z
-PLcom/android/server/wm/WindowState;->destroySurfaceUnchecked()V
+HSPLcom/android/server/wm/WindowState;->destroySurface(ZZ)Z
+HSPLcom/android/server/wm/WindowState;->destroySurfaceUnchecked()V
 HPLcom/android/server/wm/WindowState;->dispatchResized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;ZILandroid/view/DisplayCutout;)V
 HSPLcom/android/server/wm/WindowState;->dispatchWallpaperVisibility(Z)V
 HPLcom/android/server/wm/WindowState;->disposeInputChannel()V
 HPLcom/android/server/wm/WindowState;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
-HPLcom/android/server/wm/WindowState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HSPLcom/android/server/wm/WindowState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 HSPLcom/android/server/wm/WindowState;->expandForSurfaceInsets(Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/WindowState;->fillsDisplay()Z
+HPLcom/android/server/wm/WindowState;->finishDrawing(Landroid/view/SurfaceControl$Transaction;)Z
 HSPLcom/android/server/wm/WindowState;->finishSeamlessRotation(Z)V
 HPLcom/android/server/wm/WindowState;->forAllWindowBottomToTop(Lcom/android/internal/util/ToBooleanFunction;)Z
 HPLcom/android/server/wm/WindowState;->forAllWindowTopToBottom(Lcom/android/internal/util/ToBooleanFunction;)Z
@@ -39054,20 +40110,21 @@
 HSPLcom/android/server/wm/WindowState;->getInsetsForRelayout(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/WindowState;->getKeyInterceptionInfo()Lcom/android/internal/policy/KeyInterceptionInfo;
 HSPLcom/android/server/wm/WindowState;->getLastReportedConfiguration()Landroid/content/res/Configuration;
-HPLcom/android/server/wm/WindowState;->getLastReportedMergedConfiguration(Landroid/util/MergedConfiguration;)V
+HSPLcom/android/server/wm/WindowState;->getLastReportedMergedConfiguration(Landroid/util/MergedConfiguration;)V
 HPLcom/android/server/wm/WindowState;->getLayoutingWindowFrames()Lcom/android/server/wm/WindowFrames;
 HSPLcom/android/server/wm/WindowState;->getMergedConfiguration(Landroid/util/MergedConfiguration;)V
 HSPLcom/android/server/wm/WindowState;->getName()Ljava/lang/String;
 HSPLcom/android/server/wm/WindowState;->getOrientationChanging()Z
 HSPLcom/android/server/wm/WindowState;->getOwningPackage()Ljava/lang/String;
 HSPLcom/android/server/wm/WindowState;->getOwningUid()I
+PLcom/android/server/wm/WindowState;->getParentFrame()Landroid/graphics/Rect;
 HSPLcom/android/server/wm/WindowState;->getParentWindow()Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowState;->getProcessGlobalConfiguration()Landroid/content/res/Configuration;
 HSPLcom/android/server/wm/WindowState;->getReplacingWindow()Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/WindowState;->getRequestedInsetsState()Landroid/view/InsetsState;
 PLcom/android/server/wm/WindowState;->getResizeMode()I
 HSPLcom/android/server/wm/WindowState;->getRootTask()Lcom/android/server/wm/ActivityStack;
-HPLcom/android/server/wm/WindowState;->getRootTaskId()I
+HSPLcom/android/server/wm/WindowState;->getRootTaskId()I
 PLcom/android/server/wm/WindowState;->getRotationAnimationHint()I
 HSPLcom/android/server/wm/WindowState;->getSession()Landroid/view/SurfaceSession;
 PLcom/android/server/wm/WindowState;->getStableFrameLw()Landroid/graphics/Rect;
@@ -39075,7 +40132,7 @@
 HPLcom/android/server/wm/WindowState;->getStableInsets(Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/WindowState;->getStack()Lcom/android/server/wm/ActivityStack;
 HPLcom/android/server/wm/WindowState;->getStackId()I
-PLcom/android/server/wm/WindowState;->getSurfaceLayer()I
+HPLcom/android/server/wm/WindowState;->getSurfaceLayer()I
 HSPLcom/android/server/wm/WindowState;->getSurfaceTouchableRegion(Landroid/view/InputWindowHandle;I)I
 HPLcom/android/server/wm/WindowState;->getSystemGestureExclusion()Ljava/util/List;
 HSPLcom/android/server/wm/WindowState;->getSystemUiVisibility()I
@@ -39085,7 +40142,7 @@
 HSPLcom/android/server/wm/WindowState;->getTouchableRegion(Landroid/graphics/Region;)V
 HPLcom/android/server/wm/WindowState;->getTransformationMatrix([FLandroid/graphics/Matrix;)V
 HPLcom/android/server/wm/WindowState;->getVisibleBounds(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowState;->getVisibleFrameLw()Landroid/graphics/Rect;
+HPLcom/android/server/wm/WindowState;->getVisibleFrameLw()Landroid/graphics/Rect;
 HPLcom/android/server/wm/WindowState;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowState;->getWindowFrames()Lcom/android/server/wm/WindowFrames;
 HPLcom/android/server/wm/WindowState;->getWindowInfo()Landroid/view/WindowInfo;
@@ -39134,7 +40191,7 @@
 HSPLcom/android/server/wm/WindowState;->isLetterboxedAppWindow()Z
 HSPLcom/android/server/wm/WindowState;->isLetterboxedForDisplayCutoutLw()Z
 HSPLcom/android/server/wm/WindowState;->isLetterboxedOverlappingWith(Landroid/graphics/Rect;)Z
-PLcom/android/server/wm/WindowState;->isNonToastOrStarting()Z
+HPLcom/android/server/wm/WindowState;->isNonToastOrStarting()Z
 PLcom/android/server/wm/WindowState;->isNonToastWindowVisibleForPid(I)Z
 HPLcom/android/server/wm/WindowState;->isNonToastWindowVisibleForUid(I)Z
 HSPLcom/android/server/wm/WindowState;->isObscuringDisplay()Z
@@ -39146,16 +40203,16 @@
 HSPLcom/android/server/wm/WindowState;->isReadyForDisplay()Z
 HSPLcom/android/server/wm/WindowState;->isRecentsAnimationConsumingAppInput()Z
 HSPLcom/android/server/wm/WindowState;->isRtl()Z
-HPLcom/android/server/wm/WindowState;->isSelfOrAncestorWindowAnimatingExit()Z
+HSPLcom/android/server/wm/WindowState;->isSelfOrAncestorWindowAnimatingExit()Z
 HSPLcom/android/server/wm/WindowState;->isVisible()Z
 HSPLcom/android/server/wm/WindowState;->isVisibleByPolicy()Z
 HSPLcom/android/server/wm/WindowState;->isVisibleLw()Z
-HPLcom/android/server/wm/WindowState;->isVisibleNow()Z
+HSPLcom/android/server/wm/WindowState;->isVisibleNow()Z
 HSPLcom/android/server/wm/WindowState;->isVisibleOrAdding()Z
 HSPLcom/android/server/wm/WindowState;->isVoiceInteraction()Z
-HPLcom/android/server/wm/WindowState;->isWinVisibleLw()Z
+HSPLcom/android/server/wm/WindowState;->isWinVisibleLw()Z
 HPLcom/android/server/wm/WindowState;->layoutInParentFrame()Z
-HPLcom/android/server/wm/WindowState;->logExclusionRestrictions(I)V
+HSPLcom/android/server/wm/WindowState;->logExclusionRestrictions(I)V
 HSPLcom/android/server/wm/WindowState;->logPerformShow(Ljava/lang/String;)V
 HSPLcom/android/server/wm/WindowState;->matchesDisplayBounds()Z
 HSPLcom/android/server/wm/WindowState;->mightAffectAllDrawn()Z
@@ -39166,9 +40223,9 @@
 HPLcom/android/server/wm/WindowState;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/WindowState;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 HPLcom/android/server/wm/WindowState;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/WindowState;->onAppVisibilityChanged(ZZ)V
+HSPLcom/android/server/wm/WindowState;->onAppVisibilityChanged(ZZ)V
 HSPLcom/android/server/wm/WindowState;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/WindowState;->onExitAnimationDone()V
+HSPLcom/android/server/wm/WindowState;->onExitAnimationDone()V
 HSPLcom/android/server/wm/WindowState;->onMergedOverrideConfigurationChanged()V
 HPLcom/android/server/wm/WindowState;->onMovedByResize()V
 HSPLcom/android/server/wm/WindowState;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
@@ -39192,6 +40249,7 @@
 HPLcom/android/server/wm/WindowState;->removeIfPossible()V
 HPLcom/android/server/wm/WindowState;->removeIfPossible(Z)V
 HPLcom/android/server/wm/WindowState;->removeImmediately()V
+PLcom/android/server/wm/WindowState;->removeReplacedWindow()V
 HSPLcom/android/server/wm/WindowState;->removeReplacedWindowIfNeeded(Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/WindowState;->reportFocusChangedSerialized(Z)V
 HSPLcom/android/server/wm/WindowState;->reportFocusChangedSerialized(ZZ)V
@@ -39200,10 +40258,10 @@
 HPLcom/android/server/wm/WindowState;->requestUpdateWallpaperIfNeeded()V
 PLcom/android/server/wm/WindowState;->resetAppOpsState()V
 HSPLcom/android/server/wm/WindowState;->resetContentChanged()V
-PLcom/android/server/wm/WindowState;->resetDragResizingChangeReported()V
+HPLcom/android/server/wm/WindowState;->resetDragResizingChangeReported()V
 PLcom/android/server/wm/WindowState;->resetLastContentInsets()V
 HPLcom/android/server/wm/WindowState;->seamlesslyRotateIfAllowed(Landroid/view/SurfaceControl$Transaction;IIZ)V
-HPLcom/android/server/wm/WindowState;->sendAppVisibilityToClients()V
+HSPLcom/android/server/wm/WindowState;->sendAppVisibilityToClients()V
 PLcom/android/server/wm/WindowState;->setAppOpVisibilityLw(Z)V
 HSPLcom/android/server/wm/WindowState;->setDisplayLayoutNeeded()V
 HPLcom/android/server/wm/WindowState;->setDragResizing()V
@@ -39261,9 +40319,9 @@
 HPLcom/android/server/wm/WindowState;->updateTapExcludeRegion(Landroid/graphics/Region;)V
 HPLcom/android/server/wm/WindowState;->waitingForReplacement()Z
 HSPLcom/android/server/wm/WindowState;->wouldBeVisibleIfPolicyIgnored()Z
-HPLcom/android/server/wm/WindowState;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/WindowState;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/WindowStateAnimator;-><init>(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/WindowStateAnimator;->applyAnimationLocked(IZ)Z
+HSPLcom/android/server/wm/WindowStateAnimator;->applyAnimationLocked(IZ)Z
 HSPLcom/android/server/wm/WindowStateAnimator;->applyCrop(Landroid/graphics/Rect;Z)V
 HSPLcom/android/server/wm/WindowStateAnimator;->applyEnterAnimationLocked()V
 HSPLcom/android/server/wm/WindowStateAnimator;->calculateCrop(Landroid/graphics/Rect;)Z
@@ -39272,13 +40330,13 @@
 HSPLcom/android/server/wm/WindowStateAnimator;->computeShownFrameLocked()V
 HSPLcom/android/server/wm/WindowStateAnimator;->createSurfaceLocked(II)Lcom/android/server/wm/WindowSurfaceController;
 HPLcom/android/server/wm/WindowStateAnimator;->destroyDeferredSurfaceLocked()V
-HPLcom/android/server/wm/WindowStateAnimator;->destroyPreservedSurfaceLocked()V
-HPLcom/android/server/wm/WindowStateAnimator;->destroySurface()V
-HPLcom/android/server/wm/WindowStateAnimator;->destroySurfaceLocked()V
-HPLcom/android/server/wm/WindowStateAnimator;->detachChildren()V
+HSPLcom/android/server/wm/WindowStateAnimator;->destroyPreservedSurfaceLocked()V
+HSPLcom/android/server/wm/WindowStateAnimator;->destroySurface()V
+HSPLcom/android/server/wm/WindowStateAnimator;->destroySurfaceLocked()V
+HSPLcom/android/server/wm/WindowStateAnimator;->detachChildren()V
 PLcom/android/server/wm/WindowStateAnimator;->drawStateToString()Ljava/lang/String;
 HPLcom/android/server/wm/WindowStateAnimator;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
-HPLcom/android/server/wm/WindowStateAnimator;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/WindowStateAnimator;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/WindowStateAnimator;->finishDrawingLocked(Landroid/view/SurfaceControl$Transaction;)Z
 HPLcom/android/server/wm/WindowStateAnimator;->getDeferTransactionBarrier()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/WindowStateAnimator;->getShown()Z
@@ -39300,13 +40358,14 @@
 HSPLcom/android/server/wm/WindowStateAnimator;->setWallpaperOffset(II)Z
 HSPLcom/android/server/wm/WindowStateAnimator;->showSurfaceRobustlyLocked()Z
 HPLcom/android/server/wm/WindowStateAnimator;->toString()Ljava/lang/String;
-PLcom/android/server/wm/WindowStateAnimator;->tryChangeFormatInPlaceLocked()Z
+HPLcom/android/server/wm/WindowStateAnimator;->tryChangeFormatInPlaceLocked()Z
 HSPLcom/android/server/wm/WindowSurfaceController;-><init>(Ljava/lang/String;IIIILcom/android/server/wm/WindowStateAnimator;II)V
 HSPLcom/android/server/wm/WindowSurfaceController;->clearCropInTransaction(Z)V
-HPLcom/android/server/wm/WindowSurfaceController;->destroyNotInTransaction()V
-HPLcom/android/server/wm/WindowSurfaceController;->detachChildren()V
+PLcom/android/server/wm/WindowSurfaceController;->deferTransactionUntil(Landroid/view/SurfaceControl;J)V
+HSPLcom/android/server/wm/WindowSurfaceController;->destroyNotInTransaction()V
+HSPLcom/android/server/wm/WindowSurfaceController;->detachChildren()V
 HPLcom/android/server/wm/WindowSurfaceController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
-HPLcom/android/server/wm/WindowSurfaceController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/WindowSurfaceController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 PLcom/android/server/wm/WindowSurfaceController;->forceScaleableInTransaction(Z)V
 HSPLcom/android/server/wm/WindowSurfaceController;->getBLASTSurfaceControl(Landroid/view/SurfaceControl;)V
 PLcom/android/server/wm/WindowSurfaceController;->getDeferTransactionBarrier()Landroid/view/SurfaceControl;
@@ -39315,10 +40374,10 @@
 HSPLcom/android/server/wm/WindowSurfaceController;->getSurfaceControl(Landroid/view/SurfaceControl;)V
 HSPLcom/android/server/wm/WindowSurfaceController;->getWidth()I
 HSPLcom/android/server/wm/WindowSurfaceController;->hasSurface()Z
-HPLcom/android/server/wm/WindowSurfaceController;->hide(Landroid/view/SurfaceControl$Transaction;Ljava/lang/String;)V
-HPLcom/android/server/wm/WindowSurfaceController;->hideSurface(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/wm/WindowSurfaceController;->hide(Landroid/view/SurfaceControl$Transaction;Ljava/lang/String;)V
+HSPLcom/android/server/wm/WindowSurfaceController;->hideSurface(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/WindowSurfaceController;->prepareToShowInTransaction(FFFFFZ)Z
-HPLcom/android/server/wm/WindowSurfaceController;->setBufferSizeInTransaction(IIZ)Z
+HSPLcom/android/server/wm/WindowSurfaceController;->setBufferSizeInTransaction(IIZ)Z
 HSPLcom/android/server/wm/WindowSurfaceController;->setColorSpaceAgnostic(Z)V
 HSPLcom/android/server/wm/WindowSurfaceController;->setCropInTransaction(Landroid/graphics/Rect;Z)V
 HSPLcom/android/server/wm/WindowSurfaceController;->setMatrix(Landroid/view/SurfaceControl$Transaction;FFFFZ)V
@@ -39366,7 +40425,7 @@
 HPLcom/android/server/wm/WindowToken;->removeAllWindowsIfPossible()V
 HPLcom/android/server/wm/WindowToken;->removeImmediately()V
 HPLcom/android/server/wm/WindowToken;->setExiting()V
-HPLcom/android/server/wm/WindowToken;->toString()Ljava/lang/String;
+HSPLcom/android/server/wm/WindowToken;->toString()Ljava/lang/String;
 HPLcom/android/server/wm/WindowToken;->windowsCanBeWallpaperTarget()Z
 HSPLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;I)V
 HSPLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;Lcom/android/server/wm/WindowManagerGlobalLock;I)V
@@ -39378,13 +40437,13 @@
 HSPLcom/android/server/wm/WindowTracing;->setBufferCapacity(ILjava/io/PrintWriter;)V
 HSPLcom/android/server/wm/WindowTracing;->setLogLevel(ILjava/io/PrintWriter;)V
 PLcom/android/server/wm/animation/ClipRectLRAnimation;-><init>(IIII)V
-PLcom/android/server/wm/animation/ClipRectLRAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HPLcom/android/server/wm/animation/ClipRectLRAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
 PLcom/android/server/wm/animation/ClipRectTBAnimation;-><init>(IIIIIILandroid/view/animation/Interpolator;)V
 HPLcom/android/server/wm/animation/ClipRectTBAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
 HPLcom/android/server/wm/animation/ClipRectTBAnimation;->getTransformation(JLandroid/view/animation/Transformation;)Z
 PLcom/android/server/wm/animation/CurvedTranslateAnimation;-><init>(Landroid/graphics/Path;)V
 PLcom/android/server/wm/animation/CurvedTranslateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
-PLcom/android/server/wm/utils/CoordinateTransforms;->transformLogicalToPhysicalCoordinates(IIILandroid/graphics/Matrix;)V
+HPLcom/android/server/wm/utils/CoordinateTransforms;->transformLogicalToPhysicalCoordinates(IIILandroid/graphics/Matrix;)V
 HSPLcom/android/server/wm/utils/CoordinateTransforms;->transformPhysicalToLogicalCoordinates(IIILandroid/graphics/Matrix;)V
 HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;-><init>()V
 HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
@@ -39403,9 +40462,9 @@
 HPLcom/android/server/wm/utils/RegionUtils;->forEachRect(Landroid/graphics/Region;Ljava/util/function/Consumer;)V
 HPLcom/android/server/wm/utils/RegionUtils;->forEachRectReverse(Landroid/graphics/Region;Ljava/util/function/Consumer;)V
 HPLcom/android/server/wm/utils/RegionUtils;->rectListToRegion(Ljava/util/List;Landroid/graphics/Region;)V
-PLcom/android/server/wm/utils/RotationAnimationUtils;->createRotationMatrix(IIILandroid/graphics/Matrix;)V
+HPLcom/android/server/wm/utils/RotationAnimationUtils;->createRotationMatrix(IIILandroid/graphics/Matrix;)V
 HPLcom/android/server/wm/utils/RotationAnimationUtils;->getAvgBorderLuma(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)F
-PLcom/android/server/wm/utils/RotationAnimationUtils;->getLumaOfSurfaceControl(Landroid/view/Display;Landroid/view/SurfaceControl;)F
+HPLcom/android/server/wm/utils/RotationAnimationUtils;->getLumaOfSurfaceControl(Landroid/view/Display;Landroid/view/SurfaceControl;)F
 HSPLcom/android/server/wm/utils/RotationCache;-><init>(Lcom/android/server/wm/utils/RotationCache$RotationDependentComputation;)V
 HSPLcom/android/server/wm/utils/RotationCache;->getOrCompute(Ljava/lang/Object;I)Ljava/lang/Object;
 HSPLcom/android/server/wm/utils/WmDisplayCutout;-><clinit>()V
@@ -39414,6 +40473,7 @@
 HSPLcom/android/server/wm/utils/WmDisplayCutout;->computeSafeInsets(Landroid/util/Size;Landroid/view/DisplayCutout;)Landroid/graphics/Rect;
 HSPLcom/android/server/wm/utils/WmDisplayCutout;->computeSafeInsets(Landroid/view/DisplayCutout;II)Lcom/android/server/wm/utils/WmDisplayCutout;
 HSPLcom/android/server/wm/utils/WmDisplayCutout;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/utils/WmDisplayCutout;->findCutoutInsetForSide(Landroid/util/Size;Landroid/graphics/Rect;I)I
 HSPLcom/android/server/wm/utils/WmDisplayCutout;->findInsetForSide(Landroid/util/Size;Ljava/util/List;I)I
 HSPLcom/android/server/wm/utils/WmDisplayCutout;->getDisplayCutout()Landroid/view/DisplayCutout;
 HPLcom/android/server/wm/utils/WmDisplayCutout;->inset(IIII)Lcom/android/server/wm/utils/WmDisplayCutout;
@@ -39423,11 +40483,11 @@
 HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$B9wq4q5y7qahY6TuLMO_s8nPIwY;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[BI)V
 HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$B9wq4q5y7qahY6TuLMO_s8nPIwY;->run(Lcom/google/android/startop/iorap/IIorap;)V
 HPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$J1AHa-Qs75WQr3stjbN97THbudE;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[BJ)V
-PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$J1AHa-Qs75WQr3stjbN97THbudE;->run(Lcom/google/android/startop/iorap/IIorap;)V
+HPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$J1AHa-Qs75WQr3stjbN97THbudE;->run(Lcom/google/android/startop/iorap/IIorap;)V
 PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$bprgjb2FWBxwWDJr-Q4ViVP0aJc;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[BJ)V
 PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$bprgjb2FWBxwWDJr-Q4ViVP0aJc;->run(Lcom/google/android/startop/iorap/IIorap;)V
-PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[B)V
-PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;->run(Lcom/google/android/startop/iorap/IIorap;)V
+HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[B)V
+HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;->run(Lcom/google/android/startop/iorap/IIorap;)V
 HPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$qed0q0aplGsIh0O7dSm6JWk8wZI;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;)V
 HPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$qed0q0aplGsIh0O7dSm6JWk8wZI;->run(Lcom/google/android/startop/iorap/IIorap;)V
 PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$LUEcmjVFTNORsDoHk5dk5OHflTU;-><init>(Lcom/google/android/startop/iorap/RequestId;Landroid/app/job/JobParameters;)V
@@ -39435,8 +40495,8 @@
 HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
 HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;->run(Lcom/google/android/startop/iorap/IIorap;)V
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$1;-><init>()V
-PLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchCancelled;-><init>(J[B)V
-PLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchCancelled;->writeToParcelImpl(Landroid/os/Parcel;I)V
+HSPLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchCancelled;-><init>(J[B)V
+HSPLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchCancelled;->writeToParcelImpl(Landroid/os/Parcel;I)V
 HPLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchFinished;-><init>(J[BJ)V
 HPLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchFinished;->writeToParcelImpl(Landroid/os/Parcel;I)V
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunched;-><init>(J[BI)V
@@ -39444,7 +40504,7 @@
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$ActivityRecordProtoParcelable;->write(Landroid/os/Parcel;[BI)V
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$BaseWithActivityRecordData;-><init>(J[B)V
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$BaseWithActivityRecordData;->writeToParcelImpl(Landroid/os/Parcel;I)V
-PLcom/google/android/startop/iorap/AppLaunchEvent$IntentFailed;-><init>(J)V
+HPLcom/google/android/startop/iorap/AppLaunchEvent$IntentFailed;-><init>(J)V
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$IntentProtoParcelable;->write(Landroid/os/Parcel;Landroid/content/Intent;I)V
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$IntentStarted;-><init>(JLandroid/content/Intent;J)V
 HSPLcom/google/android/startop/iorap/AppLaunchEvent$IntentStarted;->writeToParcelImpl(Landroid/os/Parcel;I)V
@@ -39462,7 +40522,7 @@
 HSPLcom/google/android/startop/iorap/EventSequenceValidator;-><init>()V
 HPLcom/google/android/startop/iorap/EventSequenceValidator;->decAccIntentStartedEvents()V
 HPLcom/google/android/startop/iorap/EventSequenceValidator;->incAccIntentStartedEvents()V
-PLcom/google/android/startop/iorap/EventSequenceValidator;->onActivityLaunchCancelled([B)V
+HSPLcom/google/android/startop/iorap/EventSequenceValidator;->onActivityLaunchCancelled([B)V
 HPLcom/google/android/startop/iorap/EventSequenceValidator;->onActivityLaunchFinished([BJ)V
 HSPLcom/google/android/startop/iorap/EventSequenceValidator;->onActivityLaunched([BI)V
 HPLcom/google/android/startop/iorap/EventSequenceValidator;->onIntentFailed()V
@@ -39481,13 +40541,13 @@
 PLcom/google/android/startop/iorap/IorapForwardingService$1;->binderDied()V
 HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
 HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Lcom/google/android/startop/iorap/IorapForwardingService$1;)V
-PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onActivityLaunchCancelled$3$IorapForwardingService$AppLaunchObserver([BLcom/google/android/startop/iorap/IIorap;)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onActivityLaunchCancelled$3$IorapForwardingService$AppLaunchObserver([BLcom/google/android/startop/iorap/IIorap;)V
 HPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onActivityLaunchFinished$4$IorapForwardingService$AppLaunchObserver([BJLcom/google/android/startop/iorap/IIorap;)V
 HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onActivityLaunched$2$IorapForwardingService$AppLaunchObserver([BILcom/google/android/startop/iorap/IIorap;)V
 HPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onIntentFailed$1$IorapForwardingService$AppLaunchObserver(Lcom/google/android/startop/iorap/IIorap;)V
 HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onIntentStarted$0$IorapForwardingService$AppLaunchObserver(Landroid/content/Intent;JLcom/google/android/startop/iorap/IIorap;)V
 PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onReportFullyDrawn$5$IorapForwardingService$AppLaunchObserver([BJLcom/google/android/startop/iorap/IIorap;)V
-PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onActivityLaunchCancelled([B)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onActivityLaunchCancelled([B)V
 HPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onActivityLaunchFinished([BJ)V
 HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onActivityLaunched([BI)V
 HPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onIntentFailed()V
@@ -39576,6 +40636,8 @@
 Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
 Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;
 Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback;
+Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;
+Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback;
 Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;
 Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
 Landroid/hardware/configstore/V1_0/OptionalBool;
@@ -39613,7 +40675,6 @@
 Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByCarrierCallback;
 Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByDeviceCallback;
 Landroid/hardware/oemlock/V1_0/IOemLock;
-Landroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;
 Landroid/hardware/rebootescrow/IRebootEscrow$Stub;
 Landroid/hardware/rebootescrow/IRebootEscrow;
 Landroid/hardware/soundtrigger/V2_0/ConfidenceLevel;
@@ -39691,6 +40752,12 @@
 Landroid/hidl/manager/V1_2/IClientCallback;
 Landroid/hidl/manager/V1_2/IServiceManager$Proxy;
 Landroid/hidl/manager/V1_2/IServiceManager;
+Landroid/net/-$$Lambda$IpMemoryStore$LPW97BoNSL4rh_RVPiAHfCbmGHU;
+Landroid/net/-$$Lambda$IpMemoryStore$pFctTFAvh_Nxb_aTb0gjNsixGeM;
+Landroid/net/-$$Lambda$IpMemoryStoreClient$284VFgqq7BBkkwVNFLIrF3c59Es;
+Landroid/net/-$$Lambda$IpMemoryStoreClient$3VeddAdCuqfXquVC2DlGvI3eVPM;
+Landroid/net/-$$Lambda$IpMemoryStoreClient$4eqT-tDGA25PNMyU_1yqQCF2gOo;
+Landroid/net/-$$Lambda$IpMemoryStoreClient$OI4Zw2djhZoG0D4IE2ujC0Iv6G4;
 Landroid/net/-$$Lambda$NetworkFactory$quULWy1SjqmEQiqq5nzlBuGzTss;
 Landroid/net/-$$Lambda$NetworkStackClient$8Y7GJyozK7_xixdmgfHS4QSif-A;
 Landroid/net/-$$Lambda$NetworkStackClient$EsrnifYD8E-HxTwVQsf45HJKvtM;
@@ -39709,6 +40776,7 @@
 Landroid/net/IDnsResolver$Stub;
 Landroid/net/IDnsResolver;
 Landroid/net/IIpMemoryStore$Stub$Proxy;
+Landroid/net/IIpMemoryStore$Stub;
 Landroid/net/IIpMemoryStore;
 Landroid/net/IIpMemoryStoreCallbacks$Stub;
 Landroid/net/IIpMemoryStoreCallbacks;
@@ -39719,6 +40787,7 @@
 Landroid/net/INetdUnsolicitedEventListener$Stub;
 Landroid/net/INetdUnsolicitedEventListener;
 Landroid/net/INetworkMonitor$Stub$Proxy;
+Landroid/net/INetworkMonitor$Stub;
 Landroid/net/INetworkMonitor;
 Landroid/net/INetworkMonitorCallbacks$Stub;
 Landroid/net/INetworkMonitorCallbacks;
@@ -39730,9 +40799,11 @@
 Landroid/net/InterfaceConfigurationParcel;
 Landroid/net/IpMemoryStore$1;
 Landroid/net/IpMemoryStore;
+Landroid/net/IpMemoryStoreClient$ThrowingRunnable;
 Landroid/net/IpMemoryStoreClient;
 Landroid/net/Layer2PacketParcelable;
 Landroid/net/MarkMaskParcel;
+Landroid/net/NattKeepalivePacketDataParcelable;
 Landroid/net/NetworkMonitorManager;
 Landroid/net/NetworkStackClient$1;
 Landroid/net/NetworkStackClient$Dependencies;
@@ -39744,6 +40815,7 @@
 Landroid/net/PrivateDnsConfigParcel;
 Landroid/net/ProvisioningConfigurationParcelable$1;
 Landroid/net/ProvisioningConfigurationParcelable;
+Landroid/net/ResolverParamsParcel$1;
 Landroid/net/ResolverParamsParcel;
 Landroid/net/RouteInfoParcel;
 Landroid/net/TcpKeepalivePacketData;
@@ -39753,8 +40825,10 @@
 Landroid/net/TetherStatsParcel;
 Landroid/net/TetheringManager$TetheringConnection;
 Landroid/net/TetheringManager;
+Landroid/net/UidRangeParcel$1;
 Landroid/net/UidRangeParcel;
 Landroid/net/dhcp/DhcpServingParamsParcel;
+Landroid/net/dhcp/IDhcpServerCallbacks$Stub;
 Landroid/net/dhcp/IDhcpServerCallbacks;
 Landroid/net/ip/IIpClient$Stub$Proxy;
 Landroid/net/ip/IIpClient$Stub;
@@ -39766,11 +40840,20 @@
 Landroid/net/ip/IpClientManager;
 Landroid/net/ip/IpClientUtil$IpClientCallbacksProxy;
 Landroid/net/ip/IpClientUtil;
+Landroid/net/ipmemorystore/Blob$1;
 Landroid/net/ipmemorystore/Blob;
 Landroid/net/ipmemorystore/IOnBlobRetrievedListener$Default;
+Landroid/net/ipmemorystore/IOnBlobRetrievedListener$Stub;
 Landroid/net/ipmemorystore/IOnBlobRetrievedListener;
+Landroid/net/ipmemorystore/IOnStatusListener$Stub;
+Landroid/net/ipmemorystore/IOnStatusListener;
+Landroid/net/ipmemorystore/OnBlobRetrievedListener$1;
 Landroid/net/ipmemorystore/OnBlobRetrievedListener;
+Landroid/net/ipmemorystore/OnStatusListener$1;
 Landroid/net/ipmemorystore/OnStatusListener;
+Landroid/net/ipmemorystore/Status;
+Landroid/net/ipmemorystore/StatusParcelable$1;
+Landroid/net/ipmemorystore/StatusParcelable;
 Landroid/net/metrics/INetdEventListener$Stub$Proxy;
 Landroid/net/metrics/INetdEventListener$Stub;
 Landroid/net/metrics/INetdEventListener;
@@ -39778,6 +40861,7 @@
 Landroid/net/netlink/NetlinkMessage;
 Landroid/net/shared/-$$Lambda$OsobWheG5dMvEj_cOJtueqUBqBI;
 Landroid/net/shared/-$$Lambda$SYWvjOUPlAZ_O2Z6yfFU9np1858;
+Landroid/net/shared/InitialConfiguration;
 Landroid/net/shared/IpConfigurationParcelableUtil;
 Landroid/net/shared/LinkPropertiesParcelableUtil;
 Landroid/net/shared/NetdUtils;
@@ -39788,6 +40872,7 @@
 Landroid/net/shared/ProvisioningConfiguration;
 Landroid/net/shared/RouteUtils$ModifyOperation;
 Landroid/net/shared/RouteUtils;
+Landroid/net/util/KeepalivePacketDataUtil;
 Landroid/net/util/NetdService$NetdCommand;
 Landroid/net/util/NetdService;
 Landroid/net/util/SharedLog$Category;
@@ -39824,14 +40909,12 @@
 Lcom/android/server/-$$Lambda$BinderCallsStatsService$SettingsObserver$bif9uA0lzoT6htcKe6MNsrH_ha4;
 Lcom/android/server/-$$Lambda$ConnectivityService$3$_itgrpHpWu3QvA9Wb0gtsEYJWZY;
 Lcom/android/server/-$$Lambda$ConnectivityService$HGNmLJFn9hb5C4M_qIm2DAASfeY;
-Lcom/android/server/-$$Lambda$ConnectivityService$LEHWBvz4S-r8QDKRwIiJBgJlcRE;
 Lcom/android/server/-$$Lambda$ConnectivityService$OIhIcUZjeJ-ci4rP6veezE8o67U;
 Lcom/android/server/-$$Lambda$ConnectivityService$SFqiR4Pfksb1C7csMC3uNxCllR8;
 Lcom/android/server/-$$Lambda$ConnectivityService$_7E84WuW6fYNkhu0kZaWBpcTO58;
 Lcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;
 Lcom/android/server/-$$Lambda$ConnectivityService$ehBcQNERx6CsAuQn5W-xyVKZtXo;
 Lcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;
-Lcom/android/server/-$$Lambda$ConnectivityService$tyyIxrN1UBdbonRFAT6eEH4wVic;
 Lcom/android/server/-$$Lambda$ConnectivityService$uvmt4yGRo-ufWZED19neBxJaTNk;
 Lcom/android/server/-$$Lambda$ConnectivityService$vGRhfNpFTw0hellWUlmBolfzRy8;
 Lcom/android/server/-$$Lambda$ContextHubSystemService$q-5gSEKm3he-4vIHcay4DLtf85E;
@@ -39862,6 +40945,7 @@
 Lcom/android/server/-$$Lambda$LocationManagerService$BQNQ1vKVv2dgsjR1d4p8xU8o1us;
 Lcom/android/server/-$$Lambda$LocationManagerService$BY2uqgE48i0Shvo1FGLa9toRxBA;
 Lcom/android/server/-$$Lambda$LocationManagerService$DJ4kMod0tVB-vqSawrWCXTCoPAM;
+Lcom/android/server/-$$Lambda$LocationManagerService$DgmGqZVwms-Y6rAmZybXkZVgJ-Q;
 Lcom/android/server/-$$Lambda$LocationManagerService$EWYAKDMwH-ZXy5A8J9erCTIUqKY;
 Lcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;
 Lcom/android/server/-$$Lambda$LocationManagerService$HZIPtgYCt4b4zdEJtC8qjcHStVE;
@@ -40078,6 +41162,7 @@
 Lcom/android/server/ConnectivityService$CaptivePortalImpl;
 Lcom/android/server/ConnectivityService$ConnectivityDiagnosticsCallbackInfo;
 Lcom/android/server/ConnectivityService$ConnectivityDiagnosticsHandler;
+Lcom/android/server/ConnectivityService$ConnectivityReportEvent;
 Lcom/android/server/ConnectivityService$Dependencies;
 Lcom/android/server/ConnectivityService$InternalHandler;
 Lcom/android/server/ConnectivityService$LegacyTypeTracker;
@@ -40223,6 +41308,7 @@
 Lcom/android/server/NetworkScoreService$ScanResultsSupplier;
 Lcom/android/server/NetworkScoreService$ScoringServiceConnection;
 Lcom/android/server/NetworkScoreService$ServiceHandler;
+Lcom/android/server/NetworkScoreService$WifiInfoSupplier;
 Lcom/android/server/NetworkScoreService;
 Lcom/android/server/NetworkScorerAppManager$SettingsFacade;
 Lcom/android/server/NetworkScorerAppManager;
@@ -40321,6 +41407,7 @@
 Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;
 Lcom/android/server/StorageManagerService$StorageManagerServiceHandler;
 Lcom/android/server/StorageManagerService$UnmountObbAction;
+Lcom/android/server/StorageManagerService$WatchedLockedUsers;
 Lcom/android/server/StorageManagerService;
 Lcom/android/server/SystemConfigService$1;
 Lcom/android/server/SystemConfigService;
@@ -40371,6 +41458,7 @@
 Lcom/android/server/VibratorService$VibrateThread;
 Lcom/android/server/VibratorService$Vibration;
 Lcom/android/server/VibratorService$VibrationInfo;
+Lcom/android/server/VibratorService$VibratorShellCommand$CommonOptions;
 Lcom/android/server/VibratorService$VibratorShellCommand;
 Lcom/android/server/VibratorService;
 Lcom/android/server/Watchdog$1;
@@ -40585,6 +41673,7 @@
 Lcom/android/server/am/-$$Lambda$PendingIntentController$sPmaborOkBSSEP2wiimxXw-eYDQ;
 Lcom/android/server/am/-$$Lambda$PendingIntentRecord$hlEHdgdG_SS5n3v7IRr7e6QZgLQ;
 Lcom/android/server/am/-$$Lambda$PersistentConnection$rkvbuN0FQdQUv1hqSwDvmwwh6Uk;
+Lcom/android/server/am/-$$Lambda$PersistentConnection$xTW-hnA2hSnEFuF87mUe85RYnfE;
 Lcom/android/server/am/-$$Lambda$ProcessList$-WIJmGtIk6c8jVr9HT6EdC2Qnzg;
 Lcom/android/server/am/-$$Lambda$ProcessList$hjUwwFAIhoht4KRKnKeUve_Kcto;
 Lcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;
@@ -40861,8 +41950,10 @@
 Lcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;
 Lcom/android/server/appop/-$$Lambda$6fg-14Ev2L834_Mi1dl7XNuM-aI;
 Lcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;
+Lcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;
 Lcom/android/server/appop/-$$Lambda$AppOpsService$6bQNsBhQYyNmBpWP1n_r2kLsLYY;
 Lcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;
+Lcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;
 Lcom/android/server/appop/-$$Lambda$AppOpsService$ClientRestrictionState$uMVYManZlOG3nljcsmHU5SaC48k;
 Lcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;
 Lcom/android/server/appop/-$$Lambda$AppOpsService$FeatureOp$MYCtEUxKOBmIqr2Vx8cxdcUBE8E;
@@ -40916,14 +42007,19 @@
 Lcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$s2vrDOHz5x1TW_6jMihxp1iCAvg;
 Lcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vSY20eQq5y5FXrxhhqOTcEmezTs;
 Lcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vWB3PdxOOvPr7p0_NmoqXeH8Ros;
+Lcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$ot809pjFOVEJ6shAJalMZ9_QhCo;
 Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$9DCowUTEF8fYuBlWGxOmP5hTAWA;
 Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$Ikwq62LQ8mos7hCBmykUhqvUq2Y;
 Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$UaZoW5Y9AD8L3ktnyw-25jtnxhA;
+Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$dsYLGE9YRnrxNNkC1jG8ymCUr5Q;
 Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$qroIh2ewx0BLP-J9XIAX2CaX8J4;
+Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$sQgYVaCXRIosCYaNa7w5ZuNn7u8;
 Lcom/android/server/appprediction/AppPredictionManagerService$1;
 Lcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;
 Lcom/android/server/appprediction/AppPredictionManagerService;
 Lcom/android/server/appprediction/AppPredictionManagerServiceShellCommand;
+Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo$1;
+Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;
 Lcom/android/server/appprediction/AppPredictionPerUserService;
 Lcom/android/server/appprediction/RemoteAppPredictionService$RemoteAppPredictionServiceCallbacks;
 Lcom/android/server/appprediction/RemoteAppPredictionService;
@@ -41065,14 +42161,19 @@
 Lcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$vGIL1YGX_9ksoSV74T7gO4fkEBE;
 Lcom/android/server/autofill/-$$Lambda$Helper$laLKWmsGqkFIaRXW5rR6_s66Vsw;
 Lcom/android/server/autofill/-$$Lambda$Helper$nK3g_oXXf8NGajcUf0W5JsQzf3w;
+Lcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$06SvcwAr_tZDEPuK1BK6VWFA4mE;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$v9CqZP_PIroMsV929WlHTKMHOHM;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$yudIvtYKB9W2eb_t3RT2S1y3KiI;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$zt04rV6kTquQwdDYqT9tjLbRn14;
+Lcom/android/server/autofill/-$$Lambda$RemoteFillService$MaYOnIAubd8qKbTq0eWkOchXAJk;
+Lcom/android/server/autofill/-$$Lambda$RemoteFillService$RkgpxnfvOIHus8aiIIO_Tqgio1E;
+Lcom/android/server/autofill/-$$Lambda$RemoteFillService$V3RTZXH5ru6fNYPwjZcEmEQQ9-4;
 Lcom/android/server/autofill/-$$Lambda$RemoteInlineSuggestionRenderService$qkXs53uHunrqzogLSpFo1NOYNnw;
 Lcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;
+Lcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;
 Lcom/android/server/autofill/-$$Lambda$Session$xw4trZ-LA7gCvZvpKJ93vf377ak;
 Lcom/android/server/autofill/-$$Lambda$knR7oLyPSG_CoFAxBA_nqSw3JBo;
 Lcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;
@@ -41096,9 +42197,11 @@
 Lcom/android/server/autofill/Helper;
 Lcom/android/server/autofill/InlineSuggestionFactory$InlineSuggestionUiCallback;
 Lcom/android/server/autofill/InlineSuggestionFactory;
+Lcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;
 Lcom/android/server/autofill/RemoteAugmentedAutofillService$1;
 Lcom/android/server/autofill/RemoteAugmentedAutofillService$RemoteAugmentedAutofillServiceCallbacks;
 Lcom/android/server/autofill/RemoteAugmentedAutofillService;
+Lcom/android/server/autofill/RemoteFillService$1;
 Lcom/android/server/autofill/RemoteFillService$FillServiceCallbacks;
 Lcom/android/server/autofill/RemoteFillService;
 Lcom/android/server/autofill/RemoteInlineSuggestionRenderService$InlineSuggestionRenderCallbacks;
@@ -41168,21 +42271,30 @@
 Lcom/android/server/backup/BackupManagerService$1;
 Lcom/android/server/backup/BackupManagerService$Lifecycle;
 Lcom/android/server/backup/BackupManagerService;
+Lcom/android/server/backup/BackupPasswordManager$PasswordHashFileCodec;
+Lcom/android/server/backup/BackupPasswordManager$PasswordVersionFileCodec;
 Lcom/android/server/backup/BackupPasswordManager;
 Lcom/android/server/backup/BackupRestoreTask;
 Lcom/android/server/backup/BackupUtils;
 Lcom/android/server/backup/DataChangedJournal;
 Lcom/android/server/backup/FullBackupJob;
+Lcom/android/server/backup/JobIdManager;
 Lcom/android/server/backup/KeyValueBackupJob;
+Lcom/android/server/backup/PackageManagerBackupAgent$Metadata;
 Lcom/android/server/backup/PackageManagerBackupAgent;
 Lcom/android/server/backup/ProcessedPackagesJournal;
+Lcom/android/server/backup/SystemBackupAgent;
+Lcom/android/server/backup/TransportManager$TransportDescription;
 Lcom/android/server/backup/TransportManager;
+Lcom/android/server/backup/UsageStatsBackupHelper;
 Lcom/android/server/backup/UserBackupManagerFilePersistedSettings;
 Lcom/android/server/backup/UserBackupManagerFiles;
 Lcom/android/server/backup/UserBackupManagerService$1;
 Lcom/android/server/backup/UserBackupManagerService$2;
 Lcom/android/server/backup/UserBackupManagerService$4;
+Lcom/android/server/backup/UserBackupManagerService$BackupWakeLock;
 Lcom/android/server/backup/UserBackupManagerService;
+Lcom/android/server/backup/UserBackupPreferences;
 Lcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$SinglePackageBackupPreflight$hWbC3_rWMPrteAdbbM5aSW2SKD0;
 Lcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$ymLoQLrsEpmGaMrcudrdAgsU1Zk;
 Lcom/android/server/backup/fullbackup/AppMetadataBackupWriter;
@@ -41197,7 +42309,10 @@
 Lcom/android/server/backup/internal/-$$Lambda$BackupHandler$TJcRazGYTaUxjeiX6mPLlipfZUI;
 Lcom/android/server/backup/internal/BackupHandler;
 Lcom/android/server/backup/internal/OnTaskFinishedListener;
+Lcom/android/server/backup/internal/Operation;
 Lcom/android/server/backup/internal/RunBackupReceiver;
+Lcom/android/server/backup/internal/RunInitializeReceiver;
+Lcom/android/server/backup/internal/SetupObserver;
 Lcom/android/server/backup/keyvalue/-$$Lambda$KeyValueBackupTask$NN2H32cNizGxrUxqHgqPqGldNsA;
 Lcom/android/server/backup/keyvalue/AgentException;
 Lcom/android/server/backup/keyvalue/BackupException;
@@ -41205,30 +42320,36 @@
 Lcom/android/server/backup/keyvalue/KeyValueBackupReporter;
 Lcom/android/server/backup/keyvalue/KeyValueBackupTask;
 Lcom/android/server/backup/keyvalue/TaskException;
+Lcom/android/server/backup/params/BackupParams;
 Lcom/android/server/backup/remote/-$$Lambda$RemoteCall$UZaEiTGjS9e2j04YYkGl3Y2ltU4;
 Lcom/android/server/backup/remote/FutureBackupCallback;
 Lcom/android/server/backup/remote/RemoteCall;
 Lcom/android/server/backup/remote/RemoteCallable;
 Lcom/android/server/backup/remote/RemoteResult;
+Lcom/android/server/backup/restore/PerformUnifiedRestoreTask$1;
 Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;
 Lcom/android/server/backup/restore/UnifiedRestoreState;
 Lcom/android/server/backup/transport/-$$Lambda$TransportClient$ciIUj0x0CRg93UETUpy2FB5aqCQ;
 Lcom/android/server/backup/transport/-$$Lambda$TransportClient$uc3fygwQjQIS_JT7mlt-yMBfJcE;
+Lcom/android/server/backup/transport/-$$Lambda$TransportClientManager$3-d3ib7qD5oE9G-iWpfeoufnGXc;
 Lcom/android/server/backup/transport/OnTransportRegisteredListener;
 Lcom/android/server/backup/transport/TransportClient$TransportConnection;
 Lcom/android/server/backup/transport/TransportClient;
 Lcom/android/server/backup/transport/TransportClientManager;
 Lcom/android/server/backup/transport/TransportConnectionListener;
+Lcom/android/server/backup/transport/TransportNotAvailableException;
 Lcom/android/server/backup/transport/TransportStats$Stats;
 Lcom/android/server/backup/transport/TransportStats;
 Lcom/android/server/backup/transport/TransportUtils;
 Lcom/android/server/backup/utils/AppBackupUtils;
 Lcom/android/server/backup/utils/BackupManagerMonitorUtils;
 Lcom/android/server/backup/utils/BackupObserverUtils;
+Lcom/android/server/backup/utils/DataStreamCodec;
 Lcom/android/server/backup/utils/DataStreamFileCodec;
 Lcom/android/server/backup/utils/FileUtils;
 Lcom/android/server/backup/utils/FullBackupUtils;
 Lcom/android/server/backup/utils/RandomAccessFileUtils;
+Lcom/android/server/backup/utils/SparseArrayUtils;
 Lcom/android/server/biometrics/-$$Lambda$BiometricService$IIHhqSKogJZG56VmePRbTOf_5qo;
 Lcom/android/server/biometrics/-$$Lambda$BiometricService$PWa3w6AT62ogdb7_LTOZ5QOYAk4;
 Lcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$5zE_f-JKSpUWsfwvdtw36YktZZ0;
@@ -41416,6 +42537,7 @@
 Lcom/android/server/connectivity/-$$Lambda$Nat464Xlat$PACHOP9HoYvr_jzHtIwFDy31Ud4;
 Lcom/android/server/connectivity/-$$Lambda$PermissionMonitor$h-GPsXXwaQ-Mfu5-dqCp_VIYNOM;
 Lcom/android/server/connectivity/-$$Lambda$TcpKeepaliveController$mLZJWrEAOnfgV5N3ZSa2J3iTmxE;
+Lcom/android/server/connectivity/AutodestructReference;
 Lcom/android/server/connectivity/DataConnectionStats$PhoneStateListenerImpl;
 Lcom/android/server/connectivity/DataConnectionStats;
 Lcom/android/server/connectivity/DefaultNetworkMetrics;
@@ -41455,6 +42577,7 @@
 Lcom/android/server/connectivity/NetworkDiagnostics$SimpleSocketCheck;
 Lcom/android/server/connectivity/NetworkDiagnostics;
 Lcom/android/server/connectivity/NetworkNotificationManager$1;
+Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType$Holder;
 Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;
 Lcom/android/server/connectivity/NetworkNotificationManager;
 Lcom/android/server/connectivity/PacManager$1;
@@ -41551,6 +42674,9 @@
 Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$Qe-DhsP4OR9GyoofNgVlcOk-1so;
 Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$vyDTyUUAt356my5WVtp7QPYv5gY;
 Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$jCIcV2sgwD7QUkN-c6yfPd58T_U;
+Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureServerSession$PKv4-aNj3xMYOeCpzUQZDD2iG0o;
+Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$PMsA3CmwChlM0Qy__Uy6Yr5CFzk;
+Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$QbbzaxOFnxJI34vQptxzLE9Vvog;
 Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$yRaGuMutdbjMq9h32e3TC2_1a_A;
 Lcom/android/server/contentcapture/ContentCaptureManagerInternal;
 Lcom/android/server/contentcapture/ContentCaptureManagerService$1;
@@ -41560,6 +42686,7 @@
 Lcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;
 Lcom/android/server/contentcapture/ContentCaptureManagerService;
 Lcom/android/server/contentcapture/ContentCaptureManagerServiceShellCommand;
+Lcom/android/server/contentcapture/ContentCaptureMetricsLogger;
 Lcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;
 Lcom/android/server/contentcapture/ContentCapturePerUserService;
 Lcom/android/server/contentcapture/ContentCaptureServerSession;
@@ -41581,6 +42708,7 @@
 Lcom/android/server/coverage/CoverageService$CoverageCommand;
 Lcom/android/server/coverage/CoverageService;
 Lcom/android/server/devicepolicy/-$$Lambda$CertificateMonitor$nzwzuvk_fK7AIlili6jDKrKWLJM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-JG0-dzlHzXDx_I_iTsqSE_Bv5E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-SLM70h2SesShbP-O5yYa1PYZVw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-akc0-_Xpj7aIxkCmZXNOwZmfBo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$03gLgx7r9JVlctOr2Y2H2tmFv4c;
@@ -41589,15 +42717,17 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0H5SdBGIQE77NlJ8chd0JlrtVZM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0YdFTQIxrgxkEfzJdhGZzP5z4eM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0nS7EqUlxcoON_ZF5WsIciiV6f4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0xOTapp1kSvojAdqJGdavUtvjqU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$17w9Erg0JBwVQsxp9tlvNXoHag8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$19j1Aw89Idv-1enlT4bK5AugL5A;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1R0QiR_l4mLrk0FOixnnsUDLM1Y;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1GKdSFvjEtRGmiwZbCDJoRMFepQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1XDDDftsFpFAuDCNfSCxMrNxbMk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1Xv08Aj_cK0tIZBpTLTZYh8Zs9s;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1Zyuyui_ku0ZdGgm9CrkOMuG9B8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1_463wML1lyyuhNEcH6YQZBNupk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1iJrvtbb8D-HC5dcMcu7FeZ0bls;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1k_SpqyKkZIiqJdJjszs6AKXu5U;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1sOJuLKtNOd9FkSCbRQ10fuHN1Q;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2CZYBzY0RjTtlQvIxYBzaiQE2iI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2QHA45sHi3IUGkw9j4nqdP1d9f4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2T_rNBu9uZarOjRto1J4yaEXo9g;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2abeHMpplaQvVBNJWjp-qJz5WVw;
@@ -41606,7 +42736,6 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$30ERlBvVSEX3BNYniAbrkpzZMO8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3L30HmY-8WRZNE3mKrX3xDa7_k8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3ci-C-bvTQXBAy8k6mmH8aTckko;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3cl91AM3OrkyrKhqi6ZVDNTQKAA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3fkwqImXZBEqEcBcVdbEHhjgHpw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$3rzSAPGK2j1J59mql6CHDfj5_vM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$408nFvkwnZ8Zkn34fAB90_FIpuw;
@@ -41618,44 +42747,61 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$5VQd88NWLFnS68z-nw7XjNBNv6A;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$5Xy1SW6FmfM4-7F8ZHPEFhBAJjs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$5_qqJuFUQctuq7MUOxfXoWw-5xg;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$5kPrl7RfOVihjpK-CjkN3p9OYZA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$61TNouEBxHkJPj2rdipaYTJjKQ8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6E7MK8TbNUybt8S9CwAdfdcn2x0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6K_0ypBXU-MxW25hBfVb_pa476Y;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6PIUX0yt4TWM8XrZkDVo37n3skQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6SGKr9VhDL9p5RwsHqFj4UpVZTQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6bRYy5LYRT2cwzrjgkdZcHBZJb0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6bgFhX4b-xoNuxSdFAd4tk1EzFE;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6g9CONRefKQHg446cfQoqfOE2Vk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6fSx-VvbGrQUHs8uDCponbuYWlE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6v62O967mjv_sUxIh1CIl2PfYUs;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$72c2Y5FCiFMdxEt_wt0KxdnuNHA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7Cpvth9RknvcbwQxadY3QRMYuFU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7bcaEHXf3TCFcAmnNgQ3w5k52Do;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7d4KuFVANhtDTCmi75jRXr1iwQg;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7tdrvrDzDjaIpmh0xPRc7bOdE6s;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7uNrpVR2JSemRG4moJeAWa1SmL4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$86joUvbxpfClnQ1eB9hM-m3wM3o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8WEE00-ysyIE1NA6831vMvnUKA8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8XUqgbgdUcEUgLSotmYa65MlJU4;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8ellpsdXYuR8VQfhf8jcttRtOvI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8qCcR6mM8qspH7fQ8IbJXDcl-oE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$91lePGqcrxZc3CJvr3r82jo8pqU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9329QIoNkHGDfVCMVsrMCZ8h3Ao;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$95bSRHpBf3i80qNV0pKAIklBD4s;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9BBesRjvUOb0HylcboB6iBXa9rA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9R-Cd8_5zpYXgcD0dtPoPmXylac;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9ZcumXOv56Ei2C9SZ1rGCAWbFq0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9e1WD675Sk7q7eBur0QM_ABo6vQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9slZPgx0YdlOIZDsP-rOhH7cf1I;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ANSk7b4hzAdSQFA5bAuRUa5Wb00;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$AijWRIktKOprZjv1bi4_G1772Mk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$B88N2k2VXcK0ecvZKRQd0Of695o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BG5ucLiTHDdSlIiTv_4KUZ1x4-E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BRpIBuCcPsCOsse3nSRZZGAN6zo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Bg95NheW5thmDvdD-hGXu4jgipE;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Bioo-mDmIMMQbonuT-cTceZugBE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CAHsZjsjfTBjSCaXhAqawAZQxAs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CDHZdCsr9YgduzpjJeJZgy9m_78;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CFMQ1ykMHZEBAbCbIrxt0fG8F6Q;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CRiVj7LcEcD99tgHUWiVKaQNje0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CiK-O2Bv367FPc0wKJTNYLXtCuE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CpvrZCMW3zm0aad04_pjyy_0aZc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CtnVY1-sDsBzKJt5YVB4zyTnSFg;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Cv-dtXpkqSOvZN0Wu3TuYoNTmmU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CxwsOCiBBPip8s6Ob2djUNKClVQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$D4ztnD6BT25lWG-r4PUjRzNR1zs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$DGti-zSjoF-MLpb6ukDfHkXaJIQ;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$DYsx0qhBzzOahNRghHJnWkYxnAE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Dkp34yebHBWf2q7_ZEs8MgnJZqA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$DoYNQjDh3f4X1OciMe8ilnRZ6LQ;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$DpEW_Spt35lWxuyLjPoKFHG86G0;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$DxBMHm4aRy0i5tCMfGO8rgn8Edg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$E3l49EGA6UCGqdaOZqz6OFNlTrc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$E9awYavFY3fUvYuziaFPn187V2A;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EJsqLPPVkijBKCgW-TLEHRRqyDI;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ELgGZgRTw0Tqtx1X-H_oSg6LyLQ;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EP17BrRN9XGszo8-S3fJCWAT_vo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ERuVso0xsJCwwC2166dqVBI8lYA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EXFPU7YOnkkc9OavMU_VthZbEIs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EXuB-2fI5CcnhtDXjFh3KBQt36U;
@@ -41663,31 +42809,33 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EbIZcVNy2OyF5PbYw2fTtScB9Zk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ElWamLudjuXKkng-z8ausIIf74E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EmW1vJQsSAWrjreihtc0C_PUzE8;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EuGKTMwvdflyo2gmfY_QNT1EMBo;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FH6LDUjPuTrmrHOy8qyq914-6zY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FmxOJlCc2MLPPP1wq6qLc9sJsjs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FoRIQWHG7DAHSS17BPWMp1vOTtQ;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$G4W44ReWhy5Zf5FIX4LLR9Rz4wk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GLFaeQoYlGpw9LS1HfFdyYwmh6E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Gay72FJGh9jv-C5zoSYQgAwFMqE;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Gd_Pd_RvM9VhMO0x9QLATLm3qOQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GrJ2yAyrcr8_uJK0BCe9i4AcIYc;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$H1JgNiSBhXsH1Qg5Bfg-nluQHLg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$H87e1pqSu1446VUE1hubyHp3hbY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$H8lbHWL2WUSNlN-y17qv8Zl_H64;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$HAwkboAOU80NC63DsUZKyNQfrFo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$HiDFwQ00KZn2k7XjSY2W4AemAmo;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$HnqfAGN_ZnO8rF2FVNW7FoAEMl4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$HoakbJWSKTWNgXqp-KqZUDQ2v3M;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Hv-tQz9yG7UQN-NW0Pun2vUKT00;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IEMjUYhA0mP8sRicHJTUcSHklKI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IFjmfnHIk0cwZ4cu_jTHWTsMxfc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IH37q4aCcb7fKvN7WNz4-JFtN1M;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IMrqSPgnQFlD9AquL6PEMeRT48A;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ISVxczoeSB_OIc18VUJwvW1XWDw;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IZ6GezAjFbNd9xP94OeI_p0zybU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IiTDvO4lH6i6MSEHWCEcAk85DDE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IzlTyFucmXCd4PMovIDmqmmpJ_Y;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$J1D7mGzV3_Pe5CkN4SOHvBx0GQM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$J40SNkUbFjfJHtRZcSHYbhkkIpg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JBJyALwyQJsZ_dc_0yFxEbDWxjk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JE1PnTEmjhmAR-70siow09xiBRg;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JEgkZ2GnVgvzJnS1uvLsrUt2pUs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JGK9yG1wj3-orqdqBMnl7nMPLL4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JGtG4y8H-HpFqnyntNOiraUJx94;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Jd52Cn2ACBQ9fPq5K732aG_8iTY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JklCLZ8vzxbgTOI4Xt7ZbZsL0Dk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Jn1h0KwAOFO-2SLpickAr7b6UEI;
@@ -41695,19 +42843,19 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KOycIT0DtH49A4P5XWP73pI0dj4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KVBXyPBBtnY04KgNMY8kTUc8TDM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KnolhWMYD7G9f7e3KfTxyhi7Xjg;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Kpq-L39j6WToOeDvDb0Cu0W7nJE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KpzX_BpNOjdEddBwsYhu3UDTjU0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Kt954vcIuhnBMcd-u6lDaLOaZfM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Kxt959fEmzAZCuTvdZLLr4ydBwg;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KzGa6sjvT6iLQsAE7oslmso48Cw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L0UrX9eXuPfnxY8pUss60yr6d3E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L1BjBKCM4PsL1cN_5wbAOuBRIk8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L3XzC2X57y8_uXrsW81Qk8KXQTA;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Ld5sfZCEJNJ2WbpNqes0zQsde2I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LgaheO5I5mZ7xT2AeYYlkZKwrzU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LoHksgFKu14_Ln6PoeosRoDbwSw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LocalService$YxQa4ZcUPWKs76meOLw1c_tn1OU;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LoqX5KbgPsZw5lbWDX6YUnchwpU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LqWF-qLidn4HkLsqZ3tCChYj69k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MBTqJ13s-x_J2oljYVXrMdEJZ8o;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MOLrAJRWCniZfP_bjE3gjYwLUTA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MRmEzbzRUozehYFykb5YqjHEt_s;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MTDdFPtPQJRYX737yGn0OzoNDCQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MW8w4Pd-7XMiVO9Fsi7HcnTblIo;
@@ -41719,15 +42867,16 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NV9-XJEdh3iVV_1FcyzVTLRWMMs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NZ0oxk-Ik8VTdLKIQsEmJ4u8ge4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Nu-f7ZVLk0_egJ3zAQpMMR_T5ZE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$OL2XWo5c7ghltPdi2SyRK5POm-4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$OPWRB8NOzJI5iy7fnh0GBb93YAc;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$OcqRV2qOJlY8E9xCUpwMhJGcmQM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Ohf5PJQmXjsarWisPAuPB8WECX8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$OmIywYg9v-MYZi3nGwhJlkHQU6U;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Onml4JIb-lgf_B0yniDhFL6SqPs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$P2nOCmk6UKsFCZPm0Fr5-8DwJKI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$P3h-UVT190ynE2bPKyoZs8z7pak;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PJ0C7ukpsSrXE-QKILsxBvc5f-U;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PJ6CqvNTZSMVvRrXbSzWp6XiRVE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PQxvRo4LWlTe_I8RQ-J5BqZxYGY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PbWvUymvyMNlDpwaJHqqjloqHY0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PvWvjngN8JqJGeEwEDF8KNY9tDM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Q04hsrQ7laYfGd0a2yxfWGwUB2w;
@@ -41735,13 +42884,14 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Q2aFvXmF7YdOdbBObb4oqHGsO8k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Q9i_tyPkEfhioam4h9dIwd-X4Pg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Q9wyVuMahnMYX1BkwZ0hhT1S6cw;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QIKs-hR7aqMnSRpafXXqeG8aTxs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QQFWZYAphnYjdI68Fks2LdFuAgo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QSJKFWOoJ7s5g0HLgGWDuDCNelU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QSZZ_1yoXc0KadPc27uY1ijTXpM;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QUJm_3fIWeaPInXzmBYpb8UWBEY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QifCEJbi3gYuH5MUDWZlPxWqsmQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QrMlHNz0PC-Ctzh_dDzUj8g5xm0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$R7jNGUHgN9uG5tT_PuItt7Vn00g;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$RB751AcDJaPqaU4DtTtgN1tidpA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$RGykSdYLlh5fe-bGtM_nZQjy8tA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$RMYLQ6bxpyj9L88wy3v1nWqZ7Wg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$RQLjmSc75b3yyzDq48EB60T-xJ0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$RYzj0IXZ3UNMgwQnbenZ8i-9s60;
@@ -41753,23 +42903,22 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$SxNw2QtLreqUCvuB24woR-GjuMA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T-DYGQoYs3p1_NgKsVcKRX8fTnA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T4eSwgayOKOYwmmjCYnPFwO28Pw;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T7SRZQOZqOGELBG7YRAkVmxuJh4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TSS9Yr-s-3wxWw1bzVWIxqNSkMk;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TSnfnLktaFMgNdIMhbxjbiz8gqA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TcNgzWUAWtXQgb-e38C9PKE89Go;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Tf_SuyVihRcKkRFcIwGsSH6fYLU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TistVIXPlboUC3QIj4JSWHtbCxQ;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ToBnODi9cmoTXsgBuVAERPdlksk;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Tvjb8n7J2l26EpnkgMIAbjrhdu8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TyEVpAcNrxbs_aScP7ydRC6JPq8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$U-CvSEcNqQJzFyxm9-WI72-937c;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$U1J_URN15ScrYGv9RfGM-uCj4pk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$U68n4iP9YZvCi9l_w8clW0ezl0E;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UB9vMSrN5Y8UAmaQB2lj1M1M4hY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UGjCdSf2Rxgyqxv7KJhmrE1D48Y;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UPnhCNO69TKnF1hSXENMzK_2NSQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UZoVWdpJJZwABGNhZWHbxPIvMO4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Uaym30iZN9avnSffrQNzTzTWJi0;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UzTmuq0qez09i7JAoEws-OmWvyE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$V76RjAFruy9FHFluYMB3bS_dPyE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VDIwg4X1iKAqFvQldV7uz3FQETk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VTc8gcVJfS7i5Anv1t_8pKML5is;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Vg0S0XWRLxc15dP0DNjWoFnOlo4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VqrEAorQ36H01_gtzS6luteYBs0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Vsgrnsu-JDIF867spjVbBkS6FtU;
@@ -41777,22 +42926,27 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WClCPAIaYC1HcqeEWjZ5mwt9QEY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WPoBmlz33wJKdfRNgazaVqch_RI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WYP5q_IBba00XZnGp257U-5v_qM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WdS9fk8fr1h45StHMTWJBNzuVxk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WevGGQWsNzietlJkpgLAumbTjNU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WtqYUfe7dJqIftHU4nTlehWlM1o;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X1mD-HIZoymtXFYIcJN1dtK2Nvw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X8P9YSbXKt6AGKQrPiFxyDc-HJQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X8ssNAYCaueT78i6KH-xMYuutXA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XHdp-DhtN4kHoHFZDl3Q3ERAk4c;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XIgyjzk0MIew6CDVQI8Ae8JzYYY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XOdX3qkh6bxGtbYtcwPIQmfVatY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xc3Cc89KBImtyHAgMzs8CxA-vt4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XnSMMFYuFPI3ne_otxnTw0Tx_Tk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XoA7qUoiMKNWGeLb0_PAA1GorHs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xtl9mqtvlMrCVZVtWJhb8BLKs4I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XxTvtDGjc65GwFaqkNXZsW63TPE;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XzyHMSPs-XjT8PmWp7Qpn7iczdw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YA4XK8CPWPIZ24OqYJwgVT_5HYs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YTkdlwrc6XAKuTn0p2mVi0oHrSM;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YzrBfeyVBmtTDtp-1wWRuGqpX1g;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YZpznfYXsjCyvuZp0nh2o3O_kN8;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Yha2g5948Y6-99_Zk6qnSQ08xaY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZC4liKjHgFsuW2zQLFrbUmbNAao;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZFdrHPwd7Erny0jil4SeojoI0yE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZKo9wKXbn_FqsEHI_sFpmbOwKZE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZQ4kE3IfWore2zFzZG1Za8zcO2k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZX_ASbhDe3h4tTo7Tg94QibI20o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZazSf3xAT5dEmqVmEq4ScK7Em7s;
@@ -41809,27 +42963,36 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$a30NURDJ7zRXLs68n_gcBSzFE40;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$a6N7YdVtFZPKYb2-gun76ulJ5fQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$aC4EXkkAMAWYv8qwbTvE24Kub28;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$aVGoq4gaY333M9B5L3o4c3HvuCM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$b6NlDdKsoSylaG3SG2kID_T_mKI;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bNyL67PUDJs3XewKfULpyxiJ0uk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bRHnqQ-7BZ3jALB9fwG91SGkEfM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bouyOrED43n7AxQtiV7_tal36UY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bt8Y4TXOqcLHPnaZVT6V787Lqhw;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$byvbdSMbYMI25u0KJPfs_XsrYpM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cDpxDpKZ5POqE3OYBUq7OxTH9TU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cF-dIKd2XSk01iZ99bPAGkzvRQ8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cKidc1M10gM7lsDQq-dJXYRT7yM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cRGrwg6rL1QILp8DpjsAVKsyR7U;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cVXDr0Iu6R4M_ILrW6G7OOe40H8;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$caNrWIiRRMaceuSpv_DpVhW6bMk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ce_6_s-XSM555Wtht-tuaS4jh_Y;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cr-JLWKI9Q0W6mZziyfSq7n1Wxc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$crFaMQsO42AtLAJVGqKK5_OcRFY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cs7Jw_Ty60Ef1wUrMmzygNqwnKY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$cxqU3mrQvYaXt635Q0s7bc5lWXg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$d08rPNL3sI-Hx7ZpnR_dxsBLZmk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$d8r45jN_S9ToJ7T9cIGEzdbNJ3E;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dCRYG-JONV3YSq1I4nb6dIu3pL4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dYgLi9lB5UkMc8T6AnEpHlMkWO4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dglutnmu9mKYgbZSpXZQbMKKvds;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dhmKG9Egag2TPEwukGPiev6dT70;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dnWqKdI2wwfbdJIvSwUGOiGJ_2U;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e2DzcGWRwnNdKo6blzNAob0HsSw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e3xcbpVR082uQMOIH1sFm-7ww_k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e7c2huGjk3obVFka43jMbcJT0E8;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eJdCqp-IyLrDmjK1uT6yZqiejxI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eKrWywCP77ljwUZh-R1c8aoFHh4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eQ0RBaHhkOLVzMM_lnr1-BGJMV0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eTztGRhk0T0d0Zt_QnBM1_amoPo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eV4vpckz4c7VE5pO-M0cZ315eUE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eZw4tgcZRgP2OCEUG4UMwL1KdZI;
@@ -41839,14 +43002,17 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eyzr70H-LIhamGl2lQJNuBnNUCg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fBEZoXFpOdFGTOWV_4afqn0J6Jo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fU0Evn2qWpzcawqc8Qu9d2hCcoA;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fUEsKK2Ap8SOLg8jKKO8IWAOMHo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fi3bp9Jg5MB-y7uy1juNXt4OgTY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$frL8-y9KUDCjvP_ukJ0uoU1Mk5k;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fzxODltoSAVybDWkw84u878Ddso;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3VMWQRBCrJWTiiMtWVUi7fOSds;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3pjxXrKbnPToHF_egmYdr2f8-M;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gUwTdpToc4b137uFTknYXprKx0I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gbbZuAsRK_vXaCroy1gj9r0-V4o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gyGQmraIFm9snTVcQs8v9x_oN2s;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gyYqrgnheXx_gckQ6nfb8_VqXpI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$h5usYc0BlbipvFKYNcWISejzUxs;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hBhA4EhEMGML2ETSNJpcQeevGCQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hN_ekQEl5DInXkKF8Q-qa6Pmb6E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hSkJUSDkGz1ZmNMPxLsgctH3Bx4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hVh-r9U8me62PnowMqWIYzsG__4;
@@ -41854,26 +43020,38 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hX2NEWgF6rTNkdyJ6G_rvoL6TR0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hohlWNRUxQL3ppUY1dM8mwNK67I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$iJGFtbFrOPcW3nu2RGPHCHVu1-E;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$iVM7UeXJHZm19ApeX7bK4m8k80Q;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$imyf3XRXXjZCs-QgcGmDkyevO40;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$iojPtiJXnnFJDsa0P-LGE6gfikU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$irxkkGqq5f0FSbFu5oEB0UbuqWY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$itZ2C7OStKYijFKIeKcW4Rg49cM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$iyEnVrML45r-X4pJPwKq_h7cdCE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$j6r61e-hJc3TCg_zV4jTt3IZnPk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jDU7UhnyXuItN3e_DVSz6WUa7Qc;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jO5ZWgZJNUQUnt-nqcwlfMcJ0pM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ja_JdZk-BJUe5rbQuU_LxLblBfM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jgsUvRSr_6U0Lrv4PXbJtZQe_Mk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jk1zqsysE8fKSHngP11NBHDLVk8;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jpc5PWmU1TRkfsIBmJjzflF2ERo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jqQoRiWmeM8a3MeBPfKE9lApkio;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$kRuvxF00uvZotgT3afXskSfAGzI;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$kPEMSMGp98HqXQq78McKpXCdLCM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$l1-j9XdvuDdp7fQsY_n_Pv6CP3A;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$l1OVi4X-0E2PRGCgmqaMDm9f37g;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$l597rxoTSNqmNmqk6LNflbZy40g;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lBH-DXXEe5fe_x6FRZ41LI-rdHY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lG9keASbSI5H2nDJOOi-80s_LvI;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$liZQVQo5sYVwMOQlTlgxUF7fWMU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ll5SYJlZ-SYytCFFeQAWfuFB9CQ;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lmsiKzZN5DKHTzgWChWAyGfrxwk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lxepyUaTh9HejBaF0nHpaiCx0_s;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m2h-vVM6u7Yweb_QNLSUAbWduj8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m4rOeIPRBmiAyZePUlogYBlUqWg;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mBXxcFZAZnjzw9sY7LWPSdbiolE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mB_dS0XKwfvdYuBifZkqJr3ZvWI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mBqOqsTnwflzQ2R1u3HUeMrbjVI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mF6fAm3fr7FHqqfmNeO86iULgao;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mMzUoLS7J6QS09kLUVjWaYJMx8E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mTtUOq0pM85nkOQibagz4NHu6gc;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mea0_-KQRdVOaJakQTwD6APi0GY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mkMQ9WtInWWL27eiU6IDs8Sol8Q;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mkvkdiyEMl05tI1rw6O3HygvaRY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mxnMynV7fO8Pt3nYwwCODWeOMC8;
@@ -41882,8 +43060,6 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$nJ1o9XvwkdXtKnTlJqUdmJP-79w;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$n_Z4yiCZPW15aN8wIrdQ-AZdONo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$nbD4hzJ7SdekKDVJaFS0e_yoOtU;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ng4tixim9kGp1JCPRZP6128y4Vs;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ngRwwawqOGNh8B2G-2i4gOON3v8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$nhnQ_4mt77CRywClA2_LCvN86-M;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$nkWVy9u7AzQNpu2s-LcA_ChoL_0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ntEsc6u7AnPDmT8-eKrNAgcP9-E;
@@ -41893,20 +43069,23 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$p6M2CJuZlA3Rm0CLLTJMm5qd9vU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pE7Amjgwpxhd3c82eV3sPlVpU7Y;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pQr4-HeJd7F_DBrh2GLysG-VVqk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$paNWzEukGonqKHGYa2dcIYm1m9I;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pnGOhpYZbTior4-5l_ZVpjwHMlA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pzGOg_k7cFHMZe81NJ-f-O91Vvc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qLdZ0ebI9-VES2qOXxipAqDsLtg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qUFZingYce_mtufJ-COKvsGFldc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qVG_che5VZcjXofzxjKlurWwLu4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qViz9I1AJUZv2wUBqL57ZuJyV6w;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rIIGm_pcvT_tv88ID-sqKSFXqPU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rP76VuxkDMpQvOKe_NhM7A9S5D0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rU5IDfnRM1iicQF_3fSUkRMiJWs;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$r_bhpqZN19zqo-UyWd_MN7sg9gk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rg9PVcvT3UURAp6r5F9n-OzYW0o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rgWIdVG-xIVE9DTQu1PoIuOkdEc;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$s2hBmnk5DsUR6LzsI-hOmE3fbOI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$s7nsr83MiLj0X1p1Wlc_DLT8K_k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sKaiUCZhJCPEsQr9hbBm2BCLjFE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sfvNLjsZ1b42sP7hfi4sIngE1Ok;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sgJgS32ZNiiwGAfMZyTUvDVx3oE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$srUwh80IVWUvcHUY2qLiJl7DXbw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$stRgRygcW96CZ_aQdsj6efcedrw;
@@ -41918,45 +43097,48 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$t2IDLi9Z2kd4YgBQUweQjeF56So;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$t4_pjPJy5FQTNLdcE-DM8Y_3LFk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tAgDO0b7hXUD7MGkHfgPTDV4o6g;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tCoJInT9Io4c9fDvit9F6BzPaDc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tDS-z4u8kVI84TeTEN8vBdedFSA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tEq84x06yJ3TuolYQS3bpqsQnQ4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tWth7tXYQXpYp5Hzb8E7OMe1xQU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tfWVKBTGvhCLutowgY2p1qhI_5k;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tkQw-Ak3ra4RKe75URSNPdLIZEo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tp-48y_8GxxZ_5HYpkvQSJUXCCs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uBbMjDj76ovvi3SNe9WwB6bL1bg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uD3EtO2DK71MscaG7ykh6GMewyM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uSnwuwX0qdERvQ94-2ib1BPYhnQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uX3N9oUyt7vAkRk62hfFpSIUfxU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ua0yrS5kFedpcAO57O20Vkmp_iU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ubKPRWVtvdZzQDW6CDEvggHJXRc;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$v4runHJLxiL3Ks01Uqv-LIy69tA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ufUhKIuf-ai14oI_NezHS9qCjh0;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$v6Sf5hcqS7XBF5mvbFG4GLS_Hq8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vFs74BeiHI_1TW0yjvIUNhocv4w;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vR-RWtti8ewEGuhsA0IoU86GAmo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vbK5M-QMAlkZf1zA7KPOBiQxiAU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vgp00LQTX2qLThEYFCjtmibFwjs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vmrMOPfGWyqGVGm4kjnJw9y43pg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vsNaZOHvF-kWqLDfhyiTAaRLpQU;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vzueeb-BCfMYtgO3SeHI1YKhvCk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$w0sB6f-r2UXAh8dWEvNc-SAFTkY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wLLFEwwP8Bk92vUNOhyUVpuEICo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wQUJoH3intmxV9FH1ypMmbuy0cQ;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wWlaczCw_V5Gjsu_Q1bzmhAPf4c;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wrebaRxLxzDXlP2L0mbsQk63W0Y;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wdjKJZZQbwUvNkCxj7a-RCOB9p8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wynHOghqUtl8CTB8Lp1BnOlWruI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xGPzaLfEk18lj3TzX73zjHkH5nE;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xJ8-hwvSE1cq8C5FtgXnoW_zBZU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xNEzeKxioITjjXluv5fVIH4Ral4;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xSgT6QdDr4xnDwmWzibK-JrkVlk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$x_XvH7NWMAoRsaUgVX92Cmco4J0;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xabPm_Q5O8A0hxC5Xhkk4DoTmp8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xcgjFgZvtVsZvMCJ8GD7qseAgKw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xgC7PclKrFrtVX1O9t4fpDNgv0E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xtNi-Fr5I3CYHdDTU1gC1K5Os44;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xt_J25l3ug-esItAoFFF6v_nxKc;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xuhW_wd6YxaInBm76w-yoLWFE5o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$y1mmEY6CDw01OUVh1NYq1BVWf2A;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$y4TmIIzrIWhefGZSS0RoexHhlYw;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yeV2rhP1kSqkhwkWq2VA00I0Y6Y;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yABzfxLSJsRtIg68zL1wRRuzKQI;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ySno4DrGDq1KjAoj9-Oin64pfm8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ylqQ-0_BWKf5SNKi5IEZksGSyuU;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yxbu3Ze4QwrYlONlYNa05wehYXA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$z9w-PqXATVne7zR3PADeRtW0jf4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$zErhxcsyTkaK2GsPBoPqruFzweQ;
-Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$zhpBiZesw6vWyjay3oNmua6J6mY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$zHzqmkS8JoeSuppylsWsNuHcVLk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$zqWn6EZzfYDYc9JTg9Ag7SZ3qTo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$zx-WdN6vyDW_q41Uj3Zg3ktwyG8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$zyZhewRXB707f3cphuI380YTw64;
@@ -42280,8 +43462,6 @@
 Lcom/android/server/incident/RequestQueue$1;
 Lcom/android/server/incident/RequestQueue$Rec;
 Lcom/android/server/incident/RequestQueue;
-Lcom/android/server/incremental/IncrementalManagerService;
-Lcom/android/server/incremental/IncrementalManagerShellCommand;
 Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;
 Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;
 Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$su3lJpEVIbL-C7doP4eboTpqjxU;
@@ -42298,7 +43478,6 @@
 Lcom/android/server/input/-$$Lambda$InputManagerService$M0FF5e8p6FGyFBNFwEYoVAKqrhQ;
 Lcom/android/server/input/-$$Lambda$InputManagerService$P986LfJHWb-Wytu9J9I0HQIpodU;
 Lcom/android/server/input/-$$Lambda$InputManagerService$e8CLEFczq_4kLYCG30uaJDgK3rA;
-Lcom/android/server/input/-$$Lambda$InputManagerService$o1rqNjeoTO6WW7Ut-lKtY_eyNc8;
 Lcom/android/server/input/ConfigurationProcessor;
 Lcom/android/server/input/InputManagerService$10;
 Lcom/android/server/input/InputManagerService$11;
@@ -42577,6 +43756,7 @@
 Lcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;
 Lcom/android/server/location/GeofenceProxy;
 Lcom/android/server/location/GeofenceState;
+Lcom/android/server/location/GnssAntennaInfoProvider;
 Lcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;
 Lcom/android/server/location/GnssBatchingProvider;
 Lcom/android/server/location/GnssCapabilitiesProvider;
@@ -42679,6 +43859,7 @@
 Lcom/android/server/location/SettingsHelper;
 Lcom/android/server/location/UserInfoHelper$1;
 Lcom/android/server/location/UserInfoHelper$UserChangedListener;
+Lcom/android/server/location/UserInfoHelper$UserListener;
 Lcom/android/server/location/UserInfoHelper;
 Lcom/android/server/location/UserInfoStore$1;
 Lcom/android/server/location/UserInfoStore$UserChangedListener;
@@ -42764,6 +43945,7 @@
 Lcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;
 Lcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;
 Lcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotParserException;
+Lcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSchema;
 Lcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;
 Lcom/android/server/locksettings/recoverablekeystore/storage/-$$Lambda$RecoverableKeyStoreDb$knfkhmVPS_11tGWkGt87bH4xjYg;
 Lcom/android/server/locksettings/recoverablekeystore/storage/-$$Lambda$RecoverySessionStorage$1ayqf2qqdJH00fvbhBUKWso4cdc;
@@ -42803,6 +43985,8 @@
 Lcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;
 Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;
 Lcom/android/server/media/AudioPlayerStateMonitor;
+Lcom/android/server/media/MediaButtonReceiverHolder;
+Lcom/android/server/media/MediaKeyDispatcher;
 Lcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;
 Lcom/android/server/media/MediaResourceMonitorService;
 Lcom/android/server/media/MediaRoute2Provider$Callback;
@@ -42830,9 +44014,11 @@
 Lcom/android/server/media/MediaRouterService$UserRecord;
 Lcom/android/server/media/MediaRouterService;
 Lcom/android/server/media/MediaSession2Record;
+Lcom/android/server/media/MediaSessionRecord$1;
 Lcom/android/server/media/MediaSessionRecord$2;
 Lcom/android/server/media/MediaSessionRecord$3;
 Lcom/android/server/media/MediaSessionRecord$ControllerStub;
+Lcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;
 Lcom/android/server/media/MediaSessionRecord$MessageHandler;
 Lcom/android/server/media/MediaSessionRecord$SessionCb;
 Lcom/android/server/media/MediaSessionRecord$SessionStub;
@@ -42859,12 +44045,14 @@
 Lcom/android/server/media/MediaSessionStack$OnMediaButtonSessionChangedListener;
 Lcom/android/server/media/MediaSessionStack;
 Lcom/android/server/media/MediaShellCommand;
+Lcom/android/server/media/RemoteDisplayProviderProxy$1;
 Lcom/android/server/media/RemoteDisplayProviderProxy$Callback;
 Lcom/android/server/media/RemoteDisplayProviderProxy;
 Lcom/android/server/media/RemoteDisplayProviderWatcher$1;
 Lcom/android/server/media/RemoteDisplayProviderWatcher$2;
 Lcom/android/server/media/RemoteDisplayProviderWatcher$Callback;
 Lcom/android/server/media/RemoteDisplayProviderWatcher;
+Lcom/android/server/media/SessionPolicyProvider;
 Lcom/android/server/media/SystemMediaRoute2Provider;
 Lcom/android/server/media/projection/MediaProjectionManagerService$1;
 Lcom/android/server/media/projection/MediaProjectionManagerService$2;
@@ -42999,6 +44187,7 @@
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$Srt8NNqA1xJUAp_7nDU6CBZJm_0;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$T5BM1IF40aMGtqZZRr6BWGjzNxA;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$Uven29tL9-XX5tMiwAHBwNumQKc;
+Lcom/android/server/notification/-$$Lambda$NotificationManagerService$PostNotificationRunnable$9JuPmiaA-c5lGdegev6EaTigwWc;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$msGTh8UV2euOI6xhjY-rx_tZTLM;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$qSGWKI1fXQ1cTJ2fD072f_33txY;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$qbzDjihCkTumQH-EnAW4i5wobvM;
@@ -43225,30 +44414,39 @@
 Lcom/android/server/people/PeopleService;
 Lcom/android/server/people/PeopleServiceInternal;
 Lcom/android/server/people/SessionInfo;
+Lcom/android/server/people/data/-$$Lambda$DataManager$CallLogContentObserver$F795P2fXEZGvzLUih_SIpFcsyic;
+Lcom/android/server/people/data/-$$Lambda$DataManager$MmsSmsContentObserver$UfeTRftTDIcNo1iUJLeOD5s_XmM;
 Lcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceListener$emB0GKXSexwJTzSWLUKYnAGbCCg;
+Lcom/android/server/people/data/CallLogQueryHelper;
 Lcom/android/server/people/data/ContactsQueryHelper;
 Lcom/android/server/people/data/ConversationInfo$Builder;
 Lcom/android/server/people/data/ConversationInfo;
 Lcom/android/server/people/data/ConversationStore;
 Lcom/android/server/people/data/DataManager$1;
+Lcom/android/server/people/data/DataManager$CallLogContentObserver;
 Lcom/android/server/people/data/DataManager$ContactsContentObserver;
 Lcom/android/server/people/data/DataManager$Injector;
+Lcom/android/server/people/data/DataManager$MmsSmsContentObserver;
 Lcom/android/server/people/data/DataManager$NotificationListener;
 Lcom/android/server/people/data/DataManager$PerUserBroadcastReceiver;
 Lcom/android/server/people/data/DataManager$ShortcutServiceListener;
+Lcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;
 Lcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;
 Lcom/android/server/people/data/DataManager;
+Lcom/android/server/people/data/Event$Builder;
+Lcom/android/server/people/data/Event$CallDetails;
 Lcom/android/server/people/data/Event;
 Lcom/android/server/people/data/EventHistory;
 Lcom/android/server/people/data/EventHistoryImpl;
 Lcom/android/server/people/data/EventStore;
+Lcom/android/server/people/data/MmsQueryHelper;
 Lcom/android/server/people/data/PackageData;
+Lcom/android/server/people/data/SmsQueryHelper;
 Lcom/android/server/people/data/UserData;
+Lcom/android/server/people/data/Utils;
+Lcom/android/server/people/prediction/AppTargetPredictor;
 Lcom/android/server/people/prediction/ConversationPredictor;
 Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$1$dbgKSgcSW-enjqvNAbeI3zvdw_E;
-Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$48iOSmygOXJ0TezZTiFdfMqA4-U;
-Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$ZSnyvqMou1dicjDEP1s6HfI9AtM;
-Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$o0S1o3gtXHOOZT_0tmoPlF2FOdI;
 Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$pQnjdbWgnVRvdOuYJTmevPGwE8s;
 Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$q1ttlIbEI3KHg5wkhDwkpDn2qCU;
 Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$tz3TLW-UaMjqz-wkojT7H_pVbZU;
@@ -43636,6 +44834,8 @@
 Lcom/android/server/pm/Settings$RuntimePermissionPersistence;
 Lcom/android/server/pm/Settings$VersionInfo;
 Lcom/android/server/pm/Settings;
+Lcom/android/server/pm/ShareTargetInfo$TargetData;
+Lcom/android/server/pm/ShareTargetInfo;
 Lcom/android/server/pm/SharedUserSetting;
 Lcom/android/server/pm/ShortcutBitmapSaver$1;
 Lcom/android/server/pm/ShortcutBitmapSaver$PendingItem;
@@ -43685,6 +44885,7 @@
 Lcom/android/server/pm/UserManagerService$MainHandler;
 Lcom/android/server/pm/UserManagerService$Shell;
 Lcom/android/server/pm/UserManagerService$UserData;
+Lcom/android/server/pm/UserManagerService$WatchedUserStates;
 Lcom/android/server/pm/UserManagerService;
 Lcom/android/server/pm/UserRestrictionsUtils;
 Lcom/android/server/pm/UserSystemPackageInstaller;
@@ -43754,7 +44955,7 @@
 Lcom/android/server/pm/permission/PermissionsState$PermissionData;
 Lcom/android/server/pm/permission/PermissionsState$PermissionState;
 Lcom/android/server/pm/permission/PermissionsState;
-Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$8D9Zbki65ND_Q20M-Trexl6cHcQ;
+Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$Bdjb-bUeNjqbvpDtoyGXyhqm1CI;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$EOXe1_laAw9FFgJquDg6Qy2DagQ;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;
@@ -43763,6 +44964,7 @@
 Lcom/android/server/policy/BurnInProtectionHelper;
 Lcom/android/server/policy/DisplayFoldController;
 Lcom/android/server/policy/EventLogTags;
+Lcom/android/server/policy/GlobalActions$1;
 Lcom/android/server/policy/GlobalActions;
 Lcom/android/server/policy/GlobalActionsProvider$GlobalActionsListener;
 Lcom/android/server/policy/GlobalActionsProvider;
@@ -43941,11 +45143,28 @@
 Lcom/android/server/print/PrintManagerService;
 Lcom/android/server/print/PrintShellCommand;
 Lcom/android/server/print/RemotePrintService$PrintServiceCallbacks;
+Lcom/android/server/print/RemotePrintService$RemotePrintServiceClient;
+Lcom/android/server/print/RemotePrintService$RemoteServiceConneciton;
 Lcom/android/server/print/RemotePrintService;
 Lcom/android/server/print/RemotePrintServiceRecommendationService$RemotePrintServiceRecommendationServiceCallbacks;
+Lcom/android/server/print/RemotePrintSpooler$BasePrintSpoolerServiceCallbacks;
+Lcom/android/server/print/RemotePrintSpooler$ClearCustomPrinterIconCacheCaller$1;
+Lcom/android/server/print/RemotePrintSpooler$ClearCustomPrinterIconCacheCaller;
+Lcom/android/server/print/RemotePrintSpooler$GetCustomPrinterIconCaller$1;
+Lcom/android/server/print/RemotePrintSpooler$GetCustomPrinterIconCaller;
+Lcom/android/server/print/RemotePrintSpooler$GetPrintJobInfoCaller$1;
+Lcom/android/server/print/RemotePrintSpooler$GetPrintJobInfoCaller;
+Lcom/android/server/print/RemotePrintSpooler$GetPrintJobInfosCaller$1;
+Lcom/android/server/print/RemotePrintSpooler$GetPrintJobInfosCaller;
 Lcom/android/server/print/RemotePrintSpooler$MyServiceConnection;
+Lcom/android/server/print/RemotePrintSpooler$OnCustomPrinterIconLoadedCaller$1;
+Lcom/android/server/print/RemotePrintSpooler$OnCustomPrinterIconLoadedCaller;
 Lcom/android/server/print/RemotePrintSpooler$PrintSpoolerCallbacks;
 Lcom/android/server/print/RemotePrintSpooler$PrintSpoolerClient;
+Lcom/android/server/print/RemotePrintSpooler$SetPrintJobStateCaller$1;
+Lcom/android/server/print/RemotePrintSpooler$SetPrintJobStateCaller;
+Lcom/android/server/print/RemotePrintSpooler$SetPrintJobTagCaller$1;
+Lcom/android/server/print/RemotePrintSpooler$SetPrintJobTagCaller;
 Lcom/android/server/print/RemotePrintSpooler;
 Lcom/android/server/print/UserState$PrintJobForAppCache;
 Lcom/android/server/print/UserState;
@@ -44061,6 +45280,7 @@
 Lcom/android/server/slice/-$$Lambda$SlicePermissionManager$y3Tun5dTftw8s8sky62syeWR34U;
 Lcom/android/server/slice/DirtyTracker$Persistable;
 Lcom/android/server/slice/DirtyTracker;
+Lcom/android/server/slice/PinnedSliceState$ListenerInfo;
 Lcom/android/server/slice/PinnedSliceState;
 Lcom/android/server/slice/SliceClientPermissions$SliceAuthority;
 Lcom/android/server/slice/SliceClientPermissions;
@@ -44106,7 +45326,6 @@
 Lcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$X838A3db9kVMHQpQXa1dyFuUof0;
 Lcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$d4MfUfrLxE-WfTBopivzvQedlJQ;
 Lcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$ewHo6fX75Dw1073KIePOuh3oLIE;
-Lcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$fbvBJLiyU152ejAJj5a9PvFEhUI;
 Lcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$mz3ZN09XJCrlYM4uLTiT43iNlCQ;
 Lcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$zVVAAwHUfPftj_Egw5y5yBJZXPw;
 Lcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerMiddlewareService$Lifecycle$-t8UndY0AHGyM6n9ce2y6qok3Ho;
@@ -44276,6 +45495,8 @@
 Lcom/android/server/storage/StorageSessionController;
 Lcom/android/server/storage/StorageUserConnection$Session;
 Lcom/android/server/storage/StorageUserConnection;
+Lcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService$RemoteServiceConnection;
+Lcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;
 Lcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;
 Lcom/android/server/systemcaptions/SystemCaptionsManagerService;
 Lcom/android/server/telecom/-$$Lambda$TelecomLoaderService$4O6PYSHBsC0Q5H-Y3LkvD32Vcjk;
@@ -44317,10 +45538,12 @@
 Lcom/android/server/textclassifier/TextClassificationManagerService$1;
 Lcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;
 Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;
+Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;
 Lcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;
 Lcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;
 Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
 Lcom/android/server/textclassifier/TextClassificationManagerService;
+Lcom/android/server/textservices/-$$Lambda$TextServicesManagerService$SpellCheckerBindGroup$H2umvFNjpgILSC1ZJmUoLxzCdSk;
 Lcom/android/server/textservices/LocaleUtils;
 Lcom/android/server/textservices/TextServicesManagerInternal$1;
 Lcom/android/server/textservices/TextServicesManagerInternal;
@@ -44357,8 +45580,11 @@
 Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$Callback;
 Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$QualifiedPhoneTimeZoneSuggestion;
 Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;
+Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$Callback;
+Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;
 Lcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;
 Lcom/android/server/trust/-$$Lambda$TrustManagerService$fEkVwjahpkATIGtXudiFOG8VXOo;
+Lcom/android/server/trust/TrustAgentWrapper$1;
 Lcom/android/server/trust/TrustAgentWrapper$2;
 Lcom/android/server/trust/TrustAgentWrapper$3;
 Lcom/android/server/trust/TrustAgentWrapper$4;
@@ -44419,7 +45645,9 @@
 Lcom/android/server/usage/AppTimeLimitController$UsageGroup;
 Lcom/android/server/usage/AppTimeLimitController$UserData;
 Lcom/android/server/usage/AppTimeLimitController;
+Lcom/android/server/usage/IntervalStats$EventTracker;
 Lcom/android/server/usage/IntervalStats;
+Lcom/android/server/usage/PackagesTokenData;
 Lcom/android/server/usage/StorageStatsManagerInternal$StorageStatsAugmenter;
 Lcom/android/server/usage/StorageStatsManagerInternal;
 Lcom/android/server/usage/StorageStatsService$1;
@@ -44598,6 +45826,7 @@
 Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;
 Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$1;
 Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$2;
+Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$3;
 Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$Callback;
 Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;
 Lcom/android/server/vr/-$$Lambda$VrManagerService$hhbi29QXTMTcQg-S7n5SpAawSZs;
@@ -44784,8 +46013,11 @@
 Lcom/android/server/wm/-$$Lambda$B58NKEOrr2mhFWeS3bqpaZnd11o;
 Lcom/android/server/wm/-$$Lambda$BEx3OWenCvYAaV5h_J2ZkZXhEcY;
 Lcom/android/server/wm/-$$Lambda$BoundsAnimationController$3-yWz6AXIW5r1KElGtHEgHZdi5Q;
+Lcom/android/server/wm/-$$Lambda$BoundsAnimationController$BoundsAnimator$eIPNx9WcD7moTPCByy2XhPMSdCs;
 Lcom/android/server/wm/-$$Lambda$BoundsAnimationController$MoVv_WhxoMrTVo-xz1qu2FMcYrM;
 Lcom/android/server/wm/-$$Lambda$CD-g9zNm970tG9hCSQ-1BiBOrwY;
+Lcom/android/server/wm/-$$Lambda$CkqCuQmAGdLOVExbosZfF3sXdHQ;
+Lcom/android/server/wm/-$$Lambda$CvWmQaXToMTllLb80KQ9WdJHYXo;
 Lcom/android/server/wm/-$$Lambda$DLUVMr0q4HDD6VD11G3xgCuJfHo;
 Lcom/android/server/wm/-$$Lambda$DaFwIyqZTBVKE2y-TN2iE7CD-r8;
 Lcom/android/server/wm/-$$Lambda$Dimmer$DimState$QYvwJex5H10MFMe0LEzEUs1b2G0;
@@ -44873,6 +46105,7 @@
 Lcom/android/server/wm/-$$Lambda$G7MFeOBgoCefJGCDIl_j8uFkMZI;
 Lcom/android/server/wm/-$$Lambda$HLz_SQuxQoIiuaK5SB5xJ6FnoxY;
 Lcom/android/server/wm/-$$Lambda$HtepUMgqPLKO-76U6SMEmchALsM;
+Lcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;
 Lcom/android/server/wm/-$$Lambda$ImeInsetsSourceProvider$1aCwANZDoNIzXR0mfeN2iV_k2Yo;
 Lcom/android/server/wm/-$$Lambda$InputMonitor$ew_vdS116C6DH9LxWaTuVXJYZPE;
 Lcom/android/server/wm/-$$Lambda$InsetsPolicy$LCR2QgJZxbNat6Qb0Be-JDpy3i0;
@@ -44915,6 +46148,12 @@
 Lcom/android/server/wm/-$$Lambda$QEISWTQzWbgxRMT5rMnIEzpsKpc;
 Lcom/android/server/wm/-$$Lambda$RecentTasks$1$yqVuu6fkQgjlTTs6kgJbxqq3Hng;
 Lcom/android/server/wm/-$$Lambda$RecentTasks$eaeTjEEoVsLAhHFPccdtbbB3Lrk;
+Lcom/android/server/wm/-$$Lambda$RecentsAnimation$L-oo1O0uvOIOr4MDh9QYSeVU09U;
+Lcom/android/server/wm/-$$Lambda$RecentsAnimation$reh_wG2afVmsOkGOZzt-QbWe4gE;
+Lcom/android/server/wm/-$$Lambda$RecentsAnimationController$4jQqaDgSmtGCjbUJiVoDh_jr9rY;
+Lcom/android/server/wm/-$$Lambda$RecentsAnimationController$EI4Oe4vlsDKieYi6iTTlm_g_DcI;
+Lcom/android/server/wm/-$$Lambda$RecentsAnimationController$j5cfzBzoc-2KFpZ5MiHSgWihq-Y;
+Lcom/android/server/wm/-$$Lambda$RecentsAnimationController$jw5vdNcR7ME-ta1B7JaOAiF7wKw;
 Lcom/android/server/wm/-$$Lambda$RemoteAnimationController$74uuXaM2TqjkzYi0b8LqJdbycxA;
 Lcom/android/server/wm/-$$Lambda$RemoteAnimationController$dP8qDptNigoqhzVtIudsX5naGu4;
 Lcom/android/server/wm/-$$Lambda$RemoteAnimationController$uQS8vaPKQ-E3x_9G8NCxPQmw1fw;
@@ -45036,6 +46275,7 @@
 Lcom/android/server/wm/-$$Lambda$VDG7MoD_7v7qIdkguJXls8nmhGU;
 Lcom/android/server/wm/-$$Lambda$VY87MmFWaCLMkNa2qHGaPrThyrI;
 Lcom/android/server/wm/-$$Lambda$VYR_ckkt7281-Ti8Ps0f0Tx3ljY;
+Lcom/android/server/wm/-$$Lambda$WallpaperAnimationAdapter$-EwtM9NXnIMpRq_OzBHTdmhakaM;
 Lcom/android/server/wm/-$$Lambda$WallpaperController$3kGUJhX6nW41Z26JaiCQelxXZr8;
 Lcom/android/server/wm/-$$Lambda$WallpaperController$6pruPGLeSJAwNl9vGfC87eso21w;
 Lcom/android/server/wm/-$$Lambda$WallpaperController$Gy7houdzET4VmpY0QJ2v-NX1b7k;
@@ -45047,14 +46287,12 @@
 Lcom/android/server/wm/-$$Lambda$WindowContainer$4sX6UUtugZXD_J917yuWIm58Q9M;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$7x9zhFx3vhSZ5lMUA8efWaz-6co;
-Lcom/android/server/wm/-$$Lambda$WindowContainer$LBjDP_WAw_7yWAmt8ZHABKob-8M;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$VgO_jyvTwx2IcoTcwvoIKxat95M;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$WskrGbNwLeexLlAXUNUyGLhHEWA;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$XFf_Y8TZb5u_pVgOD-hm95z8ghM;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$a-4AX8BeEa4UpmUmPJfszEypbe8;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;
-Lcom/android/server/wm/-$$Lambda$WindowContainer$hIGRJSXS2_nuTiN5-y-qjXv-Wwk;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;
@@ -45079,6 +46317,7 @@
 Lcom/android/server/wm/-$$Lambda$WindowManagerService$qCWPyJrU0wwX4tP-_QpfmersCVc;
 Lcom/android/server/wm/-$$Lambda$WindowManagerService$tOeHm8ndyhv8iLNQ_GHuZ7HhJdw;
 Lcom/android/server/wm/-$$Lambda$WindowManagerService$wmqs4RHTJSPc1AMchgkEBB8CALU;
+Lcom/android/server/wm/-$$Lambda$WindowManagerShellCommand$prjQFpVCgSa5hzjzlwN4oL9HnaI;
 Lcom/android/server/wm/-$$Lambda$WindowToken$tFLHn4S6WuSXW1gp1kvT_sp7WC0;
 Lcom/android/server/wm/-$$Lambda$WindowTracing$lz89IHzR4nKO_ZtXtwyNGkRleMY;
 Lcom/android/server/wm/-$$Lambda$XcHmyRxMY5ULhjLiV-sIKnPtvOM;
@@ -45179,10 +46418,14 @@
 Lcom/android/server/wm/AppWarnings$ConfigHandler;
 Lcom/android/server/wm/AppWarnings$UiHandler;
 Lcom/android/server/wm/AppWarnings;
+Lcom/android/server/wm/BLASTSyncEngine$SyncState;
+Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;
+Lcom/android/server/wm/BLASTSyncEngine;
 Lcom/android/server/wm/BarController$1;
 Lcom/android/server/wm/BarController$BarHandler;
 Lcom/android/server/wm/BarController$OnBarVisibilityChangedListener;
 Lcom/android/server/wm/BarController;
+Lcom/android/server/wm/BlackFrame$BlackSurface;
 Lcom/android/server/wm/BlackFrame;
 Lcom/android/server/wm/BoundsAnimationController$1;
 Lcom/android/server/wm/BoundsAnimationController$AppTransitionNotifier;
@@ -45207,7 +46450,9 @@
 Lcom/android/server/wm/DisplayArea$Type;
 Lcom/android/server/wm/DisplayArea;
 Lcom/android/server/wm/DisplayAreaPolicy$1;
+Lcom/android/server/wm/DisplayAreaPolicy$Default$Provider;
 Lcom/android/server/wm/DisplayAreaPolicy$Default;
+Lcom/android/server/wm/DisplayAreaPolicy$Provider;
 Lcom/android/server/wm/DisplayAreaPolicy;
 Lcom/android/server/wm/DisplayContent$1;
 Lcom/android/server/wm/DisplayContent$AboveAppWindowContainers;
@@ -45300,6 +46545,7 @@
 Lcom/android/server/wm/LaunchParamsPersister$PackageListObserver;
 Lcom/android/server/wm/LaunchParamsPersister$PersistableLaunchParams;
 Lcom/android/server/wm/LaunchParamsPersister;
+Lcom/android/server/wm/Letterbox$InputInterceptor$SimpleInputReceiver;
 Lcom/android/server/wm/Letterbox$InputInterceptor;
 Lcom/android/server/wm/Letterbox$LetterboxSurface;
 Lcom/android/server/wm/Letterbox;
@@ -45351,10 +46597,13 @@
 Lcom/android/server/wm/RootWindowContainer;
 Lcom/android/server/wm/RunningTasks;
 Lcom/android/server/wm/SafeActivityOptions;
+Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;
 Lcom/android/server/wm/ScreenRotationAnimation;
 Lcom/android/server/wm/SeamlessRotator;
 Lcom/android/server/wm/Session;
 Lcom/android/server/wm/ShellRoot;
+Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+Lcom/android/server/wm/SimpleSurfaceAnimatable;
 Lcom/android/server/wm/SnapshotStartingData;
 Lcom/android/server/wm/SplashScreenStartingData;
 Lcom/android/server/wm/StartingData;
@@ -45423,6 +46672,7 @@
 Lcom/android/server/wm/WallpaperVisibilityListeners;
 Lcom/android/server/wm/WallpaperWindowToken;
 Lcom/android/server/wm/Watermark;
+Lcom/android/server/wm/WindowAnimationSpec$TmpValues;
 Lcom/android/server/wm/WindowAnimationSpec;
 Lcom/android/server/wm/WindowAnimator$1;
 Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;
@@ -45506,6 +46756,7 @@
 Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$bprgjb2FWBxwWDJr-Q4ViVP0aJc;
 Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;
 Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$qed0q0aplGsIh0O7dSm6JWk8wZI;
+Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$LUEcmjVFTNORsDoHk5dk5OHflTU;
 Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;
 Lcom/google/android/startop/iorap/AppIntentEvent;
 Lcom/google/android/startop/iorap/AppLaunchEvent$1;
@@ -45519,6 +46770,7 @@
 Lcom/google/android/startop/iorap/AppLaunchEvent$IntentStarted;
 Lcom/google/android/startop/iorap/AppLaunchEvent$ReportFullyDrawn;
 Lcom/google/android/startop/iorap/AppLaunchEvent;
+Lcom/google/android/startop/iorap/CheckHelpers;
 Lcom/google/android/startop/iorap/EventSequenceValidator$State;
 Lcom/google/android/startop/iorap/EventSequenceValidator;
 Lcom/google/android/startop/iorap/IIorap$Stub$Proxy;
@@ -45531,13 +46783,16 @@
 Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;
 Lcom/google/android/startop/iorap/IorapForwardingService$BinderConnectionHandler;
 Lcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;
+Lcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;
 Lcom/google/android/startop/iorap/IorapForwardingService$RemoteRunnable;
 Lcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;
 Lcom/google/android/startop/iorap/IorapForwardingService;
+Lcom/google/android/startop/iorap/JobScheduledEvent$1;
 Lcom/google/android/startop/iorap/JobScheduledEvent;
 Lcom/google/android/startop/iorap/PackageEvent;
 Lcom/google/android/startop/iorap/RequestId$1;
 Lcom/google/android/startop/iorap/RequestId;
 Lcom/google/android/startop/iorap/SystemServiceEvent;
 Lcom/google/android/startop/iorap/SystemServiceUserEvent;
+Lcom/google/android/startop/iorap/TaskResult$1;
 Lcom/google/android/startop/iorap/TaskResult;
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
index 872f0eb..6fbe141 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
@@ -1650,11 +1650,15 @@
         mRemoteInlineSuggestionRenderService = getRemoteInlineSuggestionRenderServiceLocked();
     }
 
-    RemoteInlineSuggestionRenderService getRemoteInlineSuggestionRenderServiceLocked() {
-        final ComponentName componentName = RemoteInlineSuggestionRenderService
-                .getServiceComponentName(getContext(), mUserId);
-
+    @Nullable RemoteInlineSuggestionRenderService getRemoteInlineSuggestionRenderServiceLocked() {
         if (mRemoteInlineSuggestionRenderService == null) {
+            final ComponentName componentName = RemoteInlineSuggestionRenderService
+                .getServiceComponentName(getContext(), mUserId);
+            if (componentName == null) {
+                Slog.w(TAG, "No valid component found for InlineSuggestionRenderService");
+                return null;
+            }
+
             mRemoteInlineSuggestionRenderService = new RemoteInlineSuggestionRenderService(
                     getContext(), componentName, InlineSuggestionRenderService.SERVICE_INTERFACE,
                     mUserId, new InlineSuggestionRenderCallbacksImpl(),
diff --git a/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java b/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java
index 6daa106..7fe086d 100644
--- a/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java
+++ b/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java
@@ -18,14 +18,17 @@
 
 import static com.android.server.autofill.Helper.sDebug;
 
+import android.annotation.BinderThread;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.ComponentName;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.util.Log;
+import android.util.Slog;
 import android.view.autofill.AutofillId;
 import android.view.inputmethod.InlineSuggestionsRequest;
+import android.view.inputmethod.InlineSuggestionsResponse;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.view.IInlineSuggestionsRequestCallback;
@@ -33,6 +36,8 @@
 import com.android.internal.view.InlineSuggestionsRequestInfo;
 import com.android.server.inputmethod.InputMethodManagerInternal;
 
+import java.util.Collections;
+import java.util.Optional;
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
@@ -40,13 +45,30 @@
 import java.util.concurrent.TimeoutException;
 
 /**
- * Maintains an inline suggestion autofill session.
+ * Maintains an autofill inline suggestion session that communicates with the IME.
  *
- * <p> This class is thread safe.
+ * <p>
+ * The same session may be reused for multiple input fields involved in the same autofill
+ * {@link Session}. Therefore, one {@link InlineSuggestionsRequest} and one
+ * {@link IInlineSuggestionsResponseCallback} may be used to generate and callback with inline
+ * suggestions for different input fields.
+ *
+ * <p>
+ * This class is the sole place in Autofill responsible for directly communicating with the IME. It
+ * receives the IME input view start/finish events, with the associated IME field Id. It uses the
+ * information to decide when to send the {@link InlineSuggestionsResponse} to IME. As a result,
+ * some of the response will be cached locally and only be sent when the IME is ready to show them.
+ *
+ * <p>
+ * See {@link android.inputmethodservice.InlineSuggestionSession} comments for InputMethodService
+ * side flow.
+ *
+ * <p>
+ * This class is thread safe.
  */
 final class InlineSuggestionSession {
 
-    private static final String TAG = "InlineSuggestionSession";
+    private static final String TAG = "AfInlineSuggestionSession";
     private static final int INLINE_REQUEST_TIMEOUT_MS = 1000;
 
     @NonNull
@@ -56,39 +78,94 @@
     private final ComponentName mComponentName;
     @NonNull
     private final Object mLock;
+    @NonNull
+    private final ImeStatusListener mImeStatusListener;
 
+    /**
+     * To avoid the race condition, one should not access {@code mPendingImeResponse} without
+     * holding the {@code mLock}. For consuming the existing value, tt's recommended to use
+     * {@link #getPendingImeResponse()} to get a copy of the reference to avoid blocking call.
+     */
     @GuardedBy("mLock")
     @Nullable
     private CompletableFuture<ImeResponse> mPendingImeResponse;
 
+    @GuardedBy("mLock")
+    @Nullable
+    private AutofillResponse mPendingAutofillResponse;
+
+    @GuardedBy("mLock")
+    private boolean mIsLastResponseNonEmpty = false;
+
+    @Nullable
+    @GuardedBy("mLock")
+    private AutofillId mImeFieldId = null;
+
+    @GuardedBy("mLock")
+    private boolean mImeInputViewStarted = false;
+
     InlineSuggestionSession(InputMethodManagerInternal inputMethodManagerInternal,
             int userId, ComponentName componentName) {
         mInputMethodManagerInternal = inputMethodManagerInternal;
         mUserId = userId;
         mComponentName = componentName;
         mLock = new Object();
+        mImeStatusListener = new ImeStatusListener() {
+            @Override
+            public void onInputMethodStartInputView(AutofillId imeFieldId) {
+                synchronized (mLock) {
+                    mImeFieldId = imeFieldId;
+                    mImeInputViewStarted = true;
+                    AutofillResponse pendingAutofillResponse = mPendingAutofillResponse;
+                    if (pendingAutofillResponse != null
+                            && pendingAutofillResponse.mAutofillId.equalsIgnoreSession(
+                            mImeFieldId)) {
+                        mPendingAutofillResponse = null;
+                        onInlineSuggestionsResponseLocked(pendingAutofillResponse.mAutofillId,
+                                pendingAutofillResponse.mResponse);
+                    }
+                }
+            }
+
+            @Override
+            public void onInputMethodFinishInputView(AutofillId imeFieldId) {
+                synchronized (mLock) {
+                    mImeFieldId = imeFieldId;
+                    mImeInputViewStarted = false;
+                }
+            }
+        };
     }
 
-    public void createRequest(@NonNull AutofillId currentViewId) {
+    public void onCreateInlineSuggestionsRequest(@NonNull AutofillId autofillId) {
+        if (sDebug) Log.d(TAG, "onCreateInlineSuggestionsRequest called for " + autofillId);
+
         synchronized (mLock) {
-            cancelCurrentRequest();
+            // Clean up all the state about the previous request.
+            hideInlineSuggestionsUi(autofillId);
+            mImeFieldId = null;
+            mImeInputViewStarted = false;
+            if (mPendingImeResponse != null && !mPendingImeResponse.isDone()) {
+                mPendingImeResponse.complete(null);
+            }
             mPendingImeResponse = new CompletableFuture<>();
             // TODO(b/146454892): pipe the uiExtras from the ExtServices.
             mInputMethodManagerInternal.onCreateInlineSuggestionsRequest(
                     mUserId,
-                    new InlineSuggestionsRequestInfo(mComponentName, currentViewId, new Bundle()),
-                    new InlineSuggestionsRequestCallbackImpl(mPendingImeResponse));
+                    new InlineSuggestionsRequestInfo(mComponentName, autofillId, new Bundle()),
+                    new InlineSuggestionsRequestCallbackImpl(mPendingImeResponse,
+                            mImeStatusListener));
         }
     }
 
-    @Nullable
-    public ImeResponse waitAndGetImeResponse() {
-        CompletableFuture<ImeResponse> pendingImeResponse = getPendingImeResponse();
-        if (pendingImeResponse == null || pendingImeResponse.isCancelled()) {
-            return null;
+    public Optional<InlineSuggestionsRequest> waitAndGetInlineSuggestionsRequest() {
+        final CompletableFuture<ImeResponse> pendingImeResponse = getPendingImeResponse();
+        if (pendingImeResponse == null) {
+            return Optional.empty();
         }
         try {
-            return pendingImeResponse.get(INLINE_REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+            return Optional.ofNullable(pendingImeResponse.get(INLINE_REQUEST_TIMEOUT_MS,
+                    TimeUnit.MILLISECONDS)).map(ImeResponse::getRequest);
         } catch (TimeoutException e) {
             Log.w(TAG, "Exception getting inline suggestions request in time: " + e);
         } catch (CancellationException e) {
@@ -96,13 +173,68 @@
         } catch (InterruptedException | ExecutionException e) {
             throw new RuntimeException(e);
         }
-        return null;
+        return Optional.empty();
     }
 
-    private void cancelCurrentRequest() {
-        CompletableFuture<ImeResponse> pendingImeResponse = getPendingImeResponse();
-        if (pendingImeResponse != null) {
-            pendingImeResponse.cancel(true);
+    public boolean hideInlineSuggestionsUi(@NonNull AutofillId autofillId) {
+        synchronized (mLock) {
+            if (mIsLastResponseNonEmpty) {
+                return onInlineSuggestionsResponseLocked(autofillId,
+                        new InlineSuggestionsResponse(Collections.EMPTY_LIST));
+            }
+            return false;
+        }
+    }
+
+    public boolean onInlineSuggestionsResponse(@NonNull AutofillId autofillId,
+            @NonNull InlineSuggestionsResponse inlineSuggestionsResponse) {
+        synchronized (mLock) {
+            return onInlineSuggestionsResponseLocked(autofillId, inlineSuggestionsResponse);
+        }
+    }
+
+    private boolean onInlineSuggestionsResponseLocked(@NonNull AutofillId autofillId,
+            @NonNull InlineSuggestionsResponse inlineSuggestionsResponse) {
+        final CompletableFuture<ImeResponse> completedImsResponse = getPendingImeResponse();
+        if (completedImsResponse == null || !completedImsResponse.isDone()) {
+            if (sDebug) Log.d(TAG, "onInlineSuggestionsResponseLocked without IMS request");
+            return false;
+        }
+        // There is no need to wait on the CompletableFuture since it should have been completed
+        // when {@link #waitAndGetInlineSuggestionsRequest()} was called.
+        ImeResponse imeResponse = completedImsResponse.getNow(null);
+        if (imeResponse == null) {
+            if (sDebug) Log.d(TAG, "onInlineSuggestionsResponseLocked with pending IMS response");
+            return false;
+        }
+
+        if (!mImeInputViewStarted || !autofillId.equalsIgnoreSession(mImeFieldId)) {
+            if (sDebug) {
+                Log.d(TAG,
+                        "onInlineSuggestionsResponseLocked not sent because input view is not "
+                                + "started for " + autofillId);
+            }
+            mPendingAutofillResponse = new AutofillResponse(autofillId, inlineSuggestionsResponse);
+            // TODO(b/149442582): Although we are not sending the response to IME right away, we
+            //  still return true to indicate that the response may be sent eventually, such that
+            //  the dropdown UI will not be shown. This may not be the desired behavior in the
+            //  auto-focus case where IME isn't shown after switching back to an activity. We may
+            //  revisit this.
+            return true;
+        }
+
+        try {
+            imeResponse.mCallback.onInlineSuggestionsResponse(autofillId,
+                    inlineSuggestionsResponse);
+            mIsLastResponseNonEmpty = !inlineSuggestionsResponse.getInlineSuggestions().isEmpty();
+            if (sDebug) {
+                Log.d(TAG, "Autofill sends inline response to IME: "
+                        + inlineSuggestionsResponse.getInlineSuggestions().size());
+            }
+            return true;
+        } catch (RemoteException e) {
+            Slog.e(TAG, "RemoteException sending InlineSuggestionsResponse to IME");
+            return false;
         }
     }
 
@@ -118,42 +250,91 @@
             extends IInlineSuggestionsRequestCallback.Stub {
 
         private final CompletableFuture<ImeResponse> mResponse;
+        private final ImeStatusListener mImeStatusListener;
 
-        private InlineSuggestionsRequestCallbackImpl(CompletableFuture<ImeResponse> response) {
+        private InlineSuggestionsRequestCallbackImpl(CompletableFuture<ImeResponse> response,
+                ImeStatusListener imeStatusListener) {
             mResponse = response;
+            mImeStatusListener = imeStatusListener;
         }
 
+        @BinderThread
         @Override
         public void onInlineSuggestionsUnsupported() throws RemoteException {
-            if (sDebug) {
-                Log.d(TAG, "onInlineSuggestionsUnsupported() called.");
-            }
-            mResponse.cancel(true);
+            if (sDebug) Log.d(TAG, "onInlineSuggestionsUnsupported() called.");
+            mResponse.complete(null);
         }
 
+        @BinderThread
         @Override
         public void onInlineSuggestionsRequest(InlineSuggestionsRequest request,
-                IInlineSuggestionsResponseCallback callback) throws RemoteException {
+                IInlineSuggestionsResponseCallback callback, AutofillId imeFieldId,
+                boolean inputViewStarted) {
             if (sDebug) {
-                Log.d(TAG, "onInlineSuggestionsRequest() received: " + request);
+                Log.d(TAG,
+                        "onInlineSuggestionsRequest() received: " + request + ", inputViewStarted="
+                                + inputViewStarted + ", imeFieldId=" + imeFieldId);
+            }
+            if (inputViewStarted) {
+                mImeStatusListener.onInputMethodStartInputView(imeFieldId);
+            } else {
+                mImeStatusListener.onInputMethodFinishInputView(imeFieldId);
             }
             if (request != null && callback != null) {
                 mResponse.complete(new ImeResponse(request, callback));
             } else {
-                mResponse.cancel(true);
+                mResponse.complete(null);
             }
         }
+
+        @BinderThread
+        @Override
+        public void onInputMethodStartInputView(AutofillId imeFieldId) {
+            if (sDebug) Log.d(TAG, "onInputMethodStartInputView() received on " + imeFieldId);
+            mImeStatusListener.onInputMethodStartInputView(imeFieldId);
+        }
+
+        @BinderThread
+        @Override
+        public void onInputMethodFinishInputView(AutofillId imeFieldId) {
+            if (sDebug) Log.d(TAG, "onInputMethodFinishInputView() received on " + imeFieldId);
+            mImeStatusListener.onInputMethodFinishInputView(imeFieldId);
+        }
     }
 
+    private interface ImeStatusListener {
+        void onInputMethodStartInputView(AutofillId imeFieldId);
+
+        void onInputMethodFinishInputView(AutofillId imeFieldId);
+    }
+
     /**
-     * A data class wrapping IME responses for the inline suggestion request.
+     * A data class wrapping Autofill responses for the inline suggestion request.
      */
-    public static class ImeResponse {
+    private static class AutofillResponse {
         @NonNull
-        private final InlineSuggestionsRequest mRequest;
+        final AutofillId mAutofillId;
 
         @NonNull
-        private final IInlineSuggestionsResponseCallback mCallback;
+        final InlineSuggestionsResponse mResponse;
+
+        AutofillResponse(@NonNull AutofillId autofillId,
+                @NonNull InlineSuggestionsResponse response) {
+            mAutofillId = autofillId;
+            mResponse = response;
+        }
+
+    }
+
+    /**
+     * A data class wrapping IME responses for the create inline suggestions request.
+     */
+    private static class ImeResponse {
+        @NonNull
+        final InlineSuggestionsRequest mRequest;
+
+        @NonNull
+        final IInlineSuggestionsResponseCallback mCallback;
 
         ImeResponse(@NonNull InlineSuggestionsRequest request,
                 @NonNull IInlineSuggestionsResponseCallback callback) {
@@ -161,12 +342,8 @@
             mCallback = callback;
         }
 
-        public InlineSuggestionsRequest getRequest() {
+        InlineSuggestionsRequest getRequest() {
             return mRequest;
         }
-
-        public IInlineSuggestionsResponseCallback getCallback() {
-            return mCallback;
-        }
     }
 }
diff --git a/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java b/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
index 228c628..2420e69 100644
--- a/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
+++ b/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
@@ -37,6 +37,7 @@
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.service.autofill.Dataset;
+import android.service.autofill.InlinePresentation;
 import android.service.autofill.augmented.AugmentedAutofillService;
 import android.service.autofill.augmented.IAugmentedAutofillService;
 import android.service.autofill.augmented.IFillCallback;
@@ -54,14 +55,14 @@
 import com.android.internal.infra.ServiceConnector;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.os.IResultReceiver;
-import com.android.internal.util.ArrayUtils;
-import com.android.internal.view.IInlineSuggestionsResponseCallback;
 import com.android.server.autofill.ui.InlineSuggestionFactory;
 
+import java.util.List;
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Function;
 
 final class RemoteAugmentedAutofillService
         extends ServiceConnector.Impl<IAugmentedAutofillService> {
@@ -146,9 +147,9 @@
             int taskId, @NonNull ComponentName activityComponent, @NonNull AutofillId focusedId,
             @Nullable AutofillValue focusedValue,
             @Nullable InlineSuggestionsRequest inlineSuggestionsRequest,
-            @Nullable IInlineSuggestionsResponseCallback inlineSuggestionsCallback,
+            @Nullable Function<InlineSuggestionsResponse, Boolean> inlineSuggestionsCallback,
             @NonNull Runnable onErrorCallback,
-            @NonNull RemoteInlineSuggestionRenderService remoteRenderService) {
+            @Nullable RemoteInlineSuggestionRenderService remoteRenderService) {
         long requestTime = SystemClock.elapsedRealtime();
         AtomicReference<ICancellationSignal> cancellationRef = new AtomicReference<>();
 
@@ -165,12 +166,13 @@
                             focusedId, focusedValue, requestTime, inlineSuggestionsRequest,
                             new IFillCallback.Stub() {
                                 @Override
-                                public void onSuccess(@Nullable Dataset[] inlineSuggestionsData) {
+                                public void onSuccess(@Nullable List<Dataset> inlineSuggestionsData,
+                                        @Nullable List<InlinePresentation> inlineActions) {
                                     mCallbacks.resetLastResponse();
                                     maybeRequestShowInlineSuggestions(sessionId,
                                             inlineSuggestionsRequest, inlineSuggestionsData,
-                                            focusedId, inlineSuggestionsCallback, client,
-                                            onErrorCallback, remoteRenderService);
+                                            inlineActions, focusedId, inlineSuggestionsCallback,
+                                            client, onErrorCallback, remoteRenderService);
                                     requestAutofill.complete(null);
                                 }
 
@@ -233,20 +235,22 @@
     }
 
     private void maybeRequestShowInlineSuggestions(int sessionId,
-            @Nullable InlineSuggestionsRequest request, @Nullable Dataset[] inlineSuggestionsData,
-            @NonNull AutofillId focusedId,
-            @Nullable IInlineSuggestionsResponseCallback inlineSuggestionsCallback,
+            @Nullable InlineSuggestionsRequest request,
+            @Nullable List<Dataset> inlineSuggestionsData,
+            @Nullable List<InlinePresentation> inlineActions, @NonNull AutofillId focusedId,
+            @Nullable Function<InlineSuggestionsResponse, Boolean> inlineSuggestionsCallback,
             @NonNull IAutoFillManagerClient client, @NonNull Runnable onErrorCallback,
-            @NonNull RemoteInlineSuggestionRenderService remoteRenderService) {
-        if (ArrayUtils.isEmpty(inlineSuggestionsData) || inlineSuggestionsCallback == null
-                || request == null) {
+            @Nullable RemoteInlineSuggestionRenderService remoteRenderService) {
+        if (inlineSuggestionsData == null || inlineSuggestionsData.isEmpty()
+                || inlineSuggestionsCallback == null || request == null
+                || remoteRenderService == null) {
             return;
         }
         mCallbacks.setLastResponse(sessionId);
 
         final InlineSuggestionsResponse inlineSuggestionsResponse =
                 InlineSuggestionFactory.createAugmentedInlineSuggestionsResponse(
-                        request, inlineSuggestionsData, focusedId, mContext,
+                        request, inlineSuggestionsData, inlineActions, focusedId, mContext,
                         dataset -> {
                             mCallbacks.logAugmentedAutofillSelected(sessionId,
                                     dataset.getId());
@@ -262,14 +266,9 @@
             Slog.w(TAG, "InlineSuggestionFactory created null response");
             return;
         }
-
-        try {
-            inlineSuggestionsCallback.onInlineSuggestionsResponse(inlineSuggestionsResponse);
-        } catch (RemoteException e) {
-            Slog.w(TAG, "Exception sending inline suggestions response back to IME.");
+        if (inlineSuggestionsCallback.apply(inlineSuggestionsResponse)) {
+            mCallbacks.logAugmentedAutofillShown(sessionId);
         }
-
-        mCallbacks.logAugmentedAutofillShown(sessionId);
     }
 
     @Override
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index 960997d..f14a7e9 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -100,7 +100,6 @@
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.util.ArrayUtils;
-import com.android.internal.view.IInlineSuggestionsResponseCallback;
 import com.android.server.autofill.ui.AutoFillUI;
 import com.android.server.autofill.ui.InlineSuggestionFactory;
 import com.android.server.autofill.ui.PendingUi;
@@ -113,6 +112,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
@@ -403,11 +403,10 @@
                 final ArrayList<FillContext> contexts =
                         mergePreviousSessionLocked(/* forSave= */ false);
 
-                final InlineSuggestionSession.ImeResponse imeResponse =
-                        mInlineSuggestionSession.waitAndGetImeResponse();
-
+                final Optional<InlineSuggestionsRequest> inlineSuggestionsRequest =
+                        mInlineSuggestionSession.waitAndGetInlineSuggestionsRequest();
                 request = new FillRequest(requestId, contexts, mClientState, flags,
-                        imeResponse != null ? imeResponse.getRequest() : null);
+                        inlineSuggestionsRequest.orElse(null));
             }
 
             if (mActivityToken != null) {
@@ -595,8 +594,9 @@
     /**
      * Returns whether inline suggestions are enabled for Autofill.
      */
-    private boolean isInlineSuggestionsEnabled() {
-        return mService.isInlineSuggestionsEnabled();
+    private boolean isInlineSuggestionsEnabledLocked() {
+        return mService.isInlineSuggestionsEnabled()
+                || mService.getRemoteInlineSuggestionRenderServiceLocked() != null;
     }
 
     /**
@@ -604,8 +604,8 @@
      */
     private void maybeRequestInlineSuggestionsRequestThenFillLocked(@NonNull ViewState viewState,
             int newState, int flags) {
-        if (isInlineSuggestionsEnabled()) {
-            mInlineSuggestionSession.createRequest(mCurrentViewId);
+        if (isInlineSuggestionsEnabledLocked()) {
+            mInlineSuggestionSession.onCreateInlineSuggestionsRequest(mCurrentViewId);
         }
 
         requestNewFillResponseLocked(viewState, newState, flags);
@@ -1158,18 +1158,6 @@
             } catch (RemoteException e) {
                 Slog.e(TAG, "Error requesting to hide fill UI", e);
             }
-            try {
-                final InlineSuggestionSession.ImeResponse imeResponse =
-                        mInlineSuggestionSession.waitAndGetImeResponse();
-                if (imeResponse == null) {
-                    Log.w(TAG, "Session input method callback is not set yet");
-                    return;
-                }
-                imeResponse.getCallback().onInlineSuggestionsResponse(
-                        new InlineSuggestionsResponse(Collections.EMPTY_LIST));
-            } catch (RemoteException e) {
-                Slog.e(TAG, "RemoteException hiding inline suggestions");
-            }
         }
     }
 
@@ -2471,18 +2459,24 @@
                     return;
                 }
 
-                if (!isSameViewEntered
-                        && (flags & FLAG_MANUAL_REQUEST) == 0
-                        && mAugmentedAutofillableIds != null
-                        && mAugmentedAutofillableIds.contains(id)) {
-                    // View was already reported when server could not handle a response, but it
-                    // triggered augmented autofill
-
-                    if (sDebug) Slog.d(TAG, "updateLocked(" + id + "): augmented-autofillable");
-
-                    // ...then trigger the augmented autofill UI
-                    triggerAugmentedAutofillLocked();
-                    return;
+                if ((flags & FLAG_MANUAL_REQUEST) == 0) {
+                    // Not a manual request
+                    if (mAugmentedAutofillableIds != null && mAugmentedAutofillableIds.contains(
+                            id)) {
+                        // Regular autofill handled the view and returned null response, but it
+                        // triggered augmented autofill
+                        if (!isSameViewEntered) {
+                            if (sDebug) Slog.d(TAG, "trigger augmented autofill.");
+                            triggerAugmentedAutofillLocked();
+                        } else {
+                            if (sDebug) Slog.d(TAG, "skip augmented autofill for same view.");
+                        }
+                        return;
+                    } else if (mForAugmentedAutofillOnly && isSameViewEntered) {
+                        // Regular autofill is disabled.
+                        if (sDebug) Slog.d(TAG, "skip augmented autofill for same view.");
+                        return;
+                    }
                 }
 
                 if (requestNewFillResponseOnViewEnteredIfNecessaryLocked(id, viewState, flags)) {
@@ -2501,6 +2495,7 @@
                     if (sVerbose) Slog.v(TAG, "Exiting view " + id);
                     mUi.hideFillUi(this);
                     hideAugmentedAutofillLocked(viewState);
+                    mInlineSuggestionSession.hideInlineSuggestionsUi(mCurrentViewId);
                     mCurrentViewId = null;
                 }
                 break;
@@ -2668,38 +2663,36 @@
      */
     private boolean requestShowInlineSuggestionsLocked(@NonNull FillResponse response,
             @Nullable String filterText) {
-        final List<Dataset> datasets = response.getDatasets();
-
-        final InlineSuggestionSession.ImeResponse imeResponse =
-                mInlineSuggestionSession.waitAndGetImeResponse();
-        if (imeResponse == null) {
-            Log.w(TAG, "Session input method callback is not set yet");
+        final Optional<InlineSuggestionsRequest> inlineSuggestionsRequest =
+                mInlineSuggestionSession.waitAndGetInlineSuggestionsRequest();
+        if (!inlineSuggestionsRequest.isPresent()) {
+            Log.w(TAG, "InlineSuggestionsRequest unavailable");
             return false;
         }
 
-        final InlineSuggestionsRequest request = imeResponse.getRequest();
+        final RemoteInlineSuggestionRenderService remoteRenderService =
+                mService.getRemoteInlineSuggestionRenderServiceLocked();
+        if (remoteRenderService == null) {
+            Log.w(TAG, "RemoteInlineSuggestionRenderService not found");
+            return false;
+        }
+
         InlineSuggestionsResponse inlineSuggestionsResponse =
-                InlineSuggestionFactory.createInlineSuggestionsResponse(request,
+                InlineSuggestionFactory.createInlineSuggestionsResponse(
+                        inlineSuggestionsRequest.get(),
                         response, filterText, response.getInlineActions(), mCurrentViewId, mContext,
                         this, () -> {
                             synchronized (mLock) {
                                 requestHideFillUi(mCurrentViewId);
                             }
-                        }, mService.getRemoteInlineSuggestionRenderServiceLocked());
-
+                        }, remoteRenderService);
         if (inlineSuggestionsResponse == null) {
             Slog.w(TAG, "InlineSuggestionFactory created null response");
             return false;
         }
 
-        try {
-            imeResponse.getCallback().onInlineSuggestionsResponse(inlineSuggestionsResponse);
-        } catch (RemoteException e) {
-            Log.w(TAG, "onFillReady() remote error calling onInlineSuggestionsResponse()");
-            return false;
-        }
-
-        return true;
+        return mInlineSuggestionSession.onInlineSuggestionsResponse(mCurrentViewId,
+                inlineSuggestionsResponse);
     }
 
     boolean isDestroyed() {
@@ -2980,18 +2973,18 @@
         // 2. standard autofill provider doesn't support inline (and returns null response)
         // 3. standard autofill provider supports inline, but isn't called because the field
         // doesn't want autofill
-        if (mForAugmentedAutofillOnly || !isInlineSuggestionsEnabled()) {
+        if (mForAugmentedAutofillOnly || !isInlineSuggestionsEnabledLocked()) {
             if (sDebug) Slog.d(TAG, "Create inline request for augmented autofill");
-            mInlineSuggestionSession.createRequest(mCurrentViewId);
+            mInlineSuggestionSession.onCreateInlineSuggestionsRequest(mCurrentViewId);
         }
-        InlineSuggestionSession.ImeResponse imeResponse =
-                mInlineSuggestionSession.waitAndGetImeResponse();
-        final InlineSuggestionsRequest inlineSuggestionsRequest =
-                imeResponse != null ? imeResponse.getRequest() : null;
-        final IInlineSuggestionsResponseCallback inlineSuggestionsResponseCallback =
-                imeResponse != null ? imeResponse.getCallback() : null;
+
+        Optional<InlineSuggestionsRequest> inlineSuggestionsRequest =
+                mInlineSuggestionSession.waitAndGetInlineSuggestionsRequest();
         remoteService.onRequestAutofillLocked(id, mClient, taskId, mComponentName, focusedId,
-                currentValue, inlineSuggestionsRequest, inlineSuggestionsResponseCallback, () -> {
+                currentValue, inlineSuggestionsRequest.orElse(null),
+                response -> mInlineSuggestionSession.onInlineSuggestionsResponse(
+                        mCurrentViewId, response),
+                () -> {
                     synchronized (mLock) {
                         cancelAugmentedAutofillLocked();
                     }
diff --git a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
index 0d1b6dd..4cf4463 100644
--- a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
+++ b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
@@ -30,7 +30,7 @@
 import android.service.autofill.InlinePresentation;
 import android.text.TextUtils;
 import android.util.Slog;
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
 import android.view.autofill.AutofillId;
 import android.view.autofill.AutofillManager;
 import android.view.autofill.AutofillValue;
@@ -70,6 +70,7 @@
      * Creates an {@link InlineSuggestionsResponse} with the {@code datasets} provided by the
      * autofill service, potentially filtering the datasets.
      */
+    @Nullable
     public static InlineSuggestionsResponse createInlineSuggestionsResponse(
             @NonNull InlineSuggestionsRequest request, @NonNull FillResponse response,
             @Nullable String filterText, @Nullable List<InlinePresentation> inlineActions,
@@ -92,23 +93,21 @@
             };
         }
 
-        final List<Dataset> datasetList = response.getDatasets();
-        final Dataset[] datasets = datasetList == null
-                ? null
-                : datasetList.toArray(new Dataset[]{});
         final InlinePresentation inlineAuthentication =
                 response.getAuthentication() == null ? null : response.getInlinePresentation();
         return createInlineSuggestionsResponseInternal(/* isAugmented= */ false, request,
-                datasets, filterText, inlineAuthentication, inlineActions, autofillId, context,
-                onErrorCallback, onClickFactory, remoteRenderService);
+                response.getDatasets(), filterText, inlineAuthentication, inlineActions, autofillId,
+                context, onErrorCallback, onClickFactory, remoteRenderService);
     }
 
     /**
      * Creates an {@link InlineSuggestionsResponse} with the {@code datasets} provided by augmented
      * autofill service.
      */
+    @Nullable
     public static InlineSuggestionsResponse createAugmentedInlineSuggestionsResponse(
-            @NonNull InlineSuggestionsRequest request, @NonNull Dataset[] datasets,
+            @NonNull InlineSuggestionsRequest request, @NonNull List<Dataset> datasets,
+            @Nullable List<InlinePresentation> inlineActions,
             @NonNull AutofillId autofillId, @NonNull Context context,
             @NonNull InlineSuggestionUiCallback inlineSuggestionUiCallback,
             @NonNull Runnable onErrorCallback,
@@ -116,14 +115,15 @@
         if (sDebug) Slog.d(TAG, "createAugmentedInlineSuggestionsResponse called");
         return createInlineSuggestionsResponseInternal(/* isAugmented= */ true, request,
                 datasets, /* filterText= */ null, /* inlineAuthentication= */ null,
-                /* inlineActions= */ null, autofillId, context, onErrorCallback,
+                inlineActions, autofillId, context, onErrorCallback,
                 (dataset, datasetIndex) ->
                         inlineSuggestionUiCallback.autofill(dataset), remoteRenderService);
     }
 
+    @Nullable
     private static InlineSuggestionsResponse createInlineSuggestionsResponseInternal(
             boolean isAugmented, @NonNull InlineSuggestionsRequest request,
-            @Nullable Dataset[] datasets, @Nullable String filterText,
+            @Nullable List<Dataset> datasets, @Nullable String filterText,
             @Nullable InlinePresentation inlineAuthentication,
             @Nullable List<InlinePresentation> inlineActions, @NonNull AutofillId autofillId,
             @NonNull Context context, @NonNull Runnable onErrorCallback,
@@ -145,8 +145,8 @@
             return null;
         }
 
-        for (int datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {
-            final Dataset dataset = datasets[datasetIndex];
+        for (int datasetIndex = 0; datasetIndex < datasets.size(); datasetIndex++) {
+            final Dataset dataset = datasets.get(datasetIndex);
             final int fieldIndex = dataset.getFieldIds().indexOf(autofillId);
             if (fieldIndex < 0) {
                 Slog.w(TAG, "AutofillId=" + autofillId + " not found in dataset");
@@ -169,7 +169,8 @@
 
             inlineSuggestions.add(inlineSuggestion);
         }
-        if (inlineActions != null) {
+        // We should only add inline actions if there is at least one suggestion.
+        if (!inlineSuggestions.isEmpty() && inlineActions != null) {
             for (InlinePresentation inlinePresentation : inlineActions) {
                 final InlineSuggestion inlineAction = createInlineAction(isAugmented, context,
                         mergedInlinePresentation(request, 0, inlinePresentation),
@@ -327,7 +328,7 @@
             }
 
             @Override
-            public void onContent(SurfaceControl surface)
+            public void onContent(SurfaceControlViewHost.SurfacePackage surface)
                     throws RemoteException {
                 callback.onContent(surface);
             }
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index 434a97e..6ccdf24 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -369,10 +369,13 @@
             boolean bypassMacPermission = getContext().getPackageManager().checkPermission(
                     android.Manifest.permission.COMPANION_APPROVE_WIFI_CONNECTIONS, packageName)
                     == PackageManager.PERMISSION_GRANTED;
+            if (bypassMacPermission) {
+                return true;
+            }
 
             return CollectionUtils.any(
                     readAllAssociations(userId, packageName),
-                    a -> bypassMacPermission || Objects.equals(a.deviceAddress, macAddress));
+                    a -> Objects.equals(a.deviceAddress, macAddress));
         }
 
         private void checkCanCallNotificationApi(String callingPackage) throws RemoteException {
diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java
index 1b1e06a..dadcd4e 100644
--- a/services/core/java/android/content/pm/PackageManagerInternal.java
+++ b/services/core/java/android/content/pm/PackageManagerInternal.java
@@ -845,18 +845,11 @@
             "android.content.pm.extra.ENABLE_ROLLBACK_TOKEN";
 
     /**
-     * Extra field name for the installFlags of a request to enable rollback
+     * Extra field name for the session id of a request to enable rollback
      * for a package.
      */
-    public static final String EXTRA_ENABLE_ROLLBACK_INSTALL_FLAGS =
-            "android.content.pm.extra.ENABLE_ROLLBACK_INSTALL_FLAGS";
-
-    /**
-     * Extra field name for the user id an install is associated with when
-     * enabling rollback.
-     */
-    public static final String EXTRA_ENABLE_ROLLBACK_USER =
-            "android.content.pm.extra.ENABLE_ROLLBACK_USER";
+    public static final String EXTRA_ENABLE_ROLLBACK_SESSION_ID =
+            "android.content.pm.extra.ENABLE_ROLLBACK_SESSION_ID";
 
     /**
      * Used as the {@code enableRollbackCode} argument for
@@ -934,13 +927,11 @@
             IntentSender intentSender, int flags);
 
     /**
-     * Get fingerprint of build that updated the runtime permissions for a user.
+     * Update fingerprint of build that updated the runtime permissions for a user.
      *
      * @param userId The user to update
-     * @param fingerPrint The fingerprint to set
      */
-    public abstract void setRuntimePermissionsFingerPrint(@NonNull String fingerPrint,
-            @UserIdInt int userId);
+    public abstract void updateRuntimePermissionsFingerprint(@UserIdInt int userId);
 
     /**
      * Migrates legacy obb data to its new location.
@@ -968,8 +959,8 @@
     public abstract boolean isCallerInstallerOfRecord(
             @NonNull AndroidPackage pkg, int callingUid);
 
-    /** Returns whether or not default runtime permissions are granted for the given user */
-    public abstract boolean areDefaultRuntimePermissionsGranted(@UserIdInt int userId);
+    /** Returns whether or not permissions need to be upgraded for the given user */
+    public abstract boolean isPermissionUpgradeNeeded(@UserIdInt int userId);
 
     /** Sets the enforcement of reading external storage */
     public abstract void setReadExternalStorageEnforced(boolean enforced);
@@ -993,4 +984,11 @@
      * Returns MIME types contained in {@code mimeGroup} from {@code packageName} package
      */
     public abstract List<String> getMimeGroup(String packageName, String mimeGroup);
+
+    /**
+     * Toggles visibility logging to help in debugging the app enumeration feature.
+     * @param packageName the package name that should begin logging
+     * @param enabled true if visibility blocks should be logged
+     */
+    public abstract void setVisibilityLogging(String packageName, boolean enabled);
 }
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 3441a5f..7840b19 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -1670,6 +1670,7 @@
             Intent intent = new Intent(Intent.ACTION_TIMEZONE_CHANGED);
             intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING
                     | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND
+                    | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT
                     | Intent.FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS);
             intent.putExtra("time-zone", zone.getID());
             getContext().sendBroadcastAsUser(intent, UserHandle.ALL);
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index f84d35f..16dd3ad 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -5779,6 +5779,20 @@
         return nri.request.requestId == mDefaultRequest.requestId;
     }
 
+    // TODO : remove this method. It's a stopgap measure to help sheperding a number of dependent
+    // changes that would conflict throughout the automerger graph. Having this method temporarily
+    // helps with the process of going through with all these dependent changes across the entire
+    // tree.
+    /**
+     * Register a new agent. {@see #registerNetworkAgent} below.
+     */
+    public Network registerNetworkAgent(Messenger messenger, NetworkInfo networkInfo,
+            LinkProperties linkProperties, NetworkCapabilities networkCapabilities,
+            int currentScore, NetworkAgentConfig networkAgentConfig) {
+        return registerNetworkAgent(messenger, networkInfo, linkProperties, networkCapabilities,
+                currentScore, networkAgentConfig, NetworkProvider.ID_NONE);
+    }
+
     /**
      * Register a new agent with ConnectivityService to handle a network.
      *
@@ -5797,7 +5811,7 @@
      */
     public Network registerNetworkAgent(Messenger messenger, NetworkInfo networkInfo,
             LinkProperties linkProperties, NetworkCapabilities networkCapabilities,
-            NetworkScore currentScore, NetworkAgentConfig networkAgentConfig, int providerId) {
+            int currentScore, NetworkAgentConfig networkAgentConfig, int providerId) {
         enforceNetworkFactoryPermission();
 
         LinkProperties lp = new LinkProperties(linkProperties);
@@ -5805,10 +5819,12 @@
         // TODO: Instead of passing mDefaultRequest, provide an API to determine whether a Network
         // satisfies mDefaultRequest.
         final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
+        final NetworkScore ns = new NetworkScore();
+        ns.putIntExtension(NetworkScore.LEGACY_SCORE, currentScore);
         final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(),
                 new Network(mNetIdManager.reserveNetId()), new NetworkInfo(networkInfo), lp, nc,
-                currentScore, mContext, mTrackerHandler, new NetworkAgentConfig(networkAgentConfig),
-                this, mNetd, mDnsResolver, mNMS, providerId);
+                ns, mContext, mTrackerHandler, new NetworkAgentConfig(networkAgentConfig), this,
+                mNetd, mDnsResolver, mNMS, providerId);
         // Make sure the network capabilities reflect what the agent info says.
         nai.getAndSetNetworkCapabilities(mixInCapabilities(nai, nc));
         final String extraInfo = networkInfo.getExtraInfo();
diff --git a/services/core/java/com/android/server/IntentResolver.java b/services/core/java/com/android/server/IntentResolver.java
index 7ec2a34..dbf179a 100644
--- a/services/core/java/com/android/server/IntentResolver.java
+++ b/services/core/java/com/android/server/IntentResolver.java
@@ -687,7 +687,7 @@
     }
 
     private final void remove_all_objects(ArrayMap<String, F[]> map, String name,
-            Object object) {
+            F object) {
         F[] array = map.get(name);
         if (array != null) {
             int LAST = array.length-1;
@@ -695,7 +695,8 @@
                 LAST--;
             }
             for (int idx=LAST; idx>=0; idx--) {
-                if (array[idx] == object) {
+                F arrayValue = array[idx];
+                if (arrayValue != null && getIntentFilter(arrayValue) == getIntentFilter(object)) {
                     final int remain = LAST - idx;
                     if (remain > 0) {
                         System.arraycopy(array, idx+1, array, idx, remain);
diff --git a/services/core/java/com/android/server/PinnerService.java b/services/core/java/com/android/server/PinnerService.java
index 3148a62..cea3251 100644
--- a/services/core/java/com/android/server/PinnerService.java
+++ b/services/core/java/com/android/server/PinnerService.java
@@ -103,7 +103,7 @@
     private static boolean PROP_PIN_CAMERA =
             DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_RUNTIME_NATIVE_BOOT,
                                     "pin_camera",
-                                    SystemProperties.getBoolean("pinner.pin_camera", false));
+                                    SystemProperties.getBoolean("pinner.pin_camera", true));
     // Pin using pinlist.meta when pinning apps.
     private static boolean PROP_PIN_PINLIST = SystemProperties.getBoolean(
             "pinner.use_pinlist", true);
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 95bfbd7..b7d050a 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -335,6 +335,8 @@
             Manifest.permission.WRITE_EXTERNAL_STORAGE
     };
 
+    @Nullable public static String sMediaStoreAuthorityProcessName;
+
     private final AtomicFile mSettingsFile;
 
     /**
@@ -1840,6 +1842,7 @@
                 UserHandle.getUserId(UserHandle.USER_SYSTEM));
         if (provider != null) {
             mMediaStoreAuthorityAppId = UserHandle.getAppId(provider.applicationInfo.uid);
+            sMediaStoreAuthorityProcessName = provider.applicationInfo.processName;
         }
 
         provider = mPmInternal.resolveContentProvider(
@@ -4366,18 +4369,24 @@
                     final IVold vold = IVold.Stub.asInterface(
                             ServiceManager.getServiceOrThrow("vold"));
                     for (String pkg : packageList) {
-                        final String obbDir =
-                                String.format("/storage/emulated/%d/Android/obb", userId);
-                        final String packageObbDir = String.format("%s/%s/", obbDir, pkg);
+                        final String packageObbDir =
+                                String.format("/storage/emulated/%d/Android/obb/%s/", userId, pkg);
+                        final String packageDataDir =
+                                String.format("/storage/emulated/%d/Android/data/%s/",
+                                        userId, pkg);
 
-                        // Create package obb dir if it doesn't exist.
+                        // Create package obb and data dir if it doesn't exist.
                         File file = new File(packageObbDir);
                         if (!file.exists()) {
                             vold.setupAppDir(packageObbDir, mPmInternal.getPackage(pkg).getUid());
                         }
+                        file = new File(packageDataDir);
+                        if (!file.exists()) {
+                            vold.setupAppDir(packageDataDir, mPmInternal.getPackage(pkg).getUid());
+                        }
                     }
                 } catch (ServiceManager.ServiceNotFoundException | RemoteException e) {
-                    Slog.e(TAG, "Unable to create obb directories for " + processName, e);
+                    Slog.e(TAG, "Unable to create obb and data directories for " + processName, e);
                 }
             }
         }
@@ -4497,42 +4506,42 @@
         }
 
         public void onAppOpsChanged(int code, int uid, @Nullable String packageName, int mode) {
-            if (mIsFuseEnabled) {
-                // When using FUSE, we may need to kill the app if the op changes
-                switch(code) {
-                    case OP_REQUEST_INSTALL_PACKAGES:
-                        // Always kill regardless of op change, to remount apps /storage
-                        killAppForOpChange(code, uid, packageName);
-                        return;
-                    case OP_MANAGE_EXTERNAL_STORAGE:
-                        if (mode != MODE_ALLOWED) {
-                            // Only kill if op is denied, to lose external_storage gid
-                            // Killing when op is granted to pickup the gid automatically, results
-                            // in a bad UX, especially since the gid only gives access to unreliable
-                            // volumes, USB OTGs that are rarely mounted. The app will get the
-                            // external_storage gid on next organic restart.
+            final long token = Binder.clearCallingIdentity();
+            try {
+                if (mIsFuseEnabled) {
+                    // When using FUSE, we may need to kill the app if the op changes
+                    switch(code) {
+                        case OP_REQUEST_INSTALL_PACKAGES:
+                            // Always kill regardless of op change, to remount apps /storage
                             killAppForOpChange(code, uid, packageName);
-                        }
-                        return;
-                    case OP_LEGACY_STORAGE:
-                        updateLegacyStorageApps(packageName, uid, mode == MODE_ALLOWED);
-                        return;
+                            return;
+                        case OP_MANAGE_EXTERNAL_STORAGE:
+                            if (mode != MODE_ALLOWED) {
+                                // Only kill if op is denied, to lose external_storage gid
+                                // Killing when op is granted to pickup the gid automatically,
+                                // results in a bad UX, especially since the gid only gives access
+                                // to unreliable volumes, USB OTGs that are rarely mounted. The app
+                                // will get the external_storage gid on next organic restart.
+                                killAppForOpChange(code, uid, packageName);
+                            }
+                            return;
+                        case OP_LEGACY_STORAGE:
+                            updateLegacyStorageApps(packageName, uid, mode == MODE_ALLOWED);
+                            return;
+                    }
                 }
-            }
 
-            if (mode == MODE_ALLOWED && (code == OP_READ_EXTERNAL_STORAGE
-                    || code == OP_WRITE_EXTERNAL_STORAGE
-                    || code == OP_REQUEST_INSTALL_PACKAGES)) {
-                final long token = Binder.clearCallingIdentity();
-                try {
+                if (mode == MODE_ALLOWED && (code == OP_READ_EXTERNAL_STORAGE
+                                || code == OP_WRITE_EXTERNAL_STORAGE
+                                || code == OP_REQUEST_INSTALL_PACKAGES)) {
                     final UserManagerInternal userManagerInternal =
                             LocalServices.getService(UserManagerInternal.class);
                     if (userManagerInternal.isUserInitialized(UserHandle.getUserId(uid))) {
                         onExternalStoragePolicyChanged(uid, packageName);
                     }
-                } finally {
-                    Binder.restoreCallingIdentity(token);
                 }
+            } finally {
+                Binder.restoreCallingIdentity(token);
             }
         }
     }
diff --git a/services/core/java/com/android/server/SystemServiceManager.java b/services/core/java/com/android/server/SystemServiceManager.java
index f16f6ef..d2e12b5 100644
--- a/services/core/java/com/android/server/SystemServiceManager.java
+++ b/services/core/java/com/android/server/SystemServiceManager.java
@@ -203,7 +203,7 @@
             for (int i = 0; i < serviceLen; i++) {
                 final SystemService service = mServices.get(i);
                 long time = SystemClock.elapsedRealtime();
-                t.traceBegin(service.getClass().getName());
+                t.traceBegin("OnBootPhase " + service.getClass().getName());
                 try {
                     service.onBootPhase(mCurrentPhase);
                 } catch (Exception ex) {
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index f85fc28..1415433 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -1538,17 +1538,15 @@
         }
         synchronized (mRecords) {
             if (validatePhoneId(phoneId)) {
-                if (mDisplayInfos[phoneId] != null) {
-                    mDisplayInfos[phoneId] = displayInfo;
-                    for (Record r : mRecords) {
-                        if (r.matchPhoneStateListenerEvent(
-                                PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED)
-                                && idMatch(r.subId, subId, phoneId)) {
-                            try {
-                                r.callback.onDisplayInfoChanged(displayInfo);
-                            } catch (RemoteException ex) {
-                                mRemoveList.add(r.binder);
-                            }
+                mDisplayInfos[phoneId] = displayInfo;
+                for (Record r : mRecords) {
+                    if (r.matchPhoneStateListenerEvent(
+                            PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED)
+                            && idMatch(r.subId, subId, phoneId)) {
+                        try {
+                            r.callback.onDisplayInfoChanged(displayInfo);
+                        } catch (RemoteException ex) {
+                            mRemoveList.add(r.binder);
                         }
                     }
                 }
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index 6763c51..88b517c 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -97,16 +97,11 @@
 
     private int mLastBroadcastState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
     private int mNightMode = UiModeManager.MODE_NIGHT_NO;
-    // we use the override auto mode
-    // for example: force night mode off in the night time while in auto mode
-    private int mNightModeOverride = mNightMode;
     private final LocalTime DEFAULT_CUSTOM_NIGHT_START_TIME = LocalTime.of(22, 0);
     private final LocalTime DEFAULT_CUSTOM_NIGHT_END_TIME = LocalTime.of(6, 0);
     private LocalTime mCustomAutoNightModeStartMilliseconds = DEFAULT_CUSTOM_NIGHT_START_TIME;
     private LocalTime mCustomAutoNightModeEndMilliseconds = DEFAULT_CUSTOM_NIGHT_END_TIME;
 
-    protected static final String OVERRIDE_NIGHT_MODE = Secure.UI_NIGHT_MODE_OVERRIDE;
-
     private Map<Integer, String> mCarModePackagePriority = new HashMap<>();
     private boolean mCarModeEnabled = false;
     private boolean mCharging = false;
@@ -149,9 +144,16 @@
     private AlarmManager mAlarmManager;
     private PowerManager mPowerManager;
 
+    // In automatic scheduling, the user is able
+    // to override the computed night mode until the two match
+    // Example: Activate dark mode in the day time until sunrise the next day
+    private boolean mOverrideNightModeOn;
+    private boolean mOverrideNightModeOff;
+
     private PowerManager.WakeLock mWakeLock;
 
     private final LocalService mLocalService = new LocalService();
+    private PowerManagerInternal mLocalPowerManager;
 
     public UiModeManagerService(Context context) {
         super(context);
@@ -160,6 +162,7 @@
     @VisibleForTesting
     protected UiModeManagerService(Context context, WindowManagerInternal wm, AlarmManager am,
                                    PowerManager pm, PowerManager.WakeLock wl, TwilightManager tm,
+                                   PowerManagerInternal localPowerManager,
                                    boolean setupWizardComplete) {
         super(context);
         mWindowManager = wm;
@@ -168,6 +171,8 @@
         mSetupWizardComplete = setupWizardComplete;
         mAlarmManager = am;
         mPowerManager = pm;
+        mLocalPowerManager = localPowerManager;
+        initPowerSave();
     }
 
     private static Intent buildHomeIntent(String category) {
@@ -230,11 +235,11 @@
         @Override
         public void onTwilightStateChanged(@Nullable TwilightState state) {
             synchronized (mLock) {
-                if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
+                if (mNightMode == UiModeManager.MODE_NIGHT_AUTO && mSystemReady) {
                     if (mCar) {
                         updateLocked(0, 0);
                     } else {
-                        registerScreenOffEvent();
+                        registerScreenOffEventLocked();
                     }
                 }
             }
@@ -250,7 +255,7 @@
         public void onReceive(Context context, Intent intent) {
             synchronized (mLock) {
                 // must unregister first before updating
-                unregisterScreenOffEvent();
+                unregisterScreenOffEventLocked();
                 updateLocked(0, 0);
             }
         }
@@ -286,15 +291,18 @@
     private final ContentObserver mSetupWizardObserver = new ContentObserver(mHandler) {
         @Override
         public void onChange(boolean selfChange, Uri uri) {
-            // setup wizard is done now so we can unblock
-            if (setupWizardCompleteForCurrentUser()) {
-                mSetupWizardComplete = true;
-                getContext().getContentResolver().unregisterContentObserver(mSetupWizardObserver);
-                // update night mode
-                Context context = getContext();
-                updateNightModeFromSettings(context, context.getResources(),
-                        UserHandle.getCallingUserId());
-                updateLocked(0, 0);
+            synchronized (mLock) {
+                // setup wizard is done now so we can unblock
+                if (setupWizardCompleteForCurrentUser()) {
+                    mSetupWizardComplete = true;
+                    getContext().getContentResolver()
+                            .unregisterContentObserver(mSetupWizardObserver);
+                    // update night mode
+                    Context context = getContext();
+                    updateNightModeFromSettingsLocked(context, context.getResources(),
+                            UserHandle.getCallingUserId());
+                    updateLocked(0, 0);
+                }
             }
         }
     };
@@ -326,8 +334,7 @@
     public void onStart() {
         final Context context = getContext();
 
-        mPowerManager =
-                (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+        mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
         mWindowManager = LocalServices.getService(WindowManagerInternal.class);
         mAlarmManager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
@@ -341,21 +348,11 @@
         IntentFilter batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
         context.registerReceiver(mBatteryReceiver, batteryFilter);
 
-        PowerManagerInternal localPowerManager =
+        mLocalPowerManager =
                 LocalServices.getService(PowerManagerInternal.class);
-        mPowerSave = localPowerManager.getLowPowerState(ServiceType.NIGHT_MODE).batterySaverEnabled;
-        localPowerManager.registerLowPowerModeObserver(ServiceType.NIGHT_MODE,
-                state -> {
-                    synchronized (mLock) {
-                        if (mPowerSave == state.batterySaverEnabled) {
-                            return;
-                        }
-                        mPowerSave = state.batterySaverEnabled;
-                        if (mSystemReady) {
-                            updateLocked(0, 0);
-                        }
-                    }
-                });
+        initPowerSave();
+
+        mTwilightManager = getLocalService(TwilightManager.class);
 
         mConfiguration.setToDefaults();
 
@@ -377,11 +374,10 @@
         mCar = pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
         mWatch = pm.hasSystemFeature(PackageManager.FEATURE_WATCH);
 
-        updateNightModeFromSettings(context, res, UserHandle.getCallingUserId());
-
         // Update the initial, static configurations.
         SystemServerInitThreadPool.submit(() -> {
             synchronized (mLock) {
+                updateNightModeFromSettingsLocked(context, res, UserHandle.getCallingUserId());
                 updateConfigurationLocked();
                 applyConfigurationExternallyLocked();
             }
@@ -396,7 +392,24 @@
 
         context.getContentResolver().registerContentObserver(Secure.getUriFor(Secure.UI_NIGHT_MODE),
                 false, mDarkThemeObserver, 0);
-        updateSystemProperties();
+        mHandler.post(() -> updateSystemProperties());
+    }
+
+    private void initPowerSave() {
+        mPowerSave =
+                mLocalPowerManager.getLowPowerState(ServiceType.NIGHT_MODE)
+                        .batterySaverEnabled;
+        mLocalPowerManager.registerLowPowerModeObserver(ServiceType.NIGHT_MODE, state -> {
+            synchronized (mLock) {
+                if (mPowerSave == state.batterySaverEnabled) {
+                    return;
+                }
+                mPowerSave = state.batterySaverEnabled;
+                if (mSystemReady) {
+                    updateLocked(0, 0);
+                }
+            }
+        });
     }
 
     @VisibleForTesting
@@ -433,7 +446,7 @@
         if (shouldApplyAutomaticChangesImmediately()) {
             updateLocked(0, 0);
         } else {
-            registerScreenOffEvent();
+            registerScreenOffEventLocked();
         }
         scheduleNextCustomTimeListener();
     }
@@ -446,15 +459,17 @@
      * @param userId The user to update the setting for
      * @return True if the new value is different from the old value. False otherwise.
      */
-    private boolean updateNightModeFromSettings(Context context, Resources res, int userId) {
+    private boolean updateNightModeFromSettingsLocked(Context context, Resources res, int userId) {
         final int defaultNightMode = res.getInteger(
                 com.android.internal.R.integer.config_defaultNightMode);
         int oldNightMode = mNightMode;
         if (mSetupWizardComplete) {
             mNightMode = Secure.getIntForUser(context.getContentResolver(),
                     Secure.UI_NIGHT_MODE, defaultNightMode, userId);
-            mNightModeOverride = Secure.getIntForUser(context.getContentResolver(),
-                    OVERRIDE_NIGHT_MODE, defaultNightMode, userId);
+            mOverrideNightModeOn = Secure.getIntForUser(context.getContentResolver(),
+                    Secure.UI_NIGHT_MODE_OVERRIDE_ON, defaultNightMode, userId) != 0;
+            mOverrideNightModeOff = Secure.getIntForUser(context.getContentResolver(),
+                    Secure.UI_NIGHT_MODE_OVERRIDE_OFF, defaultNightMode, userId) != 0;
             mCustomAutoNightModeStartMilliseconds = LocalTime.ofNanoOfDay(
                     Secure.getLongForUser(context.getContentResolver(),
                     Secure.DARK_THEME_CUSTOM_START_TIME,
@@ -465,15 +480,17 @@
                     DEFAULT_CUSTOM_NIGHT_END_TIME.toNanoOfDay() / 1000L, userId) * 1000);
         } else {
             mNightMode = defaultNightMode;
-            mNightModeOverride = defaultNightMode;
             mCustomAutoNightModeEndMilliseconds = DEFAULT_CUSTOM_NIGHT_END_TIME;
             mCustomAutoNightModeStartMilliseconds = DEFAULT_CUSTOM_NIGHT_START_TIME;
+            mOverrideNightModeOn = false;
+            mOverrideNightModeOff = false;
         }
 
         return oldNightMode != mNightMode;
     }
 
-    private void registerScreenOffEvent() {
+    private void registerScreenOffEventLocked() {
+        if (mPowerSave) return;
         mWaitForScreenOff = true;
         final IntentFilter intentFilter =
                 new IntentFilter(Intent.ACTION_SCREEN_OFF);
@@ -484,7 +501,7 @@
         mAlarmManager.cancel(mCustomTimeListener);
     }
 
-    private void unregisterScreenOffEvent() {
+    private void unregisterScreenOffEventLocked() {
         mWaitForScreenOff = false;
         try {
             getContext().unregisterReceiver(mOnScreenOffHandler);
@@ -630,12 +647,12 @@
                 synchronized (mLock) {
                     if (mNightMode != mode) {
                         if (mNightMode == MODE_NIGHT_AUTO || mNightMode == MODE_NIGHT_CUSTOM) {
-                            unregisterScreenOffEvent();
+                            unregisterScreenOffEventLocked();
                             cancelCustomAlarm();
                         }
 
                         mNightMode = mode;
-                        mNightModeOverride = mode;
+                        resetNightModeOverrideLocked();
                         // Only persist setting if not in car mode
                         if (!mCarModeEnabled) {
                             persistNightMode(user);
@@ -643,10 +660,10 @@
                         // on screen off will update configuration instead
                         if ((mNightMode != MODE_NIGHT_AUTO && mNightMode != MODE_NIGHT_CUSTOM)
                                 || shouldApplyAutomaticChangesImmediately()) {
-                            unregisterScreenOffEvent();
+                            unregisterScreenOffEventLocked();
                             updateLocked(0, 0);
                         } else {
-                            registerScreenOffEvent();
+                            registerScreenOffEventLocked();
                         }
                     }
                 }
@@ -695,9 +712,9 @@
                 final long ident = Binder.clearCallingIdentity();
                 try {
                     if (mNightMode == MODE_NIGHT_AUTO || mNightMode == MODE_NIGHT_CUSTOM) {
-                        unregisterScreenOffEvent();
-                        mNightModeOverride = active
-                                ? UiModeManager.MODE_NIGHT_YES : UiModeManager.MODE_NIGHT_NO;
+                        unregisterScreenOffEventLocked();
+                        mOverrideNightModeOff = !active;
+                        mOverrideNightModeOn = active;
                     } else if (mNightMode == UiModeManager.MODE_NIGHT_NO
                             && active) {
                         mNightMode = UiModeManager.MODE_NIGHT_YES;
@@ -737,7 +754,7 @@
                 persistNightMode(user);
                 onCustomTimeUpdated(user);
             } catch (DateTimeException e) {
-                unregisterScreenOffEvent();
+                unregisterScreenOffEventLocked();
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -764,7 +781,7 @@
                 mCustomAutoNightModeEndMilliseconds = newTime;
                 onCustomTimeUpdated(user);
             } catch (DateTimeException e) {
-                unregisterScreenOffEvent();
+                unregisterScreenOffEventLocked();
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -775,10 +792,10 @@
         persistNightMode(user);
         if (mNightMode != MODE_NIGHT_CUSTOM) return;
         if (shouldApplyAutomaticChangesImmediately()) {
-            unregisterScreenOffEvent();
+            unregisterScreenOffEventLocked();
             updateLocked(0, 0);
         } else {
-            registerScreenOffEvent();
+            registerScreenOffEventLocked();
         }
     }
 
@@ -790,6 +807,9 @@
 
             pw.print("  mNightMode="); pw.print(mNightMode); pw.print(" (");
             pw.print(Shell.nightModeToStr(mNightMode)); pw.print(") ");
+            pw.print(" mOverrideOn/Off="); pw.print(mOverrideNightModeOn);
+            pw.print("/"); pw.print(mOverrideNightModeOff);
+
             pw.print(" mNightModeLocked="); pw.println(mNightModeLocked);
 
             pw.print("  mCarModeEnabled="); pw.print(mCarModeEnabled);
@@ -802,6 +822,8 @@
             }
             pw.println("");
             pw.print(" mComputedNightMode="); pw.print(mComputedNightMode);
+            pw.print(" customStart="); pw.print(mCustomAutoNightModeStartMilliseconds);
+            pw.print(" customEnd"); pw.print(mCustomAutoNightModeEndMilliseconds);
             pw.print(" mCarModeEnableFlags="); pw.print(mCarModeEnableFlags);
             pw.print(" mEnableCarDockLaunch="); pw.println(mEnableCarDockLaunch);
 
@@ -824,7 +846,6 @@
     public void onBootPhase(int phase) {
         if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
             synchronized (mLock) {
-                mTwilightManager = getLocalService(TwilightManager.class);
                 mSystemReady = true;
                 mCarModeEnabled = mDockState == Intent.EXTRA_DOCK_STATE_CAR;
                 registerVrStateListener();
@@ -860,7 +881,7 @@
             // When exiting car mode, restore night mode from settings
             if (!isCarModeNowEnabled) {
                 Context context = getContext();
-                updateNightModeFromSettings(context,
+                updateNightModeFromSettingsLocked(context,
                         context.getResources(),
                         UserHandle.getCallingUserId());
             }
@@ -986,7 +1007,9 @@
         Secure.putIntForUser(getContext().getContentResolver(),
                 Secure.UI_NIGHT_MODE, mNightMode, user);
         Secure.putIntForUser(getContext().getContentResolver(),
-                OVERRIDE_NIGHT_MODE, mNightModeOverride, user);
+                Secure.UI_NIGHT_MODE_OVERRIDE_ON, mOverrideNightModeOn ? 1 : 0, user);
+        Secure.putIntForUser(getContext().getContentResolver(),
+                Secure.UI_NIGHT_MODE_OVERRIDE_OFF, mOverrideNightModeOff ? 1 : 0, user);
         Secure.putLongForUser(getContext().getContentResolver(),
                 Secure.DARK_THEME_CUSTOM_START_TIME,
                 mCustomAutoNightModeStartMilliseconds.toNanoOfDay() / 1000, user);
@@ -1011,6 +1034,10 @@
             uiMode = Configuration.UI_MODE_TYPE_VR_HEADSET;
         }
 
+        if (mNightMode == MODE_NIGHT_YES || mNightMode == UiModeManager.MODE_NIGHT_NO) {
+            updateComputedNightModeLocked(mNightMode == MODE_NIGHT_YES);
+        }
+
         if (mNightMode == MODE_NIGHT_AUTO) {
             boolean activateNightMode = mComputedNightMode;
             if (mTwilightManager != null) {
@@ -1020,12 +1047,10 @@
             }
             
             updateComputedNightModeLocked(activateNightMode);
-            uiMode = getComputedUiModeConfiguration(uiMode);
         } else {
             if (mTwilightManager != null) {
                 mTwilightManager.unregisterListener(mTwilightListener);
             }
-            uiMode |= mNightMode << 4;
         }
 
         if (mNightMode == MODE_NIGHT_CUSTOM) {
@@ -1033,7 +1058,6 @@
             final boolean activate = computeCustomNightMode();
             updateComputedNightModeLocked(activate);
             scheduleNextCustomTimeListener();
-            uiMode = getComputedUiModeConfiguration(uiMode);
         } else {
             unregisterTimeChangeEvent();
         }
@@ -1042,6 +1066,8 @@
         if (mPowerSave && !mCarModeEnabled) {
             uiMode &= ~Configuration.UI_MODE_NIGHT_NO;
             uiMode |= Configuration.UI_MODE_NIGHT_YES;
+        } else {
+            uiMode = getComputedUiModeConfiguration(uiMode);
         }
 
         if (LOG) {
@@ -1053,7 +1079,7 @@
         }
 
         mCurUiMode = uiMode;
-        if (!mHoldingConfiguration && !mWaitForScreenOff) {
+        if (!mHoldingConfiguration && (!mWaitForScreenOff || mPowerSave)) {
             mConfiguration.uiMode = uiMode;
         }
     }
@@ -1113,6 +1139,7 @@
     void updateLocked(int enableFlags, int disableFlags) {
         String action = null;
         String oldAction = null;
+        boolean originalComputedNightMode = mComputedNightMode;
         if (mLastBroadcastState == Intent.EXTRA_DOCK_STATE_CAR) {
             adjustStatusBarCarModeLocked();
             oldAction = UiModeManager.ACTION_EXIT_CAR_MODE;
@@ -1193,6 +1220,11 @@
             sendConfigurationAndStartDreamOrDockAppLocked(category);
         }
 
+        // reset overrides if mComputedNightMode changes
+        if (originalComputedNightMode != mComputedNightMode) {
+            resetNightModeOverrideLocked();
+        }
+
         // keep screen on when charging and in car mode
         boolean keepScreenOn = mCharging &&
                 ((mCarModeEnabled && mCarModeKeepsScreenOn &&
@@ -1343,19 +1375,22 @@
 
     private void updateComputedNightModeLocked(boolean activate) {
         mComputedNightMode = activate;
-        if (mNightModeOverride == UiModeManager.MODE_NIGHT_YES && !mComputedNightMode) {
+        if (mOverrideNightModeOn && !mComputedNightMode) {
             mComputedNightMode = true;
             return;
         }
-        if (mNightModeOverride == UiModeManager.MODE_NIGHT_NO && mComputedNightMode) {
+        if (mOverrideNightModeOff && mComputedNightMode) {
             mComputedNightMode = false;
             return;
         }
+    }
 
-        mNightModeOverride = mNightMode;
-        final int user = UserHandle.getCallingUserId();
-        Secure.putIntForUser(getContext().getContentResolver(),
-                OVERRIDE_NIGHT_MODE, mNightModeOverride, user);
+    private void resetNightModeOverrideLocked() {
+        if (mOverrideNightModeOff || mOverrideNightModeOn) {
+            mOverrideNightModeOff = false;
+            mOverrideNightModeOn = false;
+            persistNightMode(UserHandle.getCallingUserId());
+        }
     }
 
     private void registerVrStateListener() {
@@ -1498,7 +1533,7 @@
                 final int currentId = intent.getIntExtra(
                         Intent.EXTRA_USER_HANDLE, UserHandle.USER_SYSTEM);
                 // only update if the value is actually changed
-                if (updateNightModeFromSettings(context, context.getResources(), currentId)) {
+                if (updateNightModeFromSettingsLocked(context, context.getResources(), currentId)) {
                     updateLocked(0, 0);
                 }
             }
diff --git a/services/core/java/com/android/server/Watchdog.java b/services/core/java/com/android/server/Watchdog.java
index ac7867f..93b16f7 100644
--- a/services/core/java/com/android/server/Watchdog.java
+++ b/services/core/java/com/android/server/Watchdog.java
@@ -69,21 +69,21 @@
     public static final boolean DEBUG = false;
 
     // Set this to true to use debug default values.
-    static final boolean DB = false;
+    private static final boolean DB = false;
 
     // Note 1: Do not lower this value below thirty seconds without tightening the invoke-with
     //         timeout in com.android.internal.os.ZygoteConnection, or wrapped applications
     //         can trigger the watchdog.
     // Note 2: The debug value is already below the wait time in ZygoteConnection. Wrapped
     //         applications may not work with a debug build. CTS will fail.
-    static final long DEFAULT_TIMEOUT = DB ? 10*1000 : 60*1000;
-    static final long CHECK_INTERVAL = DEFAULT_TIMEOUT / 2;
+    private static final long DEFAULT_TIMEOUT = DB ? 10 * 1000 : 60 * 1000;
+    private static final long CHECK_INTERVAL = DEFAULT_TIMEOUT / 2;
 
     // These are temporally ordered: larger values as lateness increases
-    static final int COMPLETED = 0;
-    static final int WAITING = 1;
-    static final int WAITED_HALF = 2;
-    static final int OVERDUE = 3;
+    private static final int COMPLETED = 0;
+    private static final int WAITING = 1;
+    private static final int WAITED_HALF = 2;
+    private static final int OVERDUE = 3;
 
     // Which native processes to dump into dropbox's stack traces
     public static final String[] NATIVE_STACKS_OF_INTEREST = new String[] {
@@ -112,6 +112,7 @@
             "android.hardware.biometrics.face@1.0::IBiometricsFace",
             "android.hardware.bluetooth@1.0::IBluetoothHci",
             "android.hardware.camera.provider@2.4::ICameraProvider",
+            "android.hardware.gnss@1.0::IGnss",
             "android.hardware.graphics.allocator@2.0::IAllocator",
             "android.hardware.graphics.composer@2.1::IComposer",
             "android.hardware.health@2.0::IHealth",
@@ -124,17 +125,17 @@
             "android.system.suspend@1.0::ISystemSuspend"
     );
 
-    static Watchdog sWatchdog;
+    private static Watchdog sWatchdog;
 
     /* This handler will be used to post message back onto the main thread */
-    final ArrayList<HandlerChecker> mHandlerCheckers = new ArrayList<>();
-    final HandlerChecker mMonitorChecker;
-    ActivityManagerService mActivity;
+    private final ArrayList<HandlerChecker> mHandlerCheckers = new ArrayList<>();
+    private final HandlerChecker mMonitorChecker;
+    private ActivityManagerService mActivity;
 
-    int mPhonePid;
-    IActivityController mController;
-    boolean mAllowRestart = true;
-    final OpenFdMonitor mOpenFdMonitor;
+    private IActivityController mController;
+    private boolean mAllowRestart = true;
+    private final OpenFdMonitor mOpenFdMonitor;
+    private final List<Integer> mInterestingJavaPids = new ArrayList<>();
 
     /**
      * Used for checking status of handle threads and scheduling monitor callbacks.
@@ -341,6 +342,8 @@
 
         mOpenFdMonitor = OpenFdMonitor.create();
 
+        mInterestingJavaPids.add(Process.myPid());
+
         // See the notes on DEFAULT_TIMEOUT.
         assert DB ||
                 DEFAULT_TIMEOUT > ZygoteConnectionConstants.WRAPPED_PID_TIMEOUT_MILLIS;
@@ -358,10 +361,32 @@
                 android.Manifest.permission.REBOOT, null);
     }
 
-    public void processStarted(String name, int pid) {
-        synchronized (this) {
-            if ("com.android.phone".equals(name)) {
-                mPhonePid = pid;
+    private static boolean isInterestingJavaProcess(String processName) {
+        return processName.equals(StorageManagerService.sMediaStoreAuthorityProcessName)
+                || processName.equals("com.android.phone");
+    }
+
+    /**
+     * Notifies the watchdog when a Java process with {@code pid} is started.
+     * This process may have its stack trace dumped during an ANR.
+     */
+    public void processStarted(String processName, int pid) {
+        if (isInterestingJavaProcess(processName)) {
+            Slog.i(TAG, "Interesting Java process " + processName + " started. Pid " + pid);
+            synchronized (this) {
+                mInterestingJavaPids.add(pid);
+            }
+        }
+    }
+
+    /**
+     * Notifies the watchdog when a Java process with {@code pid} dies.
+     */
+    public void processDied(String processName, int pid) {
+        if (isInterestingJavaProcess(processName)) {
+            Slog.i(TAG, "Interesting Java process " + processName + " died. Pid " + pid);
+            synchronized (this) {
+                mInterestingJavaPids.remove(Integer.valueOf(pid));
             }
         }
     }
@@ -581,8 +606,7 @@
                             Slog.i(TAG, "WAITED_HALF");
                             // We've waited half the deadlock-detection interval.  Pull a stack
                             // trace and wait another half.
-                            ArrayList<Integer> pids = new ArrayList<Integer>();
-                            pids.add(Process.myPid());
+                            ArrayList<Integer> pids = new ArrayList<>(mInterestingJavaPids);
                             ActivityManagerService.dumpStackTraces(pids, null, null,
                                     getInterestingNativePids(), null);
                             waitedHalf = true;
@@ -605,9 +629,7 @@
             // Then kill this process so that the system will restart.
             EventLog.writeEvent(EventLogTags.WATCHDOG, subject);
 
-            ArrayList<Integer> pids = new ArrayList<>();
-            pids.add(Process.myPid());
-            if (mPhonePid > 0) pids.add(mPhonePid);
+            ArrayList<Integer> pids = new ArrayList<>(mInterestingJavaPids);
 
             long anrTime = SystemClock.uptimeMillis();
             StringBuilder report = new StringBuilder();
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index b7b52b1..cfc8b45 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -24,6 +24,7 @@
 import static android.os.Process.ROOT_UID;
 import static android.os.Process.SHELL_UID;
 import static android.os.Process.SYSTEM_UID;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_EMPTY;
 
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_BACKGROUND_CHECK;
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_FOREGROUND_SERVICE;
@@ -2937,8 +2938,10 @@
         // Not running -- get it started, and enqueue this service record
         // to be executed when the app comes up.
         if (app == null && !permissionsReviewRequired) {
+            // TODO (chriswailes): Change the Zygote policy flags based on if the launch-for-service
+            //  was initiated from a notification tap or not.
             if ((app=mAm.startProcessLocked(procName, r.appInfo, true, intentFlags,
-                    hostingRecord, false, isolated, false)) == null) {
+                    hostingRecord, ZYGOTE_POLICY_FLAG_EMPTY, false, isolated, false)) == null) {
                 String msg = "Unable to launch app "
                         + r.appInfo.packageName + "/"
                         + r.appInfo.uid + " for service "
@@ -4917,35 +4920,7 @@
     }
 
     // TODO: remove this toast after feature development is done
-    private void showWhileInUsePermissionInFgsBlockedNotificationLocked(String callingPackage,
-            String detailInfo) {
-        final Context context = mAm.mContext;
-        final String title = "Foreground Service While-in-use Permission Restricted";
-        final String content = "App affected:" + callingPackage + ", please file a bug report";
-        Notification.Builder n =
-                new Notification.Builder(context,
-                        SystemNotificationChannels.ALERTS)
-                        .setSmallIcon(R.drawable.stat_sys_vitals)
-                        .setWhen(0)
-                        .setColor(context.getColor(
-                                com.android.internal.R.color.system_notification_accent_color))
-                        .setTicker(title)
-                        .setContentTitle(title)
-                        .setContentText(content)
-                        .setStyle(new Notification.BigTextStyle().bigText(detailInfo));
-        final NotificationManager notificationManager =
-                (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
-        notificationManager.notifyAsUser(null,
-                SystemMessageProto.SystemMessage.NOTE_FOREGROUND_SERVICE_WHILE_IN_USE_PERMISSION,
-                n.build(), UserHandle.ALL);
-    }
-
-    // TODO: remove this toast after feature development is done
-    // show a toast message to ask user to file a bugreport so we know how many apps are impacted by
-    // the new background started foreground service while-in-use permission restriction.
-    void showWhileInUseDebugNotificationLocked(int uid, int op, int mode) {
-        StringBuilder packageNameBuilder = new StringBuilder();
-        StringBuilder detailInfoBuilder = new StringBuilder();
+    void showWhileInUseDebugToastLocked(int uid, int op, int mode) {
         for (int i = mAm.mProcessList.mLruProcesses.size() - 1; i >= 0; i--) {
             ProcessRecord pr = mAm.mProcessList.mLruProcesses.get(i);
             if (pr.uid != uid) {
@@ -4962,18 +4937,8 @@
                             + " affected while-in-use permission:"
                             + AppOpsManager.opToPublicName(op);
                     Slog.wtf(TAG, msg);
-                    packageNameBuilder.append(r.mRecentCallingPackage + " ");
-                    detailInfoBuilder.append(msg);
-                    detailInfoBuilder.append("\n");
                 }
             }
         }
-
-        final String callingPackageStr = packageNameBuilder.toString();
-        if (mAm.mConstants.mFlagForegroundServiceStartsLoggingEnabled
-                && !callingPackageStr.isEmpty()) {
-            showWhileInUsePermissionInFgsBlockedNotificationLocked(callingPackageStr,
-                    detailInfoBuilder.toString());
-        }
     }
 }
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index b2fb530..9058ac4 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -65,6 +65,10 @@
 import static android.os.Process.SIGNAL_USR1;
 import static android.os.Process.SYSTEM_UID;
 import static android.os.Process.THREAD_PRIORITY_FOREGROUND;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_BATCH_LAUNCH;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_EMPTY;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_SYSTEM_PROCESS;
 import static android.os.Process.ZYGOTE_PROCESS;
 import static android.os.Process.getTotalMemory;
 import static android.os.Process.isThreadInProcess;
@@ -77,6 +81,8 @@
 import static android.os.Process.sendSignal;
 import static android.os.Process.setThreadPriority;
 import static android.os.Process.setThreadScheduler;
+import static android.permission.PermissionManager.KILL_APP_REASON_GIDS_CHANGED;
+import static android.permission.PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED;
 import static android.provider.Settings.Global.ALWAYS_FINISH_ACTIVITIES;
 import static android.provider.Settings.Global.DEBUG_APP;
 import static android.provider.Settings.Global.NETWORK_ACCESS_TIMEOUT_MS;
@@ -3054,7 +3060,7 @@
             info.targetSdkVersion = Build.VERSION.SDK_INT;
             ProcessRecord proc = mProcessList.startProcessLocked(processName, info /* info */,
                     false /* knownToBeDead */, 0 /* intentFlags */,
-                    sNullHostingRecord  /* hostingRecord */,
+                    sNullHostingRecord  /* hostingRecord */, ZYGOTE_POLICY_FLAG_EMPTY,
                     true /* allowWhileBooting */, true /* isolated */,
                     uid, true /* keepIfLarge */, abiOverride, entryPoint, entryPointArgs,
                     crashHandler);
@@ -3065,12 +3071,12 @@
     @GuardedBy("this")
     final ProcessRecord startProcessLocked(String processName,
             ApplicationInfo info, boolean knownToBeDead, int intentFlags,
-            HostingRecord hostingRecord, boolean allowWhileBooting,
+            HostingRecord hostingRecord, int zygotePolicyFlags, boolean allowWhileBooting,
             boolean isolated, boolean keepIfLarge) {
         return mProcessList.startProcessLocked(processName, info, knownToBeDead, intentFlags,
-                hostingRecord, allowWhileBooting, isolated, 0 /* isolatedUid */, keepIfLarge,
-                null /* ABI override */, null /* entryPoint */, null /* entryPointArgs */,
-                null /* crashHandler */);
+                hostingRecord, zygotePolicyFlags, allowWhileBooting, isolated, 0 /* isolatedUid */,
+                keepIfLarge, null /* ABI override */, null /* entryPoint */,
+                null /* entryPointArgs */, null /* crashHandler */);
     }
 
     boolean isAllowedWhileBooting(ApplicationInfo ai) {
@@ -4239,7 +4245,8 @@
                 }
                 synchronized (this) {
                     mProcessList.killPackageProcessesLocked(packageName, appId, targetUserId,
-                            ProcessList.SERVICE_ADJ, "kill background");
+                            ProcessList.SERVICE_ADJ, ApplicationExitInfo.REASON_USER_REQUESTED,
+                            ApplicationExitInfo.SUBREASON_UNKNOWN, "kill background");
                 }
             }
         } finally {
@@ -4265,7 +4272,10 @@
                 // because this method is also used to simulate low memory.
                 mAllowLowerMemLevel = true;
                 mProcessList.killPackageProcessesLocked(null /* packageName */, -1 /* appId */,
-                        UserHandle.USER_ALL, ProcessList.CACHED_APP_MIN_ADJ, "kill all background");
+                        UserHandle.USER_ALL, ProcessList.CACHED_APP_MIN_ADJ,
+                        ApplicationExitInfo.REASON_USER_REQUESTED,
+                        ApplicationExitInfo.SUBREASON_UNKNOWN,
+                        "kill all background");
 
                 doLowMemReportIfNeededLocked(null);
             }
@@ -4753,6 +4763,9 @@
         boolean didSomething = mProcessList.killPackageProcessesLocked(packageName, appId, userId,
                 ProcessList.INVALID_ADJ, callerWillRestart, false /* allowRestart */, doit,
                 evenPersistent, true /* setRemoved */,
+                packageName == null ? ApplicationExitInfo.REASON_USER_STOPPED
+                        : ApplicationExitInfo.REASON_USER_REQUESTED,
+                ApplicationExitInfo.SUBREASON_UNKNOWN,
                 packageName == null ? ("stop user " + userId) : ("stop " + packageName));
 
         didSomething |=
@@ -4816,7 +4829,10 @@
     @GuardedBy("this")
     private final void processContentProviderPublishTimedOutLocked(ProcessRecord app) {
         cleanupAppInLaunchingProvidersLocked(app, true);
-        mProcessList.removeProcessLocked(app, false, true, "timeout publishing content providers");
+        mProcessList.removeProcessLocked(app, false, true,
+                ApplicationExitInfo.REASON_INITIALIZATION_FAILURE,
+                ApplicationExitInfo.SUBREASON_UNKNOWN,
+                "timeout publishing content providers");
     }
 
     @GuardedBy("this")
@@ -4921,7 +4937,7 @@
             if (pid > 0 && pid != MY_PID) {
                 killProcessQuiet(pid);
                 //TODO: killProcessGroup(app.info.uid, pid);
-                mProcessList.noteAppKill(app, ApplicationExitInfo.REASON_OTHER,
+                mProcessList.noteAppKill(app, ApplicationExitInfo.REASON_INITIALIZATION_FAILURE,
                         ApplicationExitInfo.SUBREASON_UNKNOWN, "attach failed");
             } else {
                 try {
@@ -4953,7 +4969,8 @@
         } catch (RemoteException e) {
             app.resetPackageList(mProcessStats);
             mProcessList.startProcessLocked(app,
-                    new HostingRecord("link fail", processName));
+                    new HostingRecord("link fail", processName),
+                    ZYGOTE_POLICY_FLAG_EMPTY);
             return false;
         }
 
@@ -5372,7 +5389,9 @@
                 for (int ip=0; ip<NP; ip++) {
                     if (DEBUG_PROCESSES) Slog.v(TAG_PROCESSES, "Starting process on hold: "
                             + procs.get(ip));
-                    mProcessList.startProcessLocked(procs.get(ip), new HostingRecord("on-hold"));
+                    mProcessList.startProcessLocked(procs.get(ip),
+                            new HostingRecord("on-hold"),
+                            ZYGOTE_POLICY_FLAG_BATCH_LAUNCH);
                 }
             }
             if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL) {
@@ -7224,8 +7243,9 @@
                             proc = startProcessLocked(cpi.processName,
                                     cpr.appInfo, false, 0,
                                     new HostingRecord("content provider",
-                                    new ComponentName(cpi.applicationInfo.packageName,
-                                            cpi.name)), false, false, false);
+                                        new ComponentName(cpi.applicationInfo.packageName,
+                                                cpi.name)),
+                                    ZYGOTE_POLICY_FLAG_EMPTY, false, false, false);
                             checkTime(startTime, "getContentProviderImpl: after start process");
                             if (proc == null) {
                                 Slog.w(TAG, "Unable to launch app "
@@ -7259,10 +7279,8 @@
             }
             checkTime(startTime, "getContentProviderImpl: done!");
 
-            grantImplicitAccess(userId, null /*intent*/,
-                    UserHandle.getAppId(Binder.getCallingUid()),
-                    UserHandle.getAppId(cpi.applicationInfo.uid)
-            );
+            grantImplicitAccess(userId, null /*intent*/, callingUid,
+                    UserHandle.getAppId(cpi.applicationInfo.uid));
         }
 
         // Wait for the provider to be published...
@@ -7785,7 +7803,8 @@
                         .getPersistentApplications(STOCK_PM_FLAGS | matchFlags).getList();
                 for (ApplicationInfo app : apps) {
                     if (!"android".equals(app.packageName)) {
-                        addAppLocked(app, null, false, null /* ABI override */);
+                        addAppLocked(app, null, false, null /* ABI override */,
+                                ZYGOTE_POLICY_FLAG_BATCH_LAUNCH);
                     }
                 }
             } catch (RemoteException ex) {
@@ -8056,23 +8075,25 @@
 
     @GuardedBy("this")
     final ProcessRecord addAppLocked(ApplicationInfo info, String customProcess, boolean isolated,
-            String abiOverride) {
+            String abiOverride, int zygotePolicyFlags) {
         return addAppLocked(info, customProcess, isolated, false /* disableHiddenApiChecks */,
-                false /* mountExtStorageFull */, abiOverride);
+                false /* mountExtStorageFull */, abiOverride, zygotePolicyFlags);
     }
 
     @GuardedBy("this")
     final ProcessRecord addAppLocked(ApplicationInfo info, String customProcess, boolean isolated,
-            boolean disableHiddenApiChecks, boolean mountExtStorageFull, String abiOverride) {
+            boolean disableHiddenApiChecks, boolean mountExtStorageFull, String abiOverride,
+            int zygotePolicyFlags) {
         return addAppLocked(info, customProcess, isolated, disableHiddenApiChecks,
-                false /* disableTestApiChecks */, mountExtStorageFull, abiOverride);
+                false /* disableTestApiChecks */, mountExtStorageFull, abiOverride,
+                zygotePolicyFlags);
     }
 
     // TODO: Move to ProcessList?
     @GuardedBy("this")
     final ProcessRecord addAppLocked(ApplicationInfo info, String customProcess, boolean isolated,
             boolean disableHiddenApiChecks, boolean disableTestApiChecks,
-            boolean mountExtStorageFull, String abiOverride) {
+            boolean mountExtStorageFull, String abiOverride, int zygotePolicyFlags) {
         ProcessRecord app;
         if (!isolated) {
             app = getProcessRecordLocked(customProcess != null ? customProcess : info.processName,
@@ -8107,7 +8128,8 @@
             mPersistentStartingProcesses.add(app);
             mProcessList.startProcessLocked(app, new HostingRecord("added application",
                     customProcess != null ? customProcess : app.processName),
-                    disableHiddenApiChecks, disableTestApiChecks, mountExtStorageFull, abiOverride);
+                    zygotePolicyFlags, disableHiddenApiChecks, disableTestApiChecks,
+                    mountExtStorageFull, abiOverride);
         }
 
         return app;
@@ -9044,7 +9066,8 @@
                 }
                 int adj = proc.setAdj;
                 if (adj >= worstType && !proc.killedByAm) {
-                    proc.kill(reason, ApplicationExitInfo.REASON_OTHER, true);
+                    proc.kill(reason, ApplicationExitInfo.REASON_OTHER,
+                            ApplicationExitInfo.SUBREASON_KILL_PID, true);
                     killed = true;
                 }
             }
@@ -9058,10 +9081,17 @@
         synchronized (this) {
             final long identity = Binder.clearCallingIdentity();
             try {
+                boolean permissionChange = KILL_APP_REASON_PERMISSIONS_REVOKED.equals(reason)
+                        || KILL_APP_REASON_GIDS_CHANGED.equals(reason);
                 mProcessList.killPackageProcessesLocked(null /* packageName */, appId, userId,
                         ProcessList.PERSISTENT_PROC_ADJ, false /* callerWillRestart */,
                         true /* callerWillRestart */, true /* doit */, true /* evenPersistent */,
-                        false /* setRemoved */, reason != null ? reason : "kill uid");
+                        false /* setRemoved */,
+                        permissionChange ? ApplicationExitInfo.REASON_PERMISSION_CHANGE
+                        : ApplicationExitInfo.REASON_OTHER,
+                        permissionChange ? ApplicationExitInfo.SUBREASON_UNKNOWN
+                        : ApplicationExitInfo.SUBREASON_KILL_UID,
+                        reason != null ? reason : "kill uid");
             } finally {
                 Binder.restoreCallingIdentity(identity);
             }
@@ -9386,7 +9416,10 @@
                 for (int i=procsToKill.size()-1; i>=0; i--) {
                     ProcessRecord proc = procsToKill.get(i);
                     Slog.i(TAG, "Removing system update proc: " + proc);
-                    mProcessList.removeProcessLocked(proc, true, false, "system update done");
+                    mProcessList.removeProcessLocked(proc, true, false,
+                            ApplicationExitInfo.REASON_OTHER,
+                            ApplicationExitInfo.SUBREASON_SYSTEM_UPDATE_DONE,
+                            "system update done");
                 }
             }
 
@@ -14390,7 +14423,8 @@
                             + cpr.name.flattenToShortString()
                             + " in dying proc " + (proc != null ? proc.processName : "??")
                             + " (adj " + (proc != null ? proc.setAdj : "??") + ")",
-                            ApplicationExitInfo.REASON_OTHER,
+                            ApplicationExitInfo.REASON_DEPENDENCY_DIED,
+                            ApplicationExitInfo.SUBREASON_UNKNOWN,
                             true);
                 }
             } else if (capp.thread != null && conn.provider.provider != null) {
@@ -14614,7 +14648,8 @@
             mProcessList.addProcessNameLocked(app);
             app.pendingStart = false;
             mProcessList.startProcessLocked(app,
-                    new HostingRecord("restart", app.processName));
+                    new HostingRecord("restart", app.processName),
+                    ZYGOTE_POLICY_FLAG_EMPTY);
             return true;
         } else if (app.pid > 0 && app.pid != MY_PID) {
             // Goodbye!
@@ -14977,7 +15012,7 @@
             ProcessRecord proc = startProcessLocked(app.processName, app,
                     false, 0,
                     new HostingRecord("backup", hostingName),
-                    false, false, false);
+                    ZYGOTE_POLICY_FLAG_SYSTEM_PROCESS, false, false, false);
             if (proc == null) {
                 Slog.e(TAG, "Unable to start backup agent process " + r);
                 return false;
@@ -15881,7 +15916,10 @@
                                                 -1);
                                         mProcessList.killPackageProcessesLocked(ssp,
                                                 UserHandle.getAppId(extraUid),
-                                                userId, ProcessList.INVALID_ADJ, "change " + ssp);
+                                                userId, ProcessList.INVALID_ADJ,
+                                                ApplicationExitInfo.REASON_USER_REQUESTED,
+                                                ApplicationExitInfo.SUBREASON_UNKNOWN,
+                                                "change " + ssp);
                                     }
                                     cleanupDisabledPackageComponentsLocked(ssp, userId,
                                             intent.getStringArrayExtra(
@@ -16616,7 +16654,8 @@
             }
 
             ProcessRecord app = addAppLocked(ai, defProcess, false, disableHiddenApiChecks,
-                    disableTestApiChecks, mountExtStorageFull, abiOverride);
+                    disableTestApiChecks, mountExtStorageFull, abiOverride,
+                    ZYGOTE_POLICY_FLAG_EMPTY);
             app.setActiveInstrumentation(activeInstr);
             activeInstr.mFinished = false;
             activeInstr.mSourceUid = callingUid;
@@ -18013,7 +18052,8 @@
                 mProcessList.mRemovedProcesses.remove(i);
 
                 if (app.isPersistent()) {
-                    addAppLocked(app.info, null, false, null /* ABI override */);
+                    addAppLocked(app.info, null, false, null /* ABI override */,
+                            ZYGOTE_POLICY_FLAG_BATCH_LAUNCH);
                 }
             }
         }
@@ -18609,7 +18649,10 @@
 
                 final int N = procs.size();
                 for (int i = 0; i < N; i++) {
-                    mProcessList.removeProcessLocked(procs.get(i), false, true, "kill all fg");
+                    mProcessList.removeProcessLocked(procs.get(i), false, true,
+                            ApplicationExitInfo.REASON_OTHER,
+                            ApplicationExitInfo.SUBREASON_KILL_ALL_FG,
+                            "kill all fg");
                 }
             }
         }
@@ -18831,7 +18874,8 @@
                     final ProcessRecord pr = (ProcessRecord) wpc.mOwner;
                     if (pr.setSchedGroup == ProcessList.SCHED_GROUP_BACKGROUND
                             && pr.curReceivers.isEmpty()) {
-                        pr.kill("remove task", ApplicationExitInfo.REASON_OTHER, true);
+                        pr.kill("remove task", ApplicationExitInfo.REASON_USER_REQUESTED,
+                                ApplicationExitInfo.SUBREASON_UNKNOWN, true);
                     } else {
                         // We delay killing processes that are not in the background or running a
                         // receiver.
@@ -18848,7 +18892,7 @@
                         true /* keepIfLarge */);
                 if (proc != null) {
                     mProcessList.removeProcessLocked(proc, false /* callerWillRestart */,
-                            true /* allowRestart */, reason);
+                            true /* allowRestart */,  ApplicationExitInfo.REASON_OTHER, reason);
                 }
             }
         }
@@ -19220,8 +19264,8 @@
                     // preempted by other processes before attaching the process of top app.
                     startProcessLocked(processName, info, knownToBeDead, 0 /* intentFlags */,
                             new HostingRecord(hostingType, hostingName, isTop),
-                            false /* allowWhileBooting */, false /* isolated */,
-                            true /* keepIfLarge */);
+                            ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE, false /* allowWhileBooting */,
+                            false /* isolated */, true /* keepIfLarge */);
                 }
             } finally {
                 Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
@@ -19339,7 +19383,7 @@
         @Override
         public void showWhileInUseDebugToast(int uid, int op, int mode) {
             synchronized (ActivityManagerService.this) {
-                ActivityManagerService.this.mServices.showWhileInUseDebugNotificationLocked(
+                ActivityManagerService.this.mServices.showWhileInUseDebugToastLocked(
                         uid, op, mode);
             }
         }
@@ -19534,7 +19578,10 @@
         try {
             synchronized(this) {
                 mProcessList.killPackageProcessesLocked(packageName, UserHandle.getAppId(pkgUid),
-                        userId, ProcessList.FOREGROUND_APP_ADJ, "dep: " + packageName);
+                        userId, ProcessList.FOREGROUND_APP_ADJ,
+                        ApplicationExitInfo.REASON_DEPENDENCY_DIED,
+                        ApplicationExitInfo.SUBREASON_UNKNOWN,
+                        "dep: " + packageName);
             }
         } finally {
             Binder.restoreCallingIdentity(callingId);
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index 2941e77..59f64ac 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -1763,6 +1763,12 @@
     }
 
     private boolean switchUserAndWaitForComplete(int userId) throws RemoteException {
+        UserInfo currentUser = mInterface.getCurrentUser();
+        if (currentUser != null && userId == currentUser.id) {
+            // Already switched to the correct user, exit early.
+            return true;
+        }
+
         // Register switch observer.
         final CountDownLatch switchLatch = new CountDownLatch(1);
         mInterface.registerUserSwitchObserver(
@@ -1777,13 +1783,18 @@
 
         // Switch.
         boolean switched = mInterface.switchUser(userId);
+        if (!switched) {
+            // Switching failed, don't wait for the user switch observer.
+            return false;
+        }
 
         // Wait.
         try {
-            switchLatch.await(USER_OPERATION_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+            switched = switchLatch.await(USER_OPERATION_TIMEOUT_MS, TimeUnit.MILLISECONDS);
         } catch (InterruptedException e) {
-            getErrPrintWriter().println("Thread interrupted unexpectedly.");
+            getErrPrintWriter().println("Error: Thread interrupted unexpectedly.");
         }
+
         return switched;
     }
 
@@ -1815,7 +1826,7 @@
         if (switched) {
             return 0;
         } else {
-            pw.printf("Failed to switch to user %d\n", userId);
+            pw.printf("Error: Failed to switch to user %d\n", userId);
             return 1;
         }
     }
diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java
index 789f719..b1fc029 100644
--- a/services/core/java/com/android/server/am/AppErrors.java
+++ b/services/core/java/com/android/server/am/AppErrors.java
@@ -395,7 +395,7 @@
                     () -> {
                         synchronized (mService) {
                             killAppImmediateLocked(p, ApplicationExitInfo.REASON_OTHER,
-                                    ApplicationExitInfo.SUBREASON_UNKNOWN,
+                                    ApplicationExitInfo.SUBREASON_INVALID_STATE,
                                     "forced", "killed for invalid state");
                         }
                     },
@@ -510,8 +510,8 @@
                 stopReportingCrashesLocked(r);
             }
             if (res == AppErrorDialog.RESTART) {
-                mService.mProcessList.removeProcessLocked(r, false, true, "crash",
-                        ApplicationExitInfo.REASON_CRASH);
+                mService.mProcessList.removeProcessLocked(r, false, true,
+                        ApplicationExitInfo.REASON_CRASH, "crash");
                 if (taskId != INVALID_TASK_ID) {
                     try {
                         mService.startActivityFromRecents(taskId,
@@ -529,8 +529,8 @@
                     // Kill it with fire!
                     mService.mAtmInternal.onHandleAppCrash(r.getWindowProcessController());
                     if (!r.isPersistent()) {
-                        mService.mProcessList.removeProcessLocked(r, false, false, "crash",
-                                ApplicationExitInfo.REASON_CRASH);
+                        mService.mProcessList.removeProcessLocked(r, false, false,
+                                ApplicationExitInfo.REASON_CRASH, "crash");
                         mService.mAtmInternal.resumeTopActivities(false /* scheduleIdle */);
                     }
                 } finally {
@@ -747,8 +747,8 @@
                 // Don't let services in this process be restarted and potentially
                 // annoy the user repeatedly.  Unless it is persistent, since those
                 // processes run critical code.
-                mService.mProcessList.removeProcessLocked(app, false, tryAgain, "crash",
-                        ApplicationExitInfo.REASON_CRASH);
+                mService.mProcessList.removeProcessLocked(app, false, tryAgain,
+                        ApplicationExitInfo.REASON_CRASH, "crash");
                 mService.mAtmInternal.resumeTopActivities(false /* scheduleIdle */);
                 if (!showBackground) {
                     return false;
diff --git a/services/core/java/com/android/server/am/AppExitInfoTracker.java b/services/core/java/com/android/server/am/AppExitInfoTracker.java
index cba6b92..a09aa64 100644
--- a/services/core/java/com/android/server/am/AppExitInfoTracker.java
+++ b/services/core/java/com/android/server/am/AppExitInfoTracker.java
@@ -348,6 +348,7 @@
         } else {
             // always override the existing info since we are now more informational.
             info.setReason(raw.getReason());
+            info.setSubReason(raw.getSubReason());
             info.setStatus(0);
             info.setTimestamp(System.currentTimeMillis());
             info.setDescription(raw.getDescription());
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index 26ef707..3aec53a 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -16,6 +16,9 @@
 
 package com.android.server.am;
 
+import static android.os.Process.ZYGOTE_POLICY_FLAG_EMPTY;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE;
+
 import static com.android.server.am.ActivityManagerDebugConfig.*;
 
 import android.app.ActivityManager;
@@ -1593,7 +1596,9 @@
                     + receiverUid);
         }
 
-        if (brOptions != null && brOptions.getTemporaryAppWhitelistDuration() > 0) {
+        final boolean isActivityCapable =
+                (brOptions != null && brOptions.getTemporaryAppWhitelistDuration() > 0);
+        if (isActivityCapable) {
             scheduleTempWhitelistLocked(receiverUid,
                     brOptions.getTemporaryAppWhitelistDuration(), r);
         }
@@ -1648,6 +1653,7 @@
                 info.activityInfo.applicationInfo, true,
                 r.intent.getFlags() | Intent.FLAG_FROM_BACKGROUND,
                 new HostingRecord("broadcast", r.curComponent),
+                isActivityCapable ? ZYGOTE_POLICY_FLAG_LATENCY_SENSITIVE : ZYGOTE_POLICY_FLAG_EMPTY,
                 (r.intent.getFlags()&Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0, false, false))
                         == null) {
             // Ah, this recipient is unavailable.  Finish it if necessary,
diff --git a/services/core/java/com/android/server/am/InstrumentationReporter.java b/services/core/java/com/android/server/am/InstrumentationReporter.java
index fdbb73e..7294308 100644
--- a/services/core/java/com/android/server/am/InstrumentationReporter.java
+++ b/services/core/java/com/android/server/am/InstrumentationReporter.java
@@ -18,6 +18,7 @@
 
 import android.app.IInstrumentationWatcher;
 import android.content.ComponentName;
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.Process;
 import android.os.RemoteException;
@@ -109,6 +110,8 @@
             mName = name;
             mResultCode = resultCode;
             mResults = results;
+
+            Binder.allowBlocking(mWatcher.asBinder());
         }
     }
 
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 3fd1b78..aa37b4a 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -33,6 +33,8 @@
 import static android.app.ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND;
 import static android.app.ActivityManager.PROCESS_STATE_LAST_ACTIVITY;
 import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT;
+import static android.app.ActivityManager.PROCESS_STATE_PERSISTENT;
+import static android.app.ActivityManager.PROCESS_STATE_PERSISTENT_UI;
 import static android.app.ActivityManager.PROCESS_STATE_SERVICE;
 import static android.app.ActivityManager.PROCESS_STATE_TOP;
 import static android.app.ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND;
@@ -838,7 +840,8 @@
                     // definition not re-use the same process again, and it is
                     // good to avoid having whatever code was running in them
                     // left sitting around after no longer needed.
-                    app.kill("isolated not needed", ApplicationExitInfo.REASON_OTHER, true);
+                    app.kill("isolated not needed", ApplicationExitInfo.REASON_OTHER,
+                            ApplicationExitInfo.SUBREASON_ISOLATED_NOT_NEEDED, true);
                 } else {
                     // Keeping this process, update its uid.
                     updateAppUidRecLocked(app);
@@ -1438,7 +1441,6 @@
         }
 
         int capabilityFromFGS = 0; // capability from foreground service.
-        boolean procStateFromFGSClient = false;
         for (int is = app.services.size() - 1;
                 is >= 0 && (adj > ProcessList.FOREGROUND_APP_ADJ
                         || schedGroup == ProcessList.SCHED_GROUP_BACKGROUND
@@ -1561,10 +1563,6 @@
                             continue;
                         }
 
-                        if (clientProcState == PROCESS_STATE_FOREGROUND_SERVICE) {
-                            procStateFromFGSClient = true;
-                        }
-
                         if (cr.hasFlag(Context.BIND_INCLUDE_CAPABILITIES)) {
                             capability |= client.curCapability;
                         }
@@ -1702,13 +1700,13 @@
                                 if (enabled) {
                                     if (cr.hasFlag(Context.BIND_INCLUDE_CAPABILITIES)) {
                                         // TOP process passes all capabilities to the service.
-                                        capability = PROCESS_CAPABILITY_ALL;
+                                        capability |= PROCESS_CAPABILITY_ALL;
                                     } else {
                                         // TOP process passes no capability to the service.
                                     }
                                 } else {
                                     // TOP process passes all capabilities to the service.
-                                    capability = PROCESS_CAPABILITY_ALL;
+                                    capability |= PROCESS_CAPABILITY_ALL;
                                 }
                             } else if (clientProcState
                                     <= PROCESS_STATE_FOREGROUND_SERVICE) {
@@ -2009,20 +2007,9 @@
         // apply capability from FGS.
         if (app.hasForegroundServices()) {
             capability |= capabilityFromFGS;
-        } else if (!ActivityManager.isProcStateBackground(procState)) {
-            // procState higher than PROCESS_STATE_BOUND_FOREGROUND_SERVICE implicitly has
-            // camera/microphone capability
-            if (procState == PROCESS_STATE_FOREGROUND_SERVICE && procStateFromFGSClient) {
-                // if the FGS state is passed down from client, do not grant implicit capabilities.
-            } else {
-                capability |= PROCESS_CAPABILITY_ALL_IMPLICIT;
-            }
         }
 
-        // TOP process has all capabilities.
-        if (procState <= PROCESS_STATE_TOP) {
-            capability = PROCESS_CAPABILITY_ALL;
-        }
+        capability |= getDefaultCapability(app, procState);
 
         // Do final modification to adj.  Everything we do between here and applying
         // the final setAdj must be done in this function, because we will also use
@@ -2042,6 +2029,30 @@
                 || app.curCapability != prevCapability ;
     }
 
+    private int getDefaultCapability(ProcessRecord app, int procState) {
+        switch (procState) {
+            case PROCESS_STATE_PERSISTENT:
+            case PROCESS_STATE_PERSISTENT_UI:
+            case PROCESS_STATE_TOP:
+                return PROCESS_CAPABILITY_ALL;
+            case PROCESS_STATE_BOUND_TOP:
+                return PROCESS_CAPABILITY_ALL_IMPLICIT;
+            case PROCESS_STATE_FOREGROUND_SERVICE:
+                if (app.hasForegroundServices()) {
+                    // Capability from FGS are conditional depending on foreground service type in
+                    // manifest file and the mAllowWhileInUsePermissionInFgs flag.
+                    return PROCESS_CAPABILITY_NONE;
+                } else {
+                    // process has no FGS, the PROCESS_STATE_FOREGROUND_SERVICE is from client.
+                    return PROCESS_CAPABILITY_ALL_IMPLICIT;
+                }
+            case PROCESS_STATE_BOUND_FOREGROUND_SERVICE:
+                return PROCESS_CAPABILITY_ALL_IMPLICIT;
+            default:
+                return PROCESS_CAPABILITY_NONE;
+        }
+    }
+
     /**
      * Checks if for the given app and client, there's a cycle that should skip over the client
      * for now or use partial values to evaluate the effect of the client binding.
@@ -2156,7 +2167,8 @@
             }
             if (app.waitingToKill != null && app.curReceivers.isEmpty()
                     && app.setSchedGroup == ProcessList.SCHED_GROUP_BACKGROUND) {
-                app.kill(app.waitingToKill, ApplicationExitInfo.REASON_OTHER, true);
+                app.kill(app.waitingToKill, ApplicationExitInfo.REASON_USER_REQUESTED,
+                        ApplicationExitInfo.SUBREASON_UNKNOWN, true);
                 success = false;
             } else {
                 int processGroup;
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 22559c4..a9d18e0 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -25,6 +25,7 @@
 import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_INPUT;
 import static android.os.Process.SYSTEM_UID;
 import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
+import static android.os.Process.ZYGOTE_POLICY_FLAG_EMPTY;
 import static android.os.Process.getFreeMemory;
 import static android.os.Process.getTotalMemory;
 import static android.os.Process.killProcessQuiet;
@@ -80,13 +81,11 @@
 import android.os.DropBoxManager;
 import android.os.Handler;
 import android.os.IBinder;
-import android.os.IVold;
 import android.os.Looper;
 import android.os.Message;
 import android.os.PowerManager;
 import android.os.Process;
 import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.os.StrictMode;
 import android.os.SystemClock;
 import android.os.SystemProperties;
@@ -1640,7 +1639,7 @@
      */
     @GuardedBy("mService")
     boolean startProcessLocked(ProcessRecord app, HostingRecord hostingRecord,
-            boolean disableHiddenApiChecks, boolean disableTestApiChecks,
+            int zygotePolicyFlags, boolean disableHiddenApiChecks, boolean disableTestApiChecks,
             boolean mountExtStorageFull, String abiOverride) {
         if (app.pendingStart) {
             return true;
@@ -1733,8 +1732,7 @@
             }
             // Run the app in safe mode if its manifest requests so or the
             // system is booted in safe mode.
-            if ((app.info.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0 ||
-                    mService.mSafeMode == true) {
+            if ((app.info.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0 || mService.mSafeMode) {
                 runtimeFlags |= Zygote.DEBUG_ENABLE_SAFEMODE;
             }
             if ((app.info.privateFlags & ApplicationInfo.PRIVATE_FLAG_PROFILEABLE_BY_SHELL) != 0) {
@@ -1846,8 +1844,8 @@
             final String entryPoint = "android.app.ActivityThread";
 
             return startProcessLocked(hostingRecord, entryPoint, app, uid, gids,
-                    runtimeFlags, mountExternal, seInfo, requiredAbi, instructionSet, invokeWith,
-                    startTime);
+                    runtimeFlags, zygotePolicyFlags, mountExternal, seInfo, requiredAbi,
+                    instructionSet, invokeWith, startTime);
         } catch (RuntimeException e) {
             Slog.e(ActivityManagerService.TAG, "Failure starting process " + app.processName, e);
 
@@ -1864,9 +1862,8 @@
     }
 
     @GuardedBy("mService")
-    boolean startProcessLocked(HostingRecord hostingRecord,
-            String entryPoint,
-            ProcessRecord app, int uid, int[] gids, int runtimeFlags, int mountExternal,
+    boolean startProcessLocked(HostingRecord hostingRecord, String entryPoint, ProcessRecord app,
+            int uid, int[] gids, int runtimeFlags, int zygotePolicyFlags, int mountExternal,
             String seInfo, String requiredAbi, String instructionSet, String invokeWith,
             long startTime) {
         app.pendingStart = true;
@@ -1895,15 +1892,15 @@
             if (DEBUG_PROCESSES) Slog.i(TAG_PROCESSES,
                     "Posting procStart msg for " + app.toShortString());
             mService.mProcStartHandler.post(() -> handleProcessStart(
-                    app, entryPoint, gids, runtimeFlags, mountExternal, requiredAbi,
-                    instructionSet, invokeWith, startSeq));
+                    app, entryPoint, gids, runtimeFlags, zygotePolicyFlags, mountExternal,
+                    requiredAbi, instructionSet, invokeWith, startSeq));
             return true;
         } else {
             try {
                 final Process.ProcessStartResult startResult = startProcess(hostingRecord,
                         entryPoint, app,
-                        uid, gids, runtimeFlags, mountExternal, seInfo, requiredAbi, instructionSet,
-                        invokeWith, startTime);
+                        uid, gids, runtimeFlags, zygotePolicyFlags, mountExternal, seInfo,
+                        requiredAbi, instructionSet, invokeWith, startTime);
                 handleProcessStartedLocked(app, startResult.pid, startResult.usingWrapper,
                         startSeq, false);
             } catch (RuntimeException e) {
@@ -1923,8 +1920,8 @@
      * <p>Note: this function doesn't hold the global AM lock intentionally.</p>
      */
     private void handleProcessStart(final ProcessRecord app, final String entryPoint,
-            final int[] gids, final int runtimeFlags, final int mountExternal,
-            final String requiredAbi, final String instructionSet,
+            final int[] gids, final int runtimeFlags, int zygotePolicyFlags,
+            final int mountExternal, final String requiredAbi, final String instructionSet,
             final String invokeWith, final long startSeq) {
         // If there is a precede instance of the process, wait for its death with a timeout.
         // Use local reference since we are not using locks here
@@ -1959,8 +1956,10 @@
         }
         try {
             final Process.ProcessStartResult startResult = startProcess(app.hostingRecord,
-                    entryPoint, app, app.startUid, gids, runtimeFlags, mountExternal,
-                    app.seInfo, requiredAbi, instructionSet, invokeWith, app.startTime);
+                    entryPoint, app, app.startUid, gids, runtimeFlags, zygotePolicyFlags,
+                    mountExternal, app.seInfo, requiredAbi, instructionSet, invokeWith,
+                    app.startTime);
+
             synchronized (mService) {
                 handleProcessStartedLocked(app, startResult, startSeq);
             }
@@ -2113,9 +2112,9 @@
     }
 
     private Process.ProcessStartResult startProcess(HostingRecord hostingRecord, String entryPoint,
-            ProcessRecord app, int uid, int[] gids, int runtimeFlags, int mountExternal,
-            String seInfo, String requiredAbi, String instructionSet, String invokeWith,
-            long startTime) {
+            ProcessRecord app, int uid, int[] gids, int runtimeFlags, int zygotePolicyFlags,
+            int mountExternal, String seInfo, String requiredAbi, String instructionSet,
+            String invokeWith, long startTime) {
         try {
             Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "Start proc: " +
                     app.processName);
@@ -2163,14 +2162,15 @@
                         app.processName, uid, uid, gids, runtimeFlags, mountExternal,
                         app.info.targetSdkVersion, seInfo, requiredAbi, instructionSet,
                         app.info.dataDir, null, app.info.packageName,
-                        /*useUsapPool=*/ false, isTopApp, app.mDisabledCompatChanges,
-                        pkgDataInfoMap, new String[]{PROC_START_SEQ_IDENT + app.startSeq});
+                        /*zygotePolicyFlags=*/ ZYGOTE_POLICY_FLAG_EMPTY, isTopApp,
+                        app.mDisabledCompatChanges, pkgDataInfoMap,
+                        new String[]{PROC_START_SEQ_IDENT + app.startSeq});
             } else {
                 startResult = Process.start(entryPoint,
                         app.processName, uid, uid, gids, runtimeFlags, mountExternal,
                         app.info.targetSdkVersion, seInfo, requiredAbi, instructionSet,
-                        app.info.dataDir, invokeWith, app.info.packageName, isTopApp,
-                        app.mDisabledCompatChanges, pkgDataInfoMap,
+                        app.info.dataDir, invokeWith, app.info.packageName, zygotePolicyFlags,
+                        isTopApp, app.mDisabledCompatChanges, pkgDataInfoMap,
                         new String[]{PROC_START_SEQ_IDENT + app.startSeq});
             }
             checkSlow(startTime, "startProcess: returned from zygote!");
@@ -2181,14 +2181,14 @@
     }
 
     @GuardedBy("mService")
-    final void startProcessLocked(ProcessRecord app, HostingRecord hostingRecord) {
-        startProcessLocked(app, hostingRecord, null /* abiOverride */);
+    void startProcessLocked(ProcessRecord app, HostingRecord hostingRecord, int zygotePolicyFlags) {
+        startProcessLocked(app, hostingRecord, zygotePolicyFlags, null /* abiOverride */);
     }
 
     @GuardedBy("mService")
     final boolean startProcessLocked(ProcessRecord app, HostingRecord hostingRecord,
-            String abiOverride) {
-        return startProcessLocked(app, hostingRecord,
+            int zygotePolicyFlags, String abiOverride) {
+        return startProcessLocked(app, hostingRecord, zygotePolicyFlags,
                 false /* disableHiddenApiChecks */, false /* disableTestApiChecks */,
                 false /* mountExtStorageFull */, abiOverride);
     }
@@ -2196,8 +2196,9 @@
     @GuardedBy("mService")
     final ProcessRecord startProcessLocked(String processName, ApplicationInfo info,
             boolean knownToBeDead, int intentFlags, HostingRecord hostingRecord,
-            boolean allowWhileBooting, boolean isolated, int isolatedUid, boolean keepIfLarge,
-            String abiOverride, String entryPoint, String[] entryPointArgs, Runnable crashHandler) {
+            int zygotePolicyFlags, boolean allowWhileBooting, boolean isolated, int isolatedUid,
+            boolean keepIfLarge, String abiOverride, String entryPoint, String[] entryPointArgs,
+            Runnable crashHandler) {
         long startTime = SystemClock.uptimeMillis();
         ProcessRecord app;
         if (!isolated) {
@@ -2308,7 +2309,8 @@
         }
 
         checkSlow(startTime, "startProcess: stepping in to startProcess");
-        final boolean success = startProcessLocked(app, hostingRecord, abiOverride);
+        final boolean success =
+                startProcessLocked(app, hostingRecord, zygotePolicyFlags, abiOverride);
         checkSlow(startTime, "startProcess: done starting proc!");
         return success ? app : null;
     }
@@ -2332,6 +2334,19 @@
             if (sb == null) sb = new StringBuilder();
             sb.append("seq=" + app.startSeq + ",expected=" + expectedStartSeq + ";");
         }
+        try {
+            AppGlobals.getPackageManager().checkPackageStartable(app.info.packageName, app.userId);
+        } catch (RemoteException e) {
+            // unexpected; ignore
+        } catch (SecurityException e) {
+            if (mService.mConstants.FLAG_PROCESS_START_ASYNC) {
+                if (sb == null) sb = new StringBuilder();
+                sb.append("Package is frozen;");
+            } else {
+                // we're not being started async and so should throw to the caller.
+                throw e;
+            }
+        }
         return sb == null ? null : sb.toString();
     }
 
@@ -2363,7 +2378,7 @@
             killProcessQuiet(pid);
             Process.killProcessGroup(app.uid, app.pid);
             noteAppKill(app, ApplicationExitInfo.REASON_OTHER,
-                    ApplicationExitInfo.SUBREASON_UNKNOWN, reason);
+                    ApplicationExitInfo.SUBREASON_INVALID_START, reason);
             return false;
         }
         mService.mBatteryStatsService.noteProcessStart(app.processName, app.info.uid);
@@ -2381,9 +2396,7 @@
             // Ignore
         }
 
-        if (app.isPersistent()) {
-            Watchdog.getInstance().processStarted(app.processName, pid);
-        }
+        Watchdog.getInstance().processStarted(app.processName, pid);
 
         checkSlow(app.startTime, "startProcess: building log message");
         StringBuilder buf = mStringBuilder;
@@ -2450,7 +2463,7 @@
                         killProcessQuiet(app.pid);
                         ProcessList.killProcessGroup(app.uid, app.pid);
                         noteAppKill(app, ApplicationExitInfo.REASON_OTHER,
-                                ApplicationExitInfo.SUBREASON_UNKNOWN, "hasn't been killed");
+                                ApplicationExitInfo.SUBREASON_REMOVE_LRU, "hasn't been killed");
                     } else {
                         app.pendingStart = false;
                     }
@@ -2468,10 +2481,11 @@
 
     @GuardedBy("mService")
     boolean killPackageProcessesLocked(String packageName, int appId, int userId, int minOomAdj,
-            String reason) {
+            int reasonCode, int subReason, String reason) {
         return killPackageProcessesLocked(packageName, appId, userId, minOomAdj,
                 false /* callerWillRestart */, true /* allowRestart */, true /* doit */,
-                false /* evenPersistent */, false /* setRemoved */, reason);
+                false /* evenPersistent */, false /* setRemoved */, reasonCode,
+                subReason, reason);
     }
 
     @GuardedBy("mService")
@@ -2504,7 +2518,8 @@
     @GuardedBy("mService")
     final boolean killPackageProcessesLocked(String packageName, int appId,
             int userId, int minOomAdj, boolean callerWillRestart, boolean allowRestart,
-            boolean doit, boolean evenPersistent, boolean setRemoved, String reason) {
+            boolean doit, boolean evenPersistent, boolean setRemoved, int reasonCode,
+            int subReason, String reason) {
         ArrayList<ProcessRecord> procs = new ArrayList<>();
 
         // Remove all processes this package may have touched: all with the
@@ -2576,7 +2591,8 @@
 
         int N = procs.size();
         for (int i=0; i<N; i++) {
-            removeProcessLocked(procs.get(i), callerWillRestart, allowRestart, reason);
+            removeProcessLocked(procs.get(i), callerWillRestart, allowRestart,
+                    reasonCode, subReason, reason);
         }
         killAppZygotesLocked(packageName, appId, userId, false /* force */);
         mService.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_PROCESS_END);
@@ -2585,13 +2601,14 @@
 
     @GuardedBy("mService")
     boolean removeProcessLocked(ProcessRecord app,
-            boolean callerWillRestart, boolean allowRestart, String reason) {
-        return removeProcessLocked(app, callerWillRestart, allowRestart, reason,
-                ApplicationExitInfo.REASON_OTHER);
+            boolean callerWillRestart, boolean allowRestart, int reasonCode, String reason) {
+        return removeProcessLocked(app, callerWillRestart, allowRestart, reasonCode,
+                ApplicationExitInfo.SUBREASON_UNKNOWN, reason);
     }
 
-    boolean removeProcessLocked(ProcessRecord app,
-            boolean callerWillRestart, boolean allowRestart, String reason, int reasonCode) {
+    @GuardedBy("mService")
+    boolean removeProcessLocked(ProcessRecord app, boolean callerWillRestart,
+            boolean allowRestart, int reasonCode, int subReason, String reason) {
         final String name = app.processName;
         final int uid = app.uid;
         if (DEBUG_PROCESSES) Slog.d(TAG_PROCESSES,
@@ -2627,11 +2644,12 @@
                     needRestart = true;
                 }
             }
-            app.kill(reason, reasonCode, true);
+            app.kill(reason, reasonCode, subReason, true);
             mService.handleAppDiedLocked(app, willRestart, allowRestart);
             if (willRestart) {
                 removeLruProcessLocked(app);
-                mService.addAppLocked(app.info, null, false, null /* ABI override */);
+                mService.addAppLocked(app.info, null, false, null /* ABI override */,
+                        ZYGOTE_POLICY_FLAG_EMPTY);
             }
         } else {
             mRemovedProcesses.add(app);
@@ -2824,7 +2842,8 @@
 
         final int N = procs.size();
         for (int i = 0; i < N; i++) {
-            removeProcessLocked(procs.get(i), false, true, "kill all background except");
+            removeProcessLocked(procs.get(i), false, true, ApplicationExitInfo.REASON_OTHER,
+                    ApplicationExitInfo.SUBREASON_KILL_ALL_BG_EXCEPT, "kill all background except");
         }
     }
 
@@ -3753,6 +3772,7 @@
             Slog.i(TAG, "note: " + app + " died, saving the exit info");
         }
 
+        Watchdog.getInstance().processDied(app.processName, app.pid);
         mAppExitInfoTracker.scheduleNoteProcessDiedLocked(app);
     }
 
@@ -3989,7 +4009,8 @@
                 return false;
             }
 
-            app.kill(reason, ApplicationExitInfo.REASON_OTHER, true);
+            app.kill(reason, ApplicationExitInfo.REASON_OTHER,
+                    ApplicationExitInfo.SUBREASON_IMPERCEPTIBLE, true);
 
             if (!app.isolated) {
                 mLastProcessKillTimes.put(app.processName, app.uid, SystemClock.uptimeMillis());
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index 5b8a6d9..85f36aa 100644
--- a/services/core/java/com/android/server/appop/AppOpsService.java
+++ b/services/core/java/com/android/server/appop/AppOpsService.java
@@ -29,6 +29,8 @@
 import static android.app.AppOpsManager.KEY_FG_SERVICE_STATE_SETTLE_TIME;
 import static android.app.AppOpsManager.KEY_TOP_STATE_SETTLE_TIME;
 import static android.app.AppOpsManager.MODE_ALLOWED;
+import static android.app.AppOpsManager.MODE_FOREGROUND;
+import static android.app.AppOpsManager.MODE_IGNORED;
 import static android.app.AppOpsManager.NoteOpEvent;
 import static android.app.AppOpsManager.OP_CAMERA;
 import static android.app.AppOpsManager.OP_FLAGS_ALL;
@@ -515,12 +517,12 @@
         }
 
         int evalMode(int op, int mode) {
-            if (mode == AppOpsManager.MODE_FOREGROUND) {
+            if (mode == MODE_FOREGROUND) {
                 if (appWidgetVisible) {
                     return MODE_ALLOWED;
                 } else if (state <= UID_STATE_TOP) {
-                    // process is in foreground.
-                    return AppOpsManager.MODE_ALLOWED;
+                    // process is in TOP.
+                    return MODE_ALLOWED;
                 } else if (state <= AppOpsManager.resolveFirstUnrestrictedUidState(op)) {
                     // process is in foreground, check its capability.
                     switch (op) {
@@ -529,53 +531,53 @@
                         case AppOpsManager.OP_MONITOR_LOCATION:
                         case AppOpsManager.OP_MONITOR_HIGH_POWER_LOCATION:
                             if ((capability & PROCESS_CAPABILITY_FOREGROUND_LOCATION) != 0) {
-                                return AppOpsManager.MODE_ALLOWED;
+                                return MODE_ALLOWED;
                             } else if ((capability
                                     & TEMP_PROCESS_CAPABILITY_FOREGROUND_LOCATION) != 0) {
                                 // The FGS has the location capability, but due to FGS BG start
                                 // restriction it lost the capability, use temp location capability
                                 // to mark this case.
                                 maybeShowWhileInUseDebugToast(op, mode);
-                                return AppOpsManager.MODE_IGNORED;
+                                return MODE_IGNORED;
                             } else {
-                                return AppOpsManager.MODE_IGNORED;
+                                return MODE_IGNORED;
                             }
                         case OP_CAMERA:
                             if ((capability & PROCESS_CAPABILITY_FOREGROUND_CAMERA) != 0) {
-                                return AppOpsManager.MODE_ALLOWED;
+                                return MODE_ALLOWED;
                             } else {
                                 maybeShowWhileInUseDebugToast(op, mode);
-                                return AppOpsManager.MODE_IGNORED;
+                                return MODE_IGNORED;
                             }
                         case OP_RECORD_AUDIO:
                             if ((capability & PROCESS_CAPABILITY_FOREGROUND_MICROPHONE) != 0) {
-                                return AppOpsManager.MODE_ALLOWED;
+                                return MODE_ALLOWED;
                             } else {
                                 maybeShowWhileInUseDebugToast(op, mode);
-                                return AppOpsManager.MODE_IGNORED;
+                                return MODE_IGNORED;
                             }
                         default:
-                            return AppOpsManager.MODE_ALLOWED;
+                            return MODE_ALLOWED;
                     }
                 } else {
                     // process is not in foreground.
-                    return AppOpsManager.MODE_IGNORED;
+                    return MODE_IGNORED;
                 }
-            } else if (mode == AppOpsManager.MODE_ALLOWED) {
+            } else if (mode == MODE_ALLOWED) {
                 switch (op) {
                     case OP_CAMERA:
                         if ((capability & PROCESS_CAPABILITY_FOREGROUND_CAMERA) != 0) {
-                            return AppOpsManager.MODE_ALLOWED;
+                            return MODE_ALLOWED;
                         } else {
                             maybeShowWhileInUseDebugToast(op, mode);
-                            return AppOpsManager.MODE_IGNORED;
+                            return MODE_IGNORED;
                         }
                     case OP_RECORD_AUDIO:
                         if ((capability & PROCESS_CAPABILITY_FOREGROUND_MICROPHONE) != 0) {
-                            return AppOpsManager.MODE_ALLOWED;
+                            return MODE_ALLOWED;
                         } else {
                             maybeShowWhileInUseDebugToast(op, mode);
-                            return AppOpsManager.MODE_IGNORED;
+                            return MODE_IGNORED;
                         }
                     default:
                         return MODE_ALLOWED;
@@ -1445,6 +1447,7 @@
 
                 ArrayMap<String, String> dstFeatureIds = new ArrayMap<>();
                 ArraySet<String> featureIds = new ArraySet<>();
+                featureIds.add(null);
                 if (pkg.getFeatures() != null) {
                     int numFeatures = pkg.getFeatures().size();
                     for (int featureNum = 0; featureNum < numFeatures; featureNum++) {
@@ -4060,9 +4063,11 @@
     private void readOp(XmlPullParser parser, @NonNull UidState uidState,
         @NonNull String pkgName, boolean isPrivileged) throws NumberFormatException,
         XmlPullParserException, IOException {
-        Op op = new Op(uidState, pkgName,
-                Integer.parseInt(parser.getAttributeValue(null, "n")),
-                uidState.uid);
+        int opCode = Integer.parseInt(parser.getAttributeValue(null, "n"));
+        if (isIgnoredAppOp(opCode)) {
+            return;
+        }
+        Op op = new Op(uidState, pkgName, opCode, uidState.uid);
 
         final int mode = XmlUtils.readIntAttribute(parser, "m",
                 AppOpsManager.opToDefaultMode(op.op));
@@ -4096,6 +4101,16 @@
         ops.put(op.op, op);
     }
 
+    //TODO(b/149995538): Remove once this has reached all affected devices
+    private static boolean isIgnoredAppOp(int op) {
+        switch (op) {
+            case AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE:
+                return true;
+            default:
+                return false;
+        }
+    }
+
     void writeState() {
         synchronized (mFile) {
             FileOutputStream stream;
diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
index 4612cfd..58b5cba 100644
--- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
+++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
@@ -491,7 +491,7 @@
             return ConnectivityConstants.EXPLICITLY_SELECTED_NETWORK_SCORE;
         }
 
-        int score = mNetworkScore.getLegacyScore();
+        int score = mNetworkScore.getIntExtension(NetworkScore.LEGACY_SCORE);
         if (!lastValidated && !pretendValidated && !ignoreWifiUnvalidationPenalty() && !isVPN()) {
             score -= ConnectivityConstants.UNVALIDATED_SCORE_PENALTY;
         }
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index e578ac1..05a757b 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -181,6 +181,7 @@
         private int mState = Display.STATE_UNKNOWN;
         private float mBrightnessState = PowerManager.BRIGHTNESS_INVALID_FLOAT;
         private int mDefaultModeId;
+        private int mDefaultConfigGroup;
         private int mActiveModeId;
         private boolean mActiveModeInvalid;
         private DisplayModeDirector.DesiredDisplayModeSpecs mDisplayModeSpecs =
@@ -332,15 +333,18 @@
             // For a new display, we need to initialize the default mode ID.
             if (mDefaultModeId == NO_DISPLAY_MODE_ID) {
                 mDefaultModeId = activeRecord.mMode.getModeId();
+                mDefaultConfigGroup = configs[activeConfigId].configGroup;
             } else if (modesAdded && mActiveModeId != activeRecord.mMode.getModeId()) {
                 Slog.d(TAG, "New display modes are added and the active mode has changed, "
                         + "use active mode as default mode.");
                 mActiveModeId = activeRecord.mMode.getModeId();
                 mDefaultModeId = activeRecord.mMode.getModeId();
-            } else if (findDisplayConfigIdLocked(mDefaultModeId) < 0) {
+                mDefaultConfigGroup = configs[activeConfigId].configGroup;
+            } else if (findDisplayConfigIdLocked(mDefaultModeId, mDefaultConfigGroup) < 0) {
                 Slog.w(TAG, "Default display mode no longer available, using currently"
                         + " active mode as default.");
                 mDefaultModeId = activeRecord.mMode.getModeId();
+                mDefaultConfigGroup = configs[activeConfigId].configGroup;
             }
 
             // Determine whether the display mode specs' base mode is still there.
@@ -754,7 +758,16 @@
                 // a valid mode.
                 return;
             }
-            int baseConfigId = findDisplayConfigIdLocked(displayModeSpecs.baseModeId);
+
+            // Find the config Id based on the desired mode specs. In case there is more than one
+            // config matching the mode spec, prefer the one that is in the default config group.
+            // For now the default config group is taken from the active config when we got the
+            // hotplug event for the display. In the future we might want to change the default
+            // config based on vendor requirements.
+            // Note: We prefer the default config group over the current one as this is the config
+            // group the vendor prefers.
+            int baseConfigId = findDisplayConfigIdLocked(displayModeSpecs.baseModeId,
+                    mDefaultConfigGroup);
             if (baseConfigId < 0) {
                 // When a display is hotplugged, it's possible for a mode to be removed that was
                 // previously valid. Because of the way display changes are propagated through the
@@ -906,17 +919,26 @@
             pw.print("mSupportedColorModes=" + mSupportedColorModes.toString());
         }
 
-        private int findDisplayConfigIdLocked(int modeId) {
+        private int findDisplayConfigIdLocked(int modeId, int configGroup) {
+            int matchingConfigId = SurfaceControl.DisplayConfig.INVALID_DISPLAY_CONFIG_ID;
             DisplayModeRecord record = mSupportedModes.get(modeId);
             if (record != null) {
                 for (int i = 0; i < mDisplayConfigs.length; i++) {
                     SurfaceControl.DisplayConfig config = mDisplayConfigs[i];
                     if (record.hasMatchingMode(config)) {
-                        return i;
+                        if (matchingConfigId
+                                == SurfaceControl.DisplayConfig.INVALID_DISPLAY_CONFIG_ID) {
+                            matchingConfigId = i;
+                        }
+
+                        // Prefer to return a config that matches the configGroup
+                        if (config.configGroup == configGroup) {
+                            return i;
+                        }
                     }
                 }
             }
-            return -1;
+            return matchingConfigId;
         }
 
         private int findMatchingModeIdLocked(int configId) {
diff --git a/services/core/java/com/android/server/incremental/IncrementalManagerService.java b/services/core/java/com/android/server/incremental/IncrementalManagerService.java
deleted file mode 100644
index a8121cc..0000000
--- a/services/core/java/com/android/server/incremental/IncrementalManagerService.java
+++ /dev/null
@@ -1,163 +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.server.incremental;
-
-import android.annotation.NonNull;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.pm.DataLoaderManager;
-import android.content.pm.DataLoaderParamsParcel;
-import android.content.pm.FileSystemControlParcel;
-import android.content.pm.IDataLoader;
-import android.content.pm.IDataLoaderStatusListener;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.ResultReceiver;
-import android.os.ServiceManager;
-import android.os.ShellCallback;
-import android.os.incremental.IIncrementalManager;
-import android.util.Slog;
-
-import com.android.internal.util.DumpUtils;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-
-/**
- * This service has the following purposes:
- * 1) Starts the IIncrementalManager binder service.
- * 1) Starts the native IIncrementalManagerService binder service.
- * 2) Handles shell commands for "incremental" service.
- * 3) Handles binder calls from the native IIncrementalManagerService binder service and pass
- *    them to a data loader binder service.
- */
-
-public class IncrementalManagerService extends IIncrementalManager.Stub  {
-    private static final String TAG = "IncrementalManagerService";
-    private static final String BINDER_SERVICE_NAME = "incremental";
-    // DataLoaderManagerService should have been started before us
-    private @NonNull DataLoaderManager mDataLoaderManager;
-    private long mNativeInstance;
-    private final @NonNull Context mContext;
-
-    /**
-     * Starts IIncrementalManager binder service and register to Service Manager.
-     * Starts the native IIncrementalManagerNative binder service.
-     */
-    public static IncrementalManagerService start(Context context) {
-        IncrementalManagerService self = new IncrementalManagerService(context);
-        if (self.mNativeInstance == 0) {
-            return null;
-        }
-        return self;
-    }
-
-    private IncrementalManagerService(Context context) {
-        mContext = context;
-        mDataLoaderManager = mContext.getSystemService(DataLoaderManager.class);
-        ServiceManager.addService(BINDER_SERVICE_NAME, this);
-        // Starts and register IIncrementalManagerNative service
-        mNativeInstance = nativeStartService();
-    }
-
-    @SuppressWarnings("resource")
-    @Override
-    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
-        if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, TAG, pw)) return;
-        nativeDump(mNativeInstance, fd.getInt$());
-    }
-
-    /**
-     * Notifies native IIncrementalManager service that system is ready.
-     */
-    public void systemReady() {
-        nativeSystemReady(mNativeInstance);
-    }
-
-    /**
-     * Finds data loader service provider and binds to it. This requires PackageManager.
-     */
-    @Override
-    public boolean prepareDataLoader(int mountId, FileSystemControlParcel control,
-            DataLoaderParamsParcel params,
-            IDataLoaderStatusListener listener) {
-        Bundle dataLoaderParams = new Bundle();
-        dataLoaderParams.putParcelable("componentName",
-                new ComponentName(params.packageName, params.className));
-        dataLoaderParams.putParcelable("control", control);
-        dataLoaderParams.putParcelable("params", params);
-        DataLoaderManager dataLoaderManager = mContext.getSystemService(DataLoaderManager.class);
-        if (dataLoaderManager == null) {
-            Slog.e(TAG, "Failed to find data loader manager service");
-            return false;
-        }
-        if (!dataLoaderManager.initializeDataLoader(mountId, dataLoaderParams, listener)) {
-            Slog.e(TAG, "Failed to initialize data loader");
-            return false;
-        }
-        return true;
-    }
-
-
-    @Override
-    public boolean startDataLoader(int mountId) {
-        IDataLoader dataLoader = mDataLoaderManager.getDataLoader(mountId);
-        if (dataLoader == null) {
-            Slog.e(TAG, "Start failed to retrieve data loader for ID=" + mountId);
-            return false;
-        }
-        try {
-            dataLoader.start();
-            return true;
-        } catch (RemoteException ex) {
-            return false;
-        }
-    }
-
-    @Override
-    public void destroyDataLoader(int mountId) {
-        IDataLoader dataLoader = mDataLoaderManager.getDataLoader(mountId);
-        if (dataLoader == null) {
-            Slog.e(TAG, "Destroy failed to retrieve data loader for ID=" + mountId);
-            return;
-        }
-        try {
-            dataLoader.destroy();
-        } catch (RemoteException ex) {
-            return;
-        }
-    }
-
-    @Override
-    public void showHealthBlockedUI(int mountId) {
-        // TODO(b/136132412): implement this
-    }
-
-    @Override
-    public void onShellCommand(@NonNull FileDescriptor in, @NonNull FileDescriptor out,
-            FileDescriptor err, @NonNull String[] args, ShellCallback callback,
-            @NonNull ResultReceiver resultReceiver) {
-        (new IncrementalManagerShellCommand(mContext)).exec(
-                this, in, out, err, args, callback, resultReceiver);
-    }
-
-    private static native long nativeStartService();
-
-    private static native void nativeSystemReady(long nativeInstance);
-
-    private static native void nativeDump(long nativeInstance, int fd);
-}
diff --git a/services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java b/services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java
deleted file mode 100644
index 6a5e963..0000000
--- a/services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java
+++ /dev/null
@@ -1,313 +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.server.incremental;
-
-import static android.content.pm.PackageInstaller.LOCATION_DATA_APP;
-
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.IIntentReceiver;
-import android.content.IIntentSender;
-import android.content.Intent;
-import android.content.IntentSender;
-import android.content.pm.DataLoaderParams;
-import android.content.pm.InstallationFile;
-import android.content.pm.PackageInstaller;
-import android.content.pm.PackageManager;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.ParcelFileDescriptor;
-import android.os.ShellCommand;
-import android.util.Slog;
-
-import java.io.FileDescriptor;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Defines actions to handle adb commands like "adb abb incremental ...".
- */
-public final class IncrementalManagerShellCommand extends ShellCommand {
-    private static final String TAG = "IncrementalShellCommand";
-    // Assuming the adb data loader is always installed on the device
-    private static final String LOADER_PACKAGE_NAME = "com.android.incremental.nativeadb";
-    private static final String LOADER_CLASS_NAME =
-            LOADER_PACKAGE_NAME + ".NativeAdbDataLoaderService";
-    private final @NonNull Context mContext;
-
-    private static final int ERROR_INVALID_ARGUMENTS = -1;
-    private static final int ERROR_DATA_LOADER_INIT = -2;
-    private static final int ERROR_COMMAND_EXECUTION = -3;
-
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({ERROR_INVALID_ARGUMENTS, ERROR_DATA_LOADER_INIT, ERROR_COMMAND_EXECUTION})
-    public @interface IncrementalShellCommandErrorCode {
-    }
-
-    IncrementalManagerShellCommand(@NonNull Context context) {
-        mContext = context;
-    }
-
-    @Override
-    public int onCommand(@Nullable String cmd) {
-        if (cmd == null) {
-            return handleDefaultCommands(null);
-        }
-        switch (cmd) {
-            case "install-start":
-                return runInstallStart();
-            case "install-finish":
-                return runInstallFinish();
-            default:
-                return handleDefaultCommands(cmd);
-        }
-    }
-
-    @Override
-    public void onHelp() {
-        PrintWriter pw = getOutPrintWriter();
-        pw.println("Incremental Service Commands:");
-        pw.println("  help");
-        pw.println("    Print this help text.");
-        pw.println("  install-start");
-        pw.println("    Opens an installation session");
-        pw.println("  install-finish SESSION_ID --file NAME:SIZE:INDEX --file NAME:SIZE:INDEX ...");
-        pw.println("    Commits an installation session specified by session ID for an APK ");
-        pw.println("      or a bundle of splits. Configures lib dirs or OBB files if specified.");
-    }
-
-    private int runInstallStart() {
-        final PrintWriter pw = getOutPrintWriter();
-        final PackageInstaller packageInstaller =
-                mContext.getPackageManager().getPackageInstaller();
-        if (packageInstaller == null) {
-            pw.println("Failed to get PackageInstaller.");
-            return ERROR_COMMAND_EXECUTION;
-        }
-
-        final Map<String, ParcelFileDescriptor> fds = getShellFileDescriptors();
-        if (fds == null) {
-            pw.println("File names and sizes don't match.");
-            return ERROR_DATA_LOADER_INIT;
-        }
-        // dup FDs before closing them
-        final Map<String, ParcelFileDescriptor> dataLoaderDynamicArgs = new HashMap<>();
-        for (Map.Entry<String, ParcelFileDescriptor> nfd : fds.entrySet()) {
-            try {
-                dataLoaderDynamicArgs.put(nfd.getKey(), nfd.getValue().dup());
-            } catch (IOException ignored) {
-                pw.println("Failed to dup shell file descriptor");
-                return ERROR_DATA_LOADER_INIT;
-            } finally {
-                try {
-                    nfd.getValue().close();
-                } catch (IOException ignored) {
-                }
-            }
-        }
-
-        final DataLoaderParams params = DataLoaderParams.forIncremental(
-                new ComponentName(LOADER_PACKAGE_NAME, LOADER_CLASS_NAME), "",
-                dataLoaderDynamicArgs);
-        PackageInstaller.SessionParams sessionParams = new PackageInstaller.SessionParams(
-                PackageInstaller.SessionParams.MODE_FULL_INSTALL);
-        sessionParams.installFlags |= PackageManager.INSTALL_ALL_USERS;
-        // Replace existing if same package is already installed
-        sessionParams.installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
-        sessionParams.setDataLoaderParams(params);
-
-        try {
-            int sessionId = packageInstaller.createSession(sessionParams);
-            pw.println("Successfully opened session: sessionId = " + sessionId);
-        } catch (IOException ex) {
-            pw.println("Failed to create session.");
-            return ERROR_COMMAND_EXECUTION;
-        }
-        return 0;
-    }
-
-    private int runInstallFinish() {
-        final PrintWriter pw = getOutPrintWriter();
-        final int sessionId = parseInt(getNextArgRequired());
-        final List<InstallationFile> installationFiles = parseFileArgs(pw);
-        if (installationFiles == null) {
-            pw.println("Must specify at least one file to install.");
-            return ERROR_INVALID_ARGUMENTS;
-        }
-        final int numFiles = installationFiles.size();
-        if (numFiles == 0) {
-            pw.println("Must specify at least one file to install.");
-            return ERROR_INVALID_ARGUMENTS;
-        }
-
-        final PackageInstaller packageInstaller = mContext.getPackageManager()
-                .getPackageInstaller();
-        if (packageInstaller == null) {
-            pw.println("Failed to get PackageInstaller.");
-            return ERROR_COMMAND_EXECUTION;
-        }
-
-        final LocalIntentReceiver localReceiver = new LocalIntentReceiver();
-        boolean success = false;
-
-        PackageInstaller.Session session = null;
-        try {
-            session = packageInstaller.openSession(sessionId);
-            for (int i = 0; i < numFiles; i++) {
-                InstallationFile file = installationFiles.get(i);
-                session.addFile(file.getLocation(), file.getName(), file.getLengthBytes(),
-                        file.getMetadata(), file.getSignature());
-            }
-            session.commit(localReceiver.getIntentSender());
-            final Intent result = localReceiver.getResult();
-            final int status = result.getIntExtra(PackageInstaller.EXTRA_STATUS,
-                    PackageInstaller.STATUS_FAILURE);
-            if (status == PackageInstaller.STATUS_SUCCESS) {
-                success = true;
-                pw.println("Success");
-                return 0;
-            } else {
-                pw.println("Failure ["
-                        + result.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE) + "]");
-                return ERROR_COMMAND_EXECUTION;
-            }
-        } catch (Exception e) {
-            e.printStackTrace(pw);
-            return ERROR_COMMAND_EXECUTION;
-        } finally {
-            if (!success) {
-                try {
-                    if (session != null) {
-                        session.abandon();
-                    }
-                } catch (Exception ignore) {
-                }
-            }
-        }
-    }
-
-    private static class LocalIntentReceiver {
-        private final LinkedBlockingQueue<Intent> mResult = new LinkedBlockingQueue<>();
-
-        private IIntentSender.Stub mLocalSender = new IIntentSender.Stub() {
-            @Override
-            public void send(int code, Intent intent, String resolvedType,
-                    IBinder whitelistToken,
-                    IIntentReceiver finishedReceiver, String requiredPermission,
-                    Bundle options) {
-                try {
-                    mResult.offer(intent, 5, TimeUnit.SECONDS);
-                } catch (InterruptedException e) {
-                    throw new RuntimeException(e);
-                }
-            }
-        };
-
-        public IntentSender getIntentSender() {
-            return new IntentSender((IIntentSender) mLocalSender);
-        }
-
-        public Intent getResult() {
-            try {
-                return mResult.take();
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
-            }
-        }
-    }
-
-    /** Helpers. */
-    private Map<String, ParcelFileDescriptor> getShellFileDescriptors() {
-        Map<String, ParcelFileDescriptor> fds = new HashMap<>();
-        final FileDescriptor outFd = getOutFileDescriptor();
-        final FileDescriptor inFd = getInFileDescriptor();
-        try {
-            fds.put("inFd", ParcelFileDescriptor.dup(inFd));
-            fds.put("outFd", ParcelFileDescriptor.dup(outFd));
-            return fds;
-        } catch (Exception ex) {
-            Slog.e(TAG, "Failed to dup FDs");
-            return null;
-        }
-    }
-
-    private long parseLong(String arg) {
-        long result = -1;
-        try {
-            result = Long.parseLong(arg);
-        } catch (NumberFormatException e) {
-        }
-        return result;
-    }
-
-    private int parseInt(String arg) {
-        int result = -1;
-        try {
-            result = Integer.parseInt(arg);
-        } catch (NumberFormatException e) {
-        }
-        return result;
-    }
-
-    private List<InstallationFile> parseFileArgs(PrintWriter pw) {
-        List<InstallationFile> fileList = new ArrayList<>();
-        String opt;
-        while ((opt = getNextOption()) != null) {
-            switch (opt) {
-                case "--file": {
-                    final String fileArgs = getNextArgRequired();
-                    final String[] args = fileArgs.split(":");
-                    if (args.length != 3) {
-                        pw.println("Invalid file args: " + fileArgs);
-                        return null;
-                    }
-                    final String name = args[0];
-                    final long size = parseLong(args[1]);
-                    if (size < 0) {
-                        pw.println("Invalid file size in: " + fileArgs);
-                        return null;
-                    }
-                    final long index = parseLong(args[2]);
-                    if (index < 0) {
-                        pw.println("Invalid file index in: " + fileArgs);
-                        return null;
-                    }
-                    final byte[] metadata = String.valueOf(index).getBytes(
-                            StandardCharsets.UTF_8);
-                    fileList.add(
-                            new InstallationFile(LOCATION_DATA_APP, name, size, metadata, null));
-                    break;
-                }
-                default:
-                    break;
-            }
-        }
-        return fileList;
-    }
-}
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
index f24699a..68e6c18 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
@@ -44,12 +44,6 @@
     }
 
     /**
-     * Called by the power manager to tell the input method manager whether it
-     * should start watching for wake events.
-     */
-    public abstract void setInteractive(boolean interactive);
-
-    /**
      * Hides the current input method, if visible.
      */
     public abstract void hideCurrentInputMethod(@SoftInputShowHideReason int reason);
@@ -103,10 +97,6 @@
     private static final InputMethodManagerInternal NOP =
             new InputMethodManagerInternal() {
                 @Override
-                public void setInteractive(boolean interactive) {
-                }
-
-                @Override
                 public void hideCurrentInputMethod(@SoftInputShowHideReason int reason) {
                 }
 
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index dcd0a78..571f582 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -109,6 +109,7 @@
 import android.view.Window;
 import android.view.WindowManager.LayoutParams;
 import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
+import android.view.autofill.AutofillId;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InlineSuggestionsRequest;
 import android.view.inputmethod.InputBinding;
@@ -2006,7 +2007,9 @@
 
         @Override
         public void onInlineSuggestionsRequest(InlineSuggestionsRequest request,
-                IInlineSuggestionsResponseCallback callback) throws RemoteException {
+                IInlineSuggestionsResponseCallback callback, AutofillId imeFieldId,
+                boolean inputViewStarted)
+                throws RemoteException {
             if (!mImePackageName.equals(request.getHostPackageName())) {
                 throw new SecurityException(
                         "Host package name in the provide request=[" + request.getHostPackageName()
@@ -2014,7 +2017,17 @@
                                 + "].");
             }
             request.setHostDisplayId(mImeDisplayId);
-            mCallback.onInlineSuggestionsRequest(request, callback);
+            mCallback.onInlineSuggestionsRequest(request, callback, imeFieldId, inputViewStarted);
+        }
+
+        @Override
+        public void onInputMethodStartInputView(AutofillId imeFieldId) throws RemoteException {
+            mCallback.onInputMethodStartInputView(imeFieldId);
+        }
+
+        @Override
+        public void onInputMethodFinishInputView(AutofillId imeFieldId) throws RemoteException {
+            mCallback.onInputMethodFinishInputView(imeFieldId);
         }
     }
 
@@ -4113,9 +4126,6 @@
                             + ((ClientState)msg.obj).uid);
                 }
                 return true;
-            case MSG_SET_INTERACTIVE:
-                handleSetInteractive(msg.arg1 != 0);
-                return true;
             case MSG_REPORT_FULLSCREEN_MODE: {
                 final boolean fullscreen = msg.arg1 != 0;
                 final ClientState clientState = (ClientState)msg.obj;
@@ -4190,20 +4200,6 @@
         return false;
     }
 
-    private void handleSetInteractive(final boolean interactive) {
-        synchronized (mMethodMap) {
-            mIsInteractive = interactive;
-            updateSystemUiLocked(interactive ? mImeWindowVis : 0, mBackDisposition);
-
-            // Inform the current client of the change in active status
-            if (mCurClient != null && mCurClient.client != null) {
-                executeOrSendMessage(mCurClient.client, mCaller.obtainMessageIIO(
-                        MSG_SET_ACTIVE, mIsInteractive ? 1 : 0, mInFullscreenMode ? 1 : 0,
-                        mCurClient));
-            }
-        }
-    }
-
     private boolean chooseNewDefaultIMELocked() {
         final InputMethodInfo imi = InputMethodUtils.getMostApplicableDefaultIME(
                 mSettings.getEnabledInputMethodListLocked());
@@ -4800,13 +4796,6 @@
         }
 
         @Override
-        public void setInteractive(boolean interactive) {
-            // Do everything in handler so as not to block the caller.
-            mService.mHandler.obtainMessage(MSG_SET_INTERACTIVE, interactive ? 1 : 0, 0)
-                    .sendToTarget();
-        }
-
-        @Override
         public void hideCurrentInputMethod(@SoftInputShowHideReason int reason) {
             mService.mHandler.removeMessages(MSG_HIDE_CURRENT_INPUT_METHOD);
             mService.mHandler.obtainMessage(MSG_HIDE_CURRENT_INPUT_METHOD, reason).sendToTarget();
diff --git a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
index e60b910..0e6c0db 100644
--- a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
@@ -170,11 +170,6 @@
             LocalServices.addService(InputMethodManagerInternal.class,
                     new InputMethodManagerInternal() {
                         @Override
-                        public void setInteractive(boolean interactive) {
-                            reportNotSupported();
-                        }
-
-                        @Override
                         public void hideCurrentInputMethod(@SoftInputShowHideReason int reason) {
                             reportNotSupported();
                         }
diff --git a/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java b/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
index b4ec359..f773825 100644
--- a/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
+++ b/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
@@ -52,7 +52,10 @@
 import android.os.HandlerThread;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.security.FileIntegrityManager;
 import android.util.Slog;
+import android.util.apk.SourceStampVerificationResult;
+import android.util.apk.SourceStampVerifier;
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
@@ -108,8 +111,10 @@
     private static final String ALLOWED_INSTALLER_DELIMITER = ",";
     private static final String INSTALLER_PACKAGE_CERT_DELIMITER = "\\|";
 
-    private static final Set<String> PACKAGE_INSTALLER = new HashSet<>(
-            Arrays.asList("com.google.android.packageinstaller", "com.android.packageinstaller"));
+    private static final Set<String> PACKAGE_INSTALLER =
+            new HashSet<>(
+                    Arrays.asList(
+                            "com.google.android.packageinstaller", "com.android.packageinstaller"));
 
     // Access to files inside mRulesDir is protected by mRulesLock;
     private final Context mContext;
@@ -117,6 +122,7 @@
     private final PackageManagerInternal mPackageManagerInternal;
     private final RuleEvaluationEngine mEvaluationEngine;
     private final IntegrityFileManager mIntegrityFileManager;
+    private final FileIntegrityManager mFileIntegrityManager;
 
     /** Create an instance of {@link AppIntegrityManagerServiceImpl}. */
     public static AppIntegrityManagerServiceImpl create(Context context) {
@@ -128,6 +134,7 @@
                 LocalServices.getService(PackageManagerInternal.class),
                 RuleEvaluationEngine.getRuleEvaluationEngine(),
                 IntegrityFileManager.getInstance(),
+                (FileIntegrityManager) context.getSystemService(Context.FILE_INTEGRITY_SERVICE),
                 handlerThread.getThreadHandler());
     }
 
@@ -137,11 +144,13 @@
             PackageManagerInternal packageManagerInternal,
             RuleEvaluationEngine evaluationEngine,
             IntegrityFileManager integrityFileManager,
+            FileIntegrityManager fileIntegrityManager,
             Handler handler) {
         mContext = context;
         mPackageManagerInternal = packageManagerInternal;
         mEvaluationEngine = evaluationEngine;
         mIntegrityFileManager = integrityFileManager;
+        mFileIntegrityManager = fileIntegrityManager;
         mHandler = handler;
 
         IntentFilter integrityVerificationFilter = new IntentFilter();
@@ -183,8 +192,11 @@
                         success = false;
                     }
 
-                    FrameworkStatsLog.write(FrameworkStatsLog.INTEGRITY_RULES_PUSHED, success,
-                            ruleProvider, version);
+                    FrameworkStatsLog.write(
+                            FrameworkStatsLog.INTEGRITY_RULES_PUSHED,
+                            success,
+                            ruleProvider,
+                            version);
 
                     Intent intent = new Intent();
                     intent.putExtra(EXTRA_STATUS, success ? STATUS_SUCCESS : STATUS_FAILURE);
@@ -239,6 +251,16 @@
             Slog.i(TAG, "Received integrity verification intent " + intent.toString());
             Slog.i(TAG, "Extras " + intent.getExtras());
 
+            String installerPackageName = getInstallerPackageName(intent);
+
+            // Skip integrity verification if the verifier is doing the install.
+            if (!integrityCheckIncludesRuleProvider() && isRuleProvider(installerPackageName)) {
+                Slog.i(TAG, "Verifier doing the install. Skipping integrity check.");
+                mPackageManagerInternal.setIntegrityVerificationResult(
+                        verificationId, PackageManagerInternal.INTEGRITY_VERIFICATION_ALLOW);
+                return;
+            }
+
             String packageName = intent.getStringExtra(EXTRA_PACKAGE_NAME);
 
             PackageInfo packageInfo = getPackageArchiveInfo(intent.getData());
@@ -250,17 +272,6 @@
                 return;
             }
 
-            String installerPackageName = getInstallerPackageName(intent);
-
-            // Skip integrity verification if the verifier is doing the install.
-            if (!integrityCheckIncludesRuleProvider()
-                    && isRuleProvider(installerPackageName)) {
-                Slog.i(TAG, "Verifier doing the install. Skipping integrity check.");
-                mPackageManagerInternal.setIntegrityVerificationResult(
-                        verificationId, PackageManagerInternal.INTEGRITY_VERIFICATION_ALLOW);
-                return;
-            }
-
             List<String> appCertificates = getCertificateFingerprint(packageInfo);
             List<String> installerCertificates =
                     getInstallerCertificateFingerprint(installerPackageName);
@@ -274,15 +285,17 @@
             builder.setInstallerCertificates(installerCertificates);
             builder.setIsPreInstalled(isSystemApp(packageName));
             builder.setAllowedInstallersAndCert(getAllowedInstallers(packageInfo));
+            extractSourceStamp(intent.getData(), builder);
 
             AppInstallMetadata appInstallMetadata = builder.build();
 
             Slog.i(
                     TAG,
-                    "To be verified: " + appInstallMetadata + " installers " + getAllowedInstallers(
-                            packageInfo));
-            IntegrityCheckResult result =
-                    mEvaluationEngine.evaluate(appInstallMetadata);
+                    "To be verified: "
+                            + appInstallMetadata
+                            + " installers "
+                            + getAllowedInstallers(packageInfo));
+            IntegrityCheckResult result = mEvaluationEngine.evaluate(appInstallMetadata);
             Slog.i(
                     TAG,
                     "Integrity check result: "
@@ -323,7 +336,7 @@
      * Verify the UID and return the installer package name.
      *
      * @return the package name of the installer, or null if it cannot be determined or it is
-     * installed via adb.
+     *     installed via adb.
      */
     @Nullable
     private String getInstallerPackageName(Intent intent) {
@@ -442,7 +455,8 @@
                         String cert = packageAndCert[1];
                         packageCertMap.put(packageName, cert);
                     } else if (packageAndCert.length == 1) {
-                        packageCertMap.put(getPackageNameNormalized(packageAndCert[0]),
+                        packageCertMap.put(
+                                getPackageNameNormalized(packageAndCert[0]),
                                 INSTALLER_CERTIFICATE_NOT_EVALUATED);
                     }
                 }
@@ -452,6 +466,41 @@
         return packageCertMap;
     }
 
+    /** Extract the source stamp embedded in the APK, if present. */
+    private void extractSourceStamp(Uri dataUri, AppInstallMetadata.Builder appInstallMetadata) {
+        File installationPath = getInstallationPath(dataUri);
+        if (installationPath == null) {
+            throw new IllegalArgumentException("Installation path is null, package not found");
+        }
+        SourceStampVerificationResult sourceStampVerificationResult =
+                SourceStampVerifier.verify(installationPath.getAbsolutePath());
+        appInstallMetadata.setIsStampPresent(sourceStampVerificationResult.isPresent());
+        appInstallMetadata.setIsStampVerified(sourceStampVerificationResult.isVerified());
+        if (sourceStampVerificationResult.isVerified()) {
+            X509Certificate sourceStampCertificate =
+                    (X509Certificate) sourceStampVerificationResult.getCertificate();
+            // Sets source stamp certificate digest.
+            try {
+                MessageDigest digest = MessageDigest.getInstance("SHA-256");
+                byte[] certificateDigest = digest.digest(sourceStampCertificate.getEncoded());
+                appInstallMetadata.setStampCertificateHash(getHexDigest(certificateDigest));
+            } catch (NoSuchAlgorithmException | CertificateEncodingException e) {
+                throw new IllegalArgumentException(
+                        "Error computing source stamp certificate digest", e);
+            }
+            // Checks if the source stamp certificate is trusted.
+            try {
+                appInstallMetadata.setIsStampTrusted(
+                        mFileIntegrityManager.isApkVeritySupported()
+                                && mFileIntegrityManager.isAppSourceCertificateTrusted(
+                                        sourceStampCertificate));
+            } catch (CertificateEncodingException e) {
+                throw new IllegalArgumentException(
+                        "Error checking if source stamp certificate is trusted", e);
+            }
+        }
+    }
+
     private static Signature[] getSignatures(@NonNull PackageInfo packageInfo) {
         SigningInfo signingInfo = packageInfo.signingInfo;
 
@@ -505,10 +554,19 @@
             ParsedPackage pkg = parser.parsePackage(installationPath, 0, false);
             int flags = PackageManager.GET_SIGNING_CERTIFICATES | PackageManager.GET_META_DATA;
             pkg.setSigningDetails(ParsingPackageUtils.collectCertificates(pkg, false));
-            return PackageInfoUtils.generate(pkg, null, flags, 0, 0, null, new PackageUserState(),
-                    UserHandle.getCallingUserId(), null);
+            return PackageInfoUtils.generate(
+                    pkg,
+                    null,
+                    flags,
+                    0,
+                    0,
+                    null,
+                    new PackageUserState(),
+                    UserHandle.getCallingUserId(),
+                    null);
         } catch (Exception e) {
-            throw new IllegalArgumentException("Exception reading " + dataUri, e);
+            Slog.w(TAG, "Exception reading " + dataUri, e);
+            return null;
         }
     }
 
@@ -530,12 +588,18 @@
 
                 // If we didn't find a base.apk, then try to parse each apk until we find the one
                 // that succeeds.
-                basePackageInfo =
-                        mContext.getPackageManager()
-                                .getPackageArchiveInfo(
-                                        apkFile.getAbsolutePath(),
-                                        PackageManager.GET_SIGNING_CERTIFICATES
-                                                | PackageManager.GET_META_DATA);
+                try {
+                    basePackageInfo =
+                            mContext.getPackageManager()
+                                    .getPackageArchiveInfo(
+                                            apkFile.getAbsolutePath(),
+                                            PackageManager.GET_SIGNING_CERTIFICATES
+                                                    | PackageManager.GET_META_DATA);
+                } catch (Exception e) {
+                    // Some of the splits may not contain a valid android manifest. It is an
+                    // expected exception. We still log it nonetheless but we should keep looking.
+                    Slog.w(TAG, "Exception reading " + apkFile, e);
+                }
                 if (basePackageInfo != null) {
                     Slog.i(TAG, "Found package info from " + apkFile);
                     break;
@@ -626,9 +690,9 @@
 
     private boolean integrityCheckIncludesRuleProvider() {
         return Settings.Global.getInt(
-                mContext.getContentResolver(),
-                Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER,
-                0)
+                        mContext.getContentResolver(),
+                        Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER,
+                        0)
                 == 1;
     }
 }
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
index 15dfab9..6faf674 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
@@ -50,7 +50,6 @@
 import android.app.admin.DevicePolicyManagerInternal;
 import android.app.admin.DeviceStateCache;
 import android.app.admin.PasswordMetrics;
-import android.app.backup.BackupManager;
 import android.app.trust.IStrongAuthTracker;
 import android.app.trust.TrustManager;
 import android.content.BroadcastReceiver;
@@ -112,10 +111,8 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
 import com.android.internal.notification.SystemNotificationChannels;
-import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.DumpUtils;
 import com.android.internal.util.IndentingPrintWriter;
-import com.android.internal.util.Preconditions;
 import com.android.internal.widget.ICheckCredentialProgressCallback;
 import com.android.internal.widget.ILockSettings;
 import com.android.internal.widget.LockPatternUtils;
@@ -701,7 +698,7 @@
         // Serial number is never reusued, so we can use it as a distinguisher for user Id reuse.
         int serialNumber = mUserManager.getUserSerialNumber(userId);
 
-        int storedSerialNumber = getIntUnchecked(USER_SERIAL_NUMBER_KEY, -1, userId);
+        int storedSerialNumber = mStorage.getInt(USER_SERIAL_NUMBER_KEY, -1, userId);
         if (storedSerialNumber != serialNumber) {
             // If LockSettingsStorage does not have a copy of the serial number, it could be either
             // this is a user created before the serial number recording logic is introduced, or
@@ -710,7 +707,7 @@
             if (storedSerialNumber != -1) {
                 removeUser(userId, /* unknownUser */ true);
             }
-            setIntUnchecked(USER_SERIAL_NUMBER_KEY, serialNumber, userId);
+            mStorage.setInt(USER_SERIAL_NUMBER_KEY, serialNumber, userId);
         }
     }
 
@@ -1069,7 +1066,7 @@
 
     private boolean getSeparateProfileChallengeEnabledInternal(int userId) {
         synchronized (mSeparateChallengeLock) {
-            return getBooleanUnchecked(SEPARATE_PROFILE_CHALLENGE_KEY, false, userId);
+            return mStorage.getBoolean(SEPARATE_PROFILE_CHALLENGE_KEY, false, userId);
         }
     }
 
@@ -1122,94 +1119,49 @@
     @Override
     public void setBoolean(String key, boolean value, int userId) {
         checkWritePermission(userId);
-        setStringUnchecked(key, userId, value ? "1" : "0");
+        mStorage.setBoolean(key, value, userId);
     }
 
     @Override
     public void setLong(String key, long value, int userId) {
         checkWritePermission(userId);
-        setLongUnchecked(key, value, userId);
-    }
-
-    private void setLongUnchecked(String key, long value, int userId) {
-        setStringUnchecked(key, userId, Long.toString(value));
-    }
-
-    private void setIntUnchecked(String key, int value, int userId) {
-        setStringUnchecked(key, userId, Integer.toString(value));
+        mStorage.setLong(key, value, userId);
     }
 
     @Override
     public void setString(String key, String value, int userId) {
         checkWritePermission(userId);
-        setStringUnchecked(key, userId, value);
-    }
-
-    private void setStringUnchecked(String key, int userId, String value) {
-        Preconditions.checkArgument(userId != USER_FRP, "cannot store lock settings for FRP user");
-
-        mStorage.writeKeyValue(key, value, userId);
-        if (ArrayUtils.contains(SETTINGS_TO_BACKUP, key)) {
-            BackupManager.dataChanged("com.android.providers.settings");
-        }
+        mStorage.setString(key, value, userId);
     }
 
     @Override
     public boolean getBoolean(String key, boolean defaultValue, int userId) {
         checkReadPermission(key, userId);
-        return getBooleanUnchecked(key, defaultValue, userId);
-    }
-
-    private boolean getBooleanUnchecked(String key, boolean defaultValue, int userId) {
-        String value = getStringUnchecked(key, null, userId);
-        return TextUtils.isEmpty(value) ?
-                defaultValue : (value.equals("1") || value.equals("true"));
+        if (Settings.Secure.LOCK_PATTERN_ENABLED.equals(key)) {
+            return getCredentialTypeInternal(userId) == CREDENTIAL_TYPE_PATTERN;
+        }
+        return mStorage.getBoolean(key, defaultValue, userId);
     }
 
     @Override
     public long getLong(String key, long defaultValue, int userId) {
         checkReadPermission(key, userId);
-        return getLongUnchecked(key, defaultValue, userId);
-    }
-
-    private long getLongUnchecked(String key, long defaultValue, int userId) {
-        String value = getStringUnchecked(key, null, userId);
-        return TextUtils.isEmpty(value) ? defaultValue : Long.parseLong(value);
-    }
-
-    private int getIntUnchecked(String key, int defaultValue, int userId) {
-        String value = getStringUnchecked(key, null, userId);
-        return TextUtils.isEmpty(value) ? defaultValue : Integer.parseInt(value);
+        return mStorage.getLong(key, defaultValue, userId);
     }
 
     @Override
     public String getString(String key, String defaultValue, int userId) {
         checkReadPermission(key, userId);
-        return getStringUnchecked(key, defaultValue, userId);
-    }
-
-    private String getStringUnchecked(String key, String defaultValue, int userId) {
-        if (Settings.Secure.LOCK_PATTERN_ENABLED.equals(key)) {
-            return getCredentialTypeInternal(userId) == CREDENTIAL_TYPE_PATTERN ? "1" : "0";
-        }
-        if (userId == USER_FRP) {
-            return null;
-        }
-
-        if (LockPatternUtils.LEGACY_LOCK_PATTERN_ENABLED.equals(key)) {
-            key = Settings.Secure.LOCK_PATTERN_ENABLED;
-        }
-
-        return mStorage.readKeyValue(key, defaultValue, userId);
+        return mStorage.getString(key, defaultValue, userId);
     }
 
     private void setKeyguardStoredQuality(int quality, int userId) {
         if (DEBUG) Slog.d(TAG, "setKeyguardStoredQuality: user=" + userId + " quality=" + quality);
-        setLongUnchecked(LockPatternUtils.PASSWORD_TYPE_KEY, quality, userId);
+        mStorage.setLong(LockPatternUtils.PASSWORD_TYPE_KEY, quality, userId);
     }
 
     private int getKeyguardStoredQuality(int userId) {
-        return (int) getLongUnchecked(LockPatternUtils.PASSWORD_TYPE_KEY,
+        return (int) mStorage.getLong(LockPatternUtils.PASSWORD_TYPE_KEY,
                 DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, userId);
     }
 
@@ -2493,13 +2445,6 @@
             SEPARATE_PROFILE_CHALLENGE_KEY
     };
 
-    private static final String[] SETTINGS_TO_BACKUP = new String[] {
-            Secure.LOCK_SCREEN_OWNER_INFO_ENABLED,
-            Secure.LOCK_SCREEN_OWNER_INFO,
-            Secure.LOCK_PATTERN_VISIBLE,
-            LockPatternUtils.LOCKSCREEN_POWER_BUTTON_INSTANTLY_LOCKS
-    };
-
     private class GateKeeperDiedRecipient implements IBinder.DeathRecipient {
         @Override
         public void binderDied() {
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsStorage.java b/services/core/java/com/android/server/locksettings/LockSettingsStorage.java
index fec0189..81d07cc 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsStorage.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsStorage.java
@@ -18,8 +18,12 @@
 
 import static android.content.Context.USER_SERVICE;
 
+import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
+import static com.android.internal.widget.LockPatternUtils.USER_FRP;
+
 import android.annotation.Nullable;
 import android.app.admin.DevicePolicyManager;
+import android.app.backup.BackupManager;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.pm.UserInfo;
@@ -29,6 +33,8 @@
 import android.os.Environment;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.provider.Settings;
+import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Slog;
 
@@ -87,6 +93,13 @@
 
     private static final Object DEFAULT = new Object();
 
+    private static final String[] SETTINGS_TO_BACKUP = new String[] {
+            Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED,
+            Settings.Secure.LOCK_SCREEN_OWNER_INFO,
+            Settings.Secure.LOCK_PATTERN_VISIBLE,
+            LockPatternUtils.LOCKSCREEN_POWER_BUTTON_INSTANTLY_LOCKS
+    };
+
     private final DatabaseHelper mOpenHelper;
     private final Context mContext;
     private final Cache mCache = new Cache();
@@ -136,10 +149,12 @@
         mOpenHelper.setCallback(callback);
     }
 
+    @VisibleForTesting(visibility = PACKAGE)
     public void writeKeyValue(String key, String value, int userId) {
         writeKeyValue(mOpenHelper.getWritableDatabase(), key, value, userId);
     }
 
+    @VisibleForTesting
     public void writeKeyValue(SQLiteDatabase db, String key, String value, int userId) {
         ContentValues cv = new ContentValues();
         cv.put(COLUMN_KEY, key);
@@ -159,6 +174,7 @@
 
     }
 
+    @VisibleForTesting
     public String readKeyValue(String key, String defaultValue, int userId) {
         int version;
         synchronized (mCache) {
@@ -184,6 +200,28 @@
         return result == DEFAULT ? defaultValue : (String) result;
     }
 
+    @VisibleForTesting
+    public void removeKey(String key, int userId) {
+        removeKey(mOpenHelper.getWritableDatabase(), key, userId);
+    }
+
+    private void removeKey(SQLiteDatabase db, String key, int userId) {
+        ContentValues cv = new ContentValues();
+        cv.put(COLUMN_KEY, key);
+        cv.put(COLUMN_USERID, userId);
+
+        db.beginTransaction();
+        try {
+            db.delete(TABLE, COLUMN_KEY + "=? AND " + COLUMN_USERID + "=?",
+                    new String[] {key, Integer.toString(userId)});
+            db.setTransactionSuccessful();
+            mCache.removeKey(key, userId);
+        } finally {
+            db.endTransaction();
+        }
+
+    }
+
     public void prefetchUser(int userId) {
         int version;
         synchronized (mCache) {
@@ -537,6 +575,55 @@
         }
     }
 
+    public void setBoolean(String key, boolean value, int userId) {
+        setString(key, value ? "1" : "0", userId);
+    }
+
+    public void setLong(String key, long value, int userId) {
+        setString(key, Long.toString(value), userId);
+    }
+
+    public void setInt(String key, int value, int userId) {
+        setString(key, Integer.toString(value), userId);
+    }
+
+    public void setString(String key, String value, int userId) {
+        Preconditions.checkArgument(userId != USER_FRP, "cannot store lock settings for FRP user");
+
+        writeKeyValue(key, value, userId);
+        if (ArrayUtils.contains(SETTINGS_TO_BACKUP, key)) {
+            BackupManager.dataChanged("com.android.providers.settings");
+        }
+    }
+
+    public boolean getBoolean(String key, boolean defaultValue, int userId) {
+        String value = getString(key, null, userId);
+        return TextUtils.isEmpty(value)
+                ? defaultValue : (value.equals("1") || value.equals("true"));
+    }
+
+    public long getLong(String key, long defaultValue, int userId) {
+        String value = getString(key, null, userId);
+        return TextUtils.isEmpty(value) ? defaultValue : Long.parseLong(value);
+    }
+
+    public int getInt(String key, int defaultValue, int userId) {
+        String value = getString(key, null, userId);
+        return TextUtils.isEmpty(value) ? defaultValue : Integer.parseInt(value);
+    }
+
+    public String getString(String key, String defaultValue, int userId) {
+        if (userId == USER_FRP) {
+            return null;
+        }
+
+        if (LockPatternUtils.LEGACY_LOCK_PATTERN_ENABLED.equals(key)) {
+            key = Settings.Secure.LOCK_PATTERN_ENABLED;
+        }
+
+        return readKeyValue(key, defaultValue, userId);
+    }
+
     @VisibleForTesting
     void closeDatabase() {
         mOpenHelper.close();
@@ -764,6 +851,10 @@
             putIfUnchanged(CacheKey.TYPE_KEY_VALUE, key, value, userId, version);
         }
 
+        void removeKey(String key, int userId) {
+            remove(CacheKey.TYPE_KEY_VALUE, key, userId);
+        }
+
         byte[] peekFile(String fileName) {
             return copyOf((byte[]) peek(CacheKey.TYPE_FILE, fileName, -1 /* userId */));
         }
@@ -788,6 +879,9 @@
             return contains(CacheKey.TYPE_FETCHED, "", userId);
         }
 
+        private synchronized void remove(int type, String key, int userId) {
+            mCache.remove(mCacheKey.set(type, key, userId));
+        }
 
         private synchronized void put(int type, String key, Object value, int userId) {
             // Create a new CachKey here because it may be saved in the map if the key is absent.
diff --git a/services/core/java/com/android/server/locksettings/RebootEscrowManager.java b/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
index c9e356e..dabf886 100644
--- a/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
+++ b/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
@@ -16,6 +16,8 @@
 
 package com.android.server.locksettings;
 
+import static android.os.UserHandle.USER_SYSTEM;
+
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.content.Context;
@@ -24,6 +26,7 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.UserManager;
+import android.provider.Settings;
 import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
@@ -40,6 +43,26 @@
     private static final String TAG = "RebootEscrowManager";
 
     /**
+     * Used in the database storage to indicate the boot count at which the reboot escrow was
+     * previously armed.
+     */
+    @VisibleForTesting
+    public static final String REBOOT_ESCROW_ARMED_KEY = "reboot_escrow_armed_count";
+
+    /**
+     * Number of boots until we consider the escrow data to be stale for the purposes of metrics.
+     * <p>
+     * If the delta between the current boot number and the boot number stored when the mechanism
+     * was armed is under this number and the escrow mechanism fails, we report it as a failure of
+     * the mechanism.
+     * <p>
+     * If the delta over this number and escrow fails, we will not report the metric as failed
+     * since there most likely was some other issue if the device rebooted several times before
+     * getting to the escrow restore code.
+     */
+    private static final int BOOT_COUNT_TOLERANCE = 5;
+
+    /**
      * Used to track when the reboot escrow is wanted. Should stay true once escrow is requested
      * unless clearRebootEscrow is called. This will allow all the active users to be unlocked
      * after reboot.
@@ -74,6 +97,7 @@
 
     interface Callbacks {
         boolean isUserSecure(int userId);
+
         void onRebootEscrowRestored(byte spVersion, byte[] syntheticPassword, int userId);
     }
 
@@ -92,7 +116,8 @@
             return (UserManager) mContext.getSystemService(Context.USER_SERVICE);
         }
 
-        public @Nullable IRebootEscrow getRebootEscrow() {
+        @Nullable
+        public IRebootEscrow getRebootEscrow() {
             try {
                 return IRebootEscrow.Stub.asInterface(ServiceManager.getService(
                         "android.hardware.rebootescrow.IRebootEscrow/default"));
@@ -101,6 +126,15 @@
             }
             return null;
         }
+
+        public int getBootCount() {
+            return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.BOOT_COUNT,
+                    0);
+        }
+
+        public void reportMetric(boolean success) {
+            FrameworkStatsLog.write(FrameworkStatsLog.REBOOT_ESCROW_RECOVERY_REPORTED, success);
+        }
     }
 
     RebootEscrowManager(Context context, Callbacks callbacks, LockSettingsStorage storage) {
@@ -135,7 +169,7 @@
             for (UserInfo user : users) {
                 mStorage.removeRebootEscrow(user.id);
             }
-            FrameworkStatsLog.write(FrameworkStatsLog.REBOOT_ESCROW_RECOVERY_REPORTED, false);
+            onEscrowRestoreComplete(false);
             return;
         }
 
@@ -143,8 +177,17 @@
         for (UserInfo user : rebootEscrowUsers) {
             allUsersUnlocked &= restoreRebootEscrowForUser(user.id, escrowKey);
         }
-        FrameworkStatsLog.write(FrameworkStatsLog.REBOOT_ESCROW_RECOVERY_REPORTED,
-                allUsersUnlocked);
+        onEscrowRestoreComplete(allUsersUnlocked);
+    }
+
+    private void onEscrowRestoreComplete(boolean success) {
+        int previousBootCount = mStorage.getInt(REBOOT_ESCROW_ARMED_KEY, -1, USER_SYSTEM);
+        mStorage.removeKey(REBOOT_ESCROW_ARMED_KEY, USER_SYSTEM);
+
+        int bootCountDelta = mInjector.getBootCount() - previousBootCount;
+        if (success || (previousBootCount != -1 && bootCountDelta <= BOOT_COUNT_TOLERANCE)) {
+            mInjector.reportMetric(success);
+        }
     }
 
     private RebootEscrowKey getAndClearRebootEscrowKey() {
@@ -267,6 +310,8 @@
             return;
         }
 
+        mStorage.removeKey(REBOOT_ESCROW_ARMED_KEY, USER_SYSTEM);
+
         try {
             rebootEscrow.storeKey(new byte[32]);
         } catch (RemoteException e) {
@@ -308,6 +353,11 @@
         } catch (RemoteException e) {
             Slog.e(TAG, "Failed escrow secret to RebootEscrow HAL", e);
         }
+
+        if (armedRebootEscrow) {
+            mStorage.setInt(REBOOT_ESCROW_ARMED_KEY, mInjector.getBootCount(), USER_SYSTEM);
+        }
+
         return armedRebootEscrow;
     }
 
diff --git a/services/core/java/com/android/server/media/MediaKeyDispatcher.java b/services/core/java/com/android/server/media/MediaKeyDispatcher.java
index 16b9eb9..e0efd8a 100644
--- a/services/core/java/com/android/server/media/MediaKeyDispatcher.java
+++ b/services/core/java/com/android/server/media/MediaKeyDispatcher.java
@@ -18,22 +18,35 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.media.session.ISessionManager;
 import android.media.session.MediaSession;
+import android.os.Binder;
 import android.view.KeyEvent;
 
 /**
  * Provides a way to customize behavior for media key events.
+ *
+ * Note: When instantiating this class, {@link MediaSessionService} will only use the constructor
+ * without any parameters.
  */
-public interface MediaKeyDispatcher {
+public abstract class MediaKeyDispatcher {
+    public MediaKeyDispatcher() {
+        // Constructor used for reflection
+    }
+
     /**
      * Implement this to customize the logic for which MediaSession should consume which key event.
      *
      * @param keyEvent a non-null KeyEvent whose key code is one of the supported media buttons.
+     * @param uid the uid value retrieved by calling {@link Binder#getCallingUid()} from
+     *         {@link ISessionManager#dispatchMediaKeyEvent(String, boolean, KeyEvent, boolean)}
      * @param asSystemService {@code true} if the event came from the system service via hardware
      *         devices. {@code false} if the event came from the app process through key injection.
      * @return a {@link MediaSession.Token} instance that should consume the given key event.
      */
     @Nullable
-    MediaSession.Token getSessionForKeyEvent(@NonNull KeyEvent keyEvent,
-            boolean asSystemService);
+    MediaSession.Token getSessionForKeyEvent(@NonNull KeyEvent keyEvent, int uid,
+            boolean asSystemService) {
+        return null;
+    }
 }
diff --git a/services/core/java/com/android/server/media/MediaSession2Record.java b/services/core/java/com/android/server/media/MediaSession2Record.java
index 11b7a8a..7f1d035 100644
--- a/services/core/java/com/android/server/media/MediaSession2Record.java
+++ b/services/core/java/com/android/server/media/MediaSession2Record.java
@@ -142,7 +142,6 @@
         return false;
     }
 
-
     @Override
     public int getSessionPolicies() {
         synchronized (mLock) {
diff --git a/services/core/java/com/android/server/media/MediaSessionRecord.java b/services/core/java/com/android/server/media/MediaSessionRecord.java
index 9f47b34..67f9782 100644
--- a/services/core/java/com/android/server/media/MediaSessionRecord.java
+++ b/services/core/java/com/android/server/media/MediaSessionRecord.java
@@ -172,7 +172,7 @@
         mTag = tag;
         mSessionInfo = sessionInfo;
         mController = new ControllerStub();
-        mSessionToken = new MediaSession.Token(mController);
+        mSessionToken = new MediaSession.Token(ownerUid, mController);
         mSession = new SessionStub();
         mSessionCb = new SessionCb(cb);
         mService = service;
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index 7ffac06..a6930dd 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -74,6 +74,7 @@
 import android.view.KeyEvent;
 import android.view.ViewConfiguration;
 
+import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.util.DumpUtils;
 import com.android.server.LocalServices;
@@ -83,6 +84,9 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -138,6 +142,8 @@
 
     private SessionPolicyProvider mCustomSessionPolicyProvider;
     private MediaKeyDispatcher mCustomMediaKeyDispatcher;
+    private Method mGetSessionForKeyEventMethod;
+    private Method mGetSessionPoliciesMethod;
 
     public MediaSessionService(Context context) {
         super(context);
@@ -178,8 +184,8 @@
         mHasFeatureLeanback = mContext.getPackageManager().hasSystemFeature(
                 PackageManager.FEATURE_LEANBACK);
 
-        // TODO: (jinpark) check if config value for custom MediaKeyDispatcher and
-        //  SessionPolicyProvider have been overlayed and instantiate using reflection.
+        instantiateCustomProvider(null);
+        instantiateCustomDispatcher(null);
         updateUser();
     }
 
@@ -561,9 +567,18 @@
      * 4. It needs to be added to the relevant user record.
      */
     private MediaSessionRecord createSessionInternal(int callerPid, int callerUid, int userId,
-            String callerPackageName, ISessionCallback cb, String tag, Bundle sessionInfo,
-            int policies) {
+            String callerPackageName, ISessionCallback cb, String tag, Bundle sessionInfo) {
         synchronized (mLock) {
+            int policies = 0;
+            if (mCustomSessionPolicyProvider != null && mGetSessionPoliciesMethod != null) {
+                try {
+                    policies = (int) mGetSessionPoliciesMethod.invoke(
+                            mCustomSessionPolicyProvider, callerUid, callerPackageName);
+                } catch (InvocationTargetException | IllegalAccessException e) {
+                    Log.w(TAG, "Encountered problem while using reflection", e);
+                }
+            }
+
             FullUserRecord user = getFullUserRecordLocked(userId);
             if (user == null) {
                 Log.w(TAG, "Request from invalid user: " +  userId + ", pkg=" + callerPackageName);
@@ -746,6 +761,48 @@
         return null;
     }
 
+    private void instantiateCustomDispatcher(String nameFromTesting) {
+        mCustomMediaKeyDispatcher = null;
+        mGetSessionForKeyEventMethod = null;
+
+        String customDispatcherClassName = (nameFromTesting == null)
+                ? mContext.getResources().getString(R.string.config_customMediaKeyDispatcher)
+                : nameFromTesting;
+        try {
+            if (!TextUtils.isEmpty(customDispatcherClassName)) {
+                Class customDispatcherClass = Class.forName(customDispatcherClassName);
+                Constructor constructor = customDispatcherClass.getDeclaredConstructor();
+                mCustomMediaKeyDispatcher = (MediaKeyDispatcher) constructor.newInstance();
+                mGetSessionForKeyEventMethod = customDispatcherClass.getDeclaredMethod(
+                        "getSessionForKeyEvent", KeyEvent.class, int.class, boolean.class);
+            }
+        } catch (ClassNotFoundException | InstantiationException | InvocationTargetException
+                | IllegalAccessException | NoSuchMethodException e) {
+            Log.w(TAG, "Encountered problem while using reflection", e);
+        }
+    }
+
+    private void instantiateCustomProvider(String nameFromTesting) {
+        mCustomSessionPolicyProvider = null;
+        mGetSessionPoliciesMethod = null;
+
+        String customProviderClassName = (nameFromTesting == null)
+                ? mContext.getResources().getString(R.string.config_customSessionPolicyProvider)
+                : nameFromTesting;
+        try {
+            if (!TextUtils.isEmpty(customProviderClassName)) {
+                Class customProviderClass = Class.forName(customProviderClassName);
+                Constructor constructor = customProviderClass.getDeclaredConstructor();
+                mCustomSessionPolicyProvider = (SessionPolicyProvider) constructor.newInstance();
+                mGetSessionPoliciesMethod = customProviderClass.getDeclaredMethod(
+                        "getSessionPoliciesForApplication", int.class, String.class);
+            }
+        } catch (ClassNotFoundException | InstantiationException | InvocationTargetException
+                | IllegalAccessException | NoSuchMethodException e) {
+            Log.w(TAG, "Encountered problem while using reflection", e);
+        }
+    }
+
     /**
      * Information about a full user and its corresponding managed profiles.
      *
@@ -1064,11 +1121,8 @@
                 if (cb == null) {
                     throw new IllegalArgumentException("Controller callback cannot be null");
                 }
-                int policies = (mCustomSessionPolicyProvider != null)
-                        ? mCustomSessionPolicyProvider.getSessionPoliciesForApplication(
-                                uid, packageName) : 0;
                 return createSessionInternal(pid, uid, resolvedUserId, packageName, cb, tag,
-                        sessionInfo, policies).getSessionBinder();
+                        sessionInfo).getSessionBinder();
             } finally {
                 Binder.restoreCallingIdentity(token);
             }
@@ -1909,6 +1963,16 @@
             }
         }
 
+        @Override
+        public void setCustomMediaKeyDispatcherForTesting(String name) {
+            instantiateCustomDispatcher(name);
+        }
+
+        @Override
+        public void setCustomSessionPolicyProviderForTesting(String name) {
+            instantiateCustomProvider(name);
+        }
+
         // For MediaSession
         private int verifySessionsRequest(ComponentName componentName, int userId, final int pid,
                 final int uid) {
@@ -2057,11 +2121,15 @@
             MediaSessionRecord session = null;
 
             // Retrieve custom session for key event if it exists.
-            if (mCustomMediaKeyDispatcher != null) {
-                MediaSession.Token token =
-                        mCustomMediaKeyDispatcher.getSessionForKeyEvent(keyEvent, asSystemService);
-                if (token != null) {
-                    session = getMediaSessionRecordLocked(token);
+            if (mCustomMediaKeyDispatcher != null && mGetSessionForKeyEventMethod != null) {
+                try {
+                    Object tokenObject = mGetSessionForKeyEventMethod.invoke(
+                            mCustomMediaKeyDispatcher, keyEvent, uid, asSystemService);
+                    if (tokenObject != null) {
+                        session = getMediaSessionRecordLocked((MediaSession.Token) tokenObject);
+                    }
+                } catch (InvocationTargetException | IllegalAccessException e) {
+                    Log.w(TAG, "Encountered problem while using reflection", e);
                 }
             }
 
diff --git a/services/core/java/com/android/server/media/MediaSessionStack.java b/services/core/java/com/android/server/media/MediaSessionStack.java
index 07b1a1a..367f131 100644
--- a/services/core/java/com/android/server/media/MediaSessionStack.java
+++ b/services/core/java/com/android/server/media/MediaSessionStack.java
@@ -187,7 +187,9 @@
         for (int i = 0; i < audioPlaybackUids.size(); i++) {
             MediaSessionRecordImpl mediaButtonSession =
                     findMediaButtonSession(audioPlaybackUids.get(i));
-            if (mediaButtonSession != null) {
+            if (mediaButtonSession != null
+                    && (mediaButtonSession.getSessionPolicies()
+                            & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) == 0) {
                 // Found the media button session.
                 mAudioPlayerStateMonitor.cleanUpAudioPlaybackUids(mediaButtonSession.getUid());
                 if (mMediaButtonSession != mediaButtonSession) {
@@ -278,7 +280,7 @@
         // session.
         if (newMediaButtonSession != null) {
             int policies = newMediaButtonSession.getSessionPolicies();
-            if ((policies & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) == 1) {
+            if ((policies & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) != 0) {
                 return;
             }
         }
diff --git a/services/core/java/com/android/server/media/SessionPolicyProvider.java b/services/core/java/com/android/server/media/SessionPolicyProvider.java
index 6eb79ef..40a3d2d 100644
--- a/services/core/java/com/android/server/media/SessionPolicyProvider.java
+++ b/services/core/java/com/android/server/media/SessionPolicyProvider.java
@@ -24,9 +24,12 @@
 import java.lang.annotation.RetentionPolicy;
 
 /**
- * Interface for customizing {@link MediaSessionService}
+ * Abstract class for customizing how {@link MediaSessionService} handles sessions.
+ *
+ * Note: When instantiating this class, {@link MediaSessionService} will only use the constructor
+ * without any parameters.
  */
-public interface SessionPolicyProvider {
+public abstract class SessionPolicyProvider {
     @IntDef(value = {
             SESSION_POLICY_IGNORE_BUTTON_RECEIVER,
             SESSION_POLICY_IGNORE_BUTTON_SESSION
@@ -40,7 +43,7 @@
      *
      * @see MediaSession#setMediaButtonReceiver
      */
-    int SESSION_POLICY_IGNORE_BUTTON_RECEIVER = 1 << 0;
+    static final int SESSION_POLICY_IGNORE_BUTTON_RECEIVER = 1 << 0;
 
     /**
      * Policy to ignore sessions that should not respond to media key events via
@@ -48,7 +51,11 @@
      * ignore sessions that should not respond to media key events even if their playback state has
      * changed most recently.
      */
-    int SESSION_POLICY_IGNORE_BUTTON_SESSION = 1 << 1;
+    static final int SESSION_POLICY_IGNORE_BUTTON_SESSION = 1 << 1;
+
+    public SessionPolicyProvider() {
+        // Constructor used for reflection
+    }
 
     /**
      * Use this to statically set policies for sessions when they are created.
@@ -59,5 +66,7 @@
      * @param packageName
      * @return list of policies
      */
-    @SessionPolicy int getSessionPoliciesForApplication(int uid, @NonNull String packageName);
+    @SessionPolicy int getSessionPoliciesForApplication(int uid, @NonNull String packageName) {
+        return 0;
+    }
 }
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index b693362..0b1c91f 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -171,7 +171,6 @@
 import android.os.Handler;
 import android.os.HandlerExecutor;
 import android.os.HandlerThread;
-import android.os.IDeviceIdleController;
 import android.os.INetworkManagementService;
 import android.os.Message;
 import android.os.MessageQueue.IdleHandler;
@@ -180,11 +179,11 @@
 import android.os.PowerManager.ServiceType;
 import android.os.PowerManagerInternal;
 import android.os.PowerSaveState;
+import android.os.PowerWhitelistManager;
 import android.os.Process;
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
-import android.os.ServiceManager;
 import android.os.ShellCallback;
 import android.os.SystemClock;
 import android.os.SystemProperties;
@@ -411,7 +410,7 @@
 
     private IConnectivityManager mConnManager;
     private PowerManagerInternal mPowerManagerInternal;
-    private IDeviceIdleController mDeviceIdleController;
+    private PowerWhitelistManager mPowerWhitelistManager;
 
     /** Current cached value of the current Battery Saver mode's setting for restrict background. */
     @GuardedBy("mUidRulesFirstLock")
@@ -618,8 +617,7 @@
         mContext = Objects.requireNonNull(context, "missing context");
         mActivityManager = Objects.requireNonNull(activityManager, "missing activityManager");
         mNetworkManager = Objects.requireNonNull(networkManagement, "missing networkManagement");
-        mDeviceIdleController = IDeviceIdleController.Stub.asInterface(ServiceManager.getService(
-                Context.DEVICE_IDLE_CONTROLLER));
+        mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class);
         mClock = Objects.requireNonNull(clock, "missing Clock");
         mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
         mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
@@ -651,23 +649,17 @@
     }
 
     @GuardedBy("mUidRulesFirstLock")
-    void updatePowerSaveWhitelistUL() {
-        try {
-            int[] whitelist = mDeviceIdleController.getAppIdWhitelistExceptIdle();
-            mPowerSaveWhitelistExceptIdleAppIds.clear();
-            if (whitelist != null) {
-                for (int uid : whitelist) {
-                    mPowerSaveWhitelistExceptIdleAppIds.put(uid, true);
-                }
-            }
-            whitelist = mDeviceIdleController.getAppIdWhitelist();
-            mPowerSaveWhitelistAppIds.clear();
-            if (whitelist != null) {
-                for (int uid : whitelist) {
-                    mPowerSaveWhitelistAppIds.put(uid, true);
-                }
-            }
-        } catch (RemoteException e) {
+    private void updatePowerSaveWhitelistUL() {
+        int[] whitelist = mPowerWhitelistManager.getWhitelistedAppIds(/* includingIdle */ false);
+        mPowerSaveWhitelistExceptIdleAppIds.clear();
+        for (int uid : whitelist) {
+            mPowerSaveWhitelistExceptIdleAppIds.put(uid, true);
+        }
+
+        whitelist = mPowerWhitelistManager.getWhitelistedAppIds(/* includingIdle */ true);
+        mPowerSaveWhitelistAppIds.clear();
+        for (int uid : whitelist) {
+            mPowerSaveWhitelistAppIds.put(uid, true);
         }
     }
 
diff --git a/services/core/java/com/android/server/notification/NotificationChannelLogger.java b/services/core/java/com/android/server/notification/NotificationChannelLogger.java
new file mode 100644
index 0000000..83f4ebb
--- /dev/null
+++ b/services/core/java/com/android/server/notification/NotificationChannelLogger.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2020 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.annotation.NonNull;
+import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
+
+import com.android.internal.logging.UiEvent;
+import com.android.internal.logging.UiEventLogger;
+import com.android.internal.util.FrameworkStatsLog;
+
+/**
+ * Interface for logging NotificationChannelModified statsd atoms.  Provided as an interface to
+ * enable unit-testing - use standard implementation NotificationChannelLoggerImpl in production.
+ */
+public interface NotificationChannelLogger {
+    // The logging interface. Not anticipating a need to override these high-level methods, which by
+    // default forward to a lower-level interface.
+
+    /**
+     * Log the creation of a notification channel.
+     * @param channel The channel.
+     * @param uid UID of app that owns the channel.
+     * @param pkg Package of app that owns the channel.
+     */
+    default void logNotificationChannelCreated(@NonNull NotificationChannel channel, int uid,
+            String pkg) {
+        logNotificationChannel(
+                NotificationChannelEvent.getCreated(channel),
+                channel, uid, pkg, 0, 0);
+    }
+
+    /**
+     * Log the deletion of a notification channel.
+     * @param channel The channel.
+     * @param uid UID of app that owns the channel.
+     * @param pkg Package of app that owns the channel.
+     */
+    default void logNotificationChannelDeleted(@NonNull NotificationChannel channel, int uid,
+            String pkg) {
+        logNotificationChannel(
+                NotificationChannelEvent.getDeleted(channel),
+                channel, uid, pkg, 0, 0);
+    }
+
+    /**
+     * Log the modification of a notification channel.
+     * @param channel The channel.
+     * @param uid UID of app that owns the channel.
+     * @param pkg Package of app that owns the channel.
+     * @param oldImportance Previous importance level of the channel.
+     * @param byUser True if the modification was user-specified.
+     */
+    default void logNotificationChannelModified(@NonNull NotificationChannel channel, int uid,
+            String pkg, int oldImportance, boolean byUser) {
+        logNotificationChannel(NotificationChannelEvent.getUpdated(byUser),
+                channel, uid, pkg, oldImportance, channel.getImportance());
+    }
+
+    /**
+     * Log the creation or modification of a notification channel group.
+     * @param channelGroup The notification channel group.
+     * @param uid UID of app that owns the channel.
+     * @param pkg Package of app that owns the channel.
+     * @param isNew True if this is a creation of a new group.
+     * @param wasBlocked
+     */
+    default void logNotificationChannelGroup(@NonNull NotificationChannelGroup channelGroup,
+            int uid, String pkg, boolean isNew, boolean wasBlocked) {
+        logNotificationChannelGroup(NotificationChannelEvent.getGroupUpdated(isNew),
+                channelGroup, uid, pkg, wasBlocked);
+    }
+
+    /**
+     * Log the deletion of a notification channel group.
+     * @param channelGroup The notification channel group.
+     * @param uid UID of app that owns the channel.
+     * @param pkg Package of app that owns the channel.
+     */
+    default void logNotificationChannelGroupDeleted(@NonNull NotificationChannelGroup channelGroup,
+            int uid, String pkg) {
+        logNotificationChannelGroup(NotificationChannelEvent.NOTIFICATION_CHANNEL_GROUP_DELETED,
+                channelGroup, uid, pkg, false);
+    }
+
+    /**
+     * Low-level interface for logging events, to be implemented.
+     * @param event Event to log.
+     * @param channel Notification channel.
+     * @param uid UID of app that owns the channel.
+     * @param pkg Package of app that owns the channel.
+     * @param oldImportance Old importance of the channel, if applicable (0 otherwise).
+     * @param newImportance New importance of the channel, if applicable (0 otherwise).
+     */
+    void logNotificationChannel(@NonNull NotificationChannelEvent event,
+            @NonNull NotificationChannel channel, int uid, String pkg,
+            int oldImportance, int newImportance);
+
+    /**
+     * Low-level interface for logging channel group events, to be implemented.
+     * @param event Event to log.
+     * @param channelGroup Notification channel group.
+     * @param uid UID of app that owns the channel.
+     * @param pkg Package of app that owns the channel.
+     * @param wasBlocked True if the channel is being modified and was previously blocked.
+     */
+    void logNotificationChannelGroup(@NonNull NotificationChannelEvent event,
+            @NonNull NotificationChannelGroup channelGroup, int uid, String pkg,
+            boolean wasBlocked);
+
+    /**
+     * The UiEvent enums that this class can log.
+     */
+    enum NotificationChannelEvent implements UiEventLogger.UiEventEnum {
+        @UiEvent(doc = "App created a new notification channel")
+        NOTIFICATION_CHANNEL_CREATED(219),
+        @UiEvent(doc = "App modified an existing notification channel")
+        NOTIFICATION_CHANNEL_UPDATED(220),
+        @UiEvent(doc = "User modified a new notification channel")
+        NOTIFICATION_CHANNEL_UPDATED_BY_USER(221),
+        @UiEvent(doc = "App deleted an existing notification channel")
+        NOTIFICATION_CHANNEL_DELETED(222),
+        @UiEvent(doc = "App created a new notification channel group")
+        NOTIFICATION_CHANNEL_GROUP_CREATED(223),
+        @UiEvent(doc = "App modified an existing notification channel group")
+        NOTIFICATION_CHANNEL_GROUP_UPDATED(224),
+        @UiEvent(doc = "App deleted an existing notification channel group")
+        NOTIFICATION_CHANNEL_GROUP_DELETED(226),
+        @UiEvent(doc = "System created a new conversation (sub-channel in a notification channel)")
+        NOTIFICATION_CHANNEL_CONVERSATION_CREATED(272),
+        @UiEvent(doc = "System deleted a new conversation (sub-channel in a notification channel)")
+        NOTIFICATION_CHANNEL_CONVERSATION_DELETED(274);
+
+
+        private final int mId;
+        NotificationChannelEvent(int id) {
+            mId = id;
+        }
+        @Override public int getId() {
+            return mId;
+        }
+
+        public static NotificationChannelEvent getUpdated(boolean byUser) {
+            return byUser
+                    ? NotificationChannelEvent.NOTIFICATION_CHANNEL_UPDATED_BY_USER
+                    : NotificationChannelEvent.NOTIFICATION_CHANNEL_UPDATED;
+        }
+
+        public static NotificationChannelEvent getCreated(@NonNull NotificationChannel channel) {
+            return channel.getConversationId() != null
+                    ? NotificationChannelEvent.NOTIFICATION_CHANNEL_CONVERSATION_CREATED
+                    : NotificationChannelEvent.NOTIFICATION_CHANNEL_CREATED;
+        }
+
+        public static NotificationChannelEvent getDeleted(@NonNull NotificationChannel channel) {
+            return channel.getConversationId() != null
+                    ? NotificationChannelEvent.NOTIFICATION_CHANNEL_CONVERSATION_DELETED
+                    : NotificationChannelEvent.NOTIFICATION_CHANNEL_DELETED;
+        }
+
+        public static NotificationChannelEvent getGroupUpdated(boolean isNew) {
+            return isNew
+                    ? NotificationChannelEvent.NOTIFICATION_CHANNEL_GROUP_CREATED
+                    : NotificationChannelEvent.NOTIFICATION_CHANNEL_GROUP_DELETED;
+        }
+    }
+
+    /**
+     * @return Small hash of the channel ID, if present, or 0 otherwise.
+     */
+    static int getIdHash(@NonNull NotificationChannel channel) {
+        return NotificationRecordLogger.smallHash(channel.getId());
+    }
+
+    /**
+     * @return Small hash of the channel ID, if present, or 0 otherwise.
+     */
+    static int getIdHash(@NonNull NotificationChannelGroup group) {
+        return NotificationRecordLogger.smallHash(group.getId());
+    }
+
+    /**
+     * @return "Importance" for a channel group
+     */
+    static int getImportance(@NonNull NotificationChannelGroup channelGroup) {
+        return getImportance(channelGroup.isBlocked());
+    }
+
+    /**
+     * @return "Importance" for a channel group, from its blocked status
+     */
+    static int getImportance(boolean isBlocked) {
+        return isBlocked
+                ? FrameworkStatsLog.NOTIFICATION_CHANNEL_MODIFIED__IMPORTANCE__IMPORTANCE_NONE
+                : FrameworkStatsLog.NOTIFICATION_CHANNEL_MODIFIED__IMPORTANCE__IMPORTANCE_DEFAULT;
+    }
+
+}
diff --git a/services/core/java/com/android/server/notification/NotificationChannelLoggerImpl.java b/services/core/java/com/android/server/notification/NotificationChannelLoggerImpl.java
new file mode 100644
index 0000000..2f7772e
--- /dev/null
+++ b/services/core/java/com/android/server/notification/NotificationChannelLoggerImpl.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2020 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.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
+
+import com.android.internal.util.FrameworkStatsLog;
+
+/**
+ * Standard implementation of NotificationChannelLogger, which passes data through to StatsLog.
+ * This layer is as skinny as possible, to maximize code coverage of unit tests.  Nontrivial code
+ * should live in the interface so it can be tested.
+ */
+public class NotificationChannelLoggerImpl implements NotificationChannelLogger {
+    @Override
+    public void logNotificationChannel(NotificationChannelEvent event,
+            NotificationChannel channel, int uid, String pkg,
+            int oldImportance, int newImportance) {
+        FrameworkStatsLog.write(FrameworkStatsLog.NOTIFICATION_CHANNEL_MODIFIED,
+                /* int event_id*/ event.getId(),
+                /* int uid*/ uid,
+                /* String package_name */ pkg,
+                /* int32 channel_id_hash */ NotificationChannelLogger.getIdHash(channel),
+                /* int old_importance*/ oldImportance,
+                /* int importance*/ newImportance);
+    }
+
+    @Override
+    public void logNotificationChannelGroup(NotificationChannelEvent event,
+            NotificationChannelGroup channelGroup, int uid, String pkg, boolean wasBlocked) {
+        FrameworkStatsLog.write(FrameworkStatsLog.NOTIFICATION_CHANNEL_MODIFIED,
+                /* int event_id*/ event.getId(),
+                /* int uid*/ uid,
+                /* String package_name */ pkg,
+                /* int32 channel_id_hash */ NotificationChannelLogger.getIdHash(channelGroup),
+                /* int old_importance*/ NotificationChannelLogger.getImportance(wasBlocked),
+                /* int importance*/ NotificationChannelLogger.getImportance(channelGroup));
+    }
+}
diff --git a/services/core/java/com/android/server/notification/NotificationDelegate.java b/services/core/java/com/android/server/notification/NotificationDelegate.java
index feb4f0e..b8140be 100644
--- a/services/core/java/com/android/server/notification/NotificationDelegate.java
+++ b/services/core/java/com/android/server/notification/NotificationDelegate.java
@@ -87,4 +87,6 @@
      */
     void onNotificationSmartReplySent(String key, int clickedIndex, CharSequence reply,
             int notificationLocation, boolean modifiedBeforeSending);
+
+    void prepareForPossibleShutdown();
 }
diff --git a/services/core/java/com/android/server/notification/NotificationHistoryDatabase.java b/services/core/java/com/android/server/notification/NotificationHistoryDatabase.java
index dbaf824..2ed6e16 100644
--- a/services/core/java/com/android/server/notification/NotificationHistoryDatabase.java
+++ b/services/core/java/com/android/server/notification/NotificationHistoryDatabase.java
@@ -84,14 +84,12 @@
     // Current version of the database files schema
     private int mCurrentVersion;
     private final WriteBufferRunnable mWriteBufferRunnable;
-    private final FileAttrProvider mFileAttrProvider;
 
     // Object containing posted notifications that have not yet been written to disk
     @VisibleForTesting
     NotificationHistory mBuffer;
 
-    public NotificationHistoryDatabase(Context context, Handler fileWriteHandler, File dir,
-            FileAttrProvider fileAttrProvider) {
+    public NotificationHistoryDatabase(Context context, Handler fileWriteHandler, File dir) {
         mContext = context;
         mAlarmManager = context.getSystemService(AlarmManager.class);
         mCurrentVersion = DEFAULT_CURRENT_VERSION;
@@ -101,7 +99,6 @@
         mHistoryFiles = new LinkedList<>();
         mBuffer = new NotificationHistory();
         mWriteBufferRunnable = new WriteBufferRunnable();
-        mFileAttrProvider = fileAttrProvider;
 
         IntentFilter deletionFilter = new IntentFilter(ACTION_HISTORY_DELETION);
         deletionFilter.addDataScheme(SCHEME_DELETION);
@@ -131,8 +128,8 @@
         }
 
         // Sort with newest files first
-        Arrays.sort(files, (lhs, rhs) -> Long.compare(mFileAttrProvider.getCreationTime(rhs),
-                mFileAttrProvider.getCreationTime(lhs)));
+        Arrays.sort(files, (lhs, rhs) -> Long.compare(Long.parseLong(rhs.getName()),
+                Long.parseLong(lhs.getName())));
 
         for (File file : files) {
             mHistoryFiles.addLast(new AtomicFile(file));
@@ -160,9 +157,7 @@
     }
 
     public void forceWriteToDisk() {
-        if (!mFileWriteHandler.hasCallbacks(mWriteBufferRunnable)) {
-            mFileWriteHandler.post(mWriteBufferRunnable);
-        }
+        mFileWriteHandler.post(mWriteBufferRunnable);
     }
 
     public void onPackageRemoved(String packageName) {
@@ -255,10 +250,9 @@
 
             for (int i = mHistoryFiles.size() - 1; i >= 0; i--) {
                 final AtomicFile currentOldestFile = mHistoryFiles.get(i);
-                final long creationTime =
-                        mFileAttrProvider.getCreationTime(currentOldestFile.getBaseFile());
+                final long creationTime = Long.parseLong(currentOldestFile.getBaseFile().getName());
                 if (DEBUG) {
-                    Slog.d(TAG, "Pruning " + currentOldestFile.getBaseFile().getName()
+                    Slog.d(TAG, "File " + currentOldestFile.getBaseFile().getName()
                             + " created on " + creationTime);
                 }
                 if (creationTime <= retentionBoundary.getTimeInMillis()) {
@@ -270,13 +264,17 @@
                     mHistoryFiles.removeLast();
                 } else {
                     // all remaining files are newer than the cut off; schedule jobs to delete
-                    final long deletionTime = creationTime + (retentionDays * HISTORY_RETENTION_MS);
-                    scheduleDeletion(currentOldestFile.getBaseFile(), deletionTime);
+                    scheduleDeletion(currentOldestFile.getBaseFile(), creationTime, retentionDays);
                 }
             }
         }
     }
 
+    private void scheduleDeletion(File file, long creationTime, int retentionDays) {
+        final long deletionTime = creationTime + (retentionDays * HISTORY_RETENTION_MS);
+        scheduleDeletion(file, deletionTime);
+    }
+
     private void scheduleDeletion(File file, long deletionTime) {
         if (DEBUG) {
             Slog.d(TAG, "Scheduling deletion for " + file.getName() + " at " + deletionTime);
@@ -334,17 +332,28 @@
         }
     };
 
-    private final class WriteBufferRunnable implements Runnable {
+    final class WriteBufferRunnable implements Runnable {
+        long currentTime = 0;
+        AtomicFile latestNotificationsFile;
+
         @Override
         public void run() {
             if (DEBUG) Slog.d(TAG, "WriteBufferRunnable");
             synchronized (mLock) {
-                final AtomicFile latestNotificationsFiles = new AtomicFile(
-                        new File(mHistoryDir, String.valueOf(System.currentTimeMillis())));
+                if (currentTime == 0) {
+                    currentTime = System.currentTimeMillis();
+                }
+                if (latestNotificationsFile == null) {
+                    latestNotificationsFile = new AtomicFile(
+                            new File(mHistoryDir, String.valueOf(currentTime)));
+                }
                 try {
-                    writeLocked(latestNotificationsFiles, mBuffer);
-                    mHistoryFiles.addFirst(latestNotificationsFiles);
+                    writeLocked(latestNotificationsFile, mBuffer);
+                    mHistoryFiles.addFirst(latestNotificationsFile);
                     mBuffer = new NotificationHistory();
+
+                    scheduleDeletion(latestNotificationsFile.getBaseFile(), currentTime,
+                            HISTORY_RETENTION_DAYS);
                 } catch (IOException e) {
                     Slog.e(TAG, "Failed to write buffer to disk. not flushing buffer", e);
                 }
@@ -444,7 +453,7 @@
 
         @Override
         public void run() {
-            if (DEBUG) Slog.d(TAG, "RemoveConversationRunnable");
+            if (DEBUG) Slog.d(TAG, "RemoveConversationRunnable " + mPkg + " "  + mConversationId);
             synchronized (mLock) {
                 // Remove from pending history
                 mBuffer.removeConversationFromWrite(mPkg, mConversationId);
@@ -469,24 +478,4 @@
             }
         }
     }
-
-    public static final class NotificationHistoryFileAttrProvider implements
-            NotificationHistoryDatabase.FileAttrProvider {
-        final static String TAG = "NotifHistoryFileDate";
-
-        public long getCreationTime(File file) {
-            try {
-                BasicFileAttributes attr = Files.readAttributes(FileSystems.getDefault().getPath(
-                        file.getAbsolutePath()), BasicFileAttributes.class);
-                return attr.creationTime().to(TimeUnit.MILLISECONDS);
-            } catch (Exception e) {
-                Slog.w(TAG, "Cannot read creation data for file; using file name");
-                return Long.valueOf(file.getName());
-            }
-        }
-    }
-
-    interface FileAttrProvider {
-        long getCreationTime(File file);
-    }
 }
diff --git a/services/core/java/com/android/server/notification/NotificationHistoryDatabaseFactory.java b/services/core/java/com/android/server/notification/NotificationHistoryDatabaseFactory.java
index b4940a5..d9e0d79 100644
--- a/services/core/java/com/android/server/notification/NotificationHistoryDatabaseFactory.java
+++ b/services/core/java/com/android/server/notification/NotificationHistoryDatabaseFactory.java
@@ -31,11 +31,10 @@
     }
 
     public static NotificationHistoryDatabase create(@NonNull Context context,
-            @NonNull Handler handler, @NonNull File rootDir,
-            @NonNull NotificationHistoryDatabase.FileAttrProvider fileAttrProvider) {
+            @NonNull Handler handler, @NonNull File rootDir) {
         if(sTestingNotificationHistoryDb != null) {
             return sTestingNotificationHistoryDb;
         }
-        return new NotificationHistoryDatabase(context, handler, rootDir, fileAttrProvider);
+        return new NotificationHistoryDatabase(context, handler, rootDir);
     }
 }
diff --git a/services/core/java/com/android/server/notification/NotificationHistoryManager.java b/services/core/java/com/android/server/notification/NotificationHistoryManager.java
index 88e0dc6..7d68012 100644
--- a/services/core/java/com/android/server/notification/NotificationHistoryManager.java
+++ b/services/core/java/com/android/server/notification/NotificationHistoryManager.java
@@ -38,7 +38,6 @@
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.server.IoThread;
-import com.android.server.notification.NotificationHistoryDatabase.NotificationHistoryFileAttrProvider;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -182,7 +181,6 @@
         }
     }
 
-    // TODO: wire this up to AMS when power button is long pressed
     public void triggerWriteToDisk() {
         synchronized (mLock) {
             final int userCount = mUserState.size();
@@ -291,7 +289,7 @@
             final File historyDir = new File(Environment.getDataSystemCeDirectory(userId),
                     DIRECTORY_PER_USER);
             userHistory = NotificationHistoryDatabaseFactory.create(mContext, IoThread.getHandler(),
-                    historyDir, new NotificationHistoryFileAttrProvider());
+                    historyDir);
             if (mUserUnlockedStates.get(userId)) {
                 try {
                     userHistory.init();
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index ceb1cd4..b5e7ea0 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -570,17 +570,17 @@
 
         public StatusBarNotification[] getArray(int count, boolean includeSnoozed) {
             if (count == 0) count = mBufferSize;
-            final StatusBarNotification[] a
-                    = new StatusBarNotification[Math.min(count, mBuffer.size())];
+            List<StatusBarNotification> a = new ArrayList();
             Iterator<Pair<StatusBarNotification, Integer>> iter = descendingIterator();
             int i=0;
             while (iter.hasNext() && i < count) {
                 Pair<StatusBarNotification, Integer> pair = iter.next();
                 if (pair.second != REASON_SNOOZED || includeSnoozed) {
-                    a[i++] = pair.first;
+                    i++;
+                    a.add(pair.first);
                 }
             }
-            return a;
+            return  a.toArray(new StatusBarNotification[a.size()]);
         }
 
     }
@@ -876,6 +876,11 @@
     final NotificationDelegate mNotificationDelegate = new NotificationDelegate() {
 
         @Override
+        public void prepareForPossibleShutdown() {
+            mHistoryManager.triggerWriteToDisk();
+        }
+
+        @Override
         public void onSetDisabled(int status) {
             synchronized (mNotificationLock) {
                 mDisableNotificationEffects =
@@ -1979,7 +1984,8 @@
         mPreferencesHelper = new PreferencesHelper(getContext(),
                 mPackageManagerClient,
                 mRankingHandler,
-                mZenModeHelper);
+                mZenModeHelper,
+                new NotificationChannelLoggerImpl());
         mRankingHelper = new RankingHelper(getContext(),
                 mRankingHandler,
                 mPreferencesHelper,
@@ -2068,19 +2074,16 @@
 
     @Override
     public void onStart() {
-        SnoozeHelper snoozeHelper = new SnoozeHelper(getContext(), new SnoozeHelper.Callback() {
-            @Override
-            public void repost(int userId, NotificationRecord r) {
-                try {
-                    if (DBG) {
-                        Slog.d(TAG, "Reposting " + r.getKey());
-                    }
-                    enqueueNotificationInternal(r.getSbn().getPackageName(), r.getSbn().getOpPkg(),
-                            r.getSbn().getUid(), r.getSbn().getInitialPid(), r.getSbn().getTag(),
-                            r.getSbn().getId(),  r.getSbn().getNotification(), userId);
-                } catch (Exception e) {
-                    Slog.e(TAG, "Cannot un-snooze notification", e);
+        SnoozeHelper snoozeHelper = new SnoozeHelper(getContext(), (userId, r, muteOnReturn) -> {
+            try {
+                if (DBG) {
+                    Slog.d(TAG, "Reposting " + r.getKey());
                 }
+                enqueueNotificationInternal(r.getSbn().getPackageName(), r.getSbn().getOpPkg(),
+                        r.getSbn().getUid(), r.getSbn().getInitialPid(), r.getSbn().getTag(),
+                        r.getSbn().getId(),  r.getSbn().getNotification(), userId, true);
+            } catch (Exception e) {
+                Slog.e(TAG, "Cannot un-snooze notification", e);
             }
         }, mUserProfiles);
 
@@ -2700,8 +2703,13 @@
         CharSequence title = null;
         if (n.extras != null) {
             title = n.extras.getCharSequence(Notification.EXTRA_TITLE);
+            if (title == null) {
+                title = n.extras.getCharSequence(Notification.EXTRA_TITLE_BIG);
+            }
         }
-        return title == null? null : String.valueOf(title);
+        return title == null ? getContext().getResources().getString(
+            com.android.internal.R.string.notification_history_title_placeholder)
+            : String.valueOf(title);
     }
 
     /**
@@ -3983,7 +3991,7 @@
                 synchronized (mNotificationLock) {
                     final ManagedServiceInfo info =
                             mAssistants.checkServiceTokenLocked(token);
-                    unsnoozeNotificationInt(key, info);
+                    unsnoozeNotificationInt(key, info, false);
                 }
             } finally {
                 Binder.restoreCallingIdentity(identity);
@@ -4006,7 +4014,7 @@
                     if (!info.isSystem) {
                         throw new SecurityException("Not allowed to unsnooze before deadline");
                     }
-                    unsnoozeNotificationInt(key, info);
+                    unsnoozeNotificationInt(key, info, true);
                 }
             } finally {
                 Binder.restoreCallingIdentity(identity);
@@ -5525,6 +5533,13 @@
     void enqueueNotificationInternal(final String pkg, final String opPkg, final int callingUid,
             final int callingPid, final String tag, final int id, final Notification notification,
             int incomingUserId) {
+        enqueueNotificationInternal(pkg, opPkg, callingUid, callingPid, tag, id, notification,
+        incomingUserId, false);
+    }
+
+    void enqueueNotificationInternal(final String pkg, final String opPkg, final int callingUid,
+        final int callingPid, final String tag, final int id, final Notification notification,
+        int incomingUserId, boolean postSilently) {
         if (DBG) {
             Slog.v(TAG, "enqueueNotificationInternal: pkg=" + pkg + " id=" + id
                     + " notification=" + notification);
@@ -5605,6 +5620,7 @@
                 user, null, System.currentTimeMillis());
         final NotificationRecord r = new NotificationRecord(getContext(), n, channel);
         r.setIsAppImportanceLocked(mPreferencesHelper.getIsAppImportanceLocked(pkg, callingUid));
+        r.setPostSilently(postSilently);
 
         if ((notification.flags & Notification.FLAG_FOREGROUND_SERVICE) != 0) {
             final boolean fgServiceShown = channel.isFgServiceShown();
@@ -7040,6 +7056,11 @@
             return true;
         }
 
+        // Suppressed because a user manually unsnoozed something (or similar)
+        if (record.shouldPostSilently()) {
+            return true;
+        }
+
         // muted by listener
         final String disableEffects = disableNotificationEffects(record);
         if (disableEffects != null) {
@@ -8054,13 +8075,12 @@
         mHandler.post(new SnoozeNotificationRunnable(key, duration, snoozeCriterionId));
     }
 
-    void unsnoozeNotificationInt(String key, ManagedServiceInfo listener) {
+    void unsnoozeNotificationInt(String key, ManagedServiceInfo listener, boolean muteOnReturn) {
         String listenerName = listener == null ? null : listener.component.toShortString();
         if (DBG) {
             Slog.d(TAG, String.format("unsnooze event(%s, %s)", key, listenerName));
         }
-        mSnoozeHelper.cleanupPersistedContext(key);
-        mSnoozeHelper.repost(key);
+        mSnoozeHelper.repost(key, muteOnReturn);
         handleSavePolicyFile();
     }
 
@@ -8575,7 +8595,8 @@
                     record.getSmartReplies(),
                     record.canBubble(),
                     record.isInterruptive(),
-                    record.isConversation()
+                    record.isConversation(),
+                    record.getShortcutInfo()
             );
             rankings.add(ranking);
         }
diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java
index 9d243e4..3f24b38 100644
--- a/services/core/java/com/android/server/notification/NotificationRecord.java
+++ b/services/core/java/com/android/server/notification/NotificationRecord.java
@@ -187,6 +187,7 @@
     private boolean mSuggestionsGeneratedByAssistant;
     private boolean mEditChoicesBeforeSending;
     private boolean mHasSeenSmartReplies;
+    private boolean mPostSilently;
     /**
      * Whether this notification (and its channels) should be considered user locked. Used in
      * conjunction with user sentiment calculation.
@@ -856,6 +857,17 @@
         return mHidden;
     }
 
+    /**
+     * Override of all alerting information on the channel and notification. Used when notifications
+     * are reposted in response to direct user action and thus don't need to alert.
+     */
+    public void setPostSilently(boolean postSilently) {
+        mPostSilently = postSilently;
+    }
+
+    public boolean shouldPostSilently() {
+        return mPostSilently;
+    }
 
     public void setSuppressedVisualEffects(int effects) {
         mSuppressedVisualEffects = effects;
@@ -1344,6 +1356,10 @@
         mShortcutInfo = shortcutInfo;
     }
 
+    public ShortcutInfo getShortcutInfo() {
+        return mShortcutInfo;
+    }
+
     /**
      * Whether this notification is a conversation notification.
      */
diff --git a/services/core/java/com/android/server/notification/NotificationRecordLogger.java b/services/core/java/com/android/server/notification/NotificationRecordLogger.java
index eaca066f..f4ee461 100644
--- a/services/core/java/com/android/server/notification/NotificationRecordLogger.java
+++ b/services/core/java/com/android/server/notification/NotificationRecordLogger.java
@@ -27,7 +27,6 @@
 import android.service.notification.NotificationListenerService;
 import android.service.notification.NotificationStats;
 
-import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.logging.UiEvent;
 import com.android.internal.logging.UiEventLogger;
 
@@ -307,27 +306,36 @@
          * @return Small hash of the channel ID, if present, or 0 otherwise.
          */
         int getChannelIdHash() {
-            return smallHash(Objects.hashCode(r.getSbn().getNotification().getChannelId()));
+            return smallHash(r.getSbn().getNotification().getChannelId());
         }
 
         /**
          * @return Small hash of the group ID, respecting group override if present. 0 otherwise.
          */
         int getGroupIdHash() {
-            return smallHash(Objects.hashCode(r.getSbn().getGroup()));
+            return smallHash(r.getSbn().getGroup());
         }
 
-        // "Small" hashes will be in the range [0, MAX_HASH).
-        static final int MAX_HASH = (1 << 13);
-
-        /**
-         * 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).
-         */
-        @VisibleForTesting
-        static int smallHash(int in) {
-            return Math.floorMod(in, MAX_HASH);
-        }
     }
+
+    // "Small" hashes will be in the range [0, MAX_HASH).
+    int MAX_HASH = (1 << 13);
+
+    /**
+     * 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).
+     */
+    static int smallHash(int in) {
+        return Math.floorMod(in, MAX_HASH);
+    }
+
+    /**
+     * @return Small hash of the string, if non-null, or 0 otherwise.
+     */
+    static int smallHash(@Nullable String in) {
+        return smallHash(Objects.hashCode(in));
+    }
+
+
 }
diff --git a/services/core/java/com/android/server/notification/PreferencesHelper.java b/services/core/java/com/android/server/notification/PreferencesHelper.java
index b8186ed..6fd09bb 100644
--- a/services/core/java/com/android/server/notification/PreferencesHelper.java
+++ b/services/core/java/com/android/server/notification/PreferencesHelper.java
@@ -145,6 +145,7 @@
     private final PackageManager mPm;
     private final RankingHandler mRankingHandler;
     private final ZenModeHelper mZenModeHelper;
+    private final NotificationChannelLogger mNotificationChannelLogger;
 
     private SparseBooleanArray mBadgingEnabled;
     private boolean mBubblesEnabled = DEFAULT_ALLOW_BUBBLE;
@@ -161,11 +162,12 @@
     }
 
     public PreferencesHelper(Context context, PackageManager pm, RankingHandler rankingHandler,
-            ZenModeHelper zenHelper) {
+            ZenModeHelper zenHelper, NotificationChannelLogger notificationChannelLogger) {
         mContext = context;
         mZenModeHelper = zenHelper;
         mRankingHandler = rankingHandler;
         mPm = pm;
+        mNotificationChannelLogger = notificationChannelLogger;
 
         // STOPSHIP (b/142218092) this should be removed before ship
         if (!wasBadgingForcedTrue(context)) {
@@ -654,10 +656,6 @@
                 throw new IllegalArgumentException("Invalid package");
             }
             final NotificationChannelGroup oldGroup = r.groups.get(group.getId());
-            if (!group.equals(oldGroup)) {
-                // will log for new entries as well as name/description changes
-                MetricsLogger.action(getChannelGroupLog(group.getId(), pkg));
-            }
             if (oldGroup != null) {
                 group.setChannels(oldGroup.getChannels());
 
@@ -674,6 +672,13 @@
                     }
                 }
             }
+            if (!group.equals(oldGroup)) {
+                // will log for new entries as well as name/description changes
+                MetricsLogger.action(getChannelGroupLog(group.getId(), pkg));
+                mNotificationChannelLogger.logNotificationChannelGroup(group, uid, pkg,
+                        oldGroup == null,
+                        (oldGroup != null) && oldGroup.isBlocked());
+            }
             r.groups.put(group.getId(), group);
         }
     }
@@ -685,7 +690,7 @@
         Objects.requireNonNull(channel);
         Objects.requireNonNull(channel.getId());
         Preconditions.checkArgument(!TextUtils.isEmpty(channel.getName()));
-        boolean needsPolicyFileChange = false;
+        boolean needsPolicyFileChange = false, wasUndeleted = false;
         synchronized (mPackagePreferences) {
             PackagePreferences r = getOrCreatePackagePreferencesLocked(pkg, uid);
             if (r == null) {
@@ -698,15 +703,18 @@
                 throw new IllegalArgumentException("Reserved id");
             }
             NotificationChannel existing = r.channels.get(channel.getId());
-            // Keep most of the existing settings
             if (existing != null && fromTargetApp) {
+                // Actually modifying an existing channel - keep most of the existing settings
                 if (existing.isDeleted()) {
+                    // The existing channel was deleted - undelete it.
                     existing.setDeleted(false);
                     needsPolicyFileChange = true;
+                    wasUndeleted = true;
 
                     // log a resurrected channel as if it's new again
                     MetricsLogger.action(getChannelLog(channel, pkg).setType(
                             com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_OPEN));
+                    mNotificationChannelLogger.logNotificationChannelCreated(channel, uid, pkg);
                 }
 
                 if (!Objects.equals(channel.getName().toString(), existing.getName().toString())) {
@@ -756,6 +764,10 @@
                 }
 
                 updateConfig();
+                if (needsPolicyFileChange && !wasUndeleted) {
+                    mNotificationChannelLogger.logNotificationChannelModified(existing, uid, pkg,
+                            previousExistingImportance, false);
+                }
                 return needsPolicyFileChange;
             }
 
@@ -806,6 +818,7 @@
             }
             MetricsLogger.action(getChannelLog(channel, pkg).setType(
                     com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_OPEN));
+            mNotificationChannelLogger.logNotificationChannelCreated(channel, uid, pkg);
         }
 
         return needsPolicyFileChange;
@@ -867,6 +880,8 @@
                 // only log if there are real changes
                 MetricsLogger.action(getChannelLog(updatedChannel, pkg)
                         .setSubtype(fromUser ? 1 : 0));
+                mNotificationChannelLogger.logNotificationChannelModified(updatedChannel, uid, pkg,
+                        channel.getImportance(), fromUser);
             }
 
             if (updatedChannel.canBypassDnd() != mAreChannelsBypassingDnd
@@ -954,14 +969,21 @@
             }
             NotificationChannel channel = r.channels.get(channelId);
             if (channel != null) {
-                channel.setDeleted(true);
-                LogMaker lm = getChannelLog(channel, pkg);
-                lm.setType(com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_CLOSE);
-                MetricsLogger.action(lm);
+                deleteNotificationChannelLocked(channel, pkg, uid);
+            }
+        }
+    }
 
-                if (mAreChannelsBypassingDnd && channel.canBypassDnd()) {
-                    updateChannelsBypassingDnd(mContext.getUserId());
-                }
+    private void deleteNotificationChannelLocked(NotificationChannel channel, String pkg, int uid) {
+        if (!channel.isDeleted()) {
+            channel.setDeleted(true);
+            LogMaker lm = getChannelLog(channel, pkg);
+            lm.setType(com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_CLOSE);
+            MetricsLogger.action(lm);
+            mNotificationChannelLogger.logNotificationChannelDeleted(channel, uid, pkg);
+
+            if (mAreChannelsBypassingDnd && channel.canBypassDnd()) {
+                updateChannelsBypassingDnd(mContext.getUserId());
             }
         }
     }
@@ -1158,13 +1180,17 @@
                 return deletedChannels;
             }
 
-            r.groups.remove(groupId);
+            NotificationChannelGroup channelGroup = r.groups.remove(groupId);
+            if (channelGroup != null) {
+                mNotificationChannelLogger.logNotificationChannelGroupDeleted(channelGroup, uid,
+                        pkg);
+            }
 
             int N = r.channels.size();
             for (int i = 0; i < N; i++) {
                 final NotificationChannel nc = r.channels.valueAt(i);
                 if (groupId.equals(nc.getGroup())) {
-                    nc.setDeleted(true);
+                    deleteNotificationChannelLocked(nc, pkg, uid);
                     deletedChannels.add(nc);
                 }
             }
@@ -1279,6 +1305,7 @@
                     lm.setType(
                             com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_CLOSE);
                     MetricsLogger.action(lm);
+                    mNotificationChannelLogger.logNotificationChannelDeleted(nc, uid, pkg);
 
                     deletedChannelIds.add(nc.getId());
                 }
diff --git a/services/core/java/com/android/server/notification/SnoozeHelper.java b/services/core/java/com/android/server/notification/SnoozeHelper.java
index d60c291..9a9e733 100644
--- a/services/core/java/com/android/server/notification/SnoozeHelper.java
+++ b/services/core/java/com/android/server/notification/SnoozeHelper.java
@@ -106,6 +106,8 @@
     private ArrayMap<String, Integer> mUsers = new ArrayMap<>();
     private Callback mCallback;
 
+    private final Object mLock = new Object();
+
     public SnoozeHelper(Context context, Callback callback,
             ManagedServices.UserProfiles userProfiles) {
         mContext = context;
@@ -122,41 +124,52 @@
     }
 
     void cleanupPersistedContext(String key){
-        int userId = mUsers.get(key);
-        String pkg = mPackages.get(key);
-        synchronized (mPersistedSnoozedNotificationsWithContext) {
-            removeRecord(pkg, key, userId, mPersistedSnoozedNotificationsWithContext);
+        synchronized (mLock) {
+            int userId = mUsers.get(key);
+            String pkg = mPackages.get(key);
+            removeRecordLocked(pkg, key, userId, mPersistedSnoozedNotificationsWithContext);
         }
     }
 
-    //This function has a side effect of removing the time from the list of persisted notifications.
-    //IT IS NOT IDEMPOTENT!
     @NonNull
     protected Long getSnoozeTimeForUnpostedNotification(int userId, String pkg, String key) {
-        Long time;
-        synchronized (mPersistedSnoozedNotifications) {
-            time = removeRecord(pkg, key, userId, mPersistedSnoozedNotifications);
+        Long time = null;
+        synchronized (mLock) {
+           ArrayMap<String, Long> snoozed =
+                   mPersistedSnoozedNotifications.get(getPkgKey(userId, pkg));
+           if (snoozed != null) {
+               time = snoozed.get(key);
+           }
         }
         if (time == null) {
-            return 0L;
+            time = 0L;
         }
         return time;
     }
 
     protected String getSnoozeContextForUnpostedNotification(int userId, String pkg, String key) {
-        synchronized (mPersistedSnoozedNotificationsWithContext) {
-            return removeRecord(pkg, key, userId, mPersistedSnoozedNotificationsWithContext);
+        synchronized (mLock) {
+            ArrayMap<String, String> snoozed =
+                    mPersistedSnoozedNotificationsWithContext.get(getPkgKey(userId, pkg));
+            if (snoozed != null) {
+                return snoozed.get(key);
+            }
         }
+        return null;
     }
 
     protected boolean isSnoozed(int userId, String pkg, String key) {
-        return mSnoozedNotifications.containsKey(getPkgKey(userId, pkg))
-                && mSnoozedNotifications.get(getPkgKey(userId, pkg)).containsKey(key);
+        synchronized (mLock) {
+            return mSnoozedNotifications.containsKey(getPkgKey(userId, pkg))
+                    && mSnoozedNotifications.get(getPkgKey(userId, pkg)).containsKey(key);
+        }
     }
 
     protected Collection<NotificationRecord> getSnoozed(int userId, String pkg) {
-        if (mSnoozedNotifications.containsKey(getPkgKey(userId, pkg))) {
-            return mSnoozedNotifications.get(getPkgKey(userId, pkg)).values();
+        synchronized (mLock) {
+            if (mSnoozedNotifications.containsKey(getPkgKey(userId, pkg))) {
+                return mSnoozedNotifications.get(getPkgKey(userId, pkg)).values();
+            }
         }
         return Collections.EMPTY_LIST;
     }
@@ -165,14 +178,16 @@
     ArrayList<NotificationRecord> getNotifications(String pkg,
             String groupKey, Integer userId) {
         ArrayList<NotificationRecord> records =  new ArrayList<>();
-        ArrayMap<String, NotificationRecord> allRecords =
-                mSnoozedNotifications.get(getPkgKey(userId, pkg));
-        if (allRecords != null) {
-            for (int i = 0; i < allRecords.size(); i++) {
-                NotificationRecord r = allRecords.valueAt(i);
-                String currentGroupKey = r.getSbn().getGroup();
-                if (Objects.equals(currentGroupKey, groupKey)) {
-                    records.add(r);
+        synchronized (mLock) {
+            ArrayMap<String, NotificationRecord> allRecords =
+                    mSnoozedNotifications.get(getPkgKey(userId, pkg));
+            if (allRecords != null) {
+                for (int i = 0; i < allRecords.size(); i++) {
+                    NotificationRecord r = allRecords.valueAt(i);
+                    String currentGroupKey = r.getSbn().getGroup();
+                    if (Objects.equals(currentGroupKey, groupKey)) {
+                        records.add(r);
+                    }
                 }
             }
         }
@@ -180,30 +195,34 @@
     }
 
     protected NotificationRecord getNotification(String key) {
-        if (!mUsers.containsKey(key) || !mPackages.containsKey(key)) {
-            Slog.w(TAG, "Snoozed data sets no longer agree for " + key);
-            return null;
+        synchronized (mLock) {
+            if (!mUsers.containsKey(key) || !mPackages.containsKey(key)) {
+                Slog.w(TAG, "Snoozed data sets no longer agree for " + key);
+                return null;
+            }
+            int userId = mUsers.get(key);
+            String pkg = mPackages.get(key);
+            ArrayMap<String, NotificationRecord> snoozed =
+                    mSnoozedNotifications.get(getPkgKey(userId, pkg));
+            if (snoozed == null) {
+                return null;
+            }
+            return snoozed.get(key);
         }
-        int userId = mUsers.get(key);
-        String pkg = mPackages.get(key);
-        ArrayMap<String, NotificationRecord> snoozed =
-                mSnoozedNotifications.get(getPkgKey(userId, pkg));
-        if (snoozed == null) {
-            return null;
-        }
-        return snoozed.get(key);
     }
 
     protected @NonNull List<NotificationRecord> getSnoozed() {
-        // caller filters records based on the current user profiles and listener access, so just
-        // return everything
-        List<NotificationRecord> snoozed= new ArrayList<>();
-        for (String userPkgKey : mSnoozedNotifications.keySet()) {
-            ArrayMap<String, NotificationRecord> snoozedRecords =
-                    mSnoozedNotifications.get(userPkgKey);
-            snoozed.addAll(snoozedRecords.values());
+        synchronized (mLock) {
+            // caller filters records based on the current user profiles and listener access, so just
+            // return everything
+            List<NotificationRecord> snoozed = new ArrayList<>();
+            for (String userPkgKey : mSnoozedNotifications.keySet()) {
+                ArrayMap<String, NotificationRecord> snoozedRecords =
+                        mSnoozedNotifications.get(userPkgKey);
+                snoozed.addAll(snoozedRecords.values());
+            }
+            return snoozed;
         }
-        return snoozed;
     }
 
     /**
@@ -216,9 +235,9 @@
 
         snooze(record);
         scheduleRepost(pkg, key, userId, duration);
-        Long activateAt = SystemClock.elapsedRealtime() + duration;
-        synchronized (mPersistedSnoozedNotifications) {
-            storeRecord(pkg, key, userId, mPersistedSnoozedNotifications, activateAt);
+        Long activateAt = System.currentTimeMillis() + duration;
+        synchronized (mLock) {
+            storeRecordLocked(pkg, key, userId, mPersistedSnoozedNotifications, activateAt);
         }
     }
 
@@ -228,8 +247,8 @@
     protected void snooze(NotificationRecord record, String contextId) {
         int userId = record.getUser().getIdentifier();
         if (contextId != null) {
-            synchronized (mPersistedSnoozedNotificationsWithContext) {
-                storeRecord(record.getSbn().getPackageName(), record.getKey(),
+            synchronized (mLock) {
+                storeRecordLocked(record.getSbn().getPackageName(), record.getKey(),
                         userId, mPersistedSnoozedNotificationsWithContext, contextId);
             }
         }
@@ -241,25 +260,26 @@
         if (DEBUG) {
             Slog.d(TAG, "Snoozing " + record.getKey());
         }
-        storeRecord(record.getSbn().getPackageName(), record.getKey(),
-                userId, mSnoozedNotifications, record);
+        synchronized (mLock) {
+            storeRecordLocked(record.getSbn().getPackageName(), record.getKey(),
+                    userId, mSnoozedNotifications, record);
+        }
     }
 
-    private <T> void storeRecord(String pkg, String key, Integer userId,
+    private <T> void storeRecordLocked(String pkg, String key, Integer userId,
             ArrayMap<String, ArrayMap<String, T>> targets, T object) {
 
+        mPackages.put(key, pkg);
+        mUsers.put(key, userId);
         ArrayMap<String, T> keyToValue = targets.get(getPkgKey(userId, pkg));
         if (keyToValue == null) {
             keyToValue = new ArrayMap<>();
         }
         keyToValue.put(key, object);
         targets.put(getPkgKey(userId, pkg), keyToValue);
-
-        mPackages.put(key, pkg);
-        mUsers.put(key, userId);
     }
 
-    private <T> T removeRecord(String pkg, String key, Integer userId,
+    private <T> T removeRecordLocked(String pkg, String key, Integer userId,
             ArrayMap<String, ArrayMap<String, T>> targets) {
         T object = null;
         ArrayMap<String, T> keyToValue = targets.get(getPkgKey(userId, pkg));
@@ -274,15 +294,17 @@
     }
 
     protected boolean cancel(int userId, String pkg, String tag, int id) {
-        ArrayMap<String, NotificationRecord> recordsForPkg =
-                mSnoozedNotifications.get(getPkgKey(userId, pkg));
-        if (recordsForPkg != null) {
-            final Set<Map.Entry<String, NotificationRecord>> records = recordsForPkg.entrySet();
-            for (Map.Entry<String, NotificationRecord> record : records) {
-                final StatusBarNotification sbn = record.getValue().getSbn();
-                if (Objects.equals(sbn.getTag(), tag) && sbn.getId() == id) {
-                    record.getValue().isCanceled = true;
-                    return true;
+        synchronized (mLock) {
+            ArrayMap<String, NotificationRecord> recordsForPkg =
+                    mSnoozedNotifications.get(getPkgKey(userId, pkg));
+            if (recordsForPkg != null) {
+                final Set<Map.Entry<String, NotificationRecord>> records = recordsForPkg.entrySet();
+                for (Map.Entry<String, NotificationRecord> record : records) {
+                    final StatusBarNotification sbn = record.getValue().getSbn();
+                    if (Objects.equals(sbn.getTag(), tag) && sbn.getId() == id) {
+                        record.getValue().isCanceled = true;
+                        return true;
+                    }
                 }
             }
         }
@@ -290,125 +312,149 @@
     }
 
     protected void cancel(int userId, boolean includeCurrentProfiles) {
-        if (mSnoozedNotifications.size() == 0) {
-            return;
-        }
-        IntArray userIds = new IntArray();
-        userIds.add(userId);
-        if (includeCurrentProfiles) {
-            userIds = mUserProfiles.getCurrentProfileIds();
-        }
-        for (ArrayMap<String, NotificationRecord> snoozedRecords : mSnoozedNotifications.values()) {
-            for (NotificationRecord r : snoozedRecords.values()) {
-                if (userIds.binarySearch(r.getUserId()) >= 0) {
-                    r.isCanceled = true;
+        synchronized (mLock) {
+            if (mSnoozedNotifications.size() == 0) {
+                return;
+            }
+            IntArray userIds = new IntArray();
+            userIds.add(userId);
+            if (includeCurrentProfiles) {
+                userIds = mUserProfiles.getCurrentProfileIds();
+            }
+            for (ArrayMap<String, NotificationRecord> snoozedRecords : mSnoozedNotifications.values()) {
+                for (NotificationRecord r : snoozedRecords.values()) {
+                    if (userIds.binarySearch(r.getUserId()) >= 0) {
+                        r.isCanceled = true;
+                    }
                 }
             }
         }
     }
 
     protected boolean cancel(int userId, String pkg) {
-        ArrayMap<String, NotificationRecord> records =
-                mSnoozedNotifications.get(getPkgKey(userId, pkg));
-        if (records == null) {
-            return false;
+        synchronized (mLock) {
+            ArrayMap<String, NotificationRecord> records =
+                    mSnoozedNotifications.get(getPkgKey(userId, pkg));
+            if (records == null) {
+                return false;
+            }
+            int N = records.size();
+            for (int i = 0; i < N; i++) {
+                records.valueAt(i).isCanceled = true;
+            }
+            return true;
         }
-        int N = records.size();
-        for (int i = 0; i < N; i++) {
-            records.valueAt(i).isCanceled = true;
-        }
-        return true;
     }
 
     /**
      * Updates the notification record so the most up to date information is shown on re-post.
      */
     protected void update(int userId, NotificationRecord record) {
-        ArrayMap<String, NotificationRecord> records =
-                mSnoozedNotifications.get(getPkgKey(userId, record.getSbn().getPackageName()));
-        if (records == null) {
-            return;
-        }
-        records.put(record.getKey(), record);
-    }
-
-    protected void repost(String key) {
-        Integer userId = mUsers.get(key);
-        if (userId != null) {
-            repost(key, userId);
+        synchronized (mLock) {
+            ArrayMap<String, NotificationRecord> records =
+                    mSnoozedNotifications.get(getPkgKey(userId, record.getSbn().getPackageName()));
+            if (records == null) {
+                return;
+            }
+            records.put(record.getKey(), record);
         }
     }
 
-    protected void repost(String key, int userId) {
-        final String pkg = mPackages.remove(key);
-        ArrayMap<String, NotificationRecord> records =
-                mSnoozedNotifications.get(getPkgKey(userId, pkg));
-        if (records == null) {
-            return;
+    protected void repost(String key, boolean muteOnReturn) {
+        synchronized (mLock) {
+            Integer userId = mUsers.get(key);
+            if (userId != null) {
+                repost(key, userId, muteOnReturn);
+            }
         }
-        final NotificationRecord record = records.remove(key);
-        mPackages.remove(key);
-        mUsers.remove(key);
+    }
+
+    protected void repost(String key, int userId, boolean muteOnReturn) {
+        NotificationRecord record;
+        synchronized (mLock) {
+            final String pkg = mPackages.remove(key);
+            mUsers.remove(key);
+            removeRecordLocked(pkg, key, userId, mPersistedSnoozedNotifications);
+            removeRecordLocked(pkg, key, userId, mPersistedSnoozedNotificationsWithContext);
+            ArrayMap<String, NotificationRecord> records =
+                    mSnoozedNotifications.get(getPkgKey(userId, pkg));
+            if (records == null) {
+                return;
+            }
+            record = records.remove(key);
+
+        }
 
         if (record != null && !record.isCanceled) {
-            final PendingIntent pi = createPendingIntent(pkg, record.getKey(), userId);
+            final PendingIntent pi = createPendingIntent(
+                    record.getSbn().getPackageName(), record.getKey(), userId);
             mAm.cancel(pi);
             MetricsLogger.action(record.getLogMaker()
                     .setCategory(MetricsProto.MetricsEvent.NOTIFICATION_SNOOZED)
                     .setType(MetricsProto.MetricsEvent.TYPE_OPEN));
-            mCallback.repost(userId, record);
+            mCallback.repost(userId, record, muteOnReturn);
         }
     }
 
     protected void repostGroupSummary(String pkg, int userId, String groupKey) {
-        ArrayMap<String, NotificationRecord> recordsByKey
-                = mSnoozedNotifications.get(getPkgKey(userId, pkg));
-        if (recordsByKey == null) {
-            return;
-        }
-
-        String groupSummaryKey = null;
-        int N = recordsByKey.size();
-        for (int i = 0; i < N; i++) {
-            final NotificationRecord potentialGroupSummary = recordsByKey.valueAt(i);
-            if (potentialGroupSummary.getSbn().isGroup()
-                    && potentialGroupSummary.getNotification().isGroupSummary()
-                    && groupKey.equals(potentialGroupSummary.getGroupKey())) {
-                groupSummaryKey = potentialGroupSummary.getKey();
-                break;
+        synchronized (mLock) {
+            ArrayMap<String, NotificationRecord> recordsByKey
+                    = mSnoozedNotifications.get(getPkgKey(userId, pkg));
+            if (recordsByKey == null) {
+                return;
             }
-        }
 
-        if (groupSummaryKey != null) {
-            NotificationRecord record = recordsByKey.remove(groupSummaryKey);
-            mPackages.remove(groupSummaryKey);
-            mUsers.remove(groupSummaryKey);
+            String groupSummaryKey = null;
+            int N = recordsByKey.size();
+            for (int i = 0; i < N; i++) {
+                final NotificationRecord potentialGroupSummary = recordsByKey.valueAt(i);
+                if (potentialGroupSummary.getSbn().isGroup()
+                        && potentialGroupSummary.getNotification().isGroupSummary()
+                        && groupKey.equals(potentialGroupSummary.getGroupKey())) {
+                    groupSummaryKey = potentialGroupSummary.getKey();
+                    break;
+                }
+            }
 
-            if (record != null && !record.isCanceled) {
-                MetricsLogger.action(record.getLogMaker()
-                        .setCategory(MetricsProto.MetricsEvent.NOTIFICATION_SNOOZED)
-                        .setType(MetricsProto.MetricsEvent.TYPE_OPEN));
-                mCallback.repost(userId, record);
+            if (groupSummaryKey != null) {
+                NotificationRecord record = recordsByKey.remove(groupSummaryKey);
+                mPackages.remove(groupSummaryKey);
+                mUsers.remove(groupSummaryKey);
+
+                if (record != null && !record.isCanceled) {
+                    Runnable runnable = () -> {
+                        MetricsLogger.action(record.getLogMaker()
+                                .setCategory(MetricsProto.MetricsEvent.NOTIFICATION_SNOOZED)
+                                .setType(MetricsProto.MetricsEvent.TYPE_OPEN));
+                        mCallback.repost(userId, record, false);
+                    };
+                    runnable.run();
+                }
             }
         }
     }
 
     protected void clearData(int userId, String pkg) {
-        ArrayMap<String, NotificationRecord> records =
-                mSnoozedNotifications.get(getPkgKey(userId, pkg));
-        if (records == null) {
-            return;
-        }
-        for (int i = records.size() - 1; i >= 0; i--) {
-            final NotificationRecord r = records.removeAt(i);
-            if (r != null) {
-                mPackages.remove(r.getKey());
-                mUsers.remove(r.getKey());
-                final PendingIntent pi = createPendingIntent(pkg, r.getKey(), userId);
-                mAm.cancel(pi);
-                MetricsLogger.action(r.getLogMaker()
-                        .setCategory(MetricsProto.MetricsEvent.NOTIFICATION_SNOOZED)
-                        .setType(MetricsProto.MetricsEvent.TYPE_DISMISS));
+        synchronized (mLock) {
+            ArrayMap<String, NotificationRecord> records =
+                    mSnoozedNotifications.get(getPkgKey(userId, pkg));
+            if (records == null) {
+                return;
+            }
+            for (int i = records.size() - 1; i >= 0; i--) {
+                final NotificationRecord r = records.removeAt(i);
+                if (r != null) {
+                    mPackages.remove(r.getKey());
+                    mUsers.remove(r.getKey());
+                    Runnable runnable = () -> {
+                        final PendingIntent pi = createPendingIntent(pkg, r.getKey(), userId);
+                        mAm.cancel(pi);
+                        MetricsLogger.action(r.getLogMaker()
+                                .setCategory(MetricsProto.MetricsEvent.NOTIFICATION_SNOOZED)
+                                .setType(MetricsProto.MetricsEvent.TYPE_DISMISS));
+                    };
+                    runnable.run();
+                }
             }
         }
     }
@@ -425,93 +471,102 @@
     }
 
     public void scheduleRepostsForPersistedNotifications(long currentTime) {
-        for (ArrayMap<String, Long> snoozed : mPersistedSnoozedNotifications.values()) {
-            for (int i = 0; i < snoozed.size(); i++) {
-                String key = snoozed.keyAt(i);
-                Long time = snoozed.valueAt(i);
-                String pkg = mPackages.get(key);
-                Integer userId = mUsers.get(key);
-                if (time == null || pkg == null || userId == null) {
-                    Slog.w(TAG, "data out of sync: " + time + "|" + pkg + "|" + userId);
-                    continue;
-                }
-                if (time != null && time > currentTime) {
-                    scheduleRepostAtTime(pkg, key, userId, time);
+        synchronized (mLock) {
+            for (ArrayMap<String, Long> snoozed : mPersistedSnoozedNotifications.values()) {
+                for (int i = 0; i < snoozed.size(); i++) {
+                    String key = snoozed.keyAt(i);
+                    Long time = snoozed.valueAt(i);
+                    String pkg = mPackages.get(key);
+                    Integer userId = mUsers.get(key);
+                    if (time == null || pkg == null || userId == null) {
+                        Slog.w(TAG, "data out of sync: " + time + "|" + pkg + "|" + userId);
+                        continue;
+                    }
+                    if (time != null && time > currentTime) {
+                        scheduleRepostAtTime(pkg, key, userId, time);
+                    }
                 }
             }
-
         }
     }
 
     private void scheduleRepost(String pkg, String key, int userId, long duration) {
-        scheduleRepostAtTime(pkg, key, userId, SystemClock.elapsedRealtime() + duration);
+        scheduleRepostAtTime(pkg, key, userId, System.currentTimeMillis() + duration);
     }
 
     private void scheduleRepostAtTime(String pkg, String key, int userId, long time) {
-        long identity = Binder.clearCallingIdentity();
-        try {
-            final PendingIntent pi = createPendingIntent(pkg, key, userId);
-            mAm.cancel(pi);
-            if (DEBUG) Slog.d(TAG, "Scheduling evaluate for " + new Date(time));
-            mAm.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, pi);
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
+        Runnable runnable = () -> {
+            long identity = Binder.clearCallingIdentity();
+            try {
+                final PendingIntent pi = createPendingIntent(pkg, key, userId);
+                mAm.cancel(pi);
+                if (DEBUG) Slog.d(TAG, "Scheduling evaluate for " + new Date(time));
+                mAm.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, time, pi);
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        };
+        runnable.run();
     }
 
     public void dump(PrintWriter pw, NotificationManagerService.DumpFilter filter) {
-        pw.println("\n  Snoozed notifications:");
-        for (String userPkgKey : mSnoozedNotifications.keySet()) {
-            pw.print(INDENT);
-            pw.println("key: " + userPkgKey);
-            ArrayMap<String, NotificationRecord> snoozedRecords =
-                    mSnoozedNotifications.get(userPkgKey);
-            Set<String> snoozedKeys = snoozedRecords.keySet();
-            for (String key : snoozedKeys) {
+        synchronized (mLock) {
+            pw.println("\n  Snoozed notifications:");
+            for (String userPkgKey : mSnoozedNotifications.keySet()) {
                 pw.print(INDENT);
-                pw.print(INDENT);
-                pw.print(INDENT);
-                pw.println(key);
+                pw.println("key: " + userPkgKey);
+                ArrayMap<String, NotificationRecord> snoozedRecords =
+                        mSnoozedNotifications.get(userPkgKey);
+                Set<String> snoozedKeys = snoozedRecords.keySet();
+                for (String key : snoozedKeys) {
+                    pw.print(INDENT);
+                    pw.print(INDENT);
+                    pw.print(INDENT);
+                    pw.println(key);
+                }
             }
-        }
-        pw.println("\n Pending snoozed notifications");
-        for (String userPkgKey : mPersistedSnoozedNotifications.keySet()) {
-            pw.print(INDENT);
-            pw.println("key: " + userPkgKey);
-            ArrayMap<String, Long> snoozedRecords =
-                    mPersistedSnoozedNotifications.get(userPkgKey);
-            if (snoozedRecords == null) {
-                continue;
-            }
-            Set<String> snoozedKeys = snoozedRecords.keySet();
-            for (String key : snoozedKeys) {
+            pw.println("\n Pending snoozed notifications");
+            for (String userPkgKey : mPersistedSnoozedNotifications.keySet()) {
                 pw.print(INDENT);
-                pw.print(INDENT);
-                pw.print(INDENT);
-                pw.print(key);
-                pw.print(INDENT);
-                pw.println(snoozedRecords.get(key));
+                pw.println("key: " + userPkgKey);
+                ArrayMap<String, Long> snoozedRecords =
+                        mPersistedSnoozedNotifications.get(userPkgKey);
+                if (snoozedRecords == null) {
+                    continue;
+                }
+                Set<String> snoozedKeys = snoozedRecords.keySet();
+                for (String key : snoozedKeys) {
+                    pw.print(INDENT);
+                    pw.print(INDENT);
+                    pw.print(INDENT);
+                    pw.print(key);
+                    pw.print(INDENT);
+                    pw.println(snoozedRecords.get(key));
+                }
             }
         }
     }
 
     protected void writeXml(XmlSerializer out) throws IOException {
-        final long currentTime = System.currentTimeMillis();
-        out.startTag(null, XML_TAG_NAME);
-        writeXml(out, mPersistedSnoozedNotifications, XML_SNOOZED_NOTIFICATION,
-                value -> {
-                    if (value < currentTime) {
-                        return;
-                    }
-                    out.attribute(null, XML_SNOOZED_NOTIFICATION_TIME,
-                            value.toString());
-                });
-        writeXml(out, mPersistedSnoozedNotificationsWithContext, XML_SNOOZED_NOTIFICATION_CONTEXT,
-                value -> {
-                    out.attribute(null, XML_SNOOZED_NOTIFICATION_CONTEXT_ID,
-                            value);
-                });
-        out.endTag(null, XML_TAG_NAME);
+        synchronized (mLock) {
+            final long currentTime = System.currentTimeMillis();
+            out.startTag(null, XML_TAG_NAME);
+            writeXml(out, mPersistedSnoozedNotifications, XML_SNOOZED_NOTIFICATION,
+                    value -> {
+                        if (value < currentTime) {
+                            return;
+                        }
+                        out.attribute(null, XML_SNOOZED_NOTIFICATION_TIME,
+                                value.toString());
+                    });
+            writeXml(out, mPersistedSnoozedNotificationsWithContext,
+                    XML_SNOOZED_NOTIFICATION_CONTEXT,
+                    value -> {
+                        out.attribute(null, XML_SNOOZED_NOTIFICATION_CONTEXT_ID,
+                                value);
+                    });
+            out.endTag(null, XML_TAG_NAME);
+        }
     }
 
     private interface Inserter<T> {
@@ -522,32 +577,35 @@
             ArrayMap<String, ArrayMap<String, T>> targets, String tag,
             Inserter<T> attributeInserter)
             throws IOException {
-        synchronized (targets) {
-            final int M = targets.size();
-            for (int i = 0; i < M; i++) {
-                // T is a String (snoozed until context) or Long (snoozed until time)
-                ArrayMap<String, T> keyToValue = targets.valueAt(i);
-                for (int j = 0; j < keyToValue.size(); j++) {
-                    String key = keyToValue.keyAt(j);
-                    T value = keyToValue.valueAt(j);
-                    String pkg = mPackages.get(key);
-                    Integer userId = mUsers.get(key);
+        final int M = targets.size();
+        for (int i = 0; i < M; i++) {
+            // T is a String (snoozed until context) or Long (snoozed until time)
+            ArrayMap<String, T> keyToValue = targets.valueAt(i);
+            for (int j = 0; j < keyToValue.size(); j++) {
+                String key = keyToValue.keyAt(j);
+                T value = keyToValue.valueAt(j);
+                String pkg = mPackages.get(key);
+                Integer userId = mUsers.get(key);
 
-                    out.startTag(null, tag);
-
-                    attributeInserter.insert(value);
-
-                    out.attribute(null, XML_SNOOZED_NOTIFICATION_VERSION_LABEL,
-                            XML_SNOOZED_NOTIFICATION_VERSION);
-                    out.attribute(null, XML_SNOOZED_NOTIFICATION_KEY, key);
-
-
-                    out.attribute(null, XML_SNOOZED_NOTIFICATION_PKG, pkg);
-                    out.attribute(null, XML_SNOOZED_NOTIFICATION_USER_ID,
-                            String.valueOf(userId));
-
-                    out.endTag(null, tag);
+                if (pkg == null || userId == null) {
+                    Slog.w(TAG, "pkg " + pkg + " or user " + userId + " missing for " + key);
+                    continue;
                 }
+
+                out.startTag(null, tag);
+
+                attributeInserter.insert(value);
+
+                out.attribute(null, XML_SNOOZED_NOTIFICATION_VERSION_LABEL,
+                        XML_SNOOZED_NOTIFICATION_VERSION);
+                out.attribute(null, XML_SNOOZED_NOTIFICATION_KEY, key);
+
+
+                out.attribute(null, XML_SNOOZED_NOTIFICATION_PKG, pkg);
+                out.attribute(null, XML_SNOOZED_NOTIFICATION_USER_ID,
+                        String.valueOf(userId));
+
+                out.endTag(null, tag);
             }
         }
     }
@@ -575,16 +633,18 @@
                         final Long time = XmlUtils.readLongAttribute(
                                 parser, XML_SNOOZED_NOTIFICATION_TIME, 0);
                         if (time > currentTime) { //only read new stuff
-                            synchronized (mPersistedSnoozedNotifications) {
-                                storeRecord(pkg, key, userId, mPersistedSnoozedNotifications, time);
+                            synchronized (mLock) {
+                                storeRecordLocked(
+                                        pkg, key, userId, mPersistedSnoozedNotifications, time);
                             }
                         }
                     }
                     if (tag.equals(XML_SNOOZED_NOTIFICATION_CONTEXT)) {
                         final String creationId = parser.getAttributeValue(
                                 null, XML_SNOOZED_NOTIFICATION_CONTEXT_ID);
-                        synchronized (mPersistedSnoozedNotificationsWithContext) {
-                            storeRecord(pkg, key, userId, mPersistedSnoozedNotificationsWithContext,
+                        synchronized (mLock) {
+                            storeRecordLocked(
+                                    pkg, key, userId, mPersistedSnoozedNotificationsWithContext,
                                     creationId);
                         }
                     }
@@ -601,7 +661,7 @@
     }
 
     protected interface Callback {
-        void repost(int userId, NotificationRecord r);
+        void repost(int userId, NotificationRecord r, boolean muteOnReturn);
     }
 
     private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@@ -612,7 +672,7 @@
             }
             if (REPOST_ACTION.equals(intent.getAction())) {
                 repost(intent.getStringExtra(EXTRA_KEY), intent.getIntExtra(EXTRA_USER_ID,
-                        UserHandle.USER_SYSTEM));
+                        UserHandle.USER_SYSTEM), false);
             }
         }
     };
diff --git a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java
index 5734271..d108e76 100644
--- a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java
+++ b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java
@@ -101,10 +101,6 @@
             return true;
         }
 
-        if (getPackageConfiguredPriority(theTruth.packageName) != oldSettings.priority) {
-            return true;
-        }
-
         // If an immutable overlay changes its configured enabled state, reinitialize the overlay.
         if (!isMutable && isPackageConfiguredEnabled(theTruth.packageName)
                 != oldSettings.isEnabled()) {
@@ -160,6 +156,7 @@
             final PackageInfo overlayPackage = overlayPackages.get(i);
             final OverlayInfo oi = storedOverlayInfos.get(overlayPackage.packageName);
 
+            int priority = getPackageConfiguredPriority(overlayPackage.packageName);
             if (mustReinitializeOverlay(overlayPackage, oi)) {
                 // if targetPackageName has changed the package that *used* to
                 // be the target must also update its assets
@@ -173,8 +170,10 @@
                         overlayPackage.applicationInfo.getBaseCodePath(),
                         isPackageConfiguredMutable(overlayPackage.packageName),
                         isPackageConfiguredEnabled(overlayPackage.packageName),
-                        getPackageConfiguredPriority(overlayPackage.packageName),
-                        overlayPackage.overlayCategory);
+                        priority, overlayPackage.overlayCategory);
+            } else if (priority != oi.priority) {
+                mSettings.setPriority(overlayPackage.packageName, newUserId, priority);
+                packagesToUpdateAssets.add(oi.targetPackageName);
             }
 
             storedOverlayInfos.remove(overlayPackage.packageName);
diff --git a/services/core/java/com/android/server/om/OverlayManagerSettings.java b/services/core/java/com/android/server/om/OverlayManagerSettings.java
index 6bccdfc..bdbaf78 100644
--- a/services/core/java/com/android/server/om/OverlayManagerSettings.java
+++ b/services/core/java/com/android/server/om/OverlayManagerSettings.java
@@ -71,24 +71,9 @@
             @NonNull final String baseCodePath, boolean isMutable, boolean isEnabled, int priority,
             @Nullable String overlayCategory) {
         remove(packageName, userId);
-        final SettingsItem item =
-                new SettingsItem(packageName, userId, targetPackageName, targetOverlayableName,
-                        baseCodePath, OverlayInfo.STATE_UNKNOWN, isEnabled, isMutable, priority,
-                        overlayCategory);
-
-        int i;
-        for (i = mItems.size() - 1; i >= 0; i--) {
-            SettingsItem parentItem = mItems.get(i);
-            if (parentItem.mPriority <= priority) {
-                break;
-            }
-        }
-        int pos = i + 1;
-        if (pos == mItems.size()) {
-            mItems.add(item);
-        } else {
-            mItems.add(pos, item);
-        }
+        insert(new SettingsItem(packageName, userId, targetPackageName, targetOverlayableName,
+                baseCodePath, OverlayInfo.STATE_UNKNOWN, isEnabled, isMutable, priority,
+                overlayCategory));
     }
 
     /**
@@ -220,6 +205,21 @@
     }
 
     /**
+     * Reassigns the priority of an overlay maintaining the values of the overlays other settings.
+     */
+    void setPriority(@NonNull final String packageName, final int userId, final int priority) {
+        final int moveIdx = select(packageName, userId);
+        if (moveIdx < 0) {
+            throw new BadKeyException(packageName, userId);
+        }
+
+        final SettingsItem itemToMove = mItems.get(moveIdx);
+        mItems.remove(moveIdx);
+        itemToMove.setPriority(priority);
+        insert(itemToMove);
+    }
+
+    /**
      * Returns true if the settings were modified, false if they remain the same.
      */
     boolean setPriority(@NonNull final String packageName,
@@ -284,6 +284,21 @@
         return true;
     }
 
+    /**
+     * Inserts the item into the list of settings items.
+     */
+    private void insert(@NonNull SettingsItem item) {
+        int i;
+        for (i = mItems.size() - 1; i >= 0; i--) {
+            SettingsItem parentItem = mItems.get(i);
+            if (parentItem.mPriority <= item.getPriority()) {
+                break;
+            }
+        }
+
+        mItems.add(i + 1, item);
+    }
+
     void dump(@NonNull final PrintWriter p, @NonNull DumpState dumpState) {
         // select items to display
         Stream<SettingsItem> items = mItems.stream();
@@ -583,6 +598,11 @@
             return mCache;
         }
 
+        private void setPriority(int priority) {
+            mPriority = priority;
+            invalidateCache();
+        }
+
         private void invalidateCache() {
             mCache = null;
         }
diff --git a/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java b/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java
index 1e2d52d..6c2d77c 100644
--- a/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java
+++ b/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java
@@ -276,6 +276,11 @@
         }
 
         @Override
+        public void onScreenshotTaken(boolean success) throws RemoteException {
+            mListener.onScreenshotTaken(success);
+        }
+
+        @Override
         public void binderDied() {
             synchronized (mLock) {
                 if (!mDone) {
diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java
index 0ad0b23..b90681d 100644
--- a/services/core/java/com/android/server/pm/AppsFilter.java
+++ b/services/core/java/com/android/server/pm/AppsFilter.java
@@ -43,6 +43,7 @@
 import android.util.ArraySet;
 import android.util.Slog;
 import android.util.SparseArray;
+import android.util.SparseBooleanArray;
 import android.util.SparseSetArray;
 
 import com.android.internal.R;
@@ -123,6 +124,7 @@
     }
 
     public interface FeatureConfig {
+
         /** Called when the system is ready and components can be queried. */
         void onSystemReady();
 
@@ -132,11 +134,21 @@
         /** @return true if the feature is enabled for the given package. */
         boolean packageIsEnabled(AndroidPackage pkg);
 
+        /** @return true if debug logging is enabled for the given package. */
+        boolean isLoggingEnabled(int appId);
+
+        /**
+         * Turns on logging for the given appId
+         * @param enable true if logging should be enabled, false if disabled.
+         */
+        void enableLogging(int appId, boolean enable);
+
         /**
          * Initializes the package enablement state for the given package. This gives opportunity
          * to do any expensive operations ahead of the actual checks.
+         * @param removed true if adding, false if removing
          */
-        void initializePackageState(String packageName);
+        void updatePackageState(PackageSetting setting, boolean removed);
     }
 
     private static class FeatureConfigImpl implements FeatureConfig, CompatChange.ChangeListener {
@@ -147,6 +159,9 @@
                 PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT;
         private final ArraySet<String> mDisabledPackages = new ArraySet<>();
 
+        @Nullable
+        private SparseBooleanArray mLoggingEnabled = null;
+
         private FeatureConfigImpl(
                 PackageManagerInternal pmInternal, PackageManagerService.Injector injector) {
             mPmInternal = pmInternal;
@@ -192,39 +207,65 @@
             }
         }
 
-        private boolean fetchPackageIsEnabled(AndroidPackage pkg) {
+        @Override
+        public boolean isLoggingEnabled(int uid) {
+            return mLoggingEnabled != null && mLoggingEnabled.indexOfKey(uid) >= 0;
+        }
+
+        @Override
+        public void enableLogging(int appId, boolean enable) {
+            if (enable) {
+                if (mLoggingEnabled == null) {
+                    mLoggingEnabled = new SparseBooleanArray();
+                }
+                mLoggingEnabled.put(appId, true);
+            } else {
+                if (mLoggingEnabled != null) {
+                    final int index = mLoggingEnabled.indexOfKey(appId);
+                    if (index >= 0) {
+                        mLoggingEnabled.removeAt(index);
+                        if (mLoggingEnabled.size() == 0) {
+                            mLoggingEnabled = null;
+                        }
+                    }
+                }
+            }
+        }
+
+        @Override
+        public void onCompatChange(String packageName) {
+            updateEnabledState(mPmInternal.getPackage(packageName));
+        }
+
+        private void updateEnabledState(AndroidPackage pkg) {
             final long token = Binder.clearCallingIdentity();
             try {
                 // TODO(b/135203078): Do not use toAppInfo
-                final boolean changeEnabled =
+                final boolean enabled =
                         mInjector.getCompatibility().isChangeEnabled(
                                 PackageManager.FILTER_APPLICATION_QUERY,
                                 pkg.toAppInfoWithoutState());
-                return changeEnabled;
+                if (enabled) {
+                    mDisabledPackages.remove(pkg.getPackageName());
+                } else {
+                    mDisabledPackages.add(pkg.getPackageName());
+                }
             } finally {
                 Binder.restoreCallingIdentity(token);
             }
         }
 
         @Override
-        public void onCompatChange(String packageName) {
-            final AndroidPackage pkg = mPmInternal.getPackage(packageName);
-            if (pkg == null) {
-                mDisabledPackages.remove(packageName);
-                return;
-            }
-            boolean enabled = fetchPackageIsEnabled(pkg);
-            if (enabled) {
-                mDisabledPackages.remove(packageName);
+        public void updatePackageState(PackageSetting setting, boolean removed) {
+            final boolean enableLogging =
+                    !removed && (setting.pkg.isTestOnly() || setting.pkg.isDebuggable());
+            enableLogging(setting.appId, enableLogging);
+            if (removed) {
+                mDisabledPackages.remove(setting.pkg.getPackageName());
             } else {
-                mDisabledPackages.add(packageName);
+                updateEnabledState(setting.pkg);
             }
         }
-
-        @Override
-        public void initializePackageState(String packageName) {
-            onCompatChange(packageName);
-        }
     }
 
     /** Builder method for an AppsFilter */
@@ -250,6 +291,10 @@
                 forceSystemAppsQueryable, null);
     }
 
+    public FeatureConfig getFeatureConfig() {
+        return mFeatureConfig;
+    }
+
     /** Returns true if the querying package may query for the potential target package */
     private static boolean canQueryViaComponents(AndroidPackage querying,
             AndroidPackage potentialTarget) {
@@ -447,7 +492,7 @@
                 }
             }
             mOverlayReferenceMapper.addPkg(newPkgSetting.pkg, existingPkgs);
-            mFeatureConfig.initializePackageState(newPkgSetting.pkg.getPackageName());
+            mFeatureConfig.updatePackageState(newPkgSetting, false /*removed*/);
         } finally {
             Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
         }
@@ -499,7 +544,7 @@
         }
 
         mOverlayReferenceMapper.removePkg(setting.name);
-        mFeatureConfig.initializePackageState(setting.pkg.getPackageName());
+        mFeatureConfig.updatePackageState(setting, true /*removed*/);
     }
 
     /**
@@ -516,13 +561,13 @@
             PackageSetting targetPkgSetting, int userId) {
         Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "shouldFilterApplication");
         try {
-            if (!shouldFilterApplicationInternal(callingUid, callingSetting, targetPkgSetting,
-                    userId)) {
+
+            if (!shouldFilterApplicationInternal(
+                    callingUid, callingSetting, targetPkgSetting, userId)) {
                 return false;
             }
-            if (DEBUG_LOGGING) {
-                log(callingSetting, targetPkgSetting,
-                        DEBUG_ALLOW_ALL ? "ALLOWED" : "BLOCKED", new RuntimeException());
+            if (DEBUG_LOGGING || mFeatureConfig.isLoggingEnabled(UserHandle.getAppId(callingUid))) {
+                log(callingSetting, targetPkgSetting, "BLOCKED");
             }
             return !DEBUG_ALLOW_ALL;
         } finally {
@@ -737,17 +782,11 @@
         }
     }
 
-    private static void log(SettingBase callingPkgSetting, PackageSetting targetPkgSetting,
+    private static void log(SettingBase callingSetting, PackageSetting targetPkgSetting,
             String description) {
-        log(callingPkgSetting, targetPkgSetting, description, null);
-    }
-
-    private static void log(SettingBase callingPkgSetting, PackageSetting targetPkgSetting,
-            String description, Throwable throwable) {
-        Slog.wtf(TAG,
-                "interaction: " + callingPkgSetting
-                        + " -> " + targetPkgSetting + " "
-                        + description, throwable);
+        Slog.i(TAG,
+                "interaction: " + (callingSetting == null ? "system" : callingSetting) + " -> "
+                        + targetPkgSetting + " " + description);
     }
 
     public void dumpQueries(
diff --git a/services/core/java/com/android/server/pm/DataLoaderManagerService.java b/services/core/java/com/android/server/pm/DataLoaderManagerService.java
index 4fc9e90..ad20d38 100644
--- a/services/core/java/com/android/server/pm/DataLoaderManagerService.java
+++ b/services/core/java/com/android/server/pm/DataLoaderManagerService.java
@@ -22,12 +22,13 @@
 import android.content.Intent;
 import android.content.ServiceConnection;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.DataLoaderParamsParcel;
+import android.content.pm.FileSystemControlParcel;
 import android.content.pm.IDataLoader;
 import android.content.pm.IDataLoaderManager;
 import android.content.pm.IDataLoaderStatusListener;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.UserHandle;
@@ -65,26 +66,22 @@
 
     final class DataLoaderManagerBinderService extends IDataLoaderManager.Stub {
         @Override
-        public boolean initializeDataLoader(int dataLoaderId, Bundle params,
-                IDataLoaderStatusListener listener) {
+        public boolean initializeDataLoader(int dataLoaderId, DataLoaderParamsParcel params,
+                FileSystemControlParcel control, IDataLoaderStatusListener listener) {
             synchronized (mLock) {
                 if (mServiceConnections.get(dataLoaderId) != null) {
                     Slog.e(TAG, "Data loader of ID=" + dataLoaderId + " already exists.");
                     return false;
                 }
             }
-            ComponentName componentName = params.getParcelable("componentName");
-            if (componentName == null) {
-                Slog.e(TAG, "Must specify component name.");
-                return false;
-            }
+            ComponentName componentName = new ComponentName(params.packageName, params.className);
             ComponentName dataLoaderComponent = resolveDataLoaderComponentName(componentName);
             if (dataLoaderComponent == null) {
                 return false;
             }
             // Binds to the specific data loader service
             DataLoaderServiceConnection connection =
-                    new DataLoaderServiceConnection(dataLoaderId, params, listener);
+                    new DataLoaderServiceConnection(dataLoaderId, params, control, listener);
             Intent intent = new Intent();
             intent.setComponent(dataLoaderComponent);
             if (!mContext.bindServiceAsUser(intent, connection, Context.BIND_AUTO_CREATE,
@@ -181,13 +178,16 @@
 
     class DataLoaderServiceConnection implements ServiceConnection {
         final int mId;
-        final Bundle mParams;
+        final DataLoaderParamsParcel mParams;
+        final FileSystemControlParcel mControl;
         final IDataLoaderStatusListener mListener;
         IDataLoader mDataLoader;
 
-        DataLoaderServiceConnection(int id, Bundle params, IDataLoaderStatusListener listener) {
+        DataLoaderServiceConnection(int id, DataLoaderParamsParcel params,
+                FileSystemControlParcel control, IDataLoaderStatusListener listener) {
             mId = id;
             mParams = params;
+            mControl = control;
             mListener = listener;
             mDataLoader = null;
         }
@@ -199,7 +199,7 @@
                 mServiceConnections.append(mId, this);
             }
             try {
-                mDataLoader.create(mId, mParams, mListener);
+                mDataLoader.create(mId, mParams, mControl, mListener);
             } catch (RemoteException e) {
                 Slog.e(TAG, "Failed to create data loader service.", e);
             }
@@ -226,7 +226,6 @@
             synchronized (mLock) {
                 mServiceConnections.remove(mId);
             }
-            mParams.clear();
         }
     }
 }
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 41988d6..97aa79d 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -69,6 +69,7 @@
 import android.content.pm.IPackageInstallerSession;
 import android.content.pm.IPackageInstallerSessionFileSystemConnector;
 import android.content.pm.InstallationFile;
+import android.content.pm.InstallationFileParcel;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInstaller;
 import android.content.pm.PackageInstaller.SessionInfo;
@@ -1052,9 +1053,9 @@
             IPackageInstallerSessionFileSystemConnector.Stub {
         final Set<String> mAddedFiles = new ArraySet<>();
 
-        FileSystemConnector(List<InstallationFile> addedFiles) {
-            for (InstallationFile file : addedFiles) {
-                mAddedFiles.add(file.getName());
+        FileSystemConnector(List<InstallationFileParcel> addedFiles) {
+            for (InstallationFileParcel file : addedFiles) {
+                mAddedFiles.add(file.name);
             }
         }
 
@@ -1689,8 +1690,8 @@
         }
 
         mRelinquished = true;
-        return new PackageManagerService.ActiveInstallSession(mPackageName, stageDir,
-                localObserver, params, mInstallerUid, mInstallSource, user, mSigningDetails);
+        return new PackageManagerService.ActiveInstallSession(mPackageName, stageDir, localObserver,
+                sessionId, params, mInstallerUid, mInstallSource, user, mSigningDetails);
     }
 
     private static void maybeRenameFile(File from, File to) throws PackageManagerException {
@@ -2444,14 +2445,14 @@
             return true;
         }
 
-        final List<InstallationFile> addedFiles = new ArrayList<>(mFiles.size());
+        final List<InstallationFileParcel> addedFiles = new ArrayList<>();
+        final List<String> removedFiles = new ArrayList<>();
+
         for (InstallationFile file : mFiles) {
             if (sAddedFilter.accept(new File(this.stageDir, file.getName()))) {
-                addedFiles.add(file);
+                addedFiles.add(file.getData());
+                continue;
             }
-        }
-        final List<String> removedFiles = new ArrayList<>(mFiles.size());
-        for (InstallationFile file : mFiles) {
             if (sRemovedFilter.accept(new File(this.stageDir, file.getName()))) {
                 String name = file.getName().substring(
                         0, file.getName().length() - REMOVE_MARKER_EXTENSION.length());
@@ -2494,7 +2495,10 @@
                             break;
                         }
                         case IDataLoaderStatusListener.DATA_LOADER_STARTED: {
-                            dataLoader.prepareImage(addedFiles, removedFiles);
+                            dataLoader.prepareImage(
+                                    addedFiles.toArray(
+                                            new InstallationFileParcel[addedFiles.size()]),
+                                    removedFiles.toArray(new String[removedFiles.size()]));
                             break;
                         }
                         case IDataLoaderStatusListener.DATA_LOADER_IMAGE_READY: {
@@ -2547,13 +2551,8 @@
         control.callback = connector;
 
         final DataLoaderParams params = this.params.dataLoaderParams;
-
-        Bundle dataLoaderParams = new Bundle();
-        dataLoaderParams.putParcelable("componentName", params.getComponentName());
-        dataLoaderParams.putParcelable("control", control);
-        dataLoaderParams.putParcelable("params", params.getData());
-
-        if (!dataLoaderManager.initializeDataLoader(sessionId, dataLoaderParams, listener)) {
+        if (!dataLoaderManager.initializeDataLoader(
+                sessionId, params.getData(), control, listener)) {
             throw new PackageManagerException(INSTALL_FAILED_MEDIA_UNAVAILABLE,
                     "Failed to initialize data loader");
         }
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 74cb93d..b547105 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -213,7 +213,6 @@
 import android.content.pm.dex.ArtManager;
 import android.content.pm.dex.DexMetadataHelper;
 import android.content.pm.dex.IArtManager;
-import android.content.pm.parsing.PackageInfoWithoutStateUtils;
 import android.content.pm.parsing.ParsingPackageUtils;
 import android.content.pm.parsing.component.ParsedActivity;
 import android.content.pm.parsing.component.ParsedInstrumentation;
@@ -1967,6 +1966,7 @@
                 }
                 case ENABLE_ROLLBACK_TIMEOUT: {
                     final int enableRollbackToken = msg.arg1;
+                    final int sessionId = msg.arg2;
                     final InstallParams params = mPendingEnableRollback.get(enableRollbackToken);
                     if (params != null) {
                         final InstallArgs args = params.mArgs;
@@ -1982,8 +1982,8 @@
                         Intent rollbackTimeoutIntent = new Intent(
                                 Intent.ACTION_CANCEL_ENABLE_ROLLBACK);
                         rollbackTimeoutIntent.putExtra(
-                                PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_TOKEN,
-                                enableRollbackToken);
+                                PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_SESSION_ID,
+                                sessionId);
                         rollbackTimeoutIntent.addFlags(
                                 Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
                         mContext.sendBroadcastAsUser(rollbackTimeoutIntent, UserHandle.SYSTEM,
@@ -2506,7 +2506,7 @@
                 (i, pm) -> AppsFilter.create(pm.mPmInternal, i),
                 (i, pm) -> (PlatformCompat) ServiceManager.getService("platform_compat"));
 
-        PackageManagerService m = new PackageManagerService(injector, factoryTest, onlyCore);
+        PackageManagerService m = new PackageManagerService(injector, onlyCore, factoryTest);
         t.traceEnd(); // "create package manager"
 
         injector.getCompatibility().registerListener(SELinuxMMAC.SELINUX_LATEST_CHANGES,
@@ -3364,6 +3364,10 @@
             // critical part of the core system.
             mRequiredPermissionControllerPackage = getRequiredPermissionControllerLPr();
 
+            mSettings.setPermissionControllerVersion(
+                    getPackageInfo(mRequiredPermissionControllerPackage, 0,
+                            UserHandle.USER_SYSTEM).getLongVersionCode());
+
             // Initialize InstantAppRegistry's Instant App list for all users.
             final int[] userIds = UserManagerService.getInstance().getUserIds();
             for (AndroidPackage pkg : mPackages.values()) {
@@ -6832,12 +6836,16 @@
                 final boolean isTargetHiddenFromInstantApp =
                         !isTargetVisibleToInstantApp
                         || (matchExplicitlyVisibleOnly && !isTargetExplicitlyVisibleToInstantApp);
-                final boolean blockResolution =
+                final boolean blockInstantResolution =
                         !isTargetSameInstantApp
                         && ((!matchInstantApp && !isCallerInstantApp && isTargetInstantApp)
                                 || (matchVisibleToInstantAppOnly && isCallerInstantApp
                                         && isTargetHiddenFromInstantApp));
-                if (!blockResolution) {
+                final boolean blockNormalResolution = !isTargetInstantApp && !isCallerInstantApp
+                        && shouldFilterApplicationLocked(
+                                getPackageSettingInternal(ai.applicationInfo.packageName,
+                                        Process.SYSTEM_UID), filterCallingUid, userId);
+                if (!blockInstantResolution && !blockNormalResolution) {
                     final ResolveInfo ri = new ResolveInfo();
                     ri.activityInfo = ai;
                     list.add(ri);
@@ -7221,9 +7229,17 @@
                 resolveInfos.set(i, installerInfo);
                 continue;
             }
-            // caller is a full app, don't need to apply any other filtering
+            // caller is a full app
             if (ephemeralPkgName == null) {
-                continue;
+                SettingBase callingSetting =
+                        mSettings.getSettingLPr(UserHandle.getAppId(filterCallingUid));
+                PackageSetting resolvedSetting =
+                        getPackageSettingInternal(info.activityInfo.packageName, 0);
+                if (resolveForStart
+                        || !mAppsFilter.shouldFilterApplication(
+                                filterCallingUid, callingSetting, resolvedSetting, userId)) {
+                    continue;
+                }
             } else if (ephemeralPkgName.equals(info.activityInfo.packageName)) {
                 // caller is same app; don't need to apply any other filtering
                 continue;
@@ -7913,12 +7929,17 @@
                                 & ApplicationInfo.PRIVATE_FLAG_INSTANT) != 0;
                 final boolean isTargetHiddenFromInstantApp =
                         (si.flags & ServiceInfo.FLAG_VISIBLE_TO_INSTANT_APP) == 0;
-                final boolean blockResolution =
+                final boolean blockInstantResolution =
                         !isTargetSameInstantApp
                         && ((!matchInstantApp && !isCallerInstantApp && isTargetInstantApp)
                                 || (matchVisibleToInstantAppOnly && isCallerInstantApp
                                         && isTargetHiddenFromInstantApp));
-                if (!blockResolution) {
+
+                final boolean blockNormalResolution = !isTargetInstantApp && !isCallerInstantApp
+                        && shouldFilterApplicationLocked(
+                        getPackageSettingInternal(si.applicationInfo.packageName,
+                                Process.SYSTEM_UID), callingUid, userId);
+                if (!blockInstantResolution && !blockNormalResolution) {
                     final ResolveInfo ri = new ResolveInfo();
                     ri.serviceInfo = si;
                     list.add(ri);
@@ -7937,8 +7958,7 @@
                     return Collections.emptyList();
                 }
                 return applyPostServiceResolutionFilter(
-                        resolveInfos,
-                        instantAppPkgName);
+                        resolveInfos, instantAppPkgName, userId, callingUid);
             }
             final AndroidPackage pkg = mPackages.get(pkgName);
             if (pkg != null) {
@@ -7949,20 +7969,26 @@
                     return Collections.emptyList();
                 }
                 return applyPostServiceResolutionFilter(
-                        resolveInfos,
-                        instantAppPkgName);
+                        resolveInfos, instantAppPkgName, userId, callingUid);
             }
             return Collections.emptyList();
         }
     }
 
     private List<ResolveInfo> applyPostServiceResolutionFilter(List<ResolveInfo> resolveInfos,
-            String instantAppPkgName) {
-        if (instantAppPkgName == null) {
-            return resolveInfos;
-        }
+            String instantAppPkgName, @UserIdInt int userId, int filterCallingUid) {
         for (int i = resolveInfos.size() - 1; i >= 0; i--) {
             final ResolveInfo info = resolveInfos.get(i);
+            if (instantAppPkgName == null) {
+                SettingBase callingSetting =
+                        mSettings.getSettingLPr(UserHandle.getAppId(filterCallingUid));
+                PackageSetting resolvedSetting =
+                        getPackageSettingInternal(info.serviceInfo.packageName, 0);
+                if (!mAppsFilter.shouldFilterApplication(
+                        filterCallingUid, callingSetting, resolvedSetting, userId)) {
+                    continue;
+                }
+            }
             final boolean isEphemeralApp = info.serviceInfo.applicationInfo.isInstantApp();
             // allow services that are defined in the provided package
             if (isEphemeralApp && instantAppPkgName.equals(info.serviceInfo.packageName)) {
@@ -8045,7 +8071,11 @@
                         && ((!matchInstantApp && !isCallerInstantApp && isTargetInstantApp)
                                 || (matchVisibleToInstantAppOnly && isCallerInstantApp
                                         && isTargetHiddenFromInstantApp));
-                if (!blockResolution) {
+                final boolean blockNormalResolution = !isTargetInstantApp && !isCallerInstantApp
+                        && shouldFilterApplicationLocked(
+                        getPackageSettingInternal(pi.applicationInfo.packageName,
+                                Process.SYSTEM_UID), callingUid, userId);
+                if (!blockResolution && !blockNormalResolution) {
                     final ResolveInfo ri = new ResolveInfo();
                     ri.providerInfo = pi;
                     list.add(ri);
@@ -8064,8 +8094,7 @@
                     return Collections.emptyList();
                 }
                 return applyPostContentProviderResolutionFilter(
-                        resolveInfos,
-                        instantAppPkgName);
+                        resolveInfos, instantAppPkgName, userId, callingUid);
             }
             final AndroidPackage pkg = mPackages.get(pkgName);
             if (pkg != null) {
@@ -8076,20 +8105,29 @@
                     return Collections.emptyList();
                 }
                 return applyPostContentProviderResolutionFilter(
-                        resolveInfos,
-                        instantAppPkgName);
+                        resolveInfos, instantAppPkgName, userId, callingUid);
             }
             return Collections.emptyList();
         }
     }
 
     private List<ResolveInfo> applyPostContentProviderResolutionFilter(
-            List<ResolveInfo> resolveInfos, String instantAppPkgName) {
-        if (instantAppPkgName == null) {
-            return resolveInfos;
-        }
+            List<ResolveInfo> resolveInfos, String instantAppPkgName,
+            @UserIdInt int userId, int callingUid) {
         for (int i = resolveInfos.size() - 1; i >= 0; i--) {
             final ResolveInfo info = resolveInfos.get(i);
+
+            if (instantAppPkgName == null) {
+                SettingBase callingSetting =
+                        mSettings.getSettingLPr(UserHandle.getAppId(callingUid));
+                PackageSetting resolvedSetting =
+                        getPackageSettingInternal(info.providerInfo.packageName, 0);
+                if (!mAppsFilter.shouldFilterApplication(
+                        callingUid, callingSetting, resolvedSetting, userId)) {
+                    continue;
+                }
+            }
+
             final boolean isEphemeralApp = info.providerInfo.applicationInfo.isInstantApp();
             // allow providers that are defined in the provided package
             if (isEphemeralApp && instantAppPkgName.equals(info.providerInfo.packageName)) {
@@ -10951,17 +10989,22 @@
         if (createNewPackage) {
             final boolean instantApp = (scanFlags & SCAN_AS_INSTANT_APP) != 0;
             final boolean virtualPreload = (scanFlags & SCAN_AS_VIRTUAL_PRELOAD) != 0;
+
+            // Flags contain system values stored in the server variant of AndroidPackage,
+            // and so the server-side PackageInfoUtils is still called, even without a
+            // PackageSetting to pass in.
+            int pkgFlags = PackageInfoUtils.appInfoFlags(parsedPackage, null);
+            int pkgPrivateFlags = PackageInfoUtils.appInfoPrivateFlags(parsedPackage, null);
+
             // REMOVE SharedUserSetting from method; update in a separate call
             pkgSetting = Settings.createNewSetting(parsedPackage.getPackageName(),
                     originalPkgSetting, disabledPkgSetting, realPkgName, sharedUserSetting,
                     destCodeFile, destResourceFile, parsedPackage.getNativeLibraryRootDir(),
                     AndroidPackageUtils.getRawPrimaryCpuAbi(parsedPackage),
                     AndroidPackageUtils.getRawSecondaryCpuAbi(parsedPackage),
-                    parsedPackage.getVersionCode(),
-                    PackageInfoWithoutStateUtils.appInfoFlags(parsedPackage),
-                    PackageInfoWithoutStateUtils.appInfoPrivateFlags(parsedPackage),
-                    user, true /*allowInstall*/, instantApp,
-                    virtualPreload, UserManagerService.getInstance(), usesStaticLibraries,
+                    parsedPackage.getVersionCode(), pkgFlags, pkgPrivateFlags, user,
+                    true /*allowInstall*/, instantApp, virtualPreload,
+                    UserManagerService.getInstance(), usesStaticLibraries,
                     parsedPackage.getUsesStaticLibrariesVersions(), parsedPackage.getMimeGroups());
         } else {
             // make a deep copy to avoid modifying any existing system state.
@@ -13078,7 +13121,7 @@
         synchronized (mLock) {
             allPackages = mPackages.keySet().toArray(new String[mPackages.size()]);
         }
-        PackageManagerService.this.removeDistractingPackageRestrictions(allPackages, userId);
+        removeDistractingPackageRestrictions(allPackages, userId);
     }
 
     /**
@@ -14260,6 +14303,7 @@
         final long requiredInstalledVersionCode;
         final boolean forceQueryableOverride;
         final int mDataLoaderType;
+        final int mSessionId;
 
         InstallParams(OriginInfo origin, MoveInfo move, IPackageInstallObserver2 observer,
                 int installFlags, InstallSource installSource, String volumeUuid,
@@ -14283,6 +14327,7 @@
             this.requiredInstalledVersionCode = requiredInstalledVersionCode;
             this.forceQueryableOverride = false;
             this.mDataLoaderType = dataLoaderType;
+            this.mSessionId = -1;
         }
 
         InstallParams(ActiveInstallSession activeInstallSession) {
@@ -14318,6 +14363,7 @@
             forceQueryableOverride = sessionParams.forceQueryableOverride;
             mDataLoaderType = (sessionParams.dataLoaderParams != null)
                     ? sessionParams.dataLoaderParams.getType() : DataLoaderType.NONE;
+            mSessionId = activeInstallSession.getSessionId();
         }
 
         @Override
@@ -14549,13 +14595,9 @@
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_TOKEN,
                             enableRollbackToken);
                     enableRollbackIntent.putExtra(
-                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_INSTALL_FLAGS,
-                            installFlags);
-                    enableRollbackIntent.putExtra(
-                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_USER,
-                            getRollbackUser().getIdentifier());
-                    enableRollbackIntent.setDataAndType(Uri.fromFile(new File(origin.resolvedPath)),
-                            PACKAGE_MIME_TYPE);
+                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_SESSION_ID,
+                            mSessionId);
+                    enableRollbackIntent.setType(PACKAGE_MIME_TYPE);
                     enableRollbackIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
 
                     // Allow the broadcast to be sent before boot complete.
@@ -14581,6 +14623,7 @@
                                     final Message msg = mHandler.obtainMessage(
                                             ENABLE_ROLLBACK_TIMEOUT);
                                     msg.arg1 = enableRollbackToken;
+                                    msg.arg2 = mSessionId;
                                     mHandler.sendMessageDelayed(msg, rollbackTimeout);
                                 }
                             }, null, 0, null, null);
@@ -19946,6 +19989,11 @@
         long token = Binder.clearCallingIdentity();
         try {
             if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) {
+                PackageInfo packageInfo = getPackageInfo(packageName, 0, UserHandle.USER_SYSTEM);
+                if (packageInfo != null) {
+                    EventLog.writeEvent(0x534e4554, "145981139", packageInfo.applicationInfo.uid,
+                            "");
+                }
                 return null;
             }
         } finally {
@@ -20122,13 +20170,13 @@
             }
             synchronized (mLock) {
                 pkgSetting.setEnabled(newState, userId, callingPackage);
-                if (newState == COMPONENT_ENABLED_STATE_DISABLED_USER
-                        || newState == COMPONENT_ENABLED_STATE_DISABLED
+                if ((newState == COMPONENT_ENABLED_STATE_DISABLED_USER
+                        || newState == COMPONENT_ENABLED_STATE_DISABLED)
                         && pkgSetting.getPermissionsState().hasPermission(
                                 Manifest.permission.SUSPEND_APPS, userId)) {
                     // 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
-                    // blocked
+                    // suspended.
                     unsuspendForSuspendingPackage(packageName, userId);
                     removeAllDistractingPackageRestrictions(userId);
                 }
@@ -22629,7 +22677,7 @@
     boolean readPermissionStateForUser(@UserIdInt int userId) {
         synchronized (mPackages) {
             mSettings.readPermissionStateForUserSyncLPr(userId);
-            return mSettings.areDefaultRuntimePermissionsGrantedLPr(userId);
+            return mPmInternal.isPermissionUpgradeNeeded(userId);
         }
     }
 
@@ -24028,10 +24076,9 @@
         }
 
         @Override
-        public void setRuntimePermissionsFingerPrint(@NonNull String fingerPrint,
-                @UserIdInt int userId) {
+        public void updateRuntimePermissionsFingerprint(@UserIdInt int userId) {
             synchronized (mLock) {
-                mSettings.setRuntimePermissionsFingerPrintLPr(fingerPrint, userId);
+                mSettings.updateRuntimePermissionsFingerprintLPr(userId);
             }
         }
 
@@ -24083,9 +24130,9 @@
         }
 
         @Override
-        public boolean areDefaultRuntimePermissionsGranted(int userId) {
+        public boolean isPermissionUpgradeNeeded(int userId) {
             synchronized (mLock) {
-                return mSettings.areDefaultRuntimePermissionsGrantedLPr(userId);
+                return mSettings.isPermissionUpgradeNeededLPr(userId);
             }
         }
 
@@ -24113,6 +24160,18 @@
         public List<String> getMimeGroup(String packageName, String mimeGroup) {
             return PackageManagerService.this.getMimeGroup(packageName, mimeGroup);
         }
+
+        @Override
+        public void setVisibilityLogging(String packageName, boolean enable) {
+            final PackageSetting pkg;
+            synchronized (mLock) {
+                pkg = mSettings.getPackageLPr(packageName);
+            }
+            if (pkg == null) {
+                throw new IllegalStateException("No package found for " + packageName);
+            }
+            mAppsFilter.getFeatureConfig().enableLogging(pkg.appId, enable);
+        }
     }
 
     @GuardedBy("mLock")
@@ -24590,6 +24649,7 @@
         private final String mPackageName;
         private final File mStagedDir;
         private final IPackageInstallObserver2 mObserver;
+        private final int mSessionId;
         private final PackageInstaller.SessionParams mSessionParams;
         private final int mInstallerUid;
         @NonNull private final InstallSource mInstallSource;
@@ -24597,11 +24657,12 @@
         private final SigningDetails mSigningDetails;
 
         ActiveInstallSession(String packageName, File stagedDir, IPackageInstallObserver2 observer,
-                PackageInstaller.SessionParams sessionParams, int installerUid,
+                int sessionId, PackageInstaller.SessionParams sessionParams, int installerUid,
                 InstallSource installSource, UserHandle user, SigningDetails signingDetails) {
             mPackageName = packageName;
             mStagedDir = stagedDir;
             mObserver = observer;
+            mSessionId = sessionId;
             mSessionParams = sessionParams;
             mInstallerUid = installerUid;
             mInstallSource = Preconditions.checkNotNull(installSource);
@@ -24621,6 +24682,10 @@
             return mObserver;
         }
 
+        public int getSessionId() {
+            return mSessionId;
+        }
+
         public PackageInstaller.SessionParams getSessionParams() {
             return mSessionParams;
         }
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index f1e403b..be17dd8 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -97,6 +97,7 @@
 import android.text.format.DateUtils;
 import android.util.ArraySet;
 import android.util.PrintWriterPrinter;
+import android.util.Slog;
 import android.util.SparseArray;
 
 import com.android.internal.content.PackageHelper;
@@ -139,6 +140,7 @@
     /** Path where ART profiles snapshots are dumped for the shell user */
     private final static String ART_PROFILE_SNAPSHOT_DEBUG_LOCATION = "/data/misc/profman/";
     private static final int DEFAULT_WAIT_MS = 60 * 1000;
+    private static final String TAG = "PackageManagerShellCommand";
 
     final IPackageManager mInterface;
     final IPermissionManager mPermissionManager;
@@ -293,6 +295,8 @@
                     return runRollbackApp();
                 case "get-moduleinfo":
                     return runGetModuleInfo();
+                case "log-visibility":
+                    return runLogVisibility();
                 default: {
                     String nextArg = getNextArg();
                     if (nextArg == null) {
@@ -358,6 +362,36 @@
         return 1;
     }
 
+    private int runLogVisibility() {
+        final PrintWriter pw = getOutPrintWriter();
+        boolean enable = true;
+
+        String opt;
+        while ((opt = getNextOption()) != null) {
+            switch (opt) {
+                case "--disable":
+                    enable = false;
+                    break;
+                case "--enable":
+                    enable = true;
+                    break;
+                default:
+                    pw.println("Error: Unknown option: " + opt);
+                    return -1;
+            }
+        }
+
+        String packageName = getNextArg();
+        if (packageName != null) {
+            LocalServices.getService(PackageManagerInternal.class)
+                    .setVisibilityLogging(packageName, enable);
+        } else {
+            getErrPrintWriter().println("Error: no package specified");
+            return -1;
+        }
+        return 1;
+    }
+
     private int uninstallSystemUpdates() {
         final PrintWriter pw = getOutPrintWriter();
         List<String> failedUninstalls = new LinkedList<>();
@@ -2998,78 +3032,15 @@
             for (String arg : args) {
                 final int delimLocation = arg.indexOf(':');
 
-                // 2. File with specified size read from stdin.
                 if (delimLocation != -1) {
-                    final String[] fileDesc = arg.split(":");
-                    String name = null;
-                    long sizeBytes = -1;
-                    String metadata;
-                    byte[] signature = null;
-
-                    try {
-                        if (fileDesc.length > 0) {
-                            name = fileDesc[0];
-                        }
-                        if (fileDesc.length > 1) {
-                            sizeBytes = Long.parseUnsignedLong(fileDesc[1]);
-                        }
-                        if (fileDesc.length > 2 && !TextUtils.isEmpty(fileDesc[2])) {
-                            metadata = fileDesc[2];
-                        } else {
-                            metadata = name;
-                        }
-                        if (fileDesc.length > 3) {
-                            signature = Base64.getDecoder().decode(fileDesc[3]);
-                        }
-                    } catch (IllegalArgumentException e) {
-                        getErrPrintWriter().println(
-                                "Unable to parse file parameters: " + arg + ", reason: " + e);
+                    // 2. File with specified size read from stdin.
+                    if (processArgForStdin(arg, session) != 0) {
                         return 1;
                     }
-
-                    if (TextUtils.isEmpty(name)) {
-                        getErrPrintWriter().println("Empty file name in: " + arg);
-                        return 1;
-                    }
-
-                    if (signature != null) {
-                        // Streaming/adb mode.
-                        metadata = "+" + metadata;
-                    } else {
-                        // Singleshot read from stdin.
-                        metadata = "-" + metadata;
-                    }
-
-                    try {
-                        if (V4Signature.readFrom(signature) == null) {
-                            getErrPrintWriter().println("V4 signature is invalid in: " + arg);
-                            return 1;
-                        }
-                    } catch (Exception e) {
-                        getErrPrintWriter().println("V4 signature is invalid: " + e + " in " + arg);
-                        return 1;
-                    }
-
-                    session.addFile(LOCATION_DATA_APP, name, sizeBytes,
-                            metadata.getBytes(StandardCharsets.UTF_8), signature);
-                    continue;
+                } else {
+                    // 3. Local file.
+                    processArgForLocalFile(arg, session);
                 }
-
-                // 3. Local file.
-                final String inPath = arg;
-
-                final File file = new File(inPath);
-                final String name = file.getName();
-                final long size = file.length();
-                final byte[] metadata = inPath.getBytes(StandardCharsets.UTF_8);
-
-                // Try to load a v4 signature for the APK.
-                final V4Signature v4signature = V4Signature.readFrom(
-                        new File(inPath + V4Signature.EXT));
-                final byte[] v4signatureBytes =
-                        (v4signature != null) ? v4signature.toByteArray() : null;
-
-                session.addFile(LOCATION_DATA_APP, name, size, metadata, v4signatureBytes);
             }
             return 0;
         } finally {
@@ -3077,6 +3048,87 @@
         }
     }
 
+    private int processArgForStdin(String arg, PackageInstaller.Session session) {
+        final String[] fileDesc = arg.split(":");
+        String name, metadata;
+        long sizeBytes;
+        byte[] signature = null;
+
+        try {
+            if (fileDesc.length < 2) {
+                getErrPrintWriter().println("Must specify file name and size");
+                return 1;
+            }
+            name = fileDesc[0];
+            sizeBytes = Long.parseUnsignedLong(fileDesc[1]);
+            metadata = name;
+
+            if (fileDesc.length > 2 && !TextUtils.isEmpty(fileDesc[2])) {
+                metadata = fileDesc[2];
+            }
+            if (fileDesc.length > 3) {
+                signature = Base64.getDecoder().decode(fileDesc[3]);
+            }
+        } catch (IllegalArgumentException e) {
+            getErrPrintWriter().println(
+                    "Unable to parse file parameters: " + arg + ", reason: " + e);
+            return 1;
+        }
+
+        if (TextUtils.isEmpty(name)) {
+            getErrPrintWriter().println("Empty file name in: " + arg);
+            return 1;
+        }
+
+        if (signature != null) {
+            // Streaming/adb mode.
+            metadata = "+" + metadata;
+            try {
+                if (V4Signature.readFrom(signature) == null) {
+                    getErrPrintWriter().println("V4 signature is invalid in: " + arg);
+                    return 1;
+                }
+            } catch (Exception e) {
+                getErrPrintWriter().println(
+                        "V4 signature is invalid: " + e + " in " + arg);
+                return 1;
+            }
+        } else {
+            // Single-shot read from stdin.
+            metadata = "-" + metadata;
+        }
+
+        session.addFile(LOCATION_DATA_APP, name, sizeBytes,
+                metadata.getBytes(StandardCharsets.UTF_8), signature);
+        return 0;
+    }
+
+    private void processArgForLocalFile(String arg, PackageInstaller.Session session) {
+        final String inPath = arg;
+
+        final File file = new File(inPath);
+        final String name = file.getName();
+        final long size = file.length();
+        final byte[] metadata = inPath.getBytes(StandardCharsets.UTF_8);
+
+        byte[] v4signatureBytes = null;
+        // Try to load the v4 signature file for the APK; it might not exist.
+        final String v4SignaturePath = inPath + V4Signature.EXT;
+        final ParcelFileDescriptor pfd = openFileForSystem(v4SignaturePath, "r");
+        if (pfd != null) {
+            try {
+                final V4Signature v4signature = V4Signature.readFrom(pfd);
+                v4signatureBytes = v4signature.toByteArray();
+            } catch (IOException ex) {
+                Slog.e(TAG, "V4 signature file exists but failed to be parsed.", ex);
+            } finally {
+                IoUtils.closeQuietly(pfd);
+            }
+        }
+
+        session.addFile(LOCATION_DATA_APP, name, size, metadata, v4signatureBytes);
+    }
+
     private int doWriteSplits(int sessionId, ArrayList<String> splitPaths, long sessionSizeBytes,
             boolean isApex) throws RemoteException {
         final boolean multipleSplits = splitPaths.size() > 1;
@@ -3695,6 +3747,11 @@
         pw.println("      --all: show all module info");
         pw.println("      --installed: show only installed modules");
         pw.println("");
+        pw.println("  log-visibility [--enable|--disable] <PACKAGE>");
+        pw.println("    Turns on debug logging when visibility is blocked for the given package.");
+        pw.println("      --enable: turn on debug logging (default)");
+        pw.println("      --disable: turn off debug logging");
+        pw.println("");
         Intent.printIntentArgsHelp(pw , "");
     }
 
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index fa1da27..2d16854 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -1319,13 +1319,12 @@
         }
     }
 
-    boolean areDefaultRuntimePermissionsGrantedLPr(int userId) {
-        return mRuntimePermissionsPersistence
-                .areDefaultRuntimePermissionsGrantedLPr(userId);
+    boolean isPermissionUpgradeNeededLPr(int userId) {
+        return mRuntimePermissionsPersistence.isPermissionUpgradeNeeded(userId);
     }
 
-    void setRuntimePermissionsFingerPrintLPr(@NonNull String fingerPrint, @UserIdInt int userId) {
-        mRuntimePermissionsPersistence.setRuntimePermissionsFingerPrintLPr(fingerPrint, userId);
+    void updateRuntimePermissionsFingerprintLPr(@UserIdInt int userId) {
+        mRuntimePermissionsPersistence.updateRuntimePermissionsFingerprintLPr(userId);
     }
 
     int getDefaultRuntimePermissionsVersionLPr(int userId) {
@@ -1336,6 +1335,10 @@
         mRuntimePermissionsPersistence.setVersionLPr(version, userId);
     }
 
+    void setPermissionControllerVersion(long version) {
+        mRuntimePermissionsPersistence.setPermissionControllerVersion(version);
+    }
+
     public VersionInfo findOrCreateVersion(String volumeUuid) {
         VersionInfo ver = mVersion.get(volumeUuid);
         if (ver == null) {
@@ -4837,6 +4840,8 @@
             pw.print(ps.getHidden(user.id));
             pw.print(" suspended=");
             pw.print(ps.getSuspended(user.id));
+            pw.print(" distractionFlags=");
+            pw.print(ps.getDistractionFlags(user.id));
             pw.print(" stopped=");
             pw.print(ps.getStopped(user.id));
             pw.print(" notLaunched=");
@@ -5294,6 +5299,8 @@
         private static final int UPGRADE_VERSION = -1;
         private static final int INITIAL_VERSION = 0;
 
+        private String mExtendedFingerprint;
+
         private final RuntimePermissionsPersistence mPersistence =
                 RuntimePermissionsPersistence.createInstance();
 
@@ -5318,7 +5325,7 @@
 
         @GuardedBy("mLock")
         // The mapping keys are user ids.
-        private final SparseBooleanArray mDefaultPermissionsGranted = new SparseBooleanArray();
+        private final SparseBooleanArray mPermissionUpgradeNeeded = new SparseBooleanArray();
 
         public RuntimePermissionPersistence(Object persistenceLock) {
             mPersistenceLock = persistenceLock;
@@ -5336,17 +5343,36 @@
         }
 
         @GuardedBy("Settings.this.mLock")
-        public boolean areDefaultRuntimePermissionsGrantedLPr(int userId) {
-            return mDefaultPermissionsGranted.get(userId);
+        public boolean isPermissionUpgradeNeeded(int userId) {
+            return mPermissionUpgradeNeeded.get(userId, true);
         }
 
         @GuardedBy("Settings.this.mLock")
-        public void setRuntimePermissionsFingerPrintLPr(@NonNull String fingerPrint,
-                @UserIdInt int userId) {
-            mFingerprints.put(userId, fingerPrint);
+        public void updateRuntimePermissionsFingerprintLPr(@UserIdInt int userId) {
+            if (mExtendedFingerprint == null) {
+                throw new RuntimeException("The version of the permission controller hasn't been "
+                        + "set before trying to update the fingerprint.");
+            }
+            mFingerprints.put(userId, mExtendedFingerprint);
             writePermissionsForUserAsyncLPr(userId);
         }
 
+        public void setPermissionControllerVersion(long version) {
+            int numUser = mFingerprints.size();
+            mExtendedFingerprint = getExtendedFingerprint(version);
+
+            for (int i = 0;  i < numUser; i++) {
+                int userId = mFingerprints.keyAt(i);
+                String fingerprint = mFingerprints.valueAt(i);
+                mPermissionUpgradeNeeded.put(userId,
+                        !TextUtils.equals(mExtendedFingerprint, fingerprint));
+            }
+        }
+
+        private String getExtendedFingerprint(long version) {
+            return Build.FINGERPRINT + "?pc_version=" + version;
+        }
+
         public void writePermissionsForUserSyncLPr(int userId) {
             mHandler.removeMessages(userId);
             writePermissionsSync(userId);
@@ -5459,7 +5485,7 @@
                 revokeRuntimePermissionsAndClearFlags(sb, userId);
             }
 
-            mDefaultPermissionsGranted.delete(userId);
+            mPermissionUpgradeNeeded.delete(userId);
             mVersions.delete(userId);
             mFingerprints.remove(userId);
         }
@@ -5501,8 +5527,6 @@
 
             String fingerprint = runtimePermissions.getFingerprint();
             mFingerprints.put(userId, fingerprint);
-            boolean defaultPermissionsGranted = Build.FINGERPRINT.equals(fingerprint);
-            mDefaultPermissionsGranted.put(userId, defaultPermissionsGranted);
 
             boolean isUpgradeToR = getInternalVersion().sdkVersion < Build.VERSION_CODES.R;
 
@@ -5634,7 +5658,7 @@
 
             } catch (XmlPullParserException | IOException e) {
                 throw new IllegalStateException("Failed parsing permissions file: "
-                        + permissionsFile , e);
+                        + permissionsFile, e);
             } finally {
                 IoUtils.closeQuietly(in);
             }
@@ -5662,8 +5686,6 @@
                         mVersions.put(userId, version);
                         String fingerprint = parser.getAttributeValue(null, ATTR_FINGERPRINT);
                         mFingerprints.put(userId, fingerprint);
-                        final boolean defaultsGranted = Build.FINGERPRINT.equals(fingerprint);
-                        mDefaultPermissionsGranted.put(userId, defaultsGranted);
                     } break;
 
                     case TAG_PACKAGE: {
@@ -5722,13 +5744,14 @@
                         if (granted) {
                             permissionsState.grantRuntimePermission(bp, userId);
                             permissionsState.updatePermissionFlags(bp, userId,
-                                        PackageManager.MASK_PERMISSION_FLAGS_ALL, flags);
+                                    PackageManager.MASK_PERMISSION_FLAGS_ALL, flags);
                         } else {
                             permissionsState.updatePermissionFlags(bp, userId,
                                     PackageManager.MASK_PERMISSION_FLAGS_ALL, flags);
                         }
 
-                    } break;
+                    }
+                    break;
                 }
             }
         }
diff --git a/services/core/java/com/android/server/pm/TEST_MAPPING b/services/core/java/com/android/server/pm/TEST_MAPPING
index 97f9548..764eec1 100644
--- a/services/core/java/com/android/server/pm/TEST_MAPPING
+++ b/services/core/java/com/android/server/pm/TEST_MAPPING
@@ -10,7 +10,7 @@
       "name": "CtsCompilationTestCases"
     },
     {
-      "name": "AppEnumerationTests"
+      "name": "CtsAppEnumerationTestCases"
     },
     {
       "name": "CtsMatchFlagTestCases"
@@ -34,6 +34,9 @@
       "options": [
         {
           "include-filter": "android.content.pm.cts.PackageManagerShellCommandTest"
+        },
+        {
+          "include-filter": "android.content.pm.cts.PackageManagerShellCommandIncrementalTest"
         }
       ]
     },
diff --git a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
index 4ab1f396..d3f668c 100644
--- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
+++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
@@ -61,7 +61,6 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Set;
 
 
@@ -110,12 +109,9 @@
             return null;
         }
 
-        PackageInfo info = PackageInfoWithoutStateUtils.generateWithoutComponents(pkg, gids, flags,
-                firstInstallTime, lastUpdateTime, grantedPermissions, state, userId, apexInfo,
-                applicationInfo);
-        if (info == null) {
-            return null;
-        }
+        PackageInfo info = PackageInfoWithoutStateUtils.generateWithoutComponentsUnchecked(pkg,
+                gids, flags, firstInstallTime, lastUpdateTime, grantedPermissions, state, userId,
+                apexInfo, applicationInfo);
 
         info.isStub = pkg.isStub();
         info.coreApp = pkg.isCoreApp();
@@ -220,11 +216,8 @@
             return null;
         }
 
-        ApplicationInfo info = PackageInfoWithoutStateUtils.generateApplicationInfo(pkg, flags,
-                state, userId);
-        if (info == null) {
-            return null;
-        }
+        ApplicationInfo info = PackageInfoWithoutStateUtils.generateApplicationInfoUnchecked(pkg,
+                flags, state, userId);
 
         if (pkgSetting != null) {
             // TODO(b/135203078): Remove PackageParser1/toAppInfoWithoutState and clean all this up
@@ -267,12 +260,13 @@
         if (applicationInfo == null) {
             applicationInfo = generateApplicationInfo(pkg, flags, state, userId, pkgSetting);
         }
-        ActivityInfo info = PackageInfoWithoutStateUtils.generateActivityInfo(pkg, a, flags, state,
-                applicationInfo, userId);
-        if (info == null) {
+
+        if (applicationInfo == null) {
             return null;
         }
 
+        ActivityInfo info =
+                PackageInfoWithoutStateUtils.generateActivityInfoUnchecked(a, applicationInfo);
         assignSharedFieldsForComponentInfo(info, a, pkgSetting);
         return info;
     }
@@ -302,12 +296,12 @@
         if (applicationInfo == null) {
             applicationInfo = generateApplicationInfo(pkg, flags, state, userId, pkgSetting);
         }
-        ServiceInfo info = PackageInfoWithoutStateUtils.generateServiceInfo(pkg, s, flags, state,
-                applicationInfo, userId);
-        if (info == null) {
+        if (applicationInfo == null) {
             return null;
         }
 
+        ServiceInfo info =
+                PackageInfoWithoutStateUtils.generateServiceInfoUnchecked(s, applicationInfo);
         assignSharedFieldsForComponentInfo(info, s, pkgSetting);
         return info;
     }
@@ -321,21 +315,20 @@
             @NonNull ApplicationInfo applicationInfo, int userId,
             @Nullable PackageSetting pkgSetting) {
         if (p == null) return null;
+        if (!checkUseInstalledOrHidden(pkg, pkgSetting, state, flags)) {
+            return null;
+        }
         if (applicationInfo == null || !pkg.getPackageName().equals(applicationInfo.packageName)) {
             Slog.wtf(TAG, "AppInfo's package name is different. Expected=" + pkg.getPackageName()
                     + " actual=" + (applicationInfo == null ? "(null AppInfo)"
                     : applicationInfo.packageName));
             applicationInfo = generateApplicationInfo(pkg, flags, state, userId, pkgSetting);
         }
-        if (!checkUseInstalledOrHidden(pkg, pkgSetting, state, flags)) {
+        if (applicationInfo == null) {
             return null;
         }
-        ProviderInfo info = PackageInfoWithoutStateUtils.generateProviderInfo(pkg, p, flags, state,
-                applicationInfo, userId);
-        if (info == null) {
-            return null;
-        }
-
+        ProviderInfo info = PackageInfoWithoutStateUtils.generateProviderInfoUnchecked(p, flags,
+                applicationInfo);
         assignSharedFieldsForComponentInfo(info, p, pkgSetting);
         return info;
     }
diff --git a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
index 2b508ea..fee154f 100644
--- a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
+++ b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
@@ -21,31 +21,23 @@
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
 import android.content.pm.PackageParser;
-import android.content.pm.SharedLibraryInfo;
 import android.content.pm.parsing.ParsingPackage;
 import android.content.pm.parsing.ParsingPackageImpl;
 import android.content.pm.parsing.component.ParsedActivity;
-import android.content.pm.parsing.component.ParsedMainComponent;
 import android.content.pm.parsing.component.ParsedProvider;
 import android.content.pm.parsing.component.ParsedService;
 import android.content.res.TypedArray;
-import android.os.Environment;
 import android.os.Parcel;
-import android.os.UserHandle;
 import android.os.storage.StorageManager;
 import android.text.TextUtils;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.CollectionUtils;
 import com.android.internal.util.DataClass;
-import com.android.internal.util.Parcelling;
 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
 import com.android.server.pm.parsing.PackageInfoUtils;
 
-import java.util.Comparator;
-import java.util.List;
 import java.util.UUID;
 
 /**
@@ -486,16 +478,16 @@
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         super.writeToParcel(dest, flags);
-        sForString.parcel(this.manifestPackageName, dest, flags);
+        sForInternedString.parcel(this.manifestPackageName, dest, flags);
         dest.writeBoolean(this.stub);
-        sForString.parcel(this.nativeLibraryDir, dest, flags);
-        sForString.parcel(this.nativeLibraryRootDir, dest, flags);
+        dest.writeString(this.nativeLibraryDir);
+        dest.writeString(this.nativeLibraryRootDir);
         dest.writeBoolean(this.nativeLibraryRootRequiresIsa);
-        sForString.parcel(this.primaryCpuAbi, dest, flags);
-        sForString.parcel(this.secondaryCpuAbi, dest, flags);
-        sForString.parcel(this.secondaryNativeLibraryDir, dest, flags);
-        sForString.parcel(this.seInfo, dest, flags);
-        sForString.parcel(this.seInfoUser, dest, flags);
+        sForInternedString.parcel(this.primaryCpuAbi, dest, flags);
+        sForInternedString.parcel(this.secondaryCpuAbi, dest, flags);
+        dest.writeString(this.secondaryNativeLibraryDir);
+        dest.writeString(this.seInfo);
+        dest.writeString(this.seInfoUser);
         dest.writeInt(this.uid);
         dest.writeBoolean(this.coreApp);
         dest.writeBoolean(this.system);
@@ -511,16 +503,16 @@
 
     public PackageImpl(Parcel in) {
         super(in);
-        this.manifestPackageName = sForString.unparcel(in);
+        this.manifestPackageName = sForInternedString.unparcel(in);
         this.stub = in.readBoolean();
-        this.nativeLibraryDir = sForString.unparcel(in);
-        this.nativeLibraryRootDir = sForString.unparcel(in);
+        this.nativeLibraryDir = in.readString();
+        this.nativeLibraryRootDir = in.readString();
         this.nativeLibraryRootRequiresIsa = in.readBoolean();
-        this.primaryCpuAbi = sForString.unparcel(in);
-        this.secondaryCpuAbi = sForString.unparcel(in);
-        this.secondaryNativeLibraryDir = sForString.unparcel(in);
-        this.seInfo = sForString.unparcel(in);
-        this.seInfoUser = sForString.unparcel(in);
+        this.primaryCpuAbi = sForInternedString.unparcel(in);
+        this.secondaryCpuAbi = sForInternedString.unparcel(in);
+        this.secondaryNativeLibraryDir = in.readString();
+        this.seInfo = in.readString();
+        this.seInfoUser = in.readString();
         this.uid = in.readInt();
         this.coreApp = in.readBoolean();
         this.system = in.readBoolean();
diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
index 2feddb6..e3abcda 100644
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -60,10 +60,8 @@
 import android.util.ArraySet;
 import android.util.Log;
 import android.util.Slog;
-import android.util.SparseIntArray;
 import android.util.Xml;
 
-import com.android.internal.annotations.GuardedBy;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.XmlUtils;
 import com.android.server.LocalServices;
@@ -226,9 +224,6 @@
     private final PackageManagerInternal mServiceInternal;
     private final PermissionManagerService mPermissionManager;
 
-    @GuardedBy("mLock")
-    private SparseIntArray mDefaultPermissionsGrantedUsers = new SparseIntArray();
-
     DefaultPermissionGrantPolicy(Context context, Looper looper,
             @NonNull PermissionManagerService permissionManager) {
         mContext = context;
@@ -297,19 +292,10 @@
         }
     }
 
-    public boolean wereDefaultPermissionsGrantedSinceBoot(int userId) {
-        synchronized (mLock) {
-            return mDefaultPermissionsGrantedUsers.indexOfKey(userId) >= 0;
-        }
-    }
-
     public void grantDefaultPermissions(int userId) {
         grantPermissionsToSysComponentsAndPrivApps(userId);
         grantDefaultSystemHandlerPermissions(userId);
         grantDefaultPermissionExceptions(userId);
-        synchronized (mLock) {
-            mDefaultPermissionsGrantedUsers.put(userId, userId);
-        }
     }
 
     private void grantRuntimePermissionsForSystemPackage(int userId, PackageInfo pkg) {
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 4a85027..85da559 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -4223,7 +4223,7 @@
 
         int[] grantPermissionsUserIds = EMPTY_INT_ARRAY;
         for (int userId : UserManagerService.getInstance().getUserIds()) {
-            if (!mPackageManagerInt.areDefaultRuntimePermissionsGranted(userId)) {
+            if (mPackageManagerInt.isPermissionUpgradeNeeded(userId)) {
                 grantPermissionsUserIds = ArrayUtils.appendInt(
                         grantPermissionsUserIds, userId);
             }
@@ -4628,13 +4628,6 @@
         }
 
         @Override
-        public boolean wereDefaultPermissionsGrantedSinceBoot(int userId) {
-            synchronized (mLock) {
-                return mDefaultPermissionGrantPolicy.wereDefaultPermissionsGrantedSinceBoot(userId);
-            }
-        }
-
-        @Override
         public void onNewUserCreated(int userId) {
             mDefaultPermissionGrantPolicy.grantDefaultPermissions(userId);
             synchronized (mLock) {
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 048e487..32ef2ce 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java
@@ -447,12 +447,6 @@
     public abstract void grantDefaultPermissionsToDefaultUseOpenWifiApp(
             @NonNull String packageName, @UserIdInt int userId);
 
-    /**
-     * Returns whether or not default permission grants have been performed for the given
-     * user since the device booted.
-     */
-    public abstract boolean wereDefaultPermissionsGrantedSinceBoot(@UserIdInt int userId);
-
     /** Called when a new user has been created. */
     public abstract void onNewUserCreated(@UserIdInt int userId);
 }
diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java
index 139c844..d589353 100644
--- a/services/core/java/com/android/server/policy/PermissionPolicyService.java
+++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java
@@ -280,7 +280,7 @@
                 LocalServices.getService(PackageManagerInternal.class);
         final PermissionManagerServiceInternal permissionManagerInternal =
                 LocalServices.getService(PermissionManagerServiceInternal.class);
-        if (permissionManagerInternal.wereDefaultPermissionsGrantedSinceBoot(userId)) {
+        if (packageManagerInternal.isPermissionUpgradeNeeded(userId)) {
             if (DEBUG) Slog.i(LOG_TAG, "defaultPermsWereGrantedSinceBoot(" + userId + ")");
 
             // Now call into the permission controller to apply policy around permissions
@@ -314,7 +314,7 @@
 
             permissionControllerManager.updateUserSensitive();
 
-            packageManagerInternal.setRuntimePermissionsFingerPrint(Build.FINGERPRINT, userId);
+            packageManagerInternal.updateRuntimePermissionsFingerprint(userId);
         }
     }
 
diff --git a/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java b/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
index 90babcd..6c18c8d 100644
--- a/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
+++ b/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
@@ -27,23 +27,18 @@
 import static android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 
+import static java.lang.Integer.min;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.AppOpsManager;
-import android.compat.annotation.ChangeId;
-import android.compat.annotation.EnabledAfter;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ServiceManager;
+import android.os.Build;
 import android.os.UserHandle;
 import android.os.storage.StorageManagerInternal;
-import android.util.Log;
 
-import com.android.internal.compat.IPlatformCompat;
 import com.android.server.LocalServices;
 import com.android.server.pm.parsing.pkg.AndroidPackage;
 
@@ -55,27 +50,6 @@
  * {@link com.android.packageinstaller.permission.utils.SoftRestrictedPermissionPolicy}
  */
 public abstract class SoftRestrictedPermissionPolicy {
-    /**
-     * Enables scoped storage, with exceptions for apps that explicitly request legacy access, or
-     * apps that hold the {@code android.Manifest.permission#WRITE_MEDIA_STORAGE} permission.
-     * See https://developer.android.com/training/data-storage#scoped-storage for more information.
-     */
-    @ChangeId
-    // This change is enabled for apps with targetSDK > {@link android.os.Build.VERSION_CODES.P}
-    @EnabledAfter(targetSdkVersion = android.os.Build.VERSION_CODES.P)
-    static final long ENABLE_SCOPED_STORAGE = 144914977L;
-
-    /**
-     * Enforces scoped storage for all apps, preventing individual apps from opting out. This change
-     * has precedence over {@code ENABLE_SCOPED_STORAGE}.
-     */
-    @ChangeId
-    // This change is enabled for apps with targetSDK > {@link android.os.Build.VERSION_CODES.Q}.
-    @EnabledAfter(targetSdkVersion = android.os.Build.VERSION_CODES.Q)
-    static final long REQUIRE_SCOPED_STORAGE = 131432978L;
-
-    private static final String LOG_TAG = SoftRestrictedPermissionPolicy.class.getSimpleName();
-
     private static final int FLAGS_PERMISSION_RESTRICTION_ANY_EXEMPT =
             FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT
                     | FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT
@@ -90,6 +64,41 @@
             };
 
     /**
+     * TargetSDK is per package. To make sure two apps int the same shared UID do not fight over
+     * what to set, always compute the combined targetSDK.
+     *
+     * @param context A context
+     * @param appInfo The app that is changed
+     * @param user The user the app belongs to
+     *
+     * @return The minimum targetSDK of all apps sharing the uid of the app
+     */
+    private static int getMinimumTargetSDK(@NonNull Context context,
+            @NonNull ApplicationInfo appInfo, @NonNull UserHandle user) {
+        PackageManager pm = context.getPackageManager();
+
+        int minimumTargetSDK = appInfo.targetSdkVersion;
+
+        String[] uidPkgs = pm.getPackagesForUid(appInfo.uid);
+        if (uidPkgs != null) {
+            for (String uidPkg : uidPkgs) {
+                if (!uidPkg.equals(appInfo.packageName)) {
+                    ApplicationInfo uidPkgInfo;
+                    try {
+                        uidPkgInfo = pm.getApplicationInfoAsUser(uidPkg, 0, user);
+                    } catch (PackageManager.NameNotFoundException e) {
+                        continue;
+                    }
+
+                    minimumTargetSDK = min(minimumTargetSDK, uidPkgInfo.targetSdkVersion);
+                }
+            }
+        }
+
+        return minimumTargetSDK;
+    }
+
+    /**
      * Get the policy for a soft restricted permission.
      *
      * @param context A context to use
@@ -109,10 +118,10 @@
             case READ_EXTERNAL_STORAGE: {
                 final boolean isWhiteListed;
                 boolean shouldApplyRestriction;
+                final int targetSDK;
                 final boolean hasRequestedLegacyExternalStorage;
                 final boolean shouldPreserveLegacyExternalStorage;
                 final boolean hasWriteMediaStorageGrantedForUid;
-                final boolean isScopedStorageEnabled;
 
                 if (appInfo != null) {
                     PackageManager pm = context.getPackageManager();
@@ -124,22 +133,19 @@
                             appInfo.uid, context);
                     hasWriteMediaStorageGrantedForUid = hasWriteMediaStorageGrantedForUid(
                             appInfo.uid, context);
-                    final boolean isScopedStorageRequired =
-                            isChangeEnabledForUid(context, appInfo, user, REQUIRE_SCOPED_STORAGE);
-                    isScopedStorageEnabled =
-                            isChangeEnabledForUid(context, appInfo, user, ENABLE_SCOPED_STORAGE)
-                            || isScopedStorageRequired;
                     shouldPreserveLegacyExternalStorage = pkg.hasPreserveLegacyExternalStorage()
                             && smInternal.hasLegacyExternalStorage(appInfo.uid);
+                    targetSDK = getMinimumTargetSDK(context, appInfo, user);
                     shouldApplyRestriction = (flags & FLAG_PERMISSION_APPLY_RESTRICTION) != 0
-                            || (isScopedStorageRequired && !shouldPreserveLegacyExternalStorage);
+                            || (targetSDK > Build.VERSION_CODES.Q
+                            && !shouldPreserveLegacyExternalStorage);
                 } else {
                     isWhiteListed = false;
                     shouldApplyRestriction = false;
+                    targetSDK = 0;
                     hasRequestedLegacyExternalStorage = false;
                     shouldPreserveLegacyExternalStorage = false;
                     hasWriteMediaStorageGrantedForUid = false;
-                    isScopedStorageEnabled = false;
                 }
 
                 // We have a check in PermissionPolicyService.PermissionToOpSynchroniser.setUidMode
@@ -149,7 +155,7 @@
                 return new SoftRestrictedPermissionPolicy() {
                     @Override
                     public boolean mayGrantPermission() {
-                        return isWhiteListed || isScopedStorageEnabled;
+                        return isWhiteListed || targetSDK >= Build.VERSION_CODES.Q;
                     }
                     @Override
                     public int getExtraAppOpCode() {
@@ -157,7 +163,7 @@
                     }
                     @Override
                     public boolean mayAllowExtraAppOp() {
-                        return !shouldApplyRestriction
+                        return !shouldApplyRestriction && targetSDK <= Build.VERSION_CODES.Q
                                 && (hasRequestedLegacyExternalStorage
                                         || hasWriteMediaStorageGrantedForUid
                                         || shouldPreserveLegacyExternalStorage);
@@ -170,26 +176,22 @@
             }
             case WRITE_EXTERNAL_STORAGE: {
                 final boolean isWhiteListed;
-                final boolean isScopedStorageEnabled;
+                final int targetSDK;
 
                 if (appInfo != null) {
                     final int flags = context.getPackageManager().getPermissionFlags(permission,
                             appInfo.packageName, user);
                     isWhiteListed = (flags & FLAGS_PERMISSION_RESTRICTION_ANY_EXEMPT) != 0;
-                    final boolean isScopedStorageRequired =
-                            isChangeEnabledForUid(context, appInfo, user, REQUIRE_SCOPED_STORAGE);
-                    isScopedStorageEnabled =
-                            isChangeEnabledForUid(context, appInfo, user, ENABLE_SCOPED_STORAGE)
-                            || isScopedStorageRequired;
+                    targetSDK = getMinimumTargetSDK(context, appInfo, user);
                 } else {
                     isWhiteListed = false;
-                    isScopedStorageEnabled = false;
+                    targetSDK = 0;
                 }
 
                 return new SoftRestrictedPermissionPolicy() {
                     @Override
                     public boolean mayGrantPermission() {
-                        return isWhiteListed || isScopedStorageEnabled;
+                        return isWhiteListed || targetSDK >= Build.VERSION_CODES.Q;
                     }
                 };
             }
@@ -198,62 +200,6 @@
         }
     }
 
-    /**
-     * Checks whether an AppCompat change is enabled for all packages sharing a UID with the
-     * provided application.
-     *
-     * @param context A context to use.
-     * @param appInfo The application for which to check whether the compat change is enabled.
-     * @param user The user the app belongs to.
-     * @param changeId A {@link android.compat.annotation.ChangeId} corresponding to the change.
-     *
-     * @return true if this change is enabled for all apps sharing the UID of the provided app,
-     *         false otherwise.
-     */
-    private static boolean isChangeEnabledForUid(@NonNull Context context,
-            @NonNull ApplicationInfo appInfo, @NonNull UserHandle user, long changeId) {
-        PackageManager pm = context.getPackageManager();
-
-        String[] uidPackages = pm.getPackagesForUid(appInfo.uid);
-        if (uidPackages != null) {
-            for (String uidPackage : uidPackages) {
-                ApplicationInfo uidPackageInfo;
-                try {
-                    uidPackageInfo = pm.getApplicationInfoAsUser(uidPackage, 0, user);
-                } catch (PackageManager.NameNotFoundException e) {
-                    continue;
-                }
-                if (!isChangeEnabled(uidPackageInfo, changeId)) {
-                    // At least one package sharing this UID does not have this change enabled.
-                    return false;
-                }
-            }
-            // All packages sharing this UID returned true for {@link #isChangeEnabled()}.
-            return true;
-        } else {
-            Log.w(LOG_TAG, "Check for change " + changeId + " for uid " + appInfo.uid
-                    + " produced no packages. Defaulting to using the information for "
-                    + appInfo.packageName + " only.");
-            return isChangeEnabled(appInfo, changeId);
-        }
-    }
-
-    private static boolean isChangeEnabled(@NonNull ApplicationInfo appInfo, long changeId) {
-        IBinder binder = ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE);
-        IPlatformCompat platformCompat = IPlatformCompat.Stub.asInterface(binder);
-
-        final long callingId = Binder.clearCallingIdentity();
-
-        try {
-            return platformCompat.isChangeEnabled(changeId, appInfo);
-        } catch (RemoteException e) {
-            Log.e(LOG_TAG, "Check for change " + changeId + " failed. Defaulting to enabled.", e);
-            return true;
-        } finally {
-            Binder.restoreCallingIdentity(callingId);
-        }
-    }
-
     private static boolean hasUidRequestedLegacyExternalStorage(int uid, @NonNull Context context) {
         PackageManager packageManager = context.getPackageManager();
         String[] packageNames = packageManager.getPackagesForUid(uid);
diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
index 9d417c9..efe2af3 100644
--- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java
+++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
@@ -50,7 +50,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_SEARCH_BAR;
 import static android.view.WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
-import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
@@ -817,9 +817,9 @@
                 return  16;
             case TYPE_STATUS_BAR:
                 return  17;
-            case TYPE_NOTIFICATION_SHADE:
+            case TYPE_STATUS_BAR_ADDITIONAL:
                 return  18;
-            case TYPE_STATUS_BAR_PANEL:
+            case TYPE_NOTIFICATION_SHADE:
                 return  19;
             case TYPE_STATUS_BAR_SUB_PANEL:
                 return  20;
diff --git a/services/core/java/com/android/server/power/AmbientDisplaySuppressionController.java b/services/core/java/com/android/server/power/AmbientDisplaySuppressionController.java
new file mode 100644
index 0000000..3bb90ce
--- /dev/null
+++ b/services/core/java/com/android/server/power/AmbientDisplaySuppressionController.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (C) 2020 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.power;
+
+import static java.util.Objects.requireNonNull;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.util.ArraySet;
+import android.util.Pair;
+import android.util.Slog;
+
+import com.android.internal.statusbar.IStatusBarService;
+
+import java.io.PrintWriter;
+import java.util.Collections;
+import java.util.Set;
+
+/**
+ * Communicates with System UI to suppress the ambient display.
+ */
+public class AmbientDisplaySuppressionController {
+    private static final String TAG = "AmbientDisplaySuppressionController";
+
+    private final Context mContext;
+    private final Set<Pair<String, Integer>> mSuppressionTokens;
+    private IStatusBarService mStatusBarService;
+
+    AmbientDisplaySuppressionController(Context context) {
+        mContext = requireNonNull(context);
+        mSuppressionTokens = Collections.synchronizedSet(new ArraySet<>());
+    }
+
+    /**
+     * Suppresses ambient display.
+     *
+     * @param token A persistible identifier for the ambient display suppression.
+     * @param callingUid The uid of the calling application.
+     * @param suppress If true, suppresses the ambient display. Otherwise, unsuppresses it.
+     */
+    public void suppress(@NonNull String token, int callingUid, boolean suppress) {
+        Pair<String, Integer> suppressionToken = Pair.create(requireNonNull(token), callingUid);
+
+        if (suppress) {
+            mSuppressionTokens.add(suppressionToken);
+        } else {
+            mSuppressionTokens.remove(suppressionToken);
+        }
+
+        try {
+            synchronized (mSuppressionTokens) {
+                getStatusBar().suppressAmbientDisplay(isSuppressed());
+            }
+        } catch (RemoteException e) {
+            Slog.e(TAG, "Failed to suppress ambient display", e);
+        }
+    }
+
+    /**
+     * Returns whether ambient display is suppressed for the given token.
+     *
+     * @param token A persistible identifier for the ambient display suppression.
+     * @param callingUid The uid of the calling application.
+     */
+    public boolean isSuppressed(@NonNull String token, int callingUid) {
+        return mSuppressionTokens.contains(Pair.create(requireNonNull(token), callingUid));
+    }
+
+    /**
+     * Returns whether ambient display is suppressed.
+     */
+    public boolean isSuppressed() {
+        return !mSuppressionTokens.isEmpty();
+    }
+
+    /**
+     * Dumps the state of ambient display suppression and the list of suppression tokens into
+     * {@code pw}.
+     */
+    public void dump(PrintWriter pw) {
+        pw.println("AmbientDisplaySuppressionController:");
+        pw.println(" ambientDisplaySuppressed=" + isSuppressed());
+        pw.println(" mSuppressionTokens=" + mSuppressionTokens);
+    }
+
+    private synchronized IStatusBarService getStatusBar() {
+        if (mStatusBarService == null) {
+            mStatusBarService = IStatusBarService.Stub.asInterface(
+                    ServiceManager.getService(Context.STATUS_BAR_SERVICE));
+        }
+        return mStatusBarService;
+    }
+}
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index 0b95be1..199cb49 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -413,7 +413,6 @@
 
             // Start input as soon as we start waking up or going to sleep.
             mInputManagerInternal.setInteractive(interactive);
-            mInputMethodManagerInternal.setInteractive(interactive);
 
             // Notify battery stats.
             try {
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index e6c23b6..f04be0b 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -75,7 +75,6 @@
 import android.service.dreams.DreamManagerInternal;
 import android.service.vr.IVrManager;
 import android.service.vr.IVrStateCallbacks;
-import android.util.ArraySet;
 import android.util.KeyValueListParser;
 import android.util.PrintWriterPrinter;
 import android.util.Slog;
@@ -115,7 +114,6 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
-import java.util.Set;
 
 /**
  * The power manager service is responsible for coordinating power management
@@ -266,6 +264,7 @@
     private LogicalLight mAttentionLight;
 
     private InattentiveSleepWarningController mInattentiveSleepWarningOverlayController;
+    private final AmbientDisplaySuppressionController mAmbientDisplaySuppressionController;
 
     private final Object mLock = LockGuard.installNewLock(LockGuard.INDEX_POWER);
 
@@ -585,9 +584,6 @@
     // but the DreamService has not yet been told to start (it's an async process).
     private boolean mDozeStartInProgress;
 
-    // Set of all tokens suppressing ambient display.
-    private final Set<String> mAmbientDisplaySuppressionTokens = new ArraySet<>();
-
     private final class ForegroundProfileObserver extends SynchronousUserSwitchObserver {
         @Override
         public void onUserSwitching(@UserIdInt int newUserId) throws RemoteException {
@@ -785,6 +781,11 @@
             return new AmbientDisplayConfiguration(context);
         }
 
+        AmbientDisplaySuppressionController createAmbientDisplaySuppressionController(
+                Context context) {
+            return new AmbientDisplaySuppressionController(context);
+        }
+
         InattentiveSleepWarningController createInattentiveSleepWarningController() {
             return new InattentiveSleepWarningController();
         }
@@ -840,6 +841,8 @@
         mHandler = new PowerManagerHandler(mHandlerThread.getLooper());
         mConstants = new Constants(mHandler);
         mAmbientDisplayConfiguration = mInjector.createAmbientDisplayConfiguration(context);
+        mAmbientDisplaySuppressionController =
+                mInjector.createAmbientDisplaySuppressionController(context);
         mAttentionDetector = new AttentionDetector(this::onUserAttention, mLock);
 
         mBatterySavingStats = new BatterySavingStats(mLock);
@@ -3488,26 +3491,6 @@
         }
     }
 
-    private void suppressAmbientDisplayInternal(String token, boolean suppress) {
-        if (DEBUG_SPEW) {
-            Slog.d(TAG, "Suppress ambient display for token " + token + ": " + suppress);
-        }
-
-        if (suppress) {
-            mAmbientDisplaySuppressionTokens.add(token);
-        } else {
-            mAmbientDisplaySuppressionTokens.remove(token);
-        }
-
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.SUPPRESS_DOZE,
-                Math.min(mAmbientDisplaySuppressionTokens.size(), 1));
-    }
-
-    private String createAmbientDisplayToken(String token, int callingUid) {
-        return callingUid + "_" + token;
-    }
-
     private void boostScreenBrightnessInternal(long eventTime, int uid) {
         synchronized (mLock) {
             if (!mSystemReady || getWakefulnessLocked() == WAKEFULNESS_ASLEEP
@@ -3943,6 +3926,8 @@
         if (mNotifier != null) {
             mNotifier.dump(pw);
         }
+
+        mAmbientDisplaySuppressionController.dump(pw);
     }
 
     private void dumpProto(FileDescriptor fd) {
@@ -5211,7 +5196,7 @@
             final int uid = Binder.getCallingUid();
             final long ident = Binder.clearCallingIdentity();
             try {
-                suppressAmbientDisplayInternal(createAmbientDisplayToken(token, uid), suppress);
+                mAmbientDisplaySuppressionController.suppress(token, uid, suppress);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -5225,8 +5210,7 @@
             final int uid = Binder.getCallingUid();
             final long ident = Binder.clearCallingIdentity();
             try {
-                return mAmbientDisplaySuppressionTokens.contains(
-                        createAmbientDisplayToken(token, uid));
+                return mAmbientDisplaySuppressionController.isSuppressed(token, uid);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -5239,7 +5223,7 @@
 
             final long ident = Binder.clearCallingIdentity();
             try {
-                return mAmbientDisplaySuppressionTokens.size() > 0;
+                return mAmbientDisplaySuppressionController.isSuppressed();
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
diff --git a/services/core/java/com/android/server/rollback/Rollback.java b/services/core/java/com/android/server/rollback/Rollback.java
index 7b96777..885f561 100644
--- a/services/core/java/com/android/server/rollback/Rollback.java
+++ b/services/core/java/com/android/server/rollback/Rollback.java
@@ -159,13 +159,6 @@
     @Nullable public final String mInstallerPackageName;
 
     /**
-     * This array holds all of the rollback tokens associated with package sessions included in
-     * this rollback.
-     */
-    @GuardedBy("mLock")
-    private final IntArray mTokens = new IntArray();
-
-    /**
      * Session ids for all packages in the install. For multi-package sessions, this is the list
      * of child session ids. For normal sessions, this list is a single element with the normal
      * session id.
@@ -769,26 +762,6 @@
     }
 
     /**
-     * Adds a rollback token to be associated with this rollback. This may be used to
-     * identify which rollback should be removed in case {@link PackageManager} sends an
-     * {@link Intent#ACTION_CANCEL_ENABLE_ROLLBACK} intent.
-     */
-    void addToken(int token) {
-        synchronized (mLock) {
-            mTokens.add(token);
-        }
-    }
-
-    /**
-     * Returns true if this rollback is associated with the provided {@code token}.
-     */
-    boolean hasToken(int token) {
-        synchronized (mLock) {
-            return mTokens.indexOf(token) != -1;
-        }
-    }
-
-    /**
      * Returns true if this rollback contains the provided {@code packageSessionId}.
      */
     boolean containsSessionId(int packageSessionId) {
diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
index f9981d0..42fada1 100644
--- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
+++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
@@ -20,7 +20,6 @@
 import android.annotation.AnyThread;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.UserIdInt;
 import android.annotation.WorkerThread;
 import android.app.AppOpsManager;
 import android.content.BroadcastReceiver;
@@ -201,18 +200,13 @@
                 if (Intent.ACTION_PACKAGE_ENABLE_ROLLBACK.equals(intent.getAction())) {
                     int token = intent.getIntExtra(
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_TOKEN, -1);
-                    int installFlags = intent.getIntExtra(
-                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_INSTALL_FLAGS, 0);
-                    int user = intent.getIntExtra(
-                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_USER, 0);
-
-                    File newPackageCodePath = new File(intent.getData().getPath());
+                    int sessionId = intent.getIntExtra(
+                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_SESSION_ID, -1);
 
                     queueSleepIfNeeded();
 
                     getHandler().post(() -> {
-                        boolean success =
-                                enableRollback(installFlags, newPackageCodePath, user, token);
+                        boolean success = enableRollback(sessionId);
                         int ret = PackageManagerInternal.ENABLE_ROLLBACK_SUCCEEDED;
                         if (!success) {
                             ret = PackageManagerInternal.ENABLE_ROLLBACK_FAILED;
@@ -238,19 +232,16 @@
             @Override
             public void onReceive(Context context, Intent intent) {
                 if (Intent.ACTION_CANCEL_ENABLE_ROLLBACK.equals(intent.getAction())) {
-                    int token = intent.getIntExtra(
-                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_TOKEN, -1);
+                    int sessionId = intent.getIntExtra(
+                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_SESSION_ID, -1);
                     if (LOCAL_LOGV) {
-                        Slog.v(TAG, "broadcast=ACTION_CANCEL_ENABLE_ROLLBACK token=" + token);
+                        Slog.v(TAG, "broadcast=ACTION_CANCEL_ENABLE_ROLLBACK id=" + sessionId);
                     }
                     synchronized (mLock) {
-                        for (int i = 0; i < mRollbacks.size(); ++i) {
-                            Rollback rollback = mRollbacks.get(i);
-                            if (rollback.hasToken(token) && rollback.isEnabling()) {
-                                mRollbacks.remove(i);
-                                rollback.delete(mAppDataRollbackHelper);
-                                break;
-                            }
+                        Rollback rollback = getRollbackForSessionLocked(sessionId);
+                        if (rollback != null && rollback.isEnabling()) {
+                            mRollbacks.remove(rollback);
+                            rollback.delete(mAppDataRollbackHelper);
                         }
                     }
                 }
@@ -684,24 +675,6 @@
         return mHandlerThread.getThreadHandler();
     }
 
-    // Returns true if <code>session</code> has installFlags and code path
-    // matching the installFlags and new package code path given to
-    // enableRollback.
-    @WorkerThread
-    private boolean sessionMatchesForEnableRollback(PackageInstaller.SessionInfo session,
-            int installFlags, File newPackageCodePath) {
-        if (session == null || session.resolvedBaseCodePath == null) {
-            return false;
-        }
-
-        File packageCodePath = new File(session.resolvedBaseCodePath).getParentFile();
-        if (newPackageCodePath.equals(packageCodePath) && installFlags == session.installFlags) {
-            return true;
-        }
-
-        return false;
-    }
-
     @AnyThread
     private Context getContextAsUser(UserHandle user) {
         try {
@@ -716,58 +689,26 @@
      * staged for install with rollback enabled. Called before the package has
      * been installed.
      *
-     * @param installFlags information about what is being installed.
-     * @param newPackageCodePath path to the package about to be installed.
-     * @param user the user that owns the install session to enable rollback on.
-     * @param token the distinct rollback token sent by package manager.
+     * @param sessionId the id of the install session
      * @return true if enabling the rollback succeeds, false otherwise.
      */
     @WorkerThread
-    private boolean enableRollback(
-            int installFlags, File newPackageCodePath, @UserIdInt int user, int token) {
+    private boolean enableRollback(int sessionId) {
         if (LOCAL_LOGV) {
-            Slog.v(TAG, "enableRollback user=" + user + " token=" + token
-                    + " path=" + newPackageCodePath.getAbsolutePath());
+            Slog.v(TAG, "enableRollback sessionId=" + sessionId);
         }
 
-        // Find the session id associated with this install.
-        // TODO: It would be nice if package manager or package installer told
-        // us the session directly, rather than have to search for it
-        // ourselves.
-
-        // getAllSessions only returns sessions for the associated user.
-        // Create a context with the right user so we can find the matching
-        // session.
-        final Context context = getContextAsUser(UserHandle.of(user));
-        if (context == null) {
-            Slog.e(TAG, "Unable to create context for install session user.");
+        PackageInstaller installer = mContext.getPackageManager().getPackageInstaller();
+        PackageInstaller.SessionInfo packageSession = installer.getSessionInfo(sessionId);
+        if (packageSession == null) {
+            Slog.e(TAG, "Unable to find session for enabled rollback.");
             return false;
         }
 
-        PackageInstaller.SessionInfo parentSession = null;
-        PackageInstaller.SessionInfo packageSession = null;
-        PackageInstaller installer = context.getPackageManager().getPackageInstaller();
-        for (PackageInstaller.SessionInfo info : installer.getAllSessions()) {
-            if (info.isMultiPackage()) {
-                for (int childId : info.getChildSessionIds()) {
-                    PackageInstaller.SessionInfo child = installer.getSessionInfo(childId);
-                    if (sessionMatchesForEnableRollback(child, installFlags, newPackageCodePath)) {
-                        // TODO: Check we only have one matching session?
-                        parentSession = info;
-                        packageSession = child;
-                        break;
-                    }
-                }
-            } else if (sessionMatchesForEnableRollback(info, installFlags, newPackageCodePath)) {
-                // TODO: Check we only have one matching session?
-                parentSession = info;
-                packageSession = info;
-                break;
-            }
-        }
-
-        if (parentSession == null || packageSession == null) {
-            Slog.e(TAG, "Unable to find session for enabled rollback.");
+        PackageInstaller.SessionInfo parentSession = packageSession.hasParentSessionId()
+                ? installer.getSessionInfo(packageSession.getParentSessionId()) : packageSession;
+        if (parentSession == null) {
+            Slog.e(TAG, "Unable to find parent session for enabled rollback.");
             return false;
         }
 
@@ -804,7 +745,6 @@
                 newRollback = createNewRollbackLocked(parentSession);
             }
         }
-        newRollback.addToken(token);
 
         return enableRollbackForPackageSession(newRollback, packageSession);
     }
diff --git a/services/core/java/com/android/server/security/FileIntegrityService.java b/services/core/java/com/android/server/security/FileIntegrityService.java
index 8cf2d03..482090a 100644
--- a/services/core/java/com/android/server/security/FileIntegrityService.java
+++ b/services/core/java/com/android/server/security/FileIntegrityService.java
@@ -22,11 +22,8 @@
 import android.content.pm.PackageManager;
 import android.os.Build;
 import android.os.IBinder;
-import android.os.Process;
 import android.os.SystemProperties;
-import android.security.Credentials;
 import android.security.IFileIntegrityService;
-import android.security.KeyStore;
 import android.util.Slog;
 
 import com.android.server.SystemService;
@@ -114,9 +111,6 @@
 
         // Load certificates trusted by the device manufacturer.
         loadCertificatesFromDirectory("/product/etc/security/fsverity");
-
-        // Load certificates trusted by the device owner.
-        loadCertificatesFromKeystore(KeyStore.getInstance());
     }
 
     private void loadCertificatesFromDirectory(String path) {
@@ -139,19 +133,6 @@
         }
     }
 
-    private void loadCertificatesFromKeystore(KeyStore keystore) {
-        for (final String alias : keystore.list(Credentials.APP_SOURCE_CERTIFICATE,
-                    Process.FSVERITY_CERT_UID)) {
-            byte[] certificateBytes = keystore.get(Credentials.APP_SOURCE_CERTIFICATE + alias,
-                    Process.FSVERITY_CERT_UID, false /* suppressKeyNotFoundWarning */);
-            if (certificateBytes == null) {
-                Slog.w(TAG, "The retrieved fs-verity certificate is null, ignored " + alias);
-                continue;
-            }
-            collectCertificate(certificateBytes);
-        }
-    }
-
     /**
      * Tries to convert {@code bytes} into an X.509 certificate and store in memory.
      * Errors need to be surpressed in order fo the next certificates to still be collected.
diff --git a/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java b/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java
index a641f06..1d31285 100644
--- a/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java
+++ b/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java
@@ -196,8 +196,8 @@
         hidlModel.header.type = aidl2hidlSoundModelType(aidlModel.type);
         hidlModel.header.uuid = aidl2hidlUuid(aidlModel.uuid);
         hidlModel.header.vendorUuid = aidl2hidlUuid(aidlModel.vendorUuid);
-        hidlModel.data = HidlMemoryUtil.byteArrayToHidlMemory(aidlModel.data,
-                "SoundTrigger SoundModel");
+        hidlModel.data = HidlMemoryUtil.fileDescriptorToHidlMemory(aidlModel.data,
+                aidlModel.dataSize);
         return hidlModel;
     }
 
diff --git a/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java b/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java
index c45f37d..49a2901 100644
--- a/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java
+++ b/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java
@@ -249,21 +249,8 @@
      * @param permission The permission to check.
      */
     void enforcePermission(String permission) {
-        final int status = PermissionChecker.checkCallingOrSelfPermissionForPreflight(mContext,
-                permission);
-        switch (status) {
-            case PermissionChecker.PERMISSION_GRANTED:
-                return;
-            case PermissionChecker.PERMISSION_HARD_DENIED:
-                throw new SecurityException(
-                        String.format("Caller must have the %s permission.", permission));
-            case PermissionChecker.PERMISSION_SOFT_DENIED:
-                throw new ServiceSpecificException(Status.TEMPORARY_PERMISSION_DENIED,
-                        String.format("Caller must have the %s permission.", permission));
-            default:
-                throw new InternalServerError(
-                        new RuntimeException("Unexpected perimission check result."));
-        }
+        mContext.enforceCallingOrSelfPermission(permission,
+                String.format("Caller must have the %s permission.", permission));
     }
 
     @Override
diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
index 3f8f6bf..612989f 100644
--- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
+++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
@@ -17,7 +17,7 @@
 package com.android.server.stats.pull;
 
 import static android.app.AppOpsManager.OP_FLAG_SELF;
-import static android.app.AppOpsManager.OP_FLAG_TRUSTED_PROXIED;
+import static android.app.AppOpsManager.OP_FLAG_TRUSTED_PROXY;
 import static android.content.pm.PackageInfo.REQUESTED_PERMISSION_GRANTED;
 import static android.content.pm.PermissionInfo.PROTECTION_DANGEROUS;
 import static android.os.Debug.getIonHeapsSizeKb;
@@ -187,7 +187,7 @@
 
     private static final int MAX_BATTERY_STATS_HELPER_FREQUENCY_MS = 1000;
     private static final int CPU_TIME_PER_THREAD_FREQ_MAX_NUM_FREQUENCIES = 8;
-    private static final int OP_FLAGS_PULLED = OP_FLAG_SELF | OP_FLAG_TRUSTED_PROXIED;
+    private static final int OP_FLAGS_PULLED = OP_FLAG_SELF | OP_FLAG_TRUSTED_PROXY;
     private static final String COMMON_PERMISSION_PREFIX = "android.permission.";
 
     private final Object mNetworkStatsLock = new Object();
@@ -436,8 +436,7 @@
         mStoragedUidIoStatsReader = new StoragedUidIoStatsReader();
 
         // Initialize PROC_STATS
-        // TODO (b/148402814): Change this directory to stats_pull.
-        mBaseDir = new File(SystemServiceManager.ensureSystemDir(), "stats_companion");
+        mBaseDir = new File(SystemServiceManager.ensureSystemDir(), "stats_pull");
 
         // Disables throttler on CPU time readers.
         mCpuUidUserSysTimeReader = new KernelCpuUidUserSysTimeReader(false);
@@ -1469,6 +1468,9 @@
     }
 
     private void registerIonHeapSize() {
+        if (!new File("/sys/kernel/ion/total_heaps_kb").exists()) {
+            return;
+        }
         int tagId = FrameworkStatsLog.ION_HEAP_SIZE;
         mStatsManager.registerPullAtomCallback(
                 tagId,
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index 9a30f1d..feb3e06 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -63,7 +63,6 @@
 import com.android.server.notification.NotificationDelegate;
 import com.android.server.policy.GlobalActionsProvider;
 import com.android.server.power.ShutdownThread;
-import com.android.server.wm.WindowManagerService;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -1170,6 +1169,7 @@
         enforceStatusBarService();
         long identity = Binder.clearCallingIdentity();
         try {
+            mNotificationDelegate.prepareForPossibleShutdown();
             // ShutdownThread displays UI, so give it a UI context.
             mHandler.post(() ->
                     ShutdownThread.shutdown(getUiContext(),
@@ -1187,6 +1187,7 @@
         enforceStatusBarService();
         long identity = Binder.clearCallingIdentity();
         try {
+            mNotificationDelegate.prepareForPossibleShutdown();
             mHandler.post(() -> {
                 // ShutdownThread displays UI, so give it a UI context.
                 if (safeMode) {
@@ -1453,6 +1454,17 @@
         }
     }
 
+    @Override
+    public void suppressAmbientDisplay(boolean suppress) {
+        enforceStatusBarService();
+        if (mBar != null) {
+            try {
+                mBar.suppressAmbientDisplay(suppress);
+            } catch (RemoteException ex) {
+            }
+        }
+    }
+
     public String[] getStatusBarIcons() {
         return mContext.getResources().getStringArray(R.array.config_statusBarIcons);
     }
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
index 2520316..3519465 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
@@ -20,6 +20,7 @@
 import android.app.AlarmManager;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.net.ConnectivityManager;
 import android.os.SystemProperties;
 import android.provider.Settings;
 
@@ -40,7 +41,20 @@
 
     @Override
     public boolean isAutoTimeZoneDetectionEnabled() {
-        return Settings.Global.getInt(mCr, Settings.Global.AUTO_TIME_ZONE, 1 /* default */) > 0;
+        if (isAutoTimeZoneDetectionSupported()) {
+            return Settings.Global.getInt(mCr, Settings.Global.AUTO_TIME_ZONE, 1 /* default */) > 0;
+        }
+        return false;
+    }
+
+    private boolean isAutoTimeZoneDetectionSupported() {
+        return deviceHasTelephonyNetwork();
+    }
+
+    private boolean deviceHasTelephonyNetwork() {
+        // TODO b/150583524 Avoid the use of a deprecated API.
+        return mContext.getSystemService(ConnectivityManager.class)
+                .isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java
index 5f5cd3c..2394baf 100644
--- a/services/core/java/com/android/server/trust/TrustManagerService.java
+++ b/services/core/java/com/android/server/trust/TrustManagerService.java
@@ -1437,7 +1437,8 @@
             if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED.equals(action)) {
                 refreshAgentList(getSendingUserId());
                 updateDevicePolicyFeatures();
-            } else if (Intent.ACTION_USER_ADDED.equals(action)) {
+            } else if (Intent.ACTION_USER_ADDED.equals(action) || Intent.ACTION_USER_STARTED.equals(
+                    action)) {
                 int userId = getUserId(intent);
                 if (userId > 0) {
                     maybeEnableFactoryTrustAgents(mLockPatternUtils, userId);
@@ -1478,6 +1479,7 @@
             filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
             filter.addAction(Intent.ACTION_USER_ADDED);
             filter.addAction(Intent.ACTION_USER_REMOVED);
+            filter.addAction(Intent.ACTION_USER_STARTED);
             context.registerReceiverAsUser(this,
                     UserHandle.ALL,
                     filter,
diff --git a/services/core/java/com/android/server/tv/TvRemoteProviderWatcher.java b/services/core/java/com/android/server/tv/TvRemoteProviderWatcher.java
index cddcabe..06c2354 100644
--- a/services/core/java/com/android/server/tv/TvRemoteProviderWatcher.java
+++ b/services/core/java/com/android/server/tv/TvRemoteProviderWatcher.java
@@ -30,6 +30,8 @@
 import android.util.Log;
 import android.util.Slog;
 
+import com.android.internal.annotations.VisibleForTesting;
+
 import java.util.ArrayList;
 import java.util.Collections;
 
@@ -140,7 +142,8 @@
         }
     }
 
-    private boolean verifyServiceTrusted(ServiceInfo serviceInfo) {
+    @VisibleForTesting
+    boolean verifyServiceTrusted(ServiceInfo serviceInfo) {
         if (serviceInfo.permission == null || !serviceInfo.permission.equals(
                 Manifest.permission.BIND_TV_REMOTE_SERVICE)) {
             // If the service does not require this permission then any app could
diff --git a/services/core/java/com/android/server/utils/quota/QuotaTracker.java b/services/core/java/com/android/server/utils/quota/QuotaTracker.java
index a8cf9f6..115b5c8 100644
--- a/services/core/java/com/android/server/utils/quota/QuotaTracker.java
+++ b/services/core/java/com/android/server/utils/quota/QuotaTracker.java
@@ -552,6 +552,7 @@
                     mTriggerTimeElapsed = nextTriggerTimeElapsed;
                 }
             } else {
+                cancelAlarm(this);
                 mTriggerTimeElapsed = 0;
             }
         }
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
index 4fea36c..fb29f9a 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
@@ -134,7 +134,7 @@
     // Preallocated strings we are sending to tron, so we don't have to allocate a new one every
     // time we log.
     private static final String[] TRON_WINDOW_STATE_VARZ_STRINGS = {
-            "window_time_0", "window_time_1", "window_time_2", "window_time_3"};
+            "window_time_0", "window_time_1", "window_time_2", "window_time_3", "window_time_4"};
 
     private int mWindowState = WINDOW_STATE_STANDARD;
     private long mLastLogTimeSecs;
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 76bc366..acb9900 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -6187,10 +6187,12 @@
 
     /**
      * @return {@code true} if this activity is in size compatibility mode that uses the different
-     *         density or bounds from its parent.
+     *         density than its parent or its bounds don't fit in parent naturally.
      */
     boolean inSizeCompatMode() {
-        if (mCompatDisplayInsets == null || !shouldUseSizeCompatMode()) {
+        if (mCompatDisplayInsets == null || !shouldUseSizeCompatMode()
+                // The orientation is different from parent when transforming.
+                || isFixedRotationTransforming()) {
             return false;
         }
         final Rect appBounds = getConfiguration().windowConfiguration.getAppBounds();
@@ -6228,8 +6230,8 @@
         // The rest of the condition is that only one side is smaller than the parent, but it still
         // needs to exclude the cases where the size is limited by the fixed aspect ratio.
         if (info.maxAspectRatio > 0) {
-            final float aspectRatio =
-                    (float) Math.max(appWidth, appHeight) / Math.min(appWidth, appHeight);
+            final float aspectRatio = (0.5f + Math.max(appWidth, appHeight))
+                    / Math.min(appWidth, appHeight);
             if (aspectRatio >= info.maxAspectRatio) {
                 // The current size has reached the max aspect ratio.
                 return false;
@@ -6309,26 +6311,25 @@
         }
 
         // The role of CompatDisplayInsets is like the override bounds.
-        final DisplayContent display = getDisplay();
-        if (display != null) {
-            mCompatDisplayInsets = new CompatDisplayInsets(display.mDisplayContent,
-                    getWindowConfiguration().getBounds(),
-                    getWindowConfiguration().tasksAreFloating());
-        }
+        mCompatDisplayInsets = new CompatDisplayInsets(mDisplayContent, this);
     }
 
-    private void clearSizeCompatMode() {
+    @VisibleForTesting
+    void clearSizeCompatMode() {
+        mSizeCompatScale = 1f;
+        mSizeCompatBounds = null;
         mCompatDisplayInsets = null;
         onRequestedOverrideConfigurationChanged(EMPTY);
     }
 
     @Override
     public boolean matchParentBounds() {
-        if (super.matchParentBounds()) {
+        if (super.matchParentBounds() && mCompatDisplayInsets == null) {
             return true;
         }
-        // An activity in size compatibility mode may have override bounds which equals to its
-        // parent bounds, so the exact bounds should also be checked.
+        // An activity in size compatibility mode may have resolved override bounds, so the exact
+        // bounds should also be checked. Otherwise IME window will show with offset. See
+        // {@link DisplayContent#isImeAttachedToApp}.
         final WindowContainer parent = getParent();
         return parent == null || parent.getBounds().equals(getResolvedOverrideBounds());
     }
@@ -6348,7 +6349,8 @@
             // can use the resolved configuration directly. Otherwise (e.g. fixed aspect ratio),
             // the rotated configuration is used as parent configuration to compute the actual
             // resolved configuration. It is like putting the activity in a rotated container.
-            mTmpConfig.setTo(resolvedConfig);
+            mTmpConfig.setTo(newParentConfiguration);
+            mTmpConfig.updateFrom(resolvedConfig);
             newParentConfiguration = mTmpConfig;
         }
         if (mCompatDisplayInsets != null) {
@@ -6356,17 +6358,31 @@
         } else {
             // We ignore activities' requested orientation in multi-window modes. Task level may
             // take them into consideration when calculating bounds.
-            if (getParent() != null && getParent().inMultiWindowMode()) {
+            if (inMultiWindowMode()) {
                 resolvedConfig.orientation = Configuration.ORIENTATION_UNDEFINED;
             }
-            applyAspectRatio(resolvedConfig.windowConfiguration.getBounds(),
-                    newParentConfiguration.windowConfiguration.getAppBounds(),
-                    newParentConfiguration.windowConfiguration.getBounds());
-            // If the activity has override bounds, the relative configuration (e.g. screen size,
-            // layout) needs to be resolved according to the bounds.
-            if (task != null && !resolvedConfig.windowConfiguration.getBounds().isEmpty()) {
-                task.computeConfigResourceOverrides(getResolvedOverrideConfiguration(),
-                        newParentConfiguration);
+            final Rect parentAppBounds = newParentConfiguration.windowConfiguration.getAppBounds();
+            final Rect parentBounds = newParentConfiguration.windowConfiguration.getBounds();
+            // Use tmp bounds to calculate aspect ratio so we can know whether the activity should
+            // use restricted size (resolvedBounds may be the requested override bounds).
+            mTmpBounds.setEmpty();
+            applyAspectRatio(mTmpBounds, parentAppBounds, parentBounds);
+            // If the out bounds is not empty, it means the activity cannot fill parent's app
+            // bounds, then the relative configuration (e.g. screen size, layout) needs to be
+            // resolved according to the bounds.
+            if (!mTmpBounds.isEmpty()) {
+                final Rect resolvedBounds = resolvedConfig.windowConfiguration.getBounds();
+                resolvedBounds.set(mTmpBounds);
+                // Exclude the horizontal decor area because the activity will be centered
+                // horizontally in parent's app bounds to balance the visual appearance.
+                resolvedBounds.left = parentAppBounds.left;
+                task.computeConfigResourceOverrides(resolvedConfig, newParentConfiguration,
+                        getFixedRotationTransformDisplayInfo());
+                final int offsetX = getHorizontalCenterOffset(
+                        parentAppBounds.width(), resolvedBounds.width());
+                if (offsetX > 0) {
+                    offsetBounds(resolvedConfig, offsetX - resolvedBounds.left, 0 /* offsetY */);
+                }
             }
         }
 
@@ -6384,65 +6400,41 @@
     private void resolveSizeCompatModeConfiguration(Configuration newParentConfiguration) {
         final Configuration resolvedConfig = getResolvedOverrideConfiguration();
         final Rect resolvedBounds = resolvedConfig.windowConfiguration.getBounds();
-
-        Rect parentBounds = new Rect(newParentConfiguration.windowConfiguration.getBounds());
-
-        int orientation = getRequestedConfigurationOrientation();
-        if (orientation == ORIENTATION_UNDEFINED) {
-            orientation = newParentConfiguration.orientation;
-        }
-        int rotation = resolvedConfig.windowConfiguration.getRotation();
-        if (rotation == ROTATION_UNDEFINED) {
-            rotation = newParentConfiguration.windowConfiguration.getRotation();
+        final int requestedOrientation = getRequestedConfigurationOrientation();
+        final boolean orientationRequested = requestedOrientation != ORIENTATION_UNDEFINED;
+        final int orientation = orientationRequested
+                ? requestedOrientation
+                : newParentConfiguration.orientation;
+        int rotation = newParentConfiguration.windowConfiguration.getRotation();
+        final boolean canChangeOrientation = handlesOrientationChangeFromDescendant();
+        if (canChangeOrientation && mCompatDisplayInsets.mIsRotatable
+                && !mCompatDisplayInsets.mIsFloating) {
+            // Use parent rotation because the original display can rotate by requested orientation.
+            resolvedConfig.windowConfiguration.setRotation(rotation);
+        } else {
+            final int overrideRotation = resolvedConfig.windowConfiguration.getRotation();
+            if (overrideRotation != ROTATION_UNDEFINED) {
+                rotation = overrideRotation;
+            }
         }
 
         // Use compat insets to lock width and height. We should not use the parent width and height
         // because apps in compat mode should have a constant width and height. The compat insets
         // are locked when the app is first launched and are never changed after that, so we can
         // rely on them to contain the original and unchanging width and height of the app.
-        final Rect compatDisplayBounds = mTmpBounds;
-        mCompatDisplayInsets.getDisplayBoundsByRotation(compatDisplayBounds, rotation);
         final Rect containingAppBounds = new Rect();
-        mCompatDisplayInsets.getFrameByOrientation(containingAppBounds, orientation);
-
-        // Center containingAppBounds horizontally and aligned to top of parent. Both
-        // are usually the same unless the app was frozen with an orientation letterbox.
-        int left = compatDisplayBounds.left + compatDisplayBounds.width() / 2
-                - containingAppBounds.width() / 2;
-        resolvedBounds.set(left, compatDisplayBounds.top, left + containingAppBounds.width(),
-                compatDisplayBounds.top + containingAppBounds.height());
-
-        if (rotation != ROTATION_UNDEFINED) {
-            // Ensure the parent and container bounds won't overlap with insets.
-            Task.intersectWithInsetsIfFits(containingAppBounds, compatDisplayBounds,
-                    mCompatDisplayInsets.mNonDecorInsets[rotation]);
-            Task.intersectWithInsetsIfFits(parentBounds, compatDisplayBounds,
-                    mCompatDisplayInsets.mNonDecorInsets[rotation]);
+        final Rect containingBounds = mTmpBounds;
+        mCompatDisplayInsets.getContainerBounds(containingAppBounds, containingBounds, rotation,
+                orientation, orientationRequested, canChangeOrientation);
+        resolvedBounds.set(containingAppBounds);
+        // The size of floating task is fixed (only swap), so the aspect ratio is already correct.
+        if (!mCompatDisplayInsets.mIsFloating) {
+            applyAspectRatio(resolvedBounds, containingAppBounds, containingBounds);
         }
 
-        applyAspectRatio(resolvedBounds, containingAppBounds, compatDisplayBounds);
-
-        // Center horizontally in parent and align to top of parent - this is a UX choice
-        left = parentBounds.left + parentBounds.width() / 2 - resolvedBounds.width() / 2;
-        resolvedBounds.set(left, parentBounds.top, left + resolvedBounds.width(),
-                parentBounds.top + resolvedBounds.height());
-
-        // We want to get as much of the app on the screen even if insets cover it. This is because
-        // insets change but an app's bounds are more permanent after launch. After computing insets
-        // and horizontally centering resolvedBounds, the resolvedBounds may end up outside parent
-        // bounds. This is okay only if the resolvedBounds exceed their parent on the bottom and
-        // right, because that is clipped when the final bounds are computed. To reach this state,
-        // we first try and push the app as much inside the parent towards the top and left (the
-        // min). The app may then end up outside the parent by going too far left and top, so we
-        // push it back into the parent by taking the max with parent left and top.
-        Rect fullParentBounds = newParentConfiguration.windowConfiguration.getBounds();
-        resolvedBounds.offsetTo(Math.max(fullParentBounds.left,
-                Math.min(fullParentBounds.right - resolvedBounds.width(), resolvedBounds.left)),
-                Math.max(fullParentBounds.top,
-                        Math.min(fullParentBounds.bottom - resolvedBounds.height(),
-                                resolvedBounds.top)));
-
-        // Use resolvedBounds to compute other override configurations such as appBounds
+        // Use resolvedBounds to compute other override configurations such as appBounds. The bounds
+        // are calculated in compat container space. The actual position on screen will be applied
+        // later, so the calculation is simpler that doesn't need to involve offset from parent.
         task.computeConfigResourceOverrides(resolvedConfig, newParentConfiguration,
                 mCompatDisplayInsets);
         // Use current screen layout as source because the size of app is independent to parent.
@@ -6455,6 +6447,79 @@
         if (resolvedConfig.screenWidthDp == resolvedConfig.screenHeightDp) {
             resolvedConfig.orientation = newParentConfiguration.orientation;
         }
+
+        // Below figure is an example that puts an activity which was launched in a larger container
+        // into a smaller container.
+        //   The outermost rectangle is the real display bounds.
+        //   "@" is the parent app bounds.
+        //   "#" is the {@code resolvedBounds} that applies to application.
+        //   "*" is the {@code mSizeCompatBounds} that used to show on screen if scaled.
+        // ------------------------------
+        // |                            |
+        // |    @@@@*********@@@@###    |
+        // |    @   *       *   @  #    |
+        // |    @   *       *   @  #    |
+        // |    @   *       *   @  #    |
+        // |    @@@@*********@@@@  #    |
+        // ---------#--------------#-----
+        //          #              #
+        //          ################
+        // The application is still layouted in "#" since it was launched, and it will be visually
+        // scaled and positioned to "*".
+
+        // Calculates the scale and offset to horizontal center the size compatibility bounds into
+        // the region which is available to application.
+        final Rect parentBounds = newParentConfiguration.windowConfiguration.getBounds();
+        final Rect parentAppBounds = newParentConfiguration.windowConfiguration.getAppBounds();
+        final Rect resolvedAppBounds = resolvedConfig.windowConfiguration.getAppBounds();
+        final int contentW = resolvedAppBounds.width();
+        final int contentH = resolvedAppBounds.height();
+        final int viewportW = parentAppBounds.width();
+        final int viewportH = parentAppBounds.height();
+        // Only allow to scale down.
+        mSizeCompatScale = (contentW <= viewportW && contentH <= viewportH)
+                ? 1f : Math.min((float) viewportW / contentW, (float) viewportH / contentH);
+        final int screenTopInset = parentAppBounds.top - parentBounds.top;
+        final boolean topNotAligned = screenTopInset != resolvedAppBounds.top - resolvedBounds.top;
+        if (mSizeCompatScale != 1f || topNotAligned) {
+            if (mSizeCompatBounds == null) {
+                mSizeCompatBounds = new Rect();
+            }
+            mSizeCompatBounds.set(resolvedAppBounds);
+            mSizeCompatBounds.offsetTo(0, 0);
+            mSizeCompatBounds.scale(mSizeCompatScale);
+            // The insets are included in height, e.g. the area of real cutout shouldn't be scaled.
+            mSizeCompatBounds.bottom += screenTopInset;
+        } else {
+            mSizeCompatBounds = null;
+        }
+
+        // Center horizontally in parent (app bounds) and align to top of parent (bounds)
+        // - this is a UX choice.
+        final int offsetX = getHorizontalCenterOffset(
+                (int) viewportW, (int) (contentW * mSizeCompatScale));
+        // Above coordinates are in "@" space, now place "*" and "#" to screen space.
+        final int screenPosX = parentAppBounds.left + offsetX;
+        final int screenPosY = parentBounds.top;
+        if (screenPosX > 0 || screenPosY > 0) {
+            if (mSizeCompatBounds != null) {
+                mSizeCompatBounds.offset(screenPosX, screenPosY);
+            }
+            // Add the global coordinates and remove the local coordinates.
+            final int dx = screenPosX - resolvedBounds.left;
+            final int dy = screenPosY - resolvedBounds.top;
+            offsetBounds(resolvedConfig, dx, dy);
+        }
+    }
+
+    /** @return The horizontal offset of putting the content in the center of viewport. */
+    private static int getHorizontalCenterOffset(int viewportW, int contentW) {
+        return (int) ((viewportW - contentW + 1) * 0.5f);
+    }
+
+    private static void offsetBounds(Configuration inOutConfig, int offsetX, int offsetY) {
+        inOutConfig.windowConfiguration.getBounds().offset(offsetX, offsetY);
+        inOutConfig.windowConfiguration.getAppBounds().offset(offsetX, offsetY);
     }
 
     @Override
@@ -6488,40 +6553,6 @@
         return task != null ? task.getBounds() : getBounds();
     }
 
-    /**
-     * Calculates the scale and offset to horizontal center the size compatibility bounds into the
-     * region which is available to application.
-     */
-    private void calculateCompatBoundsTransformation(Configuration newParentConfig) {
-        final Rect parentAppBounds = newParentConfig.windowConfiguration.getAppBounds();
-        final Rect parentBounds = newParentConfig.windowConfiguration.getBounds();
-        final Rect viewportBounds = parentAppBounds != null ? parentAppBounds : parentBounds;
-        final Rect appBounds = getWindowConfiguration().getAppBounds();
-        final Rect contentBounds = appBounds != null ? appBounds : getResolvedOverrideBounds();
-        final float contentW = contentBounds.width();
-        final float contentH = contentBounds.height();
-        final float viewportW = viewportBounds.width();
-        final float viewportH = viewportBounds.height();
-        // Only allow to scale down.
-        mSizeCompatScale = (contentW <= viewportW && contentH <= viewportH)
-                ? 1 : Math.min(viewportW / contentW, viewportH / contentH);
-        final int offsetX = (int) ((viewportW - contentW * mSizeCompatScale + 1) * 0.5f)
-                + viewportBounds.left;
-
-        if (mSizeCompatBounds == null) {
-            mSizeCompatBounds = new Rect();
-        }
-        mSizeCompatBounds.set(contentBounds);
-        mSizeCompatBounds.offsetTo(0, 0);
-        mSizeCompatBounds.scale(mSizeCompatScale);
-        // Ensure to align the top with the parent.
-        mSizeCompatBounds.top = parentBounds.top;
-        // The decor inset is included in height.
-        mSizeCompatBounds.bottom += viewportBounds.top;
-        mSizeCompatBounds.left += offsetX;
-        mSizeCompatBounds.right += offsetX;
-    }
-
     @Override
     public void onConfigurationChanged(Configuration newParentConfig) {
         if (mCompatDisplayInsets != null) {
@@ -6553,28 +6584,6 @@
         }
         super.onConfigurationChanged(newParentConfig);
 
-        if (shouldUseSizeCompatMode()) {
-            final Rect overrideBounds = getResolvedOverrideBounds();
-            if (task != null && !overrideBounds.isEmpty()) {
-                final Rect taskBounds = task.getBounds();
-                // Since we only center the activity horizontally, if only the fixed height is
-                // smaller than its container, the override bounds don't need to take effect.
-                if ((overrideBounds.width() != taskBounds.width()
-                        || overrideBounds.height() > taskBounds.height())) {
-                    calculateCompatBoundsTransformation(newParentConfig);
-                    updateSurfacePosition();
-                } else if (mSizeCompatBounds != null) {
-                    mSizeCompatBounds = null;
-                    mSizeCompatScale = 1f;
-                    updateSurfacePosition();
-                }
-            } else if (overrideBounds.isEmpty()) {
-                mSizeCompatBounds = null;
-                mSizeCompatScale = 1f;
-                updateSurfacePosition();
-            }
-        }
-
         // Configuration's equality doesn't consider seq so if only seq number changes in resolved
         // override configuration. Therefore ConfigurationContainer doesn't change merged override
         // configuration, but it's used to push configuration changes so explicitly update that.
@@ -7471,12 +7480,13 @@
     /**
      * The precomputed insets of the display in each rotation. This is used to make the size
      * compatibility mode activity compute the configuration without relying on its current display.
+     * This currently only supports fullscreen and freeform windowing mode.
      */
     static class CompatDisplayInsets {
-        private final int mDisplayWidth;
-        private final int mDisplayHeight;
         private final int mWidth;
         private final int mHeight;
+        final boolean mIsFloating;
+        final boolean mIsRotatable;
 
         /**
          * The nonDecorInsets for each rotation. Includes the navigation bar and cutout insets. It
@@ -7490,30 +7500,34 @@
          */
         final Rect[] mStableInsets = new Rect[4];
 
-        /**
-         * Sets bounds to {@link Task} bounds. For apps in freeform, the task bounds are the
-         * parent bounds from the app's perspective. No insets because within a window.
-         */
-        CompatDisplayInsets(DisplayContent display, Rect activityBounds, boolean isFloating) {
-            mDisplayWidth = display.mBaseDisplayWidth;
-            mDisplayHeight = display.mBaseDisplayHeight;
-            mWidth = activityBounds.width();
-            mHeight = activityBounds.height();
-            if (isFloating) {
-                Rect emptyRect = new Rect();
+        /** Constructs the environment to simulate the bounds behavior of the given container. */
+        CompatDisplayInsets(DisplayContent display, WindowContainer container) {
+            mIsFloating = container.getWindowConfiguration().tasksAreFloating();
+            mIsRotatable = !mIsFloating && !display.ignoreRotationForApps();
+            if (mIsFloating) {
+                final Rect containerBounds = container.getWindowConfiguration().getBounds();
+                mWidth = containerBounds.width();
+                mHeight = containerBounds.height();
+                // For apps in freeform, the task bounds are the parent bounds from the app's
+                // perspective. No insets because within a window.
+                final Rect emptyRect = new Rect();
                 for (int rotation = 0; rotation < 4; rotation++) {
                     mNonDecorInsets[rotation] = emptyRect;
                     mStableInsets[rotation] = emptyRect;
                 }
                 return;
             }
+
+            // If the activity is not floating, assume it fills the display.
+            mWidth = display.mBaseDisplayWidth;
+            mHeight = display.mBaseDisplayHeight;
             final DisplayPolicy policy = display.getDisplayPolicy();
             for (int rotation = 0; rotation < 4; rotation++) {
                 mNonDecorInsets[rotation] = new Rect();
                 mStableInsets[rotation] = new Rect();
                 final boolean rotated = (rotation == ROTATION_90 || rotation == ROTATION_270);
-                final int dw = rotated ? mDisplayHeight : mDisplayWidth;
-                final int dh = rotated ? mDisplayWidth : mDisplayHeight;
+                final int dw = rotated ? mHeight : mWidth;
+                final int dh = rotated ? mWidth : mHeight;
                 final DisplayCutout cutout = display.calculateDisplayCutoutForRotation(rotation)
                         .getDisplayCutout();
                 policy.getNonDecorInsetsLw(rotation, dw, dh, cutout, mNonDecorInsets[rotation]);
@@ -7522,10 +7536,10 @@
             }
         }
 
-        void getDisplayBoundsByRotation(Rect outBounds, int rotation) {
+        void getBoundsByRotation(Rect outBounds, int rotation) {
             final boolean rotated = (rotation == ROTATION_90 || rotation == ROTATION_270);
-            final int dw = rotated ? mDisplayHeight : mDisplayWidth;
-            final int dh = rotated ? mDisplayWidth : mDisplayHeight;
+            final int dw = rotated ? mHeight : mWidth;
+            final int dh = rotated ? mWidth : mHeight;
             outBounds.set(0, 0, dw, dh);
         }
 
@@ -7536,6 +7550,51 @@
             outBounds.set(0, 0, isLandscape ? longSide : shortSide,
                     isLandscape ? shortSide : longSide);
         }
+
+        /** Gets the horizontal centered container bounds for size compatibility mode. */
+        void getContainerBounds(Rect outAppBounds, Rect outBounds, int rotation, int orientation,
+                boolean orientationRequested, boolean canChangeOrientation) {
+            if (mIsFloating) {
+                getFrameByOrientation(outBounds, orientation);
+                outAppBounds.set(outBounds);
+                return;
+            }
+
+            if (mIsRotatable && canChangeOrientation) {
+                getBoundsByRotation(outBounds, rotation);
+                if (orientationRequested) {
+                    getFrameByOrientation(outAppBounds, orientation);
+                } else {
+                    outAppBounds.set(outBounds);
+                }
+            } else {
+                outBounds.set(0, 0, mWidth, mHeight);
+                getFrameByOrientation(outAppBounds, orientation);
+                if (orientationRequested && !canChangeOrientation
+                        && (outAppBounds.width() > outAppBounds.height()) != (mWidth > mHeight)) {
+                    // The orientation is mismatched but the display cannot rotate. The bounds will
+                    // fit to the short side of display.
+                    if (orientation == ORIENTATION_LANDSCAPE) {
+                        outAppBounds.bottom = (int) ((float) mWidth * mWidth / mHeight);
+                        outAppBounds.right = mWidth;
+                    } else {
+                        outAppBounds.bottom = mHeight;
+                        outAppBounds.right = (int) ((float) mHeight * mHeight / mWidth);
+                    }
+                    outAppBounds.offset(getHorizontalCenterOffset(outBounds.width(),
+                            outAppBounds.width()), 0 /* dy */);
+                } else {
+                    outAppBounds.set(outBounds);
+                }
+            }
+
+            if (rotation != ROTATION_UNDEFINED) {
+                // Ensure the app bounds won't overlap with insets.
+                Task.intersectWithInsetsIfFits(outAppBounds, outBounds, mNonDecorInsets[rotation]);
+            }
+            // The horizontal position is centered and it should not cover insets.
+            outBounds.left = outAppBounds.left;
+        }
     }
 
     private static class AppSaturationInfo {
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index 598389b..bc12923 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -356,8 +356,7 @@
             final PooledFunction f = PooledLambda.obtainFunction(
                     EnsureVisibleActivitiesConfigHelper::processActivity, this,
                     PooledLambda.__(ActivityRecord.class));
-            forAllActivities(f, start.getTask(), true /*includeBoundary*/,
-                    true /*traverseTopToBottom*/);
+            forAllActivities(f, start, true /*includeBoundary*/, true /*traverseTopToBottom*/);
             f.recycle();
 
             if (mUpdateConfig) {
@@ -556,9 +555,9 @@
         }
     }
 
-    ActivityStack(DisplayContent display, int id, ActivityStackSupervisor supervisor,
-            int activityType, ActivityInfo info, Intent intent) {
-        this(supervisor.mService, id, info, intent, null /*voiceSession*/, null /*voiceInteractor*/,
+    ActivityStack(ActivityTaskManagerService atmService, int id, int activityType,
+            ActivityInfo info, Intent intent) {
+        this(atmService, id, info, intent, null /*voiceSession*/, null /*voiceInteractor*/,
                 null /*taskDescription*/, null /*stack*/);
 
         setActivityType(activityType);
@@ -3287,7 +3286,7 @@
         if (DisplayContent.alwaysCreateStack(getWindowingMode(), getActivityType())) {
             // This stack will only contain one task, so just return itself since all stacks ara now
             // tasks and all tasks are now stacks.
-            task = reuseAsLeafTask(voiceSession, voiceInteractor, info, activity);
+            task = reuseAsLeafTask(voiceSession, voiceInteractor, intent, info, activity);
         } else {
             // Create child task since this stack can contain multiple tasks.
             final int taskId = activity != null
@@ -3945,15 +3944,8 @@
         proto.write(MIN_HEIGHT, mMinHeight);
 
         proto.write(FILLS_PARENT, matchParentBounds());
+        getRawBounds().dumpDebug(proto, BOUNDS);
 
-        if (!matchParentBounds()) {
-            final Rect bounds = getRequestedOverrideBounds();
-            bounds.dumpDebug(proto, BOUNDS);
-        } else if (getStack().getTile() != null) {
-            // use tile's bounds here for cts.
-            final Rect bounds = getStack().getTile().getRequestedOverrideBounds();
-            bounds.dumpDebug(proto, BOUNDS);
-        }
         getOverrideDisplayedBounds().dumpDebug(proto, DISPLAYED_BOUNDS);
         if (mLastNonFullscreenBounds != null) {
             mLastNonFullscreenBounds.dumpDebug(proto, LAST_NON_FULLSCREEN_BOUNDS);
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 770dabf..98c8b61 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -2800,14 +2800,8 @@
         userId = handleIncomingUser(Binder.getCallingPid(), callingUid, userId, "getRecentTasks");
         final boolean allowed = isGetTasksAllowed("getRecentTasks", Binder.getCallingPid(),
                 callingUid);
-        final boolean detailed = checkGetTasksPermission(
-                android.Manifest.permission.GET_DETAILED_TASKS, Binder.getCallingPid(),
-                UserHandle.getAppId(callingUid))
-                == PackageManager.PERMISSION_GRANTED;
-
         synchronized (mGlobalLock) {
-            return mRecentTasks.getRecentTasks(maxNum, flags, allowed, detailed, userId,
-                    callingUid);
+            return mRecentTasks.getRecentTasks(maxNum, flags, allowed, userId, callingUid);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index 4916c31..f86aeb2 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -172,6 +172,7 @@
     private static final int MAX_CLIP_REVEAL_TRANSITION_DURATION = 420;
     private static final int THUMBNAIL_APP_TRANSITION_DURATION = 336;
     private static final long APP_TRANSITION_TIMEOUT_MS = 5000;
+    static final int MAX_APP_TRANSITION_DURATION = 3 * 1000; // 3 secs.
 
     private final Context mContext;
     private final WindowManagerService mService;
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 5cd2930..55ce84e 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -1657,6 +1657,11 @@
         mIgnoreRotationForApps = isNonDecorDisplayCloseToSquare(Surface.ROTATION_0, width, height);
     }
 
+    /** @return {@code true} if the orientation requested from application will be ignored. */
+    boolean ignoreRotationForApps() {
+        return mIgnoreRotationForApps;
+    }
+
     private boolean isNonDecorDisplayCloseToSquare(int rotation, int width, int height) {
         final DisplayCutout displayCutout =
                 calculateDisplayCutoutForRotation(rotation).getDisplayCutout();
@@ -5874,8 +5879,8 @@
             // Since this stack will be put into a tile, its windowingMode will be inherited.
             windowingMode = WINDOWING_MODE_UNDEFINED;
         }
-        final ActivityStack stack = new ActivityStack(this, stackId,
-                mRootWindowContainer.mStackSupervisor, activityType, info, intent);
+        final ActivityStack stack = (ActivityStack) Task.create(mAtmService, stackId, activityType,
+                info, intent);
         addStack(stack, onTop ? POSITION_TOP : POSITION_BOTTOM);
         stack.setWindowingMode(windowingMode, false /* animate */, false /* showRecents */,
                 false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */,
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 497c473..00f892f 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -25,12 +25,16 @@
 import static android.content.res.Configuration.UI_MODE_TYPE_CAR;
 import static android.content.res.Configuration.UI_MODE_TYPE_MASK;
 import static android.view.Display.TYPE_INTERNAL;
+import static android.view.InsetsState.ITYPE_BOTTOM_DISPLAY_CUTOUT;
 import static android.view.InsetsState.ITYPE_BOTTOM_GESTURES;
 import static android.view.InsetsState.ITYPE_BOTTOM_TAPPABLE_ELEMENT;
+import static android.view.InsetsState.ITYPE_LEFT_DISPLAY_CUTOUT;
 import static android.view.InsetsState.ITYPE_LEFT_GESTURES;
 import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
+import static android.view.InsetsState.ITYPE_RIGHT_DISPLAY_CUTOUT;
 import static android.view.InsetsState.ITYPE_RIGHT_GESTURES;
 import static android.view.InsetsState.ITYPE_STATUS_BAR;
+import static android.view.InsetsState.ITYPE_TOP_DISPLAY_CUTOUT;
 import static android.view.InsetsState.ITYPE_TOP_GESTURES;
 import static android.view.InsetsState.ITYPE_TOP_TAPPABLE_ELEMENT;
 import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
@@ -80,6 +84,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_SCREENSHOT;
 import static android.view.WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
@@ -981,13 +986,15 @@
                             "DisplayPolicy");
                 }
                 break;
-            case TYPE_STATUS_BAR_PANEL:
+            case TYPE_STATUS_BAR_ADDITIONAL:
             case TYPE_STATUS_BAR_SUB_PANEL:
             case TYPE_VOICE_INTERACTION_STARTING:
                 mContext.enforcePermission(
                         android.Manifest.permission.STATUS_BAR_SERVICE, callingPid, callingUid,
                         "DisplayPolicy");
                 break;
+            case TYPE_STATUS_BAR_PANEL:
+                return WindowManagerGlobal.ADD_INVALID_TYPE;
         }
         return ADD_OKAY;
     }
@@ -1032,7 +1039,9 @@
 
                             // In Gesture Nav, navigation bar frame is larger than frame to
                             // calculate inset.
-                            if (mNavigationBarPosition == NAV_BAR_BOTTOM) {
+                            if (navigationBarPosition(displayFrames.mDisplayWidth,
+                                    displayFrames.mDisplayHeight,
+                                    displayFrames.mRotation) == NAV_BAR_BOTTOM) {
                                 sTmpRect.set(displayFrames.mUnrestricted);
                                 sTmpRect.intersectUnchecked(displayFrames.mDisplayCutoutSafe);
                                 inOutFrame.top = sTmpRect.bottom
@@ -1234,10 +1243,7 @@
      * most recent layout, so they are not guaranteed to be correct.
      *
      * @param attrs The LayoutParams of the window.
-     * @param taskBounds The bounds of the task this window is on or {@code null} if no task is
-     *                   associated with the window.
-     * @param displayFrames display frames.
-     * @param floatingStack Whether the window's stack is floating.
+     * @param windowToken The token of the window.
      * @param outFrame The frame of the window.
      * @param outContentInsets The areas covered by system windows, expressed as positive insets.
      * @param outStableInsets The areas covered by stable system windows irrespective of their
@@ -1246,8 +1252,7 @@
      * @return Whether to always consume the system bars.
      *         See {@link #areSystemBarsForcedShownLw(WindowState)}.
      */
-    public boolean getLayoutHintLw(LayoutParams attrs, Rect taskBounds,
-            DisplayFrames displayFrames, boolean floatingStack, Rect outFrame,
+    boolean getLayoutHint(LayoutParams attrs, WindowToken windowToken, Rect outFrame,
             Rect outContentInsets, Rect outStableInsets,
             DisplayCutout.ParcelableWrapper outDisplayCutout) {
         final int fl = PolicyControl.getWindowFlags(null, attrs);
@@ -1260,6 +1265,18 @@
                 && (fl & FLAG_LAYOUT_INSET_DECOR) != 0;
         final boolean screenDecor = (pfl & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0;
 
+        final boolean isFixedRotationTransforming =
+                windowToken != null && windowToken.isFixedRotationTransforming();
+        final ActivityRecord activity = windowToken != null ? windowToken.asActivityRecord() : null;
+        final Task task = activity != null ? activity.getTask() : null;
+        final Rect taskBounds = isFixedRotationTransforming
+                // Use token (activity) bounds if it is rotated because its task is not rotated.
+                ? windowToken.getBounds()
+                : (task != null ? task.getBounds() : null);
+        final DisplayFrames displayFrames = isFixedRotationTransforming
+                ? windowToken.getFixedRotationTransformDisplayFrames()
+                : mDisplayContent.mDisplayFrames;
+
         if (layoutInScreenAndInsetDecor && !screenDecor) {
             if ((sysUiVis & SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
                     || (attrs.getFitInsetsTypes() & Type.navigationBars()) == 0) {
@@ -1268,15 +1285,10 @@
                 outFrame.set(displayFrames.mRestricted);
             }
 
-            final Rect sf;
-            if (floatingStack) {
-                sf = null;
-            } else {
-                sf = displayFrames.mStable;
-            }
-
+            final boolean isFloatingTask = task != null && task.isFloating();
+            final Rect sf = isFloatingTask ? null : displayFrames.mStable;
             final Rect cf;
-            if (floatingStack) {
+            if (isFloatingTask) {
                 cf = null;
             } else if ((sysUiVis & View.SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0) {
                 if ((fl & FLAG_FULLSCREEN) != 0) {
@@ -1425,6 +1437,8 @@
      */
     void simulateLayoutDisplay(DisplayFrames displayFrames, InsetsState insetsState, int uiMode) {
         displayFrames.onBeginLayout();
+        updateInsetsStateForDisplayCutout(displayFrames, insetsState);
+        insetsState.setDisplayFrame(displayFrames.mUnrestricted);
         final WindowFrames simulatedWindowFrames = new WindowFrames();
         if (mNavigationBar != null) {
             simulateLayoutDecorWindow(
@@ -1452,6 +1466,8 @@
      */
     public void beginLayoutLw(DisplayFrames displayFrames, int uiMode) {
         displayFrames.onBeginLayout();
+        updateInsetsStateForDisplayCutout(displayFrames,
+                mDisplayContent.getInsetsStateController().getRawInsetsState());
         mSystemGestures.screenWidth = displayFrames.mUnrestricted.width();
         mSystemGestures.screenHeight = displayFrames.mUnrestricted.height();
 
@@ -1518,6 +1534,23 @@
         mLastNotificationShadeForcesShowingNavigation = notificationShadeForcesShowingNavigation;
     }
 
+    private static void updateInsetsStateForDisplayCutout(DisplayFrames displayFrames,
+            InsetsState state) {
+        if (displayFrames.mDisplayCutout.getDisplayCutout().isEmpty()) {
+            state.removeSource(ITYPE_LEFT_DISPLAY_CUTOUT);
+            state.removeSource(ITYPE_TOP_DISPLAY_CUTOUT);
+            state.removeSource(ITYPE_RIGHT_DISPLAY_CUTOUT);
+            state.removeSource(ITYPE_BOTTOM_DISPLAY_CUTOUT);
+            return;
+        }
+        final Rect u = displayFrames.mUnrestricted;
+        final Rect s = displayFrames.mDisplayCutoutSafe;
+        state.getSource(ITYPE_LEFT_DISPLAY_CUTOUT).setFrame(u.left, u.top, s.left, u.bottom);
+        state.getSource(ITYPE_TOP_DISPLAY_CUTOUT).setFrame(u.left, u.top, u.right, s.top);
+        state.getSource(ITYPE_RIGHT_DISPLAY_CUTOUT).setFrame(s.right, u.top, u.right, u.bottom);
+        state.getSource(ITYPE_BOTTOM_DISPLAY_CUTOUT).setFrame(u.left, s.bottom, u.right, u.bottom);
+    }
+
     /** Enforces the last layout policy for display frames. */
     private void postAdjustDisplayFrames(DisplayFrames displayFrames) {
         if (displayFrames.mDisplayCutoutSafe.top > displayFrames.mUnrestricted.top) {
@@ -2073,7 +2106,7 @@
                     setAttachedWindowFrames(win, fl, adjust, attached, true, pf, df, cf, vf,
                             displayFrames);
                 } else {
-                    if (type == TYPE_STATUS_BAR_PANEL || type == TYPE_STATUS_BAR_SUB_PANEL) {
+                    if (type == TYPE_STATUS_BAR_ADDITIONAL || type == TYPE_STATUS_BAR_SUB_PANEL) {
                         // Status bar panels are the only windows who can go on top of the status
                         // bar. They are protected by the STATUS_BAR_SERVICE permission, so they
                         // have the same privileges as the status bar itself.
@@ -2140,7 +2173,7 @@
                         + "): IN_SCREEN");
                 // A window that has requested to fill the entire screen just
                 // gets everything, period.
-                if (type == TYPE_STATUS_BAR_PANEL || type == TYPE_STATUS_BAR_SUB_PANEL) {
+                if (type == TYPE_STATUS_BAR_ADDITIONAL || type == TYPE_STATUS_BAR_SUB_PANEL) {
                     cf.set(displayFrames.mUnrestricted);
                     df.set(displayFrames.mUnrestricted);
                     pf.set(displayFrames.mUnrestricted);
@@ -2222,7 +2255,7 @@
                         + "): normal window");
                 // Otherwise, a normal window must be placed inside the content
                 // of all screen decorations.
-                if (type == TYPE_STATUS_BAR_PANEL) {
+                if (type == TYPE_STATUS_BAR_ADDITIONAL) {
                     // Status bar panels can go on
                     // top of the status bar. They are protected by the STATUS_BAR_SERVICE
                     // permission, so they have the same privileges as the status bar itself.
diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
index 7255968..7491376 100644
--- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
@@ -64,13 +64,14 @@
             ProtoLog.d(WM_DEBUG_IME, "Run showImeRunner");
             // Target should still be the same.
             if (isImeTargetFromDisplayContentAndImeSame()) {
+                final InsetsControlTarget target = mDisplayContent.mInputMethodControlTarget;
                 ProtoLog.d(WM_DEBUG_IME, "call showInsets(ime) on %s",
-                        mDisplayContent.mInputMethodControlTarget.getWindow().getName());
-                mDisplayContent.mInputMethodControlTarget.showInsets(
-                        WindowInsets.Type.ime(), true /* fromIme */);
+                        target.getWindow() != null ? target.getWindow().getName() : "");
+                target.showInsets(WindowInsets.Type.ime(), true /* fromIme */);
             }
             abortShowImePostLayout();
         };
+        mDisplayContent.mWmService.requestTraversal();
     }
 
     void checkShowImePostLayout() {
diff --git a/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
index 2f02ffb..8b1a0c9 100644
--- a/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
+++ b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
@@ -185,7 +185,7 @@
         final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT,
                 ViewGroup.LayoutParams.MATCH_PARENT,
-                WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL,
+                WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL,
                 WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                         | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
                         | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
diff --git a/services/core/java/com/android/server/wm/InsetsControlTarget.java b/services/core/java/com/android/server/wm/InsetsControlTarget.java
index 20e8f2b..bbc6c2b 100644
--- a/services/core/java/com/android/server/wm/InsetsControlTarget.java
+++ b/services/core/java/com/android/server/wm/InsetsControlTarget.java
@@ -23,7 +23,12 @@
  * Generalization of an object that can control insets state.
  */
 interface InsetsControlTarget {
-    void notifyInsetsControlChanged();
+
+    /**
+     * Notifies the control target that the insets control has changed.
+     */
+    default void notifyInsetsControlChanged() {
+    };
 
     /**
      * @return {@link WindowState} of this target, if any.
diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java
index b663336..01f9888 100644
--- a/services/core/java/com/android/server/wm/InsetsPolicy.java
+++ b/services/core/java/com/android/server/wm/InsetsPolicy.java
@@ -20,6 +20,8 @@
 import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+import static android.view.InsetsController.ANIMATION_TYPE_HIDE;
+import static android.view.InsetsController.ANIMATION_TYPE_SHOW;
 import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_HIDDEN;
 import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_SHOWN;
 import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
@@ -55,9 +57,11 @@
     private final InsetsStateController mStateController;
     private final DisplayContent mDisplayContent;
     private final DisplayPolicy mPolicy;
-    private final TransientControlTarget mTransientControlTarget = new TransientControlTarget();
     private final IntArray mShowingTransientTypes = new IntArray();
 
+    /** For resetting visibilities of insets sources. */
+    private final InsetsControlTarget mDummyControlTarget = new InsetsControlTarget() { };
+
     private WindowState mFocusedWin;
     private BarWindow mStatusBar = new BarWindow(StatusBarManager.WINDOW_STATUS_BAR);
     private BarWindow mNavBar = new BarWindow(StatusBarManager.WINDOW_NAVIGATION_BAR);
@@ -141,12 +145,15 @@
      */
     InsetsState getInsetsForDispatch(WindowState target) {
         InsetsState state = mStateController.getInsetsForDispatch(target);
-        if (mShowingTransientTypes.size() == 0) {
-            return state;
-        }
         for (int i = mShowingTransientTypes.size() - 1; i >= 0; i--) {
             state.setSourceVisible(mShowingTransientTypes.get(i), false);
         }
+        if (mFocusedWin != null && getStatusControlTarget(mFocusedWin) == mDummyControlTarget) {
+            state.setSourceVisible(ITYPE_STATUS_BAR, mFocusedWin.getRequestedInsetsState());
+        }
+        if (mFocusedWin != null && getNavControlTarget(mFocusedWin) == mDummyControlTarget) {
+            state.setSourceVisible(ITYPE_NAVIGATION_BAR, mFocusedWin.getRequestedInsetsState());
+        }
         return state;
     }
 
@@ -192,71 +199,71 @@
 
     private @Nullable InsetsControlTarget getFakeStatusControlTarget(
             @Nullable WindowState focused) {
-        if (mShowingTransientTypes.indexOf(ITYPE_STATUS_BAR) != -1) {
-            return focused;
-        }
-        return null;
+        return getStatusControlTarget(focused) == mDummyControlTarget ? focused : null;
     }
 
     private @Nullable InsetsControlTarget getFakeNavControlTarget(@Nullable WindowState focused) {
-        if (mShowingTransientTypes.indexOf(ITYPE_NAVIGATION_BAR) != -1) {
-            return focused;
-        }
-        return null;
+        return getNavControlTarget(focused) == mDummyControlTarget ? focused : null;
     }
 
     private @Nullable InsetsControlTarget getStatusControlTarget(@Nullable WindowState focusedWin) {
         if (mShowingTransientTypes.indexOf(ITYPE_STATUS_BAR) != -1) {
-            return mTransientControlTarget;
+            return mDummyControlTarget;
         }
         if (focusedWin == mPolicy.getNotificationShade()) {
             // Notification shade has control anyways, no reason to force anything.
             return focusedWin;
         }
-        if (areSystemBarsForciblyVisible() || isKeyguardOrStatusBarForciblyVisible()) {
+        if (forceShowsSystemBarsForWindowingMode()) {
+            // Status bar is forcibly shown for the windowing mode which is a steady state.
+            // We don't want the client to control the status bar, and we will dispatch the real
+            // visibility of status bar to the client.
             return null;
         }
+        if (forceShowsStatusBarTransiently()) {
+            // Status bar is forcibly shown transiently, and its new visibility won't be
+            // dispatched to the client so that we can keep the layout stable. We will dispatch the
+            // fake control to the client, so that it can re-show the bar during this scenario.
+            return mDummyControlTarget;
+        }
         return focusedWin;
     }
 
     private @Nullable InsetsControlTarget getNavControlTarget(@Nullable WindowState focusedWin) {
         if (mShowingTransientTypes.indexOf(ITYPE_NAVIGATION_BAR) != -1) {
-            return mTransientControlTarget;
+            return mDummyControlTarget;
         }
         if (focusedWin == mPolicy.getNotificationShade()) {
             // Notification shade has control anyways, no reason to force anything.
             return focusedWin;
         }
-        if (areSystemBarsForciblyVisible() || isNavBarForciblyVisible()) {
+        if (forceShowsSystemBarsForWindowingMode()) {
+            // Navigation bar is forcibly shown for the windowing mode which is a steady state.
+            // We don't want the client to control the navigation bar, and we will dispatch the real
+            // visibility of navigation bar to the client.
             return null;
         }
+        if (forceShowsNavigationBarTransiently()) {
+            // Navigation bar is forcibly shown transiently, and its new visibility won't be
+            // dispatched to the client so that we can keep the layout stable. We will dispatch the
+            // fake control to the client, so that it can re-show the bar during this scenario.
+            return mDummyControlTarget;
+        }
         return focusedWin;
     }
 
-    private boolean isKeyguardOrStatusBarForciblyVisible() {
-        final WindowState statusBar = mPolicy.getStatusBar();
-        if (statusBar != null) {
-            // TODO(b/118118435): Pretend to the app that it's still able to control it?
-            if ((statusBar.mAttrs.privateFlags & PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR) != 0) {
-                return true;
-            }
-        }
-        return false;
+    private boolean forceShowsStatusBarTransiently() {
+        final WindowState win = mPolicy.getStatusBar();
+        return win != null && (win.mAttrs.privateFlags & PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR) != 0;
     }
 
-    private boolean isNavBarForciblyVisible() {
-        final WindowState notificationShade = mPolicy.getNotificationShade();
-        if (notificationShade == null) {
-            return false;
-        }
-        if ((notificationShade.mAttrs.privateFlags
-                & PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION) != 0) {
-            return true;
-        }
-        return false;
+    private boolean forceShowsNavigationBarTransiently() {
+        final WindowState win = mPolicy.getNotificationShade();
+        return win != null
+                && (win.mAttrs.privateFlags & PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION) != 0;
     }
 
-    private boolean areSystemBarsForciblyVisible() {
+    private boolean forceShowsSystemBarsForWindowingMode() {
         final boolean isDockedStackVisible =
                 mDisplayContent.isStackVisible(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
         final boolean isFreeformStackVisible =
@@ -277,7 +284,7 @@
         for (int i = showingTransientTypes.size() - 1; i >= 0; i--) {
             InsetsSourceProvider provider =
                     mStateController.getSourceProvider(showingTransientTypes.get(i));
-            InsetsSourceControl control = provider.getControl(mTransientControlTarget);
+            InsetsSourceControl control = provider.getControl(mDummyControlTarget);
             if (control == null || control.getLeash() == null) {
                 continue;
             }
@@ -354,7 +361,8 @@
                         mListener, typesReady, this, mListener.getDurationMs(),
                         InsetsController.INTERPOLATOR, true,
                         show ? LAYOUT_INSETS_DURING_ANIMATION_SHOWN
-                                : LAYOUT_INSETS_DURING_ANIMATION_HIDDEN);
+                                : LAYOUT_INSETS_DURING_ANIMATION_HIDDEN,
+                        show ? ANIMATION_TYPE_SHOW : ANIMATION_TYPE_HIDE);
                 SurfaceAnimationThread.getHandler().post(
                         () -> mListener.onReady(mAnimationControl, typesReady));
             }
@@ -409,11 +417,4 @@
             }
         }
     }
-
-    private class TransientControlTarget implements InsetsControlTarget {
-
-        @Override
-        public void notifyInsetsControlChanged() {
-        }
-    }
 }
diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
index 0d3f6b9..58aefdc 100644
--- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
@@ -190,7 +190,10 @@
 
     /** @return A new source computed by the specified window frame in the given display frames. */
     InsetsSource createSimulatedSource(DisplayFrames displayFrames, WindowFrames windowFrames) {
-        final InsetsSource source = new InsetsSource(mSource);
+        // Don't copy visible frame because it might not be calculated in the provided display
+        // frames and it is not significant for this usage.
+        final InsetsSource source = new InsetsSource(mSource.getType());
+        source.setVisible(mSource.isVisible());
         mTmpRect.set(windowFrames.mFrame);
         if (mFrameProvider != null) {
             mFrameProvider.accept(displayFrames, mWin, mTmpRect);
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
index b3890cd..e1906da 100644
--- a/services/core/java/com/android/server/wm/InsetsStateController.java
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -61,8 +61,7 @@
             w.notifyInsetsChanged();
         }
     };
-    private final InsetsControlTarget mEmptyImeControlTarget = () -> {
-    };
+    private final InsetsControlTarget mEmptyImeControlTarget = new InsetsControlTarget() { };
 
     InsetsStateController(DisplayContent displayContent) {
         mDisplayContent = displayContent;
diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java
index 3771b3e..fc358ce 100644
--- a/services/core/java/com/android/server/wm/RecentTasks.java
+++ b/services/core/java/com/android/server/wm/RecentTasks.java
@@ -56,7 +56,6 @@
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
-import android.os.Bundle;
 import android.os.Environment;
 import android.os.IBinder;
 import android.os.RemoteException;
@@ -874,16 +873,16 @@
      * @return the list of recent tasks for presentation.
      */
     ParceledListSlice<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, int flags,
-            boolean getTasksAllowed, boolean getDetailedTasks, int userId, int callingUid) {
+            boolean getTasksAllowed, int userId, int callingUid) {
         return new ParceledListSlice<>(getRecentTasksImpl(maxNum, flags, getTasksAllowed,
-                getDetailedTasks, userId, callingUid));
+                userId, callingUid));
     }
 
     /**
      * @return the list of recent tasks for presentation.
      */
     private ArrayList<ActivityManager.RecentTaskInfo> getRecentTasksImpl(int maxNum, int flags,
-            boolean getTasksAllowed, boolean getDetailedTasks, int userId, int callingUid) {
+            boolean getTasksAllowed, int userId, int callingUid) {
         final boolean withExcluded = (flags & RECENT_WITH_EXCLUDED) != 0;
 
         if (!isUserRunning(userId, FLAG_AND_UNLOCKED)) {
@@ -961,12 +960,7 @@
                 continue;
             }
 
-            final ActivityManager.RecentTaskInfo rti = createRecentTaskInfo(task);
-            if (!getDetailedTasks) {
-                rti.baseIntent.replaceExtras((Bundle) null);
-            }
-
-            res.add(rti);
+            res.add(createRecentTaskInfo(task));
         }
         return res;
     }
@@ -1745,8 +1739,7 @@
             // Reset the header flag for the next block
             printedHeader = false;
             ArrayList<ActivityManager.RecentTaskInfo> tasks = getRecentTasksImpl(Integer.MAX_VALUE,
-                    0, true /* getTasksAllowed */, false /* getDetailedTasks */,
-                    mService.getCurrentUserId(), SYSTEM_UID);
+                    0, true /* getTasksAllowed */, mService.getCurrentUserId(), SYSTEM_UID);
             for (int i = 0; i < tasks.size(); i++) {
                 final ActivityManager.RecentTaskInfo taskInfo = tasks.get(i);
                 if (!printedHeader) {
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index 54cea93..5cd0169 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -804,11 +804,11 @@
      *
      * This avoids any screen rotation animation when animating to the Recents view.
      */
-    void applyFixedRotationTransformIfNeeded(@NonNull WindowToken wallpaper) {
+    void linkFixedRotationTransformIfNeeded(@NonNull WindowToken wallpaper) {
         if (mTargetActivityRecord == null) {
             return;
         }
-        wallpaper.applyFixedRotationTransform(mTargetActivityRecord);
+        wallpaper.linkFixedRotationTransform(mTargetActivityRecord);
     }
 
     @VisibleForTesting
diff --git a/services/core/java/com/android/server/wm/RunningTasks.java b/services/core/java/com/android/server/wm/RunningTasks.java
index 9593ea0..02077fb 100644
--- a/services/core/java/com/android/server/wm/RunningTasks.java
+++ b/services/core/java/com/android/server/wm/RunningTasks.java
@@ -28,7 +28,6 @@
 import com.android.internal.util.function.pooled.PooledConsumer;
 import com.android.internal.util.function.pooled.PooledLambda;
 
-import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
@@ -44,7 +43,6 @@
             (o1, o2) -> Long.signum(o2.lastActiveTime - o1.lastActiveTime);
 
     private final TreeSet<Task> mTmpSortedSet = new TreeSet<>(LAST_ACTIVE_TIME_COMPARATOR);
-    private final ArrayList<Task> mTmpStackTasks = new ArrayList<>();
 
     private int mCallingUid;
     private int mUserId;
@@ -132,8 +130,7 @@
 
     /** Constructs a {@link RunningTaskInfo} from a given {@param task}. */
     private RunningTaskInfo createRunningTaskInfo(Task task) {
-        final RunningTaskInfo rti = new RunningTaskInfo();
-        task.fillTaskInfo(rti);
+        final RunningTaskInfo rti = task.getTaskInfo();
         // Fill in some deprecated values
         rti.id = rti.taskId;
         return rti;
diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
index f6cdac5..68975b9 100644
--- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
+++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
@@ -205,7 +205,7 @@
             SurfaceControl.ScreenshotGraphicBuffer gb =
                     mService.mDisplayManagerInternal.screenshot(displayId);
             if (gb != null) {
-                mStartLuma = RotationAnimationUtils.getAvgBorderLuma(gb.getGraphicBuffer(),
+                mStartLuma = RotationAnimationUtils.getMedianBorderLuma(gb.getGraphicBuffer(),
                         gb.getColorSpace());
                 try {
                     surface.attachAndQueueBufferWithColorSpace(gb.getGraphicBuffer(),
diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java
index 1e54e69..3b3234a 100644
--- a/services/core/java/com/android/server/wm/SurfaceAnimator.java
+++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java
@@ -48,6 +48,7 @@
 class SurfaceAnimator {
 
     private static final String TAG = TAG_WITH_CLASS_NAME ? "SurfaceAnimator" : TAG_WM;
+
     private final WindowManagerService mService;
     private AnimationAdapter mAnimation;
     private @AnimationType int mAnimationType;
@@ -142,7 +143,7 @@
         }
         mLeash = freezer != null ? freezer.takeLeashForAnimation() : null;
         if (mLeash == null) {
-            mLeash = createAnimationLeash(mAnimatable, surface, t,
+            mLeash = createAnimationLeash(mAnimatable, surface, t, type,
                     mAnimatable.getSurfaceWidth(), mAnimatable.getSurfaceHeight(), 0 /* x */,
                     0 /* y */, hidden);
             mAnimatable.onAnimationLeashCreated(t, mLeash);
@@ -372,13 +373,16 @@
     }
 
     static SurfaceControl createAnimationLeash(Animatable animatable, SurfaceControl surface,
-            Transaction t, int width, int height, int x, int y, boolean hidden) {
+            Transaction t, @AnimationType int type, int width, int height, int x, int y,
+            boolean hidden) {
         if (DEBUG_ANIM) Slog.i(TAG, "Reparenting to leash");
         final SurfaceControl.Builder builder = animatable.makeAnimationLeash()
                 .setParent(animatable.getAnimationLeashParent())
                 .setHidden(hidden)
-                .setName(surface + " - animation-leash");
+                .setName(surface + " - animation-leash")
+                .setColorLayer();
         final SurfaceControl leash = builder.build();
+        t.unsetColor(leash);
         t.setWindowCrop(leash, width, height);
         t.setPosition(leash, x, y);
         t.show(leash);
diff --git a/services/core/java/com/android/server/wm/SurfaceFreezer.java b/services/core/java/com/android/server/wm/SurfaceFreezer.java
index 20435ea..36861aa 100644
--- a/services/core/java/com/android/server/wm/SurfaceFreezer.java
+++ b/services/core/java/com/android/server/wm/SurfaceFreezer.java
@@ -18,6 +18,7 @@
 
 import static com.android.server.wm.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
 import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_SCREEN_ROTATION;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -73,8 +74,8 @@
         mFreezeBounds.set(startBounds);
 
         mLeash = SurfaceAnimator.createAnimationLeash(mAnimatable, mAnimatable.getSurfaceControl(),
-                t, startBounds.width(), startBounds.height(), startBounds.left, startBounds.top,
-                false /* hidden */);
+                t, ANIMATION_TYPE_SCREEN_ROTATION, startBounds.width(), startBounds.height(),
+                startBounds.left, startBounds.top, false /* hidden */);
         mAnimatable.onAnimationLeashCreated(t, mLeash);
 
         SurfaceControl freezeTarget = mAnimatable.getFreezeSnapshotTarget();
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 27acb23..faa6bac8 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -581,10 +581,10 @@
     }
 
     Task reuseAsLeafTask(IVoiceInteractionSession _voiceSession, IVoiceInteractor _voiceInteractor,
-            ActivityInfo info, ActivityRecord activity) {
+            Intent intent, ActivityInfo info, ActivityRecord activity) {
         voiceSession = _voiceSession;
         voiceInteractor = _voiceInteractor;
-        setIntent(activity);
+        setIntent(activity, intent, info);
         setMinDimensions(info);
         return this;
     }
@@ -919,12 +919,23 @@
         return SystemClock.elapsedRealtime() - lastActiveTime;
     }
 
-    /** Sets the original intent, and the calling uid and package. */
+    /** @see #setIntent(ActivityRecord, Intent, ActivityInfo) */
     void setIntent(ActivityRecord r) {
+        setIntent(r, null /* intent */, null /* info */);
+    }
+
+    /**
+     * Sets the original intent, and the calling uid and package.
+     *
+     * @param r The activity that started the task
+     * @param intent The task info which could be different from {@code r.intent} if set.
+     * @param info The activity info which could be different from {@code r.info} if set.
+     */
+    void setIntent(ActivityRecord r, @Nullable Intent intent, @Nullable ActivityInfo info) {
         mCallingUid = r.launchedFromUid;
         mCallingPackage = r.launchedFromPackage;
         mCallingFeatureId = r.launchedFromFeatureId;
-        setIntent(r.intent, r.info);
+        setIntent(intent != null ? intent : r.intent, info != null ? info : r.info);
         setLockTaskAuth(r);
 
         final WindowContainer parent = getParent();
@@ -2109,8 +2120,29 @@
     }
 
     void computeConfigResourceOverrides(@NonNull Configuration inOutConfig,
+            @NonNull Configuration parentConfig, @Nullable DisplayInfo overrideDisplayInfo) {
+        if (overrideDisplayInfo != null) {
+            // Make sure the screen related configs can be computed by the provided display info.
+            inOutConfig.windowConfiguration.setAppBounds(null);
+            inOutConfig.screenLayout = Configuration.SCREENLAYOUT_UNDEFINED;
+            inOutConfig.screenWidthDp = Configuration.SCREEN_WIDTH_DP_UNDEFINED;
+            inOutConfig.screenHeightDp = Configuration.SCREEN_HEIGHT_DP_UNDEFINED;
+        }
+        computeConfigResourceOverrides(inOutConfig, parentConfig, overrideDisplayInfo,
+                null /* compatInsets */);
+    }
+
+    void computeConfigResourceOverrides(@NonNull Configuration inOutConfig,
             @NonNull Configuration parentConfig) {
-        computeConfigResourceOverrides(inOutConfig, parentConfig, null /* compatInsets */);
+        computeConfigResourceOverrides(inOutConfig, parentConfig, null /* overrideDisplayInfo */,
+                null /* compatInsets */);
+    }
+
+    void computeConfigResourceOverrides(@NonNull Configuration inOutConfig,
+            @NonNull Configuration parentConfig,
+            @Nullable ActivityRecord.CompatDisplayInsets compatInsets) {
+        computeConfigResourceOverrides(inOutConfig, parentConfig, null /* overrideDisplayInfo */,
+                compatInsets);
     }
 
     /**
@@ -2122,7 +2154,7 @@
      * just be inherited from the parent configuration.
      **/
     void computeConfigResourceOverrides(@NonNull Configuration inOutConfig,
-            @NonNull Configuration parentConfig,
+            @NonNull Configuration parentConfig, @Nullable DisplayInfo overrideDisplayInfo,
             @Nullable ActivityRecord.CompatDisplayInsets compatInsets) {
         int windowingMode = inOutConfig.windowConfiguration.getWindowingMode();
         if (windowingMode == WINDOWING_MODE_UNDEFINED) {
@@ -2165,9 +2197,11 @@
             if (insideParentBounds && WindowConfiguration.isFloating(windowingMode)) {
                 mTmpNonDecorBounds.set(mTmpFullBounds);
                 mTmpStableBounds.set(mTmpFullBounds);
-            } else if (insideParentBounds && getDisplayContent() != null) {
-                final DisplayInfo di = new DisplayInfo();
-                getDisplayContent().mDisplay.getDisplayInfo(di);
+            } else if (insideParentBounds
+                    && (overrideDisplayInfo != null || getDisplayContent() != null)) {
+                final DisplayInfo di = overrideDisplayInfo != null
+                        ? overrideDisplayInfo
+                        : getDisplayContent().getDisplayInfo();
 
                 // For calculating screenWidthDp, screenWidthDp, we use the stable inset screen
                 // area, i.e. the screen area without the system bars.
@@ -2184,7 +2218,7 @@
                 if (rotation != ROTATION_UNDEFINED && compatInsets != null) {
                     mTmpNonDecorBounds.set(mTmpFullBounds);
                     mTmpStableBounds.set(mTmpFullBounds);
-                    compatInsets.getDisplayBoundsByRotation(mTmpBounds, rotation);
+                    compatInsets.getBoundsByRotation(mTmpBounds, rotation);
                     intersectWithInsetsIfFits(mTmpNonDecorBounds, mTmpBounds,
                             compatInsets.mNonDecorInsets[rotation]);
                     intersectWithInsetsIfFits(mTmpStableBounds, mTmpBounds,
@@ -3281,8 +3315,8 @@
     }
 
     /**
-     * Fills in a {@link TaskInfo} with information from this task.
-     * @param info the {@link TaskInfo} to fill in
+     * Fills in a {@link TaskInfo} with information from this task. Note that the base intent in the
+     * task info will not include any extras or clip data.
      */
     void fillTaskInfo(TaskInfo info) {
         getNumRunningActivities(mReuseActivitiesReport);
@@ -3294,7 +3328,7 @@
         final Intent baseIntent = getBaseIntent();
         // Make a copy of base intent because this is like a snapshot info.
         // Besides, {@link RecentTasks#getRecentTasksImpl} may modify it.
-        info.baseIntent = baseIntent == null ? new Intent() : new Intent(baseIntent);
+        info.baseIntent = baseIntent == null ? new Intent() : baseIntent.cloneFilter();
         info.baseActivity = mReuseActivitiesReport.base != null
                 ? mReuseActivitiesReport.base.intent.getComponent()
                 : null;
@@ -3636,6 +3670,11 @@
         sTaskFactory = factory;
     }
 
+    static Task create(ActivityTaskManagerService service, int taskId, int activityType,
+            ActivityInfo info, Intent intent) {
+        return getTaskFactory().create(service, taskId, activityType, info, intent);
+    }
+
     static Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
             Intent intent, IVoiceInteractionSession voiceSession,
             IVoiceInteractor voiceInteractor, ActivityStack stack) {
@@ -3643,11 +3682,6 @@
                 service, taskId, info, intent, voiceSession, voiceInteractor, stack);
     }
 
-    static Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
-            Intent intent, TaskDescription taskDescription, ActivityStack stack) {
-        return getTaskFactory().create(service, taskId, info, intent, taskDescription, stack);
-    }
-
     static Task restoreFromXml(XmlPullParser in, ActivityStackSupervisor stackSupervisor)
             throws IOException, XmlPullParserException {
         return getTaskFactory().restoreFromXml(in, stackSupervisor);
@@ -3659,6 +3693,10 @@
      * {@link #setTaskFactory(TaskFactory)}.
      */
     static class TaskFactory {
+        Task create(ActivityTaskManagerService service, int taskId, int activityType,
+                ActivityInfo info, Intent intent) {
+            return new ActivityStack(service, taskId, activityType, info, intent);
+        }
 
         Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
                 Intent intent, IVoiceInteractionSession voiceSession,
@@ -3667,12 +3705,6 @@
                     null /*taskDescription*/, stack);
         }
 
-        Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
-                Intent intent, TaskDescription taskDescription, ActivityStack stack) {
-            return new ActivityStack(service, taskId, info, intent, null /*voiceSession*/,
-                    null /*voiceInteractor*/, taskDescription, stack);
-        }
-
         /**
          * Should only be used when we're restoring {@link Task} from storage.
          */
diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java
index 0f1e623..8f5d048 100644
--- a/services/core/java/com/android/server/wm/TaskOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java
@@ -253,8 +253,7 @@
                 final int nextId = display.getNextStackId();
                 TaskTile tile = new TaskTile(mService, nextId, windowingMode);
                 display.addTile(tile);
-                RunningTaskInfo out = new RunningTaskInfo();
-                tile.fillTaskInfo(out);
+                RunningTaskInfo out = tile.getTaskInfo();
                 mLastSentTaskInfos.put(tile, out);
                 return out;
             }
@@ -412,9 +411,7 @@
                                 && !ArrayUtils.contains(activityTypes, as.getActivityType())) {
                             continue;
                         }
-                        final RunningTaskInfo info = new RunningTaskInfo();
-                        as.fillTaskInfo(info);
-                        out.add(info);
+                        out.add(as.getTaskInfo());
                     }
                 }
                 return out;
@@ -447,9 +444,7 @@
                             && !ArrayUtils.contains(activityTypes, task.getActivityType())) {
                         continue;
                     }
-                    final RunningTaskInfo info = new RunningTaskInfo();
-                    task.fillTaskInfo(info);
-                    out.add(info);
+                    out.add(task.getTaskInfo());
                 }
                 return out;
             }
diff --git a/services/core/java/com/android/server/wm/WallpaperWindowToken.java b/services/core/java/com/android/server/wm/WallpaperWindowToken.java
index 1e22141..e29580b 100644
--- a/services/core/java/com/android/server/wm/WallpaperWindowToken.java
+++ b/services/core/java/com/android/server/wm/WallpaperWindowToken.java
@@ -28,6 +28,8 @@
 import android.os.RemoteException;
 import android.util.Slog;
 import android.view.DisplayInfo;
+import android.view.ViewGroup;
+import android.view.WindowManager;
 import android.view.animation.Animation;
 
 import java.util.function.Consumer;
@@ -134,14 +136,12 @@
                 // If the Recents animation is running, and the wallpaper target is the animating
                 // task we want the wallpaper to be rotated in the same orientation as the
                 // RecentsAnimation's target (e.g the launcher)
-                recentsAnimationController.applyFixedRotationTransformIfNeeded(this);
+                recentsAnimationController.linkFixedRotationTransformIfNeeded(this);
             } else if (wallpaperTarget != null
                     && wallpaperTarget.mToken.hasFixedRotationTransform()) {
                 // If the wallpaper target has a fixed rotation, we want the wallpaper to follow its
                 // rotation
-                applyFixedRotationTransform(wallpaperTarget.mToken);
-            } else if (hasFixedRotationTransform()) {
-                clearFixedRotationTransform();
+                linkFixedRotationTransform(wallpaperTarget.mToken);
             }
         }
 
@@ -168,6 +168,23 @@
         }
     }
 
+    @Override
+    void adjustWindowParams(WindowState win, WindowManager.LayoutParams attrs) {
+        if (attrs.height == ViewGroup.LayoutParams.MATCH_PARENT
+                || attrs.width == ViewGroup.LayoutParams.MATCH_PARENT) {
+            return;
+        }
+
+        final DisplayInfo displayInfo = win.getDisplayInfo();
+
+        final float layoutScale = Math.max(
+                (float) displayInfo.logicalHeight / (float) attrs.height,
+                (float) displayInfo.logicalWidth / (float) attrs.width);
+        attrs.height = (int) (attrs.height * layoutScale);
+        attrs.width = (int) (attrs.width * layoutScale);
+        attrs.flags |= WindowManager.LayoutParams.FLAG_SCALED;
+    }
+
     boolean hasVisibleNotDrawnWallpaper() {
         for (int j = mChildren.size() - 1; j >= 0; --j) {
             final WindowState wallpaper = mChildren.get(j);
diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
index b6be386..a60db94 100644
--- a/services/core/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -164,6 +164,8 @@
                     }
                 }
 
+                cancelAnimation();
+
                 if (mService.mWatermark != null) {
                     mService.mWatermark.drawIfNeeded();
                 }
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index a0a70dc..b12c698 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -29,6 +29,7 @@
 import static android.view.SurfaceControl.Transaction;
 
 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.IdentifierProto.HASH_CODE;
 import static com.android.server.wm.IdentifierProto.TITLE;
 import static com.android.server.wm.IdentifierProto.USER_ID;
@@ -2172,7 +2173,16 @@
                 displayConfig.uiMode, displayConfig.orientation, frame, displayFrame, insets,
                 surfaceInsets, stableInsets, isVoiceInteraction, inFreeformWindowingMode(), this);
         if (a != null) {
-            if (DEBUG_ANIM) logWithStack(TAG, "Loaded animation " + a + " for " + this);
+            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 (DEBUG_ANIM) {
+                logWithStack(TAG, "Loaded animation " + a + " for " + this
+                        + ", duration: " + ((a != null) ? a.getDuration() : 0));
+            }
             final int containingWidth = frame.width();
             final int containingHeight = frame.height();
             a.initialize(containingWidth, containingHeight, width, height);
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 0169a4f..3f4f629 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -1645,23 +1645,8 @@
                 prepareNoneTransitionForRelaunching(activity);
             }
 
-            final DisplayFrames displayFrames = displayContent.mDisplayFrames;
-            // TODO: Not sure if onDisplayInfoUpdated() call is needed.
-            final DisplayInfo displayInfo = displayContent.getDisplayInfo();
-            displayFrames.onDisplayInfoUpdated(displayInfo,
-                    displayContent.calculateDisplayCutoutForRotation(displayInfo.rotation));
-            final Rect taskBounds;
-            final boolean floatingStack;
-            if (activity != null && activity.getTask() != null) {
-                taskBounds = mTmpRect;
-                tokenActivity.getTask().getBounds(mTmpRect);
-                floatingStack = activity.getTask().isFloating();
-            } else {
-                taskBounds = null;
-                floatingStack = false;
-            }
-            if (displayPolicy.getLayoutHintLw(win.mAttrs, taskBounds, displayFrames, floatingStack,
-                    outFrame, outContentInsets, outStableInsets, outDisplayCutout)) {
+            if (displayPolicy.getLayoutHint(win.mAttrs, token, outFrame, outContentInsets,
+                    outStableInsets, outDisplayCutout)) {
                 res |= WindowManagerGlobal.ADD_FLAG_ALWAYS_CONSUME_SYSTEM_BARS;
             }
             outInsetsState.set(win.getInsetsState(),
@@ -2137,6 +2122,7 @@
             int privateFlagChanges = 0;
             if (attrs != null) {
                 displayPolicy.adjustWindowParamsLw(win, attrs, pid, uid);
+                win.mToken.adjustWindowParams(win, attrs);
                 // if they don't have the permission, mask out the status bar bits
                 if (seq == win.mSeq) {
                     int systemUiVisibility = attrs.systemUiVisibility
@@ -8036,27 +8022,8 @@
                             + "could not be found!");
                 }
                 final WindowToken windowToken = dc.getWindowToken(attrs.token);
-                final ActivityRecord activity;
-                if (windowToken != null && windowToken.asActivityRecord() != null) {
-                    activity = windowToken.asActivityRecord();
-                } else {
-                    activity = null;
-                }
-                final Rect taskBounds;
-                final boolean floatingStack;
-                if (activity != null && activity.getTask() != null) {
-                    final Task task = activity.getTask();
-                    taskBounds = new Rect();
-                    task.getBounds(taskBounds);
-                    floatingStack = task.isFloating();
-                } else {
-                    taskBounds = null;
-                    floatingStack = false;
-                }
-                final DisplayFrames displayFrames = dc.mDisplayFrames;
-                final DisplayPolicy policy = dc.getDisplayPolicy();
-                policy.getLayoutHintLw(attrs, taskBounds, displayFrames, floatingStack,
-                        new Rect(), outContentInsets, outStableInsets, displayCutout);
+                dc.getDisplayPolicy().getLayoutHint(attrs, windowToken, mTmpRect /* outFrame */,
+                        outContentInsets, outStableInsets, displayCutout);
             }
         } finally {
             Binder.restoreCallingIdentity(origId);
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index e452c4a..f140ce8 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -81,7 +81,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
 import static android.view.WindowManager.LayoutParams.TYPE_SEARCH_BAR;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
-import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
 import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
@@ -1448,6 +1448,7 @@
         }
     }
 
+    /** @return The display frames in use by this window. */
     DisplayFrames getDisplayFrames(DisplayFrames originalFrames) {
         final DisplayFrames diplayFrames = mToken.getFixedRotationTransformDisplayFrames();
         if (diplayFrames != null) {
@@ -3208,7 +3209,7 @@
             case TYPE_SEARCH_BAR:
             case TYPE_STATUS_BAR:
             case TYPE_NOTIFICATION_SHADE:
-            case TYPE_STATUS_BAR_PANEL:
+            case TYPE_STATUS_BAR_ADDITIONAL:
             case TYPE_STATUS_BAR_SUB_PANEL:
             case TYPE_SYSTEM_DIALOG:
             case TYPE_VOLUME_OVERLAY:
@@ -3495,8 +3496,7 @@
      */
     void notifyInsetsChanged() {
         try {
-            mClient.insetsChanged(
-                    getDisplayContent().getInsetsPolicy().getInsetsForDispatch(this));
+            mClient.insetsChanged(getInsetsState());
         } catch (RemoteException e) {
             Slog.w(TAG, "Failed to deliver inset state change w=" + this, e);
         }
@@ -3506,9 +3506,8 @@
     public void notifyInsetsControlChanged() {
         final InsetsStateController stateController =
                 getDisplayContent().getInsetsStateController();
-        final InsetsPolicy policy = getDisplayContent().getInsetsPolicy();
         try {
-            mClient.insetsControlChanged(policy.getInsetsForDispatch(this),
+            mClient.insetsControlChanged(getInsetsState(),
                     stateController.getControlsForDispatch(this));
         } catch (RemoteException e) {
             Slog.w(TAG, "Failed to deliver inset state change", e);
diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
index 76a0315..98d9c8fc 100644
--- a/services/core/java/com/android/server/wm/WindowToken.java
+++ b/services/core/java/com/android/server/wm/WindowToken.java
@@ -48,6 +48,7 @@
 import android.view.DisplayInfo;
 import android.view.InsetsState;
 import android.view.SurfaceControl;
+import android.view.WindowManager;
 
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.protolog.common.ProtoLog;
@@ -106,17 +107,24 @@
      * rotated by the given rotated display info, frames and insets.
      */
     private static class FixedRotationTransformState {
+        final WindowToken mOwner;
         final DisplayInfo mDisplayInfo;
         final DisplayFrames mDisplayFrames;
         final InsetsState mInsetsState;
         final Configuration mRotatedOverrideConfiguration;
         final SeamlessRotator mRotator;
-        final ArrayList<WindowContainer<?>> mRotatedContainers = new ArrayList<>();
+        /**
+         * The tokens that share the same transform. Their end time of transform are the same as
+         * {@link #mOwner}.
+         */
+        final ArrayList<WindowToken> mAssociatedTokens = new ArrayList<>(1);
+        final ArrayList<WindowContainer<?>> mRotatedContainers = new ArrayList<>(3);
         boolean mIsTransforming = true;
 
-        FixedRotationTransformState(DisplayInfo rotatedDisplayInfo,
+        FixedRotationTransformState(WindowToken owner, DisplayInfo rotatedDisplayInfo,
                 DisplayFrames rotatedDisplayFrames, InsetsState rotatedInsetsState,
                 Configuration rotatedConfig, int currentRotation) {
+            mOwner = owner;
             mDisplayInfo = rotatedDisplayInfo;
             mDisplayFrames = rotatedDisplayFrames;
             mInsetsState = rotatedInsetsState;
@@ -428,34 +436,43 @@
         final InsetsState insetsState = new InsetsState();
         mDisplayContent.getDisplayPolicy().simulateLayoutDisplay(displayFrames, insetsState,
                 mDisplayContent.getConfiguration().uiMode);
-        mFixedRotationTransformState = new FixedRotationTransformState(info, displayFrames,
+        mFixedRotationTransformState = new FixedRotationTransformState(this, info, displayFrames,
                 insetsState, new Configuration(config), mDisplayContent.getRotation());
         onConfigurationChanged(getParent().getConfiguration());
     }
 
     /**
-     * Copies the {@link FixedRotationTransformState} (if any) from the other WindowToken to this
-     * one.
+     * Reuses the {@link FixedRotationTransformState} (if any) from the other WindowToken to this
+     * one. This takes the same effect as {@link #applyFixedRotationTransform}, but the linked state
+     * can only be cleared by the state owner.
      */
-    void applyFixedRotationTransform(WindowToken other) {
-        final FixedRotationTransformState fixedRotationState = other.mFixedRotationTransformState;
-        if (fixedRotationState != null) {
-            applyFixedRotationTransform(fixedRotationState.mDisplayInfo,
-                    fixedRotationState.mDisplayFrames,
-                    fixedRotationState.mRotatedOverrideConfiguration);
-        }
-    }
-
-    /** Clears the transformation and continue updating the orientation change of display. */
-    void clearFixedRotationTransform() {
-        if (mFixedRotationTransformState == null) {
+    void linkFixedRotationTransform(WindowToken other) {
+        if (mFixedRotationTransformState != null) {
             return;
         }
-        mFixedRotationTransformState.resetTransform();
+        final FixedRotationTransformState fixedRotationState = other.mFixedRotationTransformState;
+        if (fixedRotationState == null) {
+            return;
+        }
+        mFixedRotationTransformState = fixedRotationState;
+        fixedRotationState.mAssociatedTokens.add(this);
+        onConfigurationChanged(getParent().getConfiguration());
+    }
+
+    /**
+     * Clears the transformation and continue updating the orientation change of display. Only the
+     * state owner can clear the transform state.
+     */
+    void clearFixedRotationTransform() {
+        final FixedRotationTransformState state = mFixedRotationTransformState;
+        if (state == null || state.mOwner != this) {
+            return;
+        }
+        state.resetTransform();
         // Clear the flag so if the display will be updated to the same orientation, the transform
         // won't take effect. The state is cleared at the end, because it is used to indicate that
         // other windows can use seamless rotation when applying rotation to display.
-        mFixedRotationTransformState.mIsTransforming = false;
+        state.mIsTransforming = false;
         final boolean changed =
                 mDisplayContent.continueUpdateOrientationForDiffOrienLaunchingApp(this);
         // If it is not the launching app or the display is not rotated, make sure the merged
@@ -463,6 +480,9 @@
         if (!changed) {
             onMergedOverrideConfigurationChanged();
         }
+        for (int i = state.mAssociatedTokens.size() - 1; i >= 0; i--) {
+            state.mAssociatedTokens.get(i).mFixedRotationTransformState = null;
+        }
         mFixedRotationTransformState = null;
     }
 
@@ -500,6 +520,14 @@
         rotator.unrotateInsets(outSurfaceInsets);
     }
 
+    /**
+     * Gives a chance to this {@link WindowToken} to adjust the {@link
+     * android.view.WindowManager.LayoutParams} of its windows.
+     */
+    void adjustWindowParams(WindowState win, WindowManager.LayoutParams attrs) {
+    }
+
+
     @CallSuper
     @Override
     public void dumpDebug(ProtoOutputStream proto, long fieldId,
diff --git a/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java b/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java
index 0c09c88..d02f79f 100644
--- a/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java
+++ b/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java
@@ -26,6 +26,8 @@
 import android.view.Surface;
 import android.view.SurfaceControl;
 
+import java.util.Arrays;
+
 
 /** Helper functions for the {@link com.android.server.wm.ScreenRotationAnimation} class*/
 public class RotationAnimationUtils {
@@ -35,31 +37,35 @@
      * luminance at the borders of the bitmap
      * @return the average luminance of all the pixels at the borders of the bitmap
      */
-    public static float getAvgBorderLuma(GraphicBuffer graphicBuffer, ColorSpace colorSpace) {
+    public static float getMedianBorderLuma(GraphicBuffer graphicBuffer, ColorSpace colorSpace) {
         Bitmap hwBitmap = Bitmap.wrapHardwareBuffer(graphicBuffer, colorSpace);
         if (hwBitmap == null) {
             return 0;
         }
 
         Bitmap swaBitmap = hwBitmap.copy(Bitmap.Config.ARGB_8888, false);
-        float totalLuma = 0;
         int height = swaBitmap.getHeight();
         int width = swaBitmap.getWidth();
+        float[] borderLumas = new float[2 * width + 2 * height];
         int i;
-        for (i = 0; i < width; i++) {
-            totalLuma += swaBitmap.getColor(i, 0).luminance();
-            totalLuma += swaBitmap.getColor(i, height - 1).luminance();
+        int index = 0;
+        for (i = 0; i < width; i++, index += 2) {
+            borderLumas[index] = swaBitmap.getColor(i, 0).luminance();
+            borderLumas[index + 1] = swaBitmap.getColor(i, height - 1).luminance();
         }
-        for (i = 0; i < height; i++) {
-            totalLuma += swaBitmap.getColor(0, i).luminance();
-            totalLuma += swaBitmap.getColor(width - 1, i).luminance();
+        for (i = 0; i < height; i++, index += 2) {
+            borderLumas[index] = swaBitmap.getColor(0, i).luminance();
+            borderLumas[index + 1] = swaBitmap.getColor(width - 1, i).luminance();
         }
-        return totalLuma / (2 * width + 2 * height);
+        // Oh, is this too simple and inefficient for you?
+        // How about implementing a O(n) solution? https://en.wikipedia.org/wiki/Median_of_medians
+        Arrays.sort(borderLumas);
+        return borderLumas[borderLumas.length / 2];
     }
 
     /**
      * Gets the average border luma by taking a screenshot of the {@param surfaceControl}.
-     * @see #getAvgBorderLuma(GraphicBuffer, ColorSpace)
+     * @see #getMedianBorderLuma(GraphicBuffer, ColorSpace)
      */
     public static float getLumaOfSurfaceControl(Display display, SurfaceControl surfaceControl) {
         if (surfaceControl ==  null) {
@@ -75,7 +81,7 @@
             return 0;
         }
 
-        return RotationAnimationUtils.getAvgBorderLuma(buffer.getGraphicBuffer(),
+        return RotationAnimationUtils.getMedianBorderLuma(buffer.getGraphicBuffer(),
                 buffer.getColorSpace());
     }
 
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index 27bd58e..c781a5a 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -56,7 +56,6 @@
         "com_android_server_PersistentDataBlockService.cpp",
         "com_android_server_am_CachedAppOptimizer.cpp",
         "com_android_server_am_LowMemDetector.cpp",
-        "com_android_server_incremental_IncrementalManagerService.cpp",
         "com_android_server_pm_PackageManagerShellCommandDataLoader.cpp",
         "onload.cpp",
         ":lib_networkStatsFactory_native",
diff --git a/services/core/jni/com_android_server_SystemServer.cpp b/services/core/jni/com_android_server_SystemServer.cpp
index 279ea4b..e99a264 100644
--- a/services/core/jni/com_android_server_SystemServer.cpp
+++ b/services/core/jni/com_android_server_SystemServer.cpp
@@ -25,6 +25,7 @@
 
 #include <binder/IServiceManager.h>
 #include <hidl/HidlTransportSupport.h>
+#include <incremental_service.h>
 
 #include <schedulerservice/SchedulingPolicyService.h>
 #include <sensorservice/SensorService.h>
@@ -132,18 +133,31 @@
     }).detach();
 }
 
+static jlong android_server_SystemServer_startIncrementalService(JNIEnv* env, jclass klass,
+                                                                 jobject self) {
+    return Incremental_IncrementalService_Start();
+}
+
+static void android_server_SystemServer_setIncrementalServiceSystemReady(JNIEnv* env, jclass klass,
+                                                                         jlong handle) {
+    Incremental_IncrementalService_OnSystemReady(handle);
+}
+
 /*
  * JNI registration.
  */
 static const JNINativeMethod gMethods[] = {
-    /* name, signature, funcPtr */
-    { "startSensorService", "()V", (void*) android_server_SystemServer_startSensorService },
-    { "startHidlServices", "()V", (void*) android_server_SystemServer_startHidlServices },
-    { "initZygoteChildHeapProfiling", "()V",
-      (void*) android_server_SystemServer_initZygoteChildHeapProfiling },
-    { "spawnFdLeakCheckThread", "()V",
-      (void*) android_server_SystemServer_spawnFdLeakCheckThread },
-
+        /* name, signature, funcPtr */
+        {"startSensorService", "()V", (void*)android_server_SystemServer_startSensorService},
+        {"startHidlServices", "()V", (void*)android_server_SystemServer_startHidlServices},
+        {"initZygoteChildHeapProfiling", "()V",
+         (void*)android_server_SystemServer_initZygoteChildHeapProfiling},
+        {"spawnFdLeakCheckThread", "()V",
+         (void*)android_server_SystemServer_spawnFdLeakCheckThread},
+        {"startIncrementalService", "()J",
+         (void*)android_server_SystemServer_startIncrementalService},
+        {"setIncrementalServiceSystemReady", "(J)V",
+         (void*)android_server_SystemServer_setIncrementalServiceSystemReady},
 };
 
 int register_android_server_SystemServer(JNIEnv* env)
diff --git a/services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp b/services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp
deleted file mode 100644
index 10bac94..0000000
--- a/services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp
+++ /dev/null
@@ -1,52 +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.
- */
-
-#define LOG_TAG "incremental_manager_service-jni"
-
-#include "incremental_service.h"
-#include "jni.h"
-
-#include <memory>
-#include <nativehelper/JNIHelp.h>
-
-
-namespace android {
-
-static jlong nativeStartService(JNIEnv* env, jclass klass, jobject self) {
-    return Incremental_IncrementalService_Start();
-}
-
-static void nativeSystemReady(JNIEnv* env, jclass klass, jlong self) {
-    Incremental_IncrementalService_OnSystemReady(self);
-}
-
-static void nativeDump(JNIEnv* env, jclass klass, jlong self, jint fd) {
-    Incremental_IncrementalService_OnDump(self, fd);
-}
-
-static const JNINativeMethod method_table[] = {
-        {"nativeStartService", "()J", (void*)nativeStartService},
-        {"nativeSystemReady", "(J)V", (void*)nativeSystemReady},
-        {"nativeDump", "(JI)V", (void*)nativeDump},
-};
-
-int register_android_server_incremental_IncrementalManagerService(JNIEnv* env) {
-    return jniRegisterNativeMethods(env,
-        "com/android/server/incremental/IncrementalManagerService",
-        method_table, std::size(method_table));
-}
-
-} // namespace android
diff --git a/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp b/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
index f445aa8..6f9d012 100644
--- a/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
+++ b/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
@@ -16,22 +16,17 @@
 
 #define ATRACE_TAG ATRACE_TAG_ADB
 #define LOG_TAG "PackageManagerShellCommandDataLoader-jni"
-#include <android-base/logging.h>
-
 #include <android-base/file.h>
+#include <android-base/logging.h>
 #include <android-base/stringprintf.h>
 #include <android-base/unique_fd.h>
+#include <core_jni_helpers.h>
 #include <cutils/trace.h>
+#include <endian.h>
+#include <nativehelper/JNIHelp.h>
 #include <sys/eventfd.h>
 #include <sys/poll.h>
 
-#include <nativehelper/JNIHelp.h>
-
-#include <core_jni_helpers.h>
-#include <endian.h>
-
-#include "dataloader.h"
-
 #include <charconv>
 #include <chrono>
 #include <span>
@@ -40,6 +35,8 @@
 #include <unordered_map>
 #include <unordered_set>
 
+#include "dataloader.h"
+
 namespace android {
 
 namespace {
@@ -378,7 +375,7 @@
     }
 
     // Installation.
-    bool onPrepareImage(const dataloader::DataLoaderInstallationFiles& addedFiles) final {
+    bool onPrepareImage(dataloader::DataLoaderInstallationFiles addedFiles) final {
         JNIEnv* env = GetOrAttachJNIEnvironment(mJvm);
         const auto& jni = jniIds(env);
 
@@ -513,7 +510,7 @@
             consumed += remain;
         }
 
-        auto res = mIfs->writeBlocks({blocks->data(), blocks->data() + blocks->size()});
+        auto res = mIfs->writeBlocks({blocks->data(), blocks->size()});
 
         blocks->clear();
         buffer->erase(buffer->begin(), buffer->begin() + consumed);
@@ -533,7 +530,7 @@
         uint32_t count;
     };
 
-    void onPageReads(const android::dataloader::PageReads& pageReads) final {
+    void onPageReads(android::dataloader::PageReads pageReads) final {
         auto trace = atrace_is_tag_enabled(ATRACE_TAG);
         if (CC_LIKELY(!trace)) {
             return;
@@ -603,7 +600,7 @@
     }
 
     // IFS callbacks.
-    void onPendingReads(const dataloader::PendingReads& pendingReads) final {
+    void onPendingReads(dataloader::PendingReads pendingReads) final {
         CHECK(mIfs);
         for (auto&& pendingRead : pendingReads) {
             const android::dataloader::FileId& fileId = pendingRead.id;
@@ -681,7 +678,7 @@
 
                 auto& writeFd = writeFds[fileIdx];
                 if (writeFd < 0) {
-                    writeFd = this->mIfs->openWrite(fileId);
+                    writeFd.reset(this->mIfs->openWrite(fileId));
                     if (writeFd < 0) {
                         ALOGE("Failed to open file %d for writing (%d). Aboring.", header.fileIdx,
                               -writeFd);
diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp
index a5339a5..eb486fe 100644
--- a/services/core/jni/onload.cpp
+++ b/services/core/jni/onload.cpp
@@ -58,7 +58,6 @@
 int register_android_server_am_LowMemDetector(JNIEnv* env);
 int register_com_android_server_soundtrigger_middleware_AudioSessionProviderImpl(
         JNIEnv* env);
-int register_android_server_incremental_IncrementalManagerService(JNIEnv* env);
 int register_android_server_com_android_server_pm_PackageManagerShellCommandDataLoader(JNIEnv* env);
 int register_android_server_stats_pull_StatsPullAtomService(JNIEnv* env);
 int register_android_server_AdbDebuggingManager(JNIEnv* env);
@@ -113,7 +112,6 @@
     register_android_server_am_LowMemDetector(env);
     register_com_android_server_soundtrigger_middleware_AudioSessionProviderImpl(
             env);
-    register_android_server_incremental_IncrementalManagerService(env);
     register_android_server_com_android_server_pm_PackageManagerShellCommandDataLoader(env);
     register_android_server_stats_pull_StatsPullAtomService(env);
     register_android_server_AdbDebuggingManager(env);
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 440b779..1de704d 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -3297,22 +3297,24 @@
     }
 
 
-    public DeviceAdminInfo findAdmin(ComponentName adminName, int userHandle,
+    public DeviceAdminInfo findAdmin(final ComponentName adminName, final int userHandle,
             boolean throwForMissingPermission) {
         if (!mHasFeature) {
             return null;
         }
         enforceFullCrossUsersPermission(userHandle);
-        ActivityInfo ai = null;
-        try {
-            ai = mIPackageManager.getReceiverInfo(adminName,
-                    PackageManager.GET_META_DATA |
-                    PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS |
-                    PackageManager.MATCH_DIRECT_BOOT_AWARE |
-                    PackageManager.MATCH_DIRECT_BOOT_UNAWARE, userHandle);
-        } catch (RemoteException e) {
-            // shouldn't happen.
-        }
+        final ActivityInfo ai = mInjector.binderWithCleanCallingIdentity(() -> {
+            try {
+                return mIPackageManager.getReceiverInfo(adminName,
+                        PackageManager.GET_META_DATA
+                        | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
+                        | PackageManager.MATCH_DIRECT_BOOT_AWARE
+                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, userHandle);
+            } catch (RemoteException e) {
+                // shouldn't happen.
+                return null;
+            }
+        });
         if (ai == null) {
             throw new IllegalArgumentException("Unknown admin: " + adminName);
         }
@@ -4674,22 +4676,24 @@
             return getUserDataUnchecked(userHandle).mAdminList;
         }
         ArrayList<ActiveAdmin> admins = new ArrayList<>();
-        for (UserInfo userInfo : mUserManager.getProfiles(userHandle)) {
-            DevicePolicyData policy = getUserDataUnchecked(userInfo.id);
-            if (userInfo.id == userHandle) {
-                admins.addAll(policy.mAdminList);
-            } else if (userInfo.isManagedProfile()) {
-                // For managed profiles, policies set on the parent profile will be included
-                for (int i = 0; i < policy.mAdminList.size(); i++) {
-                    ActiveAdmin admin = policy.mAdminList.get(i);
-                    if (admin.hasParentActiveAdmin()) {
-                        admins.add(admin.getParentActiveAdmin());
+        mInjector.binderWithCleanCallingIdentity(() -> {
+            for (UserInfo userInfo : mUserManager.getProfiles(userHandle)) {
+                DevicePolicyData policy = getUserDataUnchecked(userInfo.id);
+                if (userInfo.id == userHandle) {
+                    admins.addAll(policy.mAdminList);
+                } else if (userInfo.isManagedProfile()) {
+                    // For managed profiles, policies set on the parent profile will be included
+                    for (int i = 0; i < policy.mAdminList.size(); i++) {
+                        ActiveAdmin admin = policy.mAdminList.get(i);
+                        if (admin.hasParentActiveAdmin()) {
+                            admins.add(admin.getParentActiveAdmin());
+                        }
                     }
+                } else {
+                    Slog.w(LOG_TAG, "Unknown user type: " + userInfo);
                 }
-            } else {
-                Slog.w(LOG_TAG, "Unknown user type: " + userInfo);
             }
-        }
+        });
         return admins;
     }
 
@@ -6549,13 +6553,7 @@
                 getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
             // Or ensure calling process is delegatePackage itself.
             } else {
-                int uid = 0;
-                try {
-                  uid = mInjector.getPackageManager()
-                          .getPackageUidAsUser(delegatePackage, userId);
-                } catch(NameNotFoundException e) {
-                }
-                if (uid != callingUid) {
+                if (!isCallingFromPackage(delegatePackage, callingUid)) {
                     throw new SecurityException("Caller with uid " + callingUid + " is not "
                             + delegatePackage);
                 }
@@ -6675,15 +6673,8 @@
             final List<String> scopes = policy.mDelegationMap.get(callerPackage);
             // Check callingUid only if callerPackage has the required scope delegation.
             if (scopes != null && scopes.contains(scope)) {
-                try {
-                    // Retrieve the expected UID for callerPackage.
-                    final int uid = mInjector.getPackageManager()
-                            .getPackageUidAsUser(callerPackage, userId);
-                    // Return true if the caller is actually callerPackage.
-                    return uid == callerUid;
-                } catch (NameNotFoundException e) {
-                    // Ignore.
-                }
+                // Return true if the caller is actually callerPackage.
+                return isCallingFromPackage(callerPackage, callerUid);
             }
             return false;
         }
@@ -8575,14 +8566,8 @@
     public void clearDeviceOwner(String packageName) {
         Objects.requireNonNull(packageName, "packageName is null");
         final int callingUid = mInjector.binderGetCallingUid();
-        try {
-            int uid = mInjector.getPackageManager().getPackageUidAsUser(packageName,
-                    UserHandle.getUserId(callingUid));
-            if (uid != callingUid) {
-                throw new SecurityException("Invalid packageName");
-            }
-        } catch (NameNotFoundException e) {
-            throw new SecurityException(e);
+        if (!isCallingFromPackage(packageName, callingUid)) {
+            throw new SecurityException("Invalid packageName");
         }
         synchronized (getLockObject()) {
             final ComponentName deviceOwnerComponent = mOwners.getDeviceOwnerComponent();
@@ -10927,9 +10912,14 @@
 
     private void enforcePackageIsSystemPackage(String packageName, int userId)
             throws RemoteException {
-        if (!isSystemApp(mIPackageManager, packageName, userId)) {
-            throw new IllegalArgumentException(
-                    "The provided package is not a system package");
+        boolean isSystem;
+        try {
+            isSystem = isSystemApp(mIPackageManager, packageName, userId);
+        } catch (IllegalArgumentException e) {
+            isSystem = false;
+        }
+        if (!isSystem) {
+            throw new IllegalArgumentException("The provided package is not a system package");
         }
     }
 
@@ -11831,12 +11821,15 @@
     }
 
     private boolean isSetSecureSettingLocationModeCheckEnabled(String packageName, int userId) {
+        long ident = mInjector.binderClearCallingIdentity();
         try {
             return mIPlatformCompat.isChangeEnabledByPackageName(USE_SET_LOCATION_ENABLED,
                     packageName, userId);
         } catch (RemoteException e) {
             Log.e(LOG_TAG, "Failed to get a response from PLATFORM_COMPAT_SERVICE", e);
             return getTargetSdk(packageName, userId) > Build.VERSION_CODES.Q;
+        } finally {
+            mInjector.binderRestoreCallingIdentity(ident);
         }
     }
 
@@ -12297,14 +12290,16 @@
                 if (ownerPackage == null) {
                     ownerPackage = mOwners.getDeviceOwnerPackageName();
                 }
+                final String packageName = ownerPackage;
                 PackageManager pm = mInjector.getPackageManager();
-                PackageInfo packageInfo;
-                try {
-                    packageInfo = pm.getPackageInfo(ownerPackage, 0);
-                } catch (NameNotFoundException e) {
-                    Log.e(LOG_TAG, "getPackageInfo error", e);
-                    return null;
-                }
+                PackageInfo packageInfo = mInjector.binderWithCleanCallingIdentity(() -> {
+                    try {
+                        return pm.getPackageInfo(packageName, 0);
+                    } catch (NameNotFoundException e) {
+                        Log.e(LOG_TAG, "getPackageInfo error", e);
+                        return null;
+                    }
+                });
                 if (packageInfo == null) {
                     Log.e(LOG_TAG, "packageInfo is inexplicably null");
                     return null;
@@ -12869,13 +12864,15 @@
     }
 
     boolean isPackageInstalledForUser(String packageName, int userHandle) {
-        try {
-            PackageInfo pi = mInjector.getIPackageManager().getPackageInfo(packageName, 0,
-                    userHandle);
-            return (pi != null) && (pi.applicationInfo.flags != 0);
-        } catch (RemoteException re) {
-            throw new RuntimeException("Package manager has died", re);
-        }
+        return mInjector.binderWithCleanCallingIdentity(() -> {
+            try {
+                PackageInfo pi = mInjector.getIPackageManager().getPackageInfo(packageName, 0,
+                        userHandle);
+                return (pi != null) && (pi.applicationInfo.flags != 0);
+            } catch (RemoteException re) {
+                throw new RuntimeException("Package manager has died", re);
+            }
+        });
     }
 
     public boolean isRuntimePermission(String permissionName) throws NameNotFoundException {
@@ -13940,13 +13937,9 @@
             }
             mPackagesToRemove.remove(packageUserPair);
         }
-        try {
-            if (mInjector.getIPackageManager().getPackageInfo(packageName, 0, userId) == null) {
-                // Package does not exist. Nothing to do.
-                return;
-            }
-        } catch (RemoteException re) {
-            Log.e(LOG_TAG, "Failure talking to PackageManager while getting package info");
+        if (!isPackageInstalledForUser(packageName, userId)) {
+            // Package does not exist. Nothing to do.
+            return;
         }
 
         try { // force stop the package before uninstalling
@@ -15534,14 +15527,16 @@
     }
 
     private boolean isCallingFromPackage(String packageName, int callingUid) {
-        try {
-            final int packageUid = mInjector.getPackageManager().getPackageUidAsUser(
-                    packageName, UserHandle.getUserId(callingUid));
-            return packageUid == callingUid;
-        } catch (NameNotFoundException e) {
-            Log.d(LOG_TAG, "Calling package not found", e);
-            return false;
-        }
+        return mInjector.binderWithCleanCallingIdentity(() -> {
+            try {
+                final int packageUid = mInjector.getPackageManager().getPackageUidAsUser(
+                        packageName, UserHandle.getUserId(callingUid));
+                return packageUid == callingUid;
+            } catch (NameNotFoundException e) {
+                Log.d(LOG_TAG, "Calling package not found", e);
+                return false;
+            }
+        });
     }
 
     private DevicePolicyConstants loadConstants() {
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index 980ae08..2426e8f 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -155,7 +155,7 @@
 } // namespace
 
 IncrementalService::IncFsMount::~IncFsMount() {
-    incrementalService.mIncrementalManager->destroyDataLoader(mountId);
+    incrementalService.mDataLoaderManager->destroyDataLoader(mountId);
     control.reset();
     LOG(INFO) << "Unmounting and cleaning up mount " << mountId << " with root '" << root << '\'';
     for (auto&& [target, _] : bindPoints) {
@@ -229,14 +229,14 @@
 
 IncrementalService::IncrementalService(ServiceManagerWrapper&& sm, std::string_view rootDir)
       : mVold(sm.getVoldService()),
-        mIncrementalManager(sm.getIncrementalManager()),
+        mDataLoaderManager(sm.getDataLoaderManager()),
         mIncFs(sm.getIncFs()),
         mIncrementalDir(rootDir) {
     if (!mVold) {
         LOG(FATAL) << "Vold service is unavailable";
     }
-    if (!mIncrementalManager) {
-        LOG(FATAL) << "IncrementalManager service is unavailable";
+    if (!mDataLoaderManager) {
+        LOG(FATAL) << "DataLoaderManagerService is unavailable";
     }
     mountExistingImages();
 }
@@ -921,7 +921,6 @@
     if (!ifs) {
         return false;
     }
-    bool started = false;
     std::unique_lock l(ifs->lock);
     if (ifs->dataLoaderStatus != IDataLoaderStatusListener::DATA_LOADER_CREATED) {
         if (ifs->dataLoaderReady.wait_for(l, Seconds(5)) == std::cv_status::timeout) {
@@ -929,11 +928,19 @@
             return false;
         }
     }
-    auto status = mIncrementalManager->startDataLoader(ifs->mountId, &started);
+    sp<IDataLoader> dataloader;
+    auto status = mDataLoaderManager->getDataLoader(ifs->mountId, &dataloader);
     if (!status.isOk()) {
         return false;
     }
-    return started;
+    if (!dataloader) {
+        return false;
+    }
+    status = dataloader->start();
+    if (!status.isOk()) {
+        return false;
+    }
+    return true;
 }
 
 void IncrementalService::mountExistingImages() {
@@ -1086,8 +1093,8 @@
     sp<IncrementalDataLoaderListener> listener =
             new IncrementalDataLoaderListener(*this, *externalListener);
     bool created = false;
-    auto status = mIncrementalManager->prepareDataLoader(ifs.mountId, fsControlParcel, *dlp,
-                                                         listener, &created);
+    auto status = mDataLoaderManager->initializeDataLoader(ifs.mountId, *dlp, fsControlParcel,
+                                                           listener, &created);
     if (!status.isOk() || !created) {
         LOG(ERROR) << "Failed to create a data loader for mount " << ifs.mountId;
         return false;
@@ -1229,16 +1236,7 @@
     ifs->dataLoaderStatus = newStatus;
     switch (newStatus) {
         case IDataLoaderStatusListener::DATA_LOADER_NO_CONNECTION: {
-            auto now = Clock::now();
-            if (ifs->connectionLostTime.time_since_epoch().count() == 0) {
-                ifs->connectionLostTime = now;
-                break;
-            }
-            auto duration =
-                    std::chrono::duration_cast<Seconds>(now - ifs->connectionLostTime).count();
-            if (duration >= 10) {
-                incrementalService.mIncrementalManager->showHealthBlockedUI(mountId);
-            }
+            // TODO(b/150411019): handle data loader connection loss
             break;
         }
         case IDataLoaderStatusListener::DATA_LOADER_CONNECTION_OK: {
diff --git a/services/incremental/IncrementalService.h b/services/incremental/IncrementalService.h
index 75d066b..8ff441b 100644
--- a/services/incremental/IncrementalService.h
+++ b/services/incremental/IncrementalService.h
@@ -19,7 +19,6 @@
 #include <android-base/strings.h>
 #include <android-base/unique_fd.h>
 #include <android/content/pm/DataLoaderParamsParcel.h>
-#include <android/os/incremental/IIncrementalManager.h>
 #include <binder/IServiceManager.h>
 #include <utils/String16.h>
 #include <utils/StrongPointer.h>
@@ -31,6 +30,7 @@
 #include <limits>
 #include <map>
 #include <mutex>
+#include <span>
 #include <string>
 #include <string_view>
 #include <unordered_map>
@@ -96,8 +96,7 @@
 
     std::optional<std::future<void>> onSystemReady();
 
-    StorageId createStorage(std::string_view mountPoint,
-                            DataLoaderParamsParcel&& dataLoaderParams,
+    StorageId createStorage(std::string_view mountPoint, DataLoaderParamsParcel&& dataLoaderParams,
                             const DataLoaderStatusListener& dataLoaderStatusListener,
                             CreateOptions options = CreateOptions::Default);
     StorageId createLinkedStorage(std::string_view mountPoint, StorageId linkedStorage,
@@ -133,7 +132,8 @@
                                  std::string_view libDirRelativePath, std::string_view abi);
     class IncrementalDataLoaderListener : public android::content::pm::BnDataLoaderStatusListener {
     public:
-        IncrementalDataLoaderListener(IncrementalService& incrementalService, DataLoaderStatusListener externalListener)
+        IncrementalDataLoaderListener(IncrementalService& incrementalService,
+                                      DataLoaderStatusListener externalListener)
               : incrementalService(incrementalService), externalListener(externalListener) {}
         // Callbacks interface
         binder::Status onStatusChanged(MountId mount, int newStatus) override;
@@ -206,7 +206,8 @@
                            std::string&& source, std::string&& target, BindKind kind,
                            std::unique_lock<std::mutex>& mainLock);
 
-    bool prepareDataLoader(IncFsMount& ifs, DataLoaderParamsParcel* params = nullptr, const DataLoaderStatusListener* externalListener = nullptr);
+    bool prepareDataLoader(IncFsMount& ifs, DataLoaderParamsParcel* params = nullptr,
+                           const DataLoaderStatusListener* externalListener = nullptr);
     BindPathMap::const_iterator findStorageLocked(std::string_view path) const;
     StorageId findStorageId(std::string_view path) const;
 
@@ -218,7 +219,7 @@
 
     // Member variables
     std::unique_ptr<VoldServiceWrapper> mVold;
-    std::unique_ptr<IncrementalManagerWrapper> mIncrementalManager;
+    std::unique_ptr<DataLoaderManagerWrapper> mDataLoaderManager;
     std::unique_ptr<IncFsWrapper> mIncFs;
     const std::string mIncrementalDir;
 
diff --git a/services/incremental/ServiceWrappers.cpp b/services/incremental/ServiceWrappers.cpp
index 5d978a1..2e31ef1 100644
--- a/services/incremental/ServiceWrappers.cpp
+++ b/services/incremental/ServiceWrappers.cpp
@@ -23,7 +23,7 @@
 namespace android::os::incremental {
 
 static constexpr auto kVoldServiceName = "vold"sv;
-static constexpr auto kIncrementalManagerName = "incremental"sv;
+static constexpr auto kDataLoaderManagerName = "dataloader_manager"sv;
 
 RealServiceManager::RealServiceManager(sp<IServiceManager> serviceManager)
       : mServiceManager(std::move(serviceManager)) {}
@@ -46,11 +46,11 @@
     return nullptr;
 }
 
-std::unique_ptr<IncrementalManagerWrapper> RealServiceManager::getIncrementalManager() {
-    sp<IIncrementalManager> manager =
-            RealServiceManager::getRealService<IIncrementalManager>(kIncrementalManagerName);
+std::unique_ptr<DataLoaderManagerWrapper> RealServiceManager::getDataLoaderManager() {
+    sp<IDataLoaderManager> manager =
+            RealServiceManager::getRealService<IDataLoaderManager>(kDataLoaderManagerName);
     if (manager) {
-        return std::make_unique<RealIncrementalManager>(manager);
+        return std::make_unique<RealDataLoaderManager>(manager);
     }
     return nullptr;
 }
diff --git a/services/incremental/ServiceWrappers.h b/services/incremental/ServiceWrappers.h
index 6421583..5349ebf 100644
--- a/services/incremental/ServiceWrappers.h
+++ b/services/incremental/ServiceWrappers.h
@@ -20,9 +20,10 @@
 #include <android-base/unique_fd.h>
 #include <android/content/pm/DataLoaderParamsParcel.h>
 #include <android/content/pm/FileSystemControlParcel.h>
+#include <android/content/pm/IDataLoader.h>
+#include <android/content/pm/IDataLoaderManager.h>
 #include <android/content/pm/IDataLoaderStatusListener.h>
 #include <android/os/IVold.h>
-#include <android/os/incremental/IIncrementalManager.h>
 #include <binder/IServiceManager.h>
 #include <incfs.h>
 
@@ -50,17 +51,16 @@
                                      const std::string& targetDir) const = 0;
 };
 
-class IncrementalManagerWrapper {
+class DataLoaderManagerWrapper {
 public:
-    virtual ~IncrementalManagerWrapper() = default;
-    virtual binder::Status prepareDataLoader(MountId mountId,
-                                             const FileSystemControlParcel& control,
-                                             const DataLoaderParamsParcel& params,
-                                             const sp<IDataLoaderStatusListener>& listener,
-                                             bool* _aidl_return) const = 0;
-    virtual binder::Status startDataLoader(MountId mountId, bool* _aidl_return) const = 0;
+    virtual ~DataLoaderManagerWrapper() = default;
+    virtual binder::Status initializeDataLoader(MountId mountId,
+                                                const DataLoaderParamsParcel& params,
+                                                const FileSystemControlParcel& control,
+                                                const sp<IDataLoaderStatusListener>& listener,
+                                                bool* _aidl_return) const = 0;
+    virtual binder::Status getDataLoader(MountId mountId, sp<IDataLoader>* _aidl_return) const = 0;
     virtual binder::Status destroyDataLoader(MountId mountId) const = 0;
-    virtual binder::Status showHealthBlockedUI(MountId mountId) const = 0;
 };
 
 class IncFsWrapper {
@@ -75,14 +75,14 @@
     virtual ErrorCode link(Control control, std::string_view from, std::string_view to) const = 0;
     virtual ErrorCode unlink(Control control, std::string_view path) const = 0;
     virtual base::unique_fd openWrite(Control control, FileId id) const = 0;
-    virtual ErrorCode writeBlocks(std::span<const DataBlock> blocks) const = 0;
+    virtual ErrorCode writeBlocks(Span<const DataBlock> blocks) const = 0;
 };
 
 class ServiceManagerWrapper {
 public:
     virtual ~ServiceManagerWrapper() = default;
     virtual std::unique_ptr<VoldServiceWrapper> getVoldService() = 0;
-    virtual std::unique_ptr<IncrementalManagerWrapper> getIncrementalManager() = 0;
+    virtual std::unique_ptr<DataLoaderManagerWrapper> getDataLoaderManager() = 0;
     virtual std::unique_ptr<IncFsWrapper> getIncFs() = 0;
 };
 
@@ -109,29 +109,26 @@
     sp<os::IVold> mInterface;
 };
 
-class RealIncrementalManager : public IncrementalManagerWrapper {
+class RealDataLoaderManager : public DataLoaderManagerWrapper {
 public:
-    RealIncrementalManager(const sp<os::incremental::IIncrementalManager> manager)
+    RealDataLoaderManager(const sp<content::pm::IDataLoaderManager> manager)
           : mInterface(manager) {}
-    ~RealIncrementalManager() = default;
-    binder::Status prepareDataLoader(MountId mountId, const FileSystemControlParcel& control,
-                                     const DataLoaderParamsParcel& params,
-                                     const sp<IDataLoaderStatusListener>& listener,
-                                     bool* _aidl_return) const override {
-        return mInterface->prepareDataLoader(mountId, control, params, listener, _aidl_return);
+    ~RealDataLoaderManager() = default;
+    binder::Status initializeDataLoader(MountId mountId, const DataLoaderParamsParcel& params,
+                                        const FileSystemControlParcel& control,
+                                        const sp<IDataLoaderStatusListener>& listener,
+                                        bool* _aidl_return) const override {
+        return mInterface->initializeDataLoader(mountId, params, control, listener, _aidl_return);
     }
-    binder::Status startDataLoader(MountId mountId, bool* _aidl_return) const override {
-        return mInterface->startDataLoader(mountId, _aidl_return);
+    binder::Status getDataLoader(MountId mountId, sp<IDataLoader>* _aidl_return) const override {
+        return mInterface->getDataLoader(mountId, _aidl_return);
     }
     binder::Status destroyDataLoader(MountId mountId) const override {
         return mInterface->destroyDataLoader(mountId);
     }
-    binder::Status showHealthBlockedUI(MountId mountId) const override {
-        return mInterface->showHealthBlockedUI(mountId);
-    }
 
 private:
-    sp<os::incremental::IIncrementalManager> mInterface;
+    sp<content::pm::IDataLoaderManager> mInterface;
 };
 
 class RealServiceManager : public ServiceManagerWrapper {
@@ -139,7 +136,7 @@
     RealServiceManager(sp<IServiceManager> serviceManager);
     ~RealServiceManager() = default;
     std::unique_ptr<VoldServiceWrapper> getVoldService() override;
-    std::unique_ptr<IncrementalManagerWrapper> getIncrementalManager() override;
+    std::unique_ptr<DataLoaderManagerWrapper> getDataLoaderManager() override;
     std::unique_ptr<IncFsWrapper> getIncFs() override;
 
 private:
@@ -177,7 +174,7 @@
     base::unique_fd openWrite(Control control, FileId id) const override {
         return base::unique_fd{incfs::openWrite(control, id)};
     }
-    ErrorCode writeBlocks(std::span<const DataBlock> blocks) const override {
+    ErrorCode writeBlocks(Span<const DataBlock> blocks) const override {
         return incfs::writeBlocks(blocks);
     }
 };
diff --git a/services/incremental/test/IncrementalServiceTest.cpp b/services/incremental/test/IncrementalServiceTest.cpp
index 3aa846c..6002226 100644
--- a/services/incremental/test/IncrementalServiceTest.cpp
+++ b/services/incremental/test/IncrementalServiceTest.cpp
@@ -93,47 +93,60 @@
     TemporaryFile logFile;
 };
 
-class MockIncrementalManager : public IncrementalManagerWrapper {
+class FakeDataLoader : public IDataLoader {
 public:
-    MOCK_CONST_METHOD5(prepareDataLoader,
-                       binder::Status(int32_t mountId, const FileSystemControlParcel& control,
-                                      const DataLoaderParamsParcel& params,
+    IBinder* onAsBinder() override { return nullptr; }
+    binder::Status create(int32_t, const DataLoaderParamsParcel&, const FileSystemControlParcel&,
+                          const sp<IDataLoaderStatusListener>&) override {
+        return binder::Status::ok();
+    }
+    binder::Status start() override { return binder::Status::ok(); }
+    binder::Status stop() override { return binder::Status::ok(); }
+    binder::Status destroy() override { return binder::Status::ok(); }
+    binder::Status prepareImage(const std::vector<InstallationFileParcel>&,
+                                const std::vector<std::string>&) override {
+        return binder::Status::ok();
+    }
+};
+
+class MockDataLoaderManager : public DataLoaderManagerWrapper {
+public:
+    MOCK_CONST_METHOD5(initializeDataLoader,
+                       binder::Status(int32_t mountId, const DataLoaderParamsParcel& params,
+                                      const FileSystemControlParcel& control,
                                       const sp<IDataLoaderStatusListener>& listener,
                                       bool* _aidl_return));
-    MOCK_CONST_METHOD2(startDataLoader, binder::Status(int32_t mountId, bool* _aidl_return));
+    MOCK_CONST_METHOD2(getDataLoader,
+                       binder::Status(int32_t mountId, sp<IDataLoader>* _aidl_return));
     MOCK_CONST_METHOD1(destroyDataLoader, binder::Status(int32_t mountId));
-    MOCK_CONST_METHOD3(newFileForDataLoader,
-                       binder::Status(int32_t mountId, FileId fileId,
-                                      const ::std::vector<uint8_t>& metadata));
-    MOCK_CONST_METHOD1(showHealthBlockedUI, binder::Status(int32_t mountId));
 
-    binder::Status prepareDataLoaderOk(int32_t mountId, const FileSystemControlParcel& control,
-                                       const DataLoaderParamsParcel& params,
-                                       const sp<IDataLoaderStatusListener>& listener,
-                                       bool* _aidl_return) {
+    binder::Status initializeDataLoaderOk(int32_t mountId, const DataLoaderParamsParcel& params,
+                                          const FileSystemControlParcel& control,
+                                          const sp<IDataLoaderStatusListener>& listener,
+                                          bool* _aidl_return) {
         mId = mountId;
         mListener = listener;
         *_aidl_return = true;
         return binder::Status::ok();
     }
 
-    binder::Status startDataLoaderOk(int32_t mountId, bool* _aidl_return) {
-        *_aidl_return = true;
+    binder::Status getDataLoaderOk(int32_t mountId, sp<IDataLoader>* _aidl_return) {
+        *_aidl_return = mDataLoader;
         return binder::Status::ok();
     }
 
-    void prepareDataLoaderFails() {
-        ON_CALL(*this, prepareDataLoader(_, _, _, _, _))
+    void initializeDataLoaderFails() {
+        ON_CALL(*this, initializeDataLoader(_, _, _, _, _))
                 .WillByDefault(Return(
                         (binder::Status::fromExceptionCode(1, String8("failed to prepare")))));
     }
-    void prepareDataLoaderSuccess() {
-        ON_CALL(*this, prepareDataLoader(_, _, _, _, _))
-                .WillByDefault(Invoke(this, &MockIncrementalManager::prepareDataLoaderOk));
+    void initializeDataLoaderSuccess() {
+        ON_CALL(*this, initializeDataLoader(_, _, _, _, _))
+                .WillByDefault(Invoke(this, &MockDataLoaderManager::initializeDataLoaderOk));
     }
-    void startDataLoaderSuccess() {
-        ON_CALL(*this, startDataLoader(_, _))
-                .WillByDefault(Invoke(this, &MockIncrementalManager::startDataLoaderOk));
+    void getDataLoaderSuccess() {
+        ON_CALL(*this, getDataLoader(_, _))
+                .WillByDefault(Invoke(this, &MockDataLoaderManager::getDataLoaderOk));
     }
     void setDataLoaderStatusNotReady() {
         mListener->onStatusChanged(mId, IDataLoaderStatusListener::DATA_LOADER_DESTROYED);
@@ -145,6 +158,7 @@
 private:
     int mId;
     sp<IDataLoaderStatusListener> mListener;
+    sp<IDataLoader> mDataLoader = sp<IDataLoader>(new FakeDataLoader());
 };
 
 class MockIncFs : public IncFsWrapper {
@@ -160,7 +174,7 @@
                        ErrorCode(Control control, std::string_view from, std::string_view to));
     MOCK_CONST_METHOD2(unlink, ErrorCode(Control control, std::string_view path));
     MOCK_CONST_METHOD2(openWrite, base::unique_fd(Control control, FileId id));
-    MOCK_CONST_METHOD1(writeBlocks, ErrorCode(std::span<const DataBlock> blocks));
+    MOCK_CONST_METHOD1(writeBlocks, ErrorCode(Span<const DataBlock> blocks));
 
     void makeFileFails() { ON_CALL(*this, makeFile(_, _, _, _, _)).WillByDefault(Return(-1)); }
     void makeFileSuccess() { ON_CALL(*this, makeFile(_, _, _, _, _)).WillByDefault(Return(0)); }
@@ -197,20 +211,20 @@
 class MockServiceManager : public ServiceManagerWrapper {
 public:
     MockServiceManager(std::unique_ptr<MockVoldService> vold,
-                       std::unique_ptr<MockIncrementalManager> manager,
+                       std::unique_ptr<MockDataLoaderManager> manager,
                        std::unique_ptr<MockIncFs> incfs)
           : mVold(std::move(vold)),
-            mIncrementalManager(std::move(manager)),
+            mDataLoaderManager(std::move(manager)),
             mIncFs(std::move(incfs)) {}
     std::unique_ptr<VoldServiceWrapper> getVoldService() final { return std::move(mVold); }
-    std::unique_ptr<IncrementalManagerWrapper> getIncrementalManager() final {
-        return std::move(mIncrementalManager);
+    std::unique_ptr<DataLoaderManagerWrapper> getDataLoaderManager() final {
+        return std::move(mDataLoaderManager);
     }
     std::unique_ptr<IncFsWrapper> getIncFs() final { return std::move(mIncFs); }
 
 private:
     std::unique_ptr<MockVoldService> mVold;
-    std::unique_ptr<MockIncrementalManager> mIncrementalManager;
+    std::unique_ptr<MockDataLoaderManager> mDataLoaderManager;
     std::unique_ptr<MockIncFs> mIncFs;
 };
 
@@ -221,14 +235,14 @@
     void SetUp() override {
         auto vold = std::make_unique<NiceMock<MockVoldService>>();
         mVold = vold.get();
-        auto incrementalManager = std::make_unique<NiceMock<MockIncrementalManager>>();
-        mIncrementalManager = incrementalManager.get();
+        auto dataloaderManager = std::make_unique<NiceMock<MockDataLoaderManager>>();
+        mDataLoaderManager = dataloaderManager.get();
         auto incFs = std::make_unique<NiceMock<MockIncFs>>();
         mIncFs = incFs.get();
         mIncrementalService =
                 std::make_unique<IncrementalService>(MockServiceManager(std::move(vold),
                                                                         std::move(
-                                                                                incrementalManager),
+                                                                                dataloaderManager),
                                                                         std::move(incFs)),
                                                      mRootDir.path);
         mDataLoaderParcel.packageName = "com.test";
@@ -260,7 +274,7 @@
 protected:
     NiceMock<MockVoldService>* mVold;
     NiceMock<MockIncFs>* mIncFs;
-    NiceMock<MockIncrementalManager>* mIncrementalManager;
+    NiceMock<MockDataLoaderManager>* mDataLoaderManager;
     std::unique_ptr<IncrementalService> mIncrementalService;
     TemporaryDir mRootDir;
     DataLoaderParamsParcel mDataLoaderParcel;
@@ -268,7 +282,7 @@
 
 TEST_F(IncrementalServiceTest, testCreateStorageMountIncFsFails) {
     mVold->mountIncFsFails();
-    EXPECT_CALL(*mIncrementalManager, prepareDataLoader(_, _, _, _, _)).Times(0);
+    EXPECT_CALL(*mDataLoaderManager, initializeDataLoader(_, _, _, _, _)).Times(0);
     TemporaryDir tempDir;
     int storageId =
             mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), {},
@@ -278,7 +292,7 @@
 
 TEST_F(IncrementalServiceTest, testCreateStorageMountIncFsInvalidControlParcel) {
     mVold->mountIncFsInvalidControlParcel();
-    EXPECT_CALL(*mIncrementalManager, prepareDataLoader(_, _, _, _, _)).Times(0);
+    EXPECT_CALL(*mDataLoaderManager, initializeDataLoader(_, _, _, _, _)).Times(0);
     TemporaryDir tempDir;
     int storageId =
             mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), {},
@@ -289,8 +303,8 @@
 TEST_F(IncrementalServiceTest, testCreateStorageMakeFileFails) {
     mVold->mountIncFsSuccess();
     mIncFs->makeFileFails();
-    EXPECT_CALL(*mIncrementalManager, prepareDataLoader(_, _, _, _, _)).Times(0);
-    EXPECT_CALL(*mIncrementalManager, destroyDataLoader(_));
+    EXPECT_CALL(*mDataLoaderManager, initializeDataLoader(_, _, _, _, _)).Times(0);
+    EXPECT_CALL(*mDataLoaderManager, destroyDataLoader(_));
     EXPECT_CALL(*mVold, unmountIncFs(_));
     TemporaryDir tempDir;
     int storageId =
@@ -303,8 +317,8 @@
     mVold->mountIncFsSuccess();
     mIncFs->makeFileSuccess();
     mVold->bindMountFails();
-    EXPECT_CALL(*mIncrementalManager, prepareDataLoader(_, _, _, _, _)).Times(0);
-    EXPECT_CALL(*mIncrementalManager, destroyDataLoader(_));
+    EXPECT_CALL(*mDataLoaderManager, initializeDataLoader(_, _, _, _, _)).Times(0);
+    EXPECT_CALL(*mDataLoaderManager, destroyDataLoader(_));
     EXPECT_CALL(*mVold, unmountIncFs(_));
     TemporaryDir tempDir;
     int storageId =
@@ -317,8 +331,8 @@
     mVold->mountIncFsSuccess();
     mIncFs->makeFileSuccess();
     mVold->bindMountSuccess();
-    mIncrementalManager->prepareDataLoaderFails();
-    EXPECT_CALL(*mIncrementalManager, destroyDataLoader(_));
+    mDataLoaderManager->initializeDataLoaderFails();
+    EXPECT_CALL(*mDataLoaderManager, destroyDataLoader(_));
     EXPECT_CALL(*mVold, unmountIncFs(_)).Times(2);
     TemporaryDir tempDir;
     int storageId =
@@ -331,8 +345,8 @@
     mVold->mountIncFsSuccess();
     mIncFs->makeFileSuccess();
     mVold->bindMountSuccess();
-    mIncrementalManager->prepareDataLoaderSuccess();
-    EXPECT_CALL(*mIncrementalManager, destroyDataLoader(_));
+    mDataLoaderManager->initializeDataLoaderSuccess();
+    EXPECT_CALL(*mDataLoaderManager, destroyDataLoader(_));
     EXPECT_CALL(*mVold, unmountIncFs(_)).Times(2);
     TemporaryDir tempDir;
     int storageId =
@@ -346,31 +360,31 @@
     mVold->mountIncFsSuccess();
     mIncFs->makeFileSuccess();
     mVold->bindMountSuccess();
-    mIncrementalManager->prepareDataLoaderSuccess();
-    EXPECT_CALL(*mIncrementalManager, destroyDataLoader(_));
+    mDataLoaderManager->initializeDataLoaderSuccess();
+    EXPECT_CALL(*mDataLoaderManager, destroyDataLoader(_));
     EXPECT_CALL(*mVold, unmountIncFs(_)).Times(2);
     TemporaryDir tempDir;
     int storageId =
             mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), {},
                                                IncrementalService::CreateOptions::CreateNew);
     ASSERT_GE(storageId, 0);
-    mIncrementalManager->setDataLoaderStatusNotReady();
+    mDataLoaderManager->setDataLoaderStatusNotReady();
 }
 
 TEST_F(IncrementalServiceTest, testStartDataLoaderSuccess) {
     mVold->mountIncFsSuccess();
     mIncFs->makeFileSuccess();
     mVold->bindMountSuccess();
-    mIncrementalManager->prepareDataLoaderSuccess();
-    mIncrementalManager->startDataLoaderSuccess();
-    EXPECT_CALL(*mIncrementalManager, destroyDataLoader(_));
+    mDataLoaderManager->initializeDataLoaderSuccess();
+    mDataLoaderManager->getDataLoaderSuccess();
+    EXPECT_CALL(*mDataLoaderManager, destroyDataLoader(_));
     EXPECT_CALL(*mVold, unmountIncFs(_)).Times(2);
     TemporaryDir tempDir;
     int storageId =
             mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), {},
                                                IncrementalService::CreateOptions::CreateNew);
     ASSERT_GE(storageId, 0);
-    mIncrementalManager->setDataLoaderStatusReady();
+    mDataLoaderManager->setDataLoaderStatusReady();
     ASSERT_TRUE(mIncrementalService->startLoading(storageId));
 }
 
@@ -378,8 +392,8 @@
     mVold->mountIncFsSuccess();
     mIncFs->makeFileSuccess();
     mVold->bindMountSuccess();
-    mIncrementalManager->prepareDataLoaderSuccess();
-    mIncrementalManager->startDataLoaderSuccess();
+    mDataLoaderManager->initializeDataLoaderSuccess();
+    mDataLoaderManager->getDataLoaderSuccess();
     TemporaryDir tempDir;
     int storageId =
             mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), {},
@@ -402,8 +416,8 @@
     mVold->mountIncFsSuccess();
     mIncFs->makeFileSuccess();
     mVold->bindMountSuccess();
-    mIncrementalManager->prepareDataLoaderSuccess();
-    mIncrementalManager->startDataLoaderSuccess();
+    mDataLoaderManager->initializeDataLoaderSuccess();
+    mDataLoaderManager->getDataLoaderSuccess();
     TemporaryDir tempDir;
     int storageId =
             mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), {},
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index c1ac55f..b019e9d 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -105,7 +105,6 @@
 import com.android.server.gpu.GpuService;
 import com.android.server.hdmi.HdmiControlService;
 import com.android.server.incident.IncidentCompanionService;
-import com.android.server.incremental.IncrementalManagerService;
 import com.android.server.input.InputManagerService;
 import com.android.server.inputmethod.InputMethodManagerService;
 import com.android.server.inputmethod.InputMethodSystemProperty;
@@ -295,8 +294,6 @@
             "com.android.server.DeviceIdleController";
     private static final String BLOB_STORE_MANAGER_SERVICE_CLASS =
             "com.android.server.blob.BlobStoreManagerService";
-    private static final String APP_SEARCH_MANAGER_SERVICE_CLASS =
-            "com.android.server.appsearch.AppSearchManagerService";
 
     private static final String TETHERING_CONNECTOR_CLASS = "android.net.ITetheringConnector";
 
@@ -335,7 +332,7 @@
     private ContentResolver mContentResolver;
     private EntropyMixer mEntropyMixer;
     private DataLoaderManagerService mDataLoaderManagerService;
-    private IncrementalManagerService mIncrementalManagerService;
+    private long mIncrementalServiceHandle = 0;
 
     private boolean mOnlyCore;
     private boolean mFirstBoot;
@@ -378,6 +375,16 @@
     private static native void spawnFdLeakCheckThread();
 
     /**
+     * Start native Incremental Service and get its handle.
+     */
+    private static native long startIncrementalService();
+
+    /**
+     * Inform Incremental Service that system is ready.
+     */
+    private static native void setIncrementalServiceSystemReady(long incrementalServiceHandle);
+
+    /**
      * The main entry point from zygote.
      */
     public static void main(String[] args) {
@@ -745,8 +752,8 @@
         t.traceEnd();
 
         // Incremental service needs to be started before package manager
-        t.traceBegin("StartIncrementalManagerService");
-        mIncrementalManagerService = IncrementalManagerService.start(mSystemContext);
+        t.traceBegin("StartIncrementalService");
+        mIncrementalServiceHandle = startIncrementalService();
         t.traceEnd();
 
         // Power manager needs to be started early because other services need it.
@@ -2133,9 +2140,9 @@
         mPackageManagerService.systemReady();
         t.traceEnd();
 
-        if (mIncrementalManagerService != null) {
-            t.traceBegin("MakeIncrementalManagerServiceReady");
-            mIncrementalManagerService.systemReady();
+        if (mIncrementalServiceHandle != 0) {
+            t.traceBegin("MakeIncrementalServiceReady");
+            setIncrementalServiceSystemReady(mIncrementalServiceHandle);
             t.traceEnd();
         }
 
@@ -2169,10 +2176,6 @@
         mSystemServiceManager.startBootPhase(t, SystemService.PHASE_DEVICE_SPECIFIC_SERVICES_READY);
         t.traceEnd();
 
-        t.traceBegin("AppSearchManagerService");
-        mSystemServiceManager.startService(APP_SEARCH_MANAGER_SERVICE_CLASS);
-        t.traceEnd();
-
         ConcurrentUtils.waitForFutureNoInterrupt(mBlobStoreServiceStart,
                 START_BLOB_STORE_SERVICE);
 
diff --git a/services/people/java/com/android/server/people/data/AggregateEventHistoryImpl.java b/services/people/java/com/android/server/people/data/AggregateEventHistoryImpl.java
index 4ac346b..6abf6d2 100644
--- a/services/people/java/com/android/server/people/data/AggregateEventHistoryImpl.java
+++ b/services/people/java/com/android/server/people/data/AggregateEventHistoryImpl.java
@@ -42,14 +42,16 @@
     @NonNull
     @Override
     public EventIndex getEventIndex(Set<Integer> eventTypes) {
-        EventIndex merged = new EventIndex();
+        EventIndex merged = null;
         for (EventHistory eventHistory : mEventHistoryList) {
             EventIndex eventIndex = eventHistory.getEventIndex(eventTypes);
-            if (!eventIndex.isEmpty()) {
+            if (merged == null) {
+                merged = eventIndex;
+            } else if (!eventIndex.isEmpty()) {
                 merged = EventIndex.combine(merged, eventIndex);
             }
         }
-        return merged;
+        return merged != null ? merged : EventIndex.EMPTY;
     }
 
     @NonNull
diff --git a/services/people/java/com/android/server/people/data/ConversationStore.java b/services/people/java/com/android/server/people/data/ConversationStore.java
index 2f2a95c..8481e5b 100644
--- a/services/people/java/com/android/server/people/data/ConversationStore.java
+++ b/services/people/java/com/android/server/people/data/ConversationStore.java
@@ -198,7 +198,10 @@
         mLocusIdToShortcutIdMap.clear();
         mNotifChannelIdToShortcutIdMap.clear();
         mPhoneNumberToShortcutIdMap.clear();
-        mConversationInfosProtoDiskReadWriter.deleteConversationsFile();
+        ConversationInfosProtoDiskReadWriter writer = getConversationInfosProtoDiskReadWriter();
+        if (writer != null) {
+            writer.deleteConversationsFile();
+        }
     }
 
     @Nullable
diff --git a/services/people/java/com/android/server/people/data/EventHistoryImpl.java b/services/people/java/com/android/server/people/data/EventHistoryImpl.java
index 85661c6..8b92537 100644
--- a/services/people/java/com/android/server/people/data/EventHistoryImpl.java
+++ b/services/people/java/com/android/server/people/data/EventHistoryImpl.java
@@ -21,6 +21,7 @@
 import android.annotation.Nullable;
 import android.annotation.WorkerThread;
 import android.net.Uri;
+import android.os.FileUtils;
 import android.text.format.DateUtils;
 import android.util.ArrayMap;
 import android.util.Slog;
@@ -55,6 +56,7 @@
     private final ScheduledExecutorService mScheduledExecutorService;
     private final EventsProtoDiskReadWriter mEventsProtoDiskReadWriter;
     private final EventIndexesProtoDiskReadWriter mEventIndexesProtoDiskReadWriter;
+    private final File mRootDir;
 
     // Event Type -> Event Index
     @GuardedBy("this")
@@ -77,10 +79,11 @@
         mScheduledExecutorService = scheduledExecutorService;
         mLastPruneTime = injector.currentTimeMillis();
 
-        File eventsDir = new File(rootDir, EVENTS_DIR);
+        mRootDir = rootDir;
+        File eventsDir = new File(mRootDir, EVENTS_DIR);
         mEventsProtoDiskReadWriter = new EventsProtoDiskReadWriter(eventsDir,
                 mScheduledExecutorService);
-        File indexesDir = new File(rootDir, INDEXES_DIR);
+        File indexesDir = new File(mRootDir, INDEXES_DIR);
         mEventIndexesProtoDiskReadWriter = new EventIndexesProtoDiskReadWriter(indexesDir,
                 scheduledExecutorService);
     }
@@ -188,6 +191,7 @@
         mRecentEvents.clear();
         mEventsProtoDiskReadWriter.deleteRecentEventsFile();
         mEventIndexesProtoDiskReadWriter.deleteIndexesFile();
+        FileUtils.deleteContentsAndDir(mRootDir);
     }
 
     /** Deletes the events data that exceeds the retention period. */
diff --git a/services/people/java/com/android/server/people/data/EventIndex.java b/services/people/java/com/android/server/people/data/EventIndex.java
index 47b6207..6a13b0e 100644
--- a/services/people/java/com/android/server/people/data/EventIndex.java
+++ b/services/people/java/com/android/server/people/data/EventIndex.java
@@ -129,8 +129,7 @@
     }
 
     EventIndex(@NonNull EventIndex from) {
-        this(from.mInjector, Arrays.copyOf(from.mEventBitmaps, TIME_SLOT_TYPES_COUNT),
-                from.mLastUpdatedTime);
+        this(from.mInjector, from.mEventBitmaps, from.mLastUpdatedTime);
     }
 
     @VisibleForTesting
@@ -140,7 +139,7 @@
 
     private EventIndex(@NonNull Injector injector, long[] eventBitmaps, long lastUpdatedTime) {
         mInjector = injector;
-        mEventBitmaps = eventBitmaps;
+        mEventBitmaps = Arrays.copyOf(eventBitmaps, TIME_SLOT_TYPES_COUNT);
         mLastUpdatedTime = lastUpdatedTime;
     }
 
diff --git a/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
index e5450a9..6e0df3e 100644
--- a/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
@@ -343,5 +343,10 @@
         public Handler initializeMessageHandler() {
             return mHandler;
         }
+
+        @Override
+        public Handler getBackgroundHandler() {
+            return mHandler;
+        }
     }
 }
diff --git a/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java
index 00495f3..730f303 100644
--- a/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java
@@ -107,6 +107,7 @@
                 .when(() -> LocalServices.getService(AppStandbyInternal.class));
         doReturn(mock(UsageStatsManagerInternal.class))
                 .when(() -> LocalServices.getService(UsageStatsManagerInternal.class));
+        when(mContext.getString(anyInt())).thenReturn("some_test_string");
         // Called in BackgroundJobsController constructor.
         doReturn(mock(AppStateTracker.class))
                 .when(() -> LocalServices.getService(AppStateTracker.class));
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index d148c21..449e75c 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -43,7 +43,6 @@
         "platformprotosnano",
         "hamcrest-library",
         "servicestests-utils",
-        "service-appsearch",
         "service-jobscheduler",
         "service-permission",
         // TODO: remove once Android migrates to JUnit 4.12,
diff --git a/services/tests/servicestests/assets/AppIntegrityManagerServiceImplTest/SourceStampTestApk.apk b/services/tests/servicestests/assets/AppIntegrityManagerServiceImplTest/SourceStampTestApk.apk
new file mode 100644
index 0000000..8056e0b
--- /dev/null
+++ b/services/tests/servicestests/assets/AppIntegrityManagerServiceImplTest/SourceStampTestApk.apk
Binary files differ
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java
index 9a7d6ea..7ce0296 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java
@@ -189,6 +189,7 @@
     public void testOnSystemActionsChanged() throws Exception {
         setupAccessibilityServiceConnection();
         mA11yms.notifySystemActionsChangedLocked(mUserState);
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
         verify(mMockServiceClient).onSystemActionsChanged();
     }
 }
diff --git a/services/tests/servicestests/src/com/android/server/appsearch/impl/AppSearchImplTest.java b/services/tests/servicestests/src/com/android/server/appsearch/impl/AppSearchImplTest.java
deleted file mode 100644
index 34ade81..0000000
--- a/services/tests/servicestests/src/com/android/server/appsearch/impl/AppSearchImplTest.java
+++ /dev/null
@@ -1,109 +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.server.appsearch.impl;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.testng.Assert.expectThrows;
-
-import android.annotation.UserIdInt;
-import android.content.Context;
-import android.os.UserHandle;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.google.android.icing.proto.IndexingConfig;
-import com.google.android.icing.proto.PropertyConfigProto;
-import com.google.android.icing.proto.SchemaProto;
-import com.google.android.icing.proto.SchemaTypeConfigProto;
-import com.google.android.icing.proto.TermMatchType;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class AppSearchImplTest {
-    private final Context mContext = InstrumentationRegistry.getContext();
-    private final @UserIdInt int mUserId = UserHandle.getCallingUserId();
-
-    @Test
-    public void testRewriteSchemaTypes() {
-        SchemaProto inSchema = SchemaProto.newBuilder()
-                .addTypes(SchemaTypeConfigProto.newBuilder()
-                        .setSchemaType("TestType")
-                        .addProperties(PropertyConfigProto.newBuilder()
-                                .setPropertyName("subject")
-                                .setDataType(PropertyConfigProto.DataType.Code.STRING)
-                                .setCardinality(PropertyConfigProto.Cardinality.Code.OPTIONAL)
-                                .setIndexingConfig(
-                                        IndexingConfig.newBuilder()
-                                                .setTokenizerType(
-                                                        IndexingConfig.TokenizerType.Code.PLAIN)
-                                                .setTermMatchType(TermMatchType.Code.PREFIX)
-                                                .build()
-                                ).build()
-                        ).addProperties(PropertyConfigProto.newBuilder()
-                                .setPropertyName("link")
-                                .setDataType(PropertyConfigProto.DataType.Code.DOCUMENT)
-                                .setCardinality(PropertyConfigProto.Cardinality.Code.OPTIONAL)
-                                .setSchemaType("RefType")
-                                .build()
-                        ).build()
-                ).build();
-
-        SchemaProto expectedSchema = SchemaProto.newBuilder()
-                .addTypes(SchemaTypeConfigProto.newBuilder()
-                        .setSchemaType("com.android.server.appsearch.impl@42:TestType")
-                        .addProperties(PropertyConfigProto.newBuilder()
-                                .setPropertyName("subject")
-                                .setDataType(PropertyConfigProto.DataType.Code.STRING)
-                                .setCardinality(PropertyConfigProto.Cardinality.Code.OPTIONAL)
-                                .setIndexingConfig(
-                                        IndexingConfig.newBuilder()
-                                                .setTokenizerType(
-                                                        IndexingConfig.TokenizerType.Code.PLAIN)
-                                                .setTermMatchType(TermMatchType.Code.PREFIX)
-                                                .build()
-                                ).build()
-                        ).addProperties(PropertyConfigProto.newBuilder()
-                                .setPropertyName("link")
-                                .setDataType(PropertyConfigProto.DataType.Code.DOCUMENT)
-                                .setCardinality(PropertyConfigProto.Cardinality.Code.OPTIONAL)
-                                .setSchemaType("com.android.server.appsearch.impl@42:RefType")
-                                .build()
-                        ).build()
-                ).build();
-
-        AppSearchImpl impl = new AppSearchImpl(mContext, mUserId);
-        SchemaProto.Builder actualSchema = inSchema.toBuilder();
-        impl.rewriteSchemaTypes("com.android.server.appsearch.impl@42:", actualSchema);
-
-        assertThat(actualSchema.build()).isEqualTo(expectedSchema);
-    }
-
-    @Test
-    public void testPackageNotFound() {
-        AppSearchImpl impl = new AppSearchImpl(mContext, mUserId);
-        IllegalStateException e = expectThrows(
-                IllegalStateException.class,
-                () -> impl.setSchema(
-                        /*callingUid=*/Integer.MAX_VALUE,
-                        SchemaProto.getDefaultInstance(),
-                        /*forceOverride=*/false));
-        assertThat(e).hasMessageThat().contains("Failed to look up package name");
-    }
-}
diff --git a/services/tests/servicestests/src/com/android/server/appsearch/impl/FakeIcingTest.java b/services/tests/servicestests/src/com/android/server/appsearch/impl/FakeIcingTest.java
deleted file mode 100644
index 07b6556..0000000
--- a/services/tests/servicestests/src/com/android/server/appsearch/impl/FakeIcingTest.java
+++ /dev/null
@@ -1,127 +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.server.appsearch.impl;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import com.google.android.icing.proto.DocumentProto;
-import com.google.android.icing.proto.PropertyProto;
-import com.google.android.icing.proto.SearchResultProto;
-import com.google.android.icing.proto.StatusProto;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(AndroidJUnit4.class)
-public class FakeIcingTest {
-    @Test
-    public void query() {
-        FakeIcing icing = new FakeIcing();
-        icing.put(createDoc("uri:cat", "The cat said meow"));
-        icing.put(createDoc("uri:dog", "The dog said woof"));
-
-        assertThat(queryGetUris(icing, "meow")).containsExactly("uri:cat");
-        assertThat(queryGetUris(icing, "said")).containsExactly("uri:cat", "uri:dog");
-        assertThat(queryGetUris(icing, "fred")).isEmpty();
-    }
-
-    @Test
-    public void queryNorm() {
-        FakeIcing icing = new FakeIcing();
-        icing.put(createDoc("uri:cat", "The cat said meow"));
-        icing.put(createDoc("uri:dog", "The dog said woof"));
-
-        assertThat(queryGetUris(icing, "the")).containsExactly("uri:cat", "uri:dog");
-        assertThat(queryGetUris(icing, "The")).containsExactly("uri:cat", "uri:dog");
-        assertThat(queryGetUris(icing, "tHe")).containsExactly("uri:cat", "uri:dog");
-    }
-
-    @Test
-    public void get() {
-        DocumentProto cat = createDoc("uri:cat", "The cat said meow");
-        FakeIcing icing = new FakeIcing();
-        icing.put(cat);
-        assertThat(icing.get("uri:cat")).isEqualTo(cat);
-    }
-
-    @Test
-    public void replace() {
-        DocumentProto cat = createDoc("uri:cat", "The cat said meow");
-        DocumentProto dog = createDoc("uri:dog", "The dog said woof");
-
-        FakeIcing icing = new FakeIcing();
-        icing.put(cat);
-        icing.put(dog);
-
-        assertThat(queryGetUris(icing, "meow")).containsExactly("uri:cat");
-        assertThat(queryGetUris(icing, "said")).containsExactly("uri:cat", "uri:dog");
-        assertThat(icing.get("uri:cat")).isEqualTo(cat);
-
-        // Replace
-        DocumentProto cat2 = createDoc("uri:cat", "The cat said purr");
-        DocumentProto bird = createDoc("uri:bird", "The cat said tweet");
-        icing.put(cat2);
-        icing.put(bird);
-
-        assertThat(queryGetUris(icing, "meow")).isEmpty();
-        assertThat(queryGetUris(icing, "said")).containsExactly("uri:cat", "uri:dog", "uri:bird");
-        assertThat(icing.get("uri:cat")).isEqualTo(cat2);
-    }
-
-    @Test
-    public void delete() {
-        DocumentProto cat = createDoc("uri:cat", "The cat said meow");
-        DocumentProto dog = createDoc("uri:dog", "The dog said woof");
-
-        FakeIcing icing = new FakeIcing();
-        icing.put(cat);
-        icing.put(dog);
-
-        assertThat(queryGetUris(icing, "meow")).containsExactly("uri:cat");
-        assertThat(queryGetUris(icing, "said")).containsExactly("uri:cat", "uri:dog");
-        assertThat(icing.get("uri:cat")).isEqualTo(cat);
-
-        // Delete
-        icing.delete("uri:cat");
-        icing.delete("uri:notreal");
-
-        assertThat(queryGetUris(icing, "meow")).isEmpty();
-        assertThat(queryGetUris(icing, "said")).containsExactly("uri:dog");
-        assertThat(icing.get("uri:cat")).isNull();
-    }
-
-    private static DocumentProto createDoc(String uri, String body) {
-        return DocumentProto.newBuilder()
-                .setUri(uri)
-                .addProperties(PropertyProto.newBuilder().addStringValues(body))
-                .build();
-    }
-
-    private static List<String> queryGetUris(FakeIcing icing, String term) {
-        List<String> uris = new ArrayList<>();
-        SearchResultProto results = icing.query(term);
-        assertThat(results.getStatus().getCode()).isEqualTo(StatusProto.Code.OK);
-        for (SearchResultProto.ResultProto result : results.getResultsList()) {
-            uris.add(result.getDocument().getUri());
-        }
-        return uris;
-    }
-}
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java
index 40b0e71..de2addf 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java
@@ -39,14 +39,13 @@
 import com.android.frameworks.servicestests.R;
 import com.android.server.LocalServices;
 import com.android.server.SystemService;
-import com.android.server.devicepolicy.DevicePolicyManagerServiceTestable.OwnersTestable;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
-// TODO (b/149818286): Fix old test cases and put the whole test into presubmit.
+@Presubmit
 public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase {
 
     private static final String USER_TYPE_EMPTY = "";
@@ -78,7 +77,7 @@
 
         // Create the legacy owners & policies file.
         DpmTestUtils.writeToFile(
-                (new File(getServices().dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(),
+                (new File(getServices().dataDir, "device_owner.xml")).getAbsoluteFile(),
                 DpmTestUtils.readAsset(mRealTestContext,
                         "DevicePolicyManagerServiceMigrationTest/legacy_device_owner.xml"));
 
@@ -193,8 +192,7 @@
         // Check the new owner restrictions.
         DpmTestUtils.assertRestrictions(
                 DpmTestUtils.newRestrictions(
-                        UserManager.DISALLOW_ADD_USER,
-                        UserManager.DISALLOW_ADD_MANAGED_PROFILE
+                        UserManager.DISALLOW_ADD_USER
                 ),
                 dpms.getDeviceOwnerAdminLocked().ensureUserRestrictions());
 
@@ -216,7 +214,7 @@
 
         // Create the legacy owners & policies file.
         DpmTestUtils.writeToFile(
-                (new File(getServices().dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(),
+                (new File(getServices().dataDir, "device_owner.xml")).getAbsoluteFile(),
                 DpmTestUtils.readAsset(mRealTestContext,
                         "DevicePolicyManagerServiceMigrationTest2/legacy_device_owner.xml"));
 
@@ -346,7 +344,6 @@
         assertTrue(alreadySet.contains(UserManager.DISALLOW_BLUETOOTH_SHARING));
     }
 
-    @Presubmit
     @SmallTest
     public void testCompMigrationUnAffiliated_skipped() throws Exception {
         prepareAdmin1AsDo();
@@ -359,7 +356,6 @@
         assertTrue(dpms.mOwners.hasDeviceOwner());
     }
 
-    @Presubmit
     @SmallTest
     public void testCompMigrationAffiliated() throws Exception {
         prepareAdmin1AsDo();
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java
index 853151f..5ad81b2 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java
@@ -66,7 +66,6 @@
      * Overrides {@link #Owners} for dependency injection.
      */
     public static class OwnersTestable extends Owners {
-        public static final String LEGACY_FILE = "legacy.xml";
 
         public OwnersTestable(MockSystemServices services) {
             super(services.userManager, services.userManagerInternal,
diff --git a/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java b/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java
index d9101bf..e2b63e2 100644
--- a/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java
+++ b/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java
@@ -28,6 +28,7 @@
 
 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;
@@ -61,6 +62,7 @@
 import android.os.Handler;
 import android.os.Message;
 import android.provider.Settings;
+import android.security.FileIntegrityManager;
 
 import androidx.test.InstrumentationRegistry;
 
@@ -96,6 +98,9 @@
     private static final String TEST_APP_TWO_CERT_PATH =
             "AppIntegrityManagerServiceImplTest/DummyAppTwoCerts.apk";
 
+    private static final String TEST_APP_SOURCE_STAMP_PATH =
+            "AppIntegrityManagerServiceImplTest/SourceStampTestApk.apk";
+
     private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";
     private static final String VERSION = "version";
     private static final String TEST_FRAMEWORK_PACKAGE = "com.android.frameworks.servicestests";
@@ -111,6 +116,8 @@
     // We use SHA256 for package names longer than 32 characters.
     private static final String INSTALLER_SHA256 =
             "30F41A7CBF96EE736A54DD6DF759B50ED3CC126ABCEF694E167C324F5976C227";
+    private static final String SOURCE_STAMP_CERTIFICATE_HASH =
+            "681B0E56A796350C08647352A4DB800CC44B2ADC8F4C72FA350BD05D4D50264D";
 
     private static final String DUMMY_APP_TWO_CERTS_CERT_1 =
             "C0369C2A1096632429DFA8433068AECEAD00BAC337CA92A175036D39CC9AFE94";
@@ -121,27 +128,22 @@
     private static final String ADB_INSTALLER = "adb";
     private static final String PLAY_STORE_CERT = "play_store_cert";
 
-    @org.junit.Rule
-    public MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @org.junit.Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
-    @Mock
-    PackageManagerInternal mPackageManagerInternal;
-    @Mock
-    Context mMockContext;
-    @Mock
-    Resources mMockResources;
-    @Mock
-    RuleEvaluationEngine mRuleEvaluationEngine;
-    @Mock
-    IntegrityFileManager mIntegrityFileManager;
-    @Mock
-    Handler mHandler;
+    @Mock PackageManagerInternal mPackageManagerInternal;
+    @Mock Context mMockContext;
+    @Mock Resources mMockResources;
+    @Mock RuleEvaluationEngine mRuleEvaluationEngine;
+    @Mock IntegrityFileManager mIntegrityFileManager;
+    @Mock Handler mHandler;
+    FileIntegrityManager mFileIntegrityManager;
 
     private final Context mRealContext = InstrumentationRegistry.getTargetContext();
 
     private PackageManager mSpyPackageManager;
     private File mTestApk;
     private File mTestApkTwoCerts;
+    private File mTestApkSourceStamp;
 
     // under test
     private AppIntegrityManagerServiceImpl mService;
@@ -158,19 +160,28 @@
             Files.copy(inputStream, mTestApkTwoCerts.toPath(), REPLACE_EXISTING);
         }
 
+        mTestApkSourceStamp = File.createTempFile("AppIntegritySourceStamp", ".apk");
+        try (InputStream inputStream = mRealContext.getAssets().open(TEST_APP_SOURCE_STAMP_PATH)) {
+            Files.copy(inputStream, mTestApkSourceStamp.toPath(), REPLACE_EXISTING);
+        }
+
+        mFileIntegrityManager =
+                (FileIntegrityManager)
+                        mRealContext.getSystemService(Context.FILE_INTEGRITY_SERVICE);
         mService =
                 new AppIntegrityManagerServiceImpl(
                         mMockContext,
                         mPackageManagerInternal,
                         mRuleEvaluationEngine,
                         mIntegrityFileManager,
+                        mFileIntegrityManager,
                         mHandler);
 
         mSpyPackageManager = spy(mRealContext.getPackageManager());
         // setup mocks to prevent NPE
         when(mMockContext.getPackageManager()).thenReturn(mSpyPackageManager);
         when(mMockContext.getResources()).thenReturn(mMockResources);
-        when(mMockResources.getStringArray(anyInt())).thenReturn(new String[]{});
+        when(mMockResources.getStringArray(anyInt())).thenReturn(new String[] {});
         when(mIntegrityFileManager.initialized()).thenReturn(true);
         // These are needed to override the Settings.Global.get result.
         when(mMockContext.getContentResolver()).thenReturn(mRealContext.getContentResolver());
@@ -181,6 +192,7 @@
     public void tearDown() throws Exception {
         mTestApk.delete();
         mTestApkTwoCerts.delete();
+        mTestApkSourceStamp.delete();
     }
 
     @Test
@@ -241,7 +253,8 @@
         IntentSender mockReceiver = mock(IntentSender.class);
         List<Rule> rules =
                 Arrays.asList(
-                        new Rule(IntegrityFormula.Application.packageNameEquals(PACKAGE_NAME),
+                        new Rule(
+                                IntegrityFormula.Application.packageNameEquals(PACKAGE_NAME),
                                 Rule.DENY));
 
         mService.updateRuleSet(VERSION, new ParceledListSlice<>(rules), mockReceiver);
@@ -261,7 +274,8 @@
         IntentSender mockReceiver = mock(IntentSender.class);
         List<Rule> rules =
                 Arrays.asList(
-                        new Rule(IntegrityFormula.Application.packageNameEquals(PACKAGE_NAME),
+                        new Rule(
+                                IntegrityFormula.Application.packageNameEquals(PACKAGE_NAME),
                                 Rule.DENY));
 
         mService.updateRuleSet(VERSION, new ParceledListSlice<>(rules), mockReceiver);
@@ -305,8 +319,7 @@
 
         ArgumentCaptor<AppInstallMetadata> metadataCaptor =
                 ArgumentCaptor.forClass(AppInstallMetadata.class);
-        verify(mRuleEvaluationEngine)
-                .evaluate(metadataCaptor.capture());
+        verify(mRuleEvaluationEngine).evaluate(metadataCaptor.capture());
         AppInstallMetadata appInstallMetadata = metadataCaptor.getValue();
         assertEquals(PACKAGE_NAME, appInstallMetadata.getPackageName());
         assertThat(appInstallMetadata.getAppCertificates()).containsExactly(APP_CERT);
@@ -341,8 +354,33 @@
                 ArgumentCaptor.forClass(AppInstallMetadata.class);
         verify(mRuleEvaluationEngine).evaluate(metadataCaptor.capture());
         AppInstallMetadata appInstallMetadata = metadataCaptor.getValue();
-        assertThat(appInstallMetadata.getAppCertificates()).containsExactly(
-                DUMMY_APP_TWO_CERTS_CERT_1, DUMMY_APP_TWO_CERTS_CERT_2);
+        assertThat(appInstallMetadata.getAppCertificates())
+                .containsExactly(DUMMY_APP_TWO_CERTS_CERT_1, DUMMY_APP_TWO_CERTS_CERT_2);
+    }
+
+    @Test
+    public void handleBroadcast_correctArgs_sourceStamp() throws Exception {
+        whitelistUsAsRuleProvider();
+        makeUsSystemApp();
+        ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
+                ArgumentCaptor.forClass(BroadcastReceiver.class);
+        verify(mMockContext)
+                .registerReceiver(broadcastReceiverCaptor.capture(), any(), any(), any());
+        Intent intent = makeVerificationIntent();
+        intent.setDataAndType(Uri.fromFile(mTestApkSourceStamp), PACKAGE_MIME_TYPE);
+        when(mRuleEvaluationEngine.evaluate(any())).thenReturn(IntegrityCheckResult.allow());
+
+        broadcastReceiverCaptor.getValue().onReceive(mMockContext, intent);
+        runJobInHandler();
+
+        ArgumentCaptor<AppInstallMetadata> metadataCaptor =
+                ArgumentCaptor.forClass(AppInstallMetadata.class);
+        verify(mRuleEvaluationEngine).evaluate(metadataCaptor.capture());
+        AppInstallMetadata appInstallMetadata = metadataCaptor.getValue();
+        assertTrue(appInstallMetadata.isStampPresent());
+        assertTrue(appInstallMetadata.isStampVerified());
+        assertFalse(appInstallMetadata.isStampTrusted());
+        assertEquals(SOURCE_STAMP_CERTIFICATE_HASH, appInstallMetadata.getStampCertificateHash());
     }
 
     @Test
@@ -445,7 +483,7 @@
     private void whitelistUsAsRuleProvider() {
         Resources mockResources = mock(Resources.class);
         when(mockResources.getStringArray(R.array.config_integrityRuleProviderPackages))
-                .thenReturn(new String[]{TEST_FRAMEWORK_PACKAGE});
+                .thenReturn(new String[] {TEST_FRAMEWORK_PACKAGE});
         when(mMockContext.getResources()).thenReturn(mockResources);
     }
 
@@ -478,8 +516,8 @@
         PackageInfo packageInfo =
                 mRealContext
                         .getPackageManager()
-                        .getPackageInfo(TEST_FRAMEWORK_PACKAGE,
-                                PackageManager.GET_SIGNING_CERTIFICATES);
+                        .getPackageInfo(
+                                TEST_FRAMEWORK_PACKAGE, PackageManager.GET_SIGNING_CERTIFICATES);
         doReturn(packageInfo).when(mSpyPackageManager).getPackageInfo(eq(INSTALLER), anyInt());
         doReturn(1).when(mSpyPackageManager).getPackageUid(eq(INSTALLER), anyInt());
         return makeVerificationIntent(INSTALLER);
@@ -501,10 +539,16 @@
 
     private void setIntegrityCheckIncludesRuleProvider(boolean shouldInclude) throws Exception {
         int value = shouldInclude ? 1 : 0;
-        Settings.Global.putInt(mRealContext.getContentResolver(),
-                Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER, value);
-        assertThat(Settings.Global.getInt(mRealContext.getContentResolver(),
-                Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER, -1) == 1).isEqualTo(
-                shouldInclude);
+        Settings.Global.putInt(
+                mRealContext.getContentResolver(),
+                Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER,
+                value);
+        assertThat(
+                        Settings.Global.getInt(
+                                        mRealContext.getContentResolver(),
+                                        Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER,
+                                        -1)
+                                == 1)
+                .isEqualTo(shouldInclude);
     }
 }
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
index 44d88d2..4127fec 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
@@ -19,12 +19,16 @@
 import static android.content.pm.UserInfo.FLAG_FULL;
 import static android.content.pm.UserInfo.FLAG_PRIMARY;
 import static android.content.pm.UserInfo.FLAG_PROFILE;
+import static android.os.UserHandle.USER_SYSTEM;
 
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.clearInvocations;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -32,8 +36,10 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertNull;
 
 import android.content.Context;
+import android.content.ContextWrapper;
 import android.content.pm.UserInfo;
 import android.hardware.rebootescrow.IRebootEscrow;
 import android.os.RemoteException;
@@ -49,6 +55,7 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -76,16 +83,26 @@
 
     LockSettingsStorageTestable mStorage;
 
+    private MockableRebootEscrowInjected mInjected;
     private RebootEscrowManager mService;
 
+    public interface MockableRebootEscrowInjected {
+        int getBootCount();
+
+        void reportMetric(boolean success);
+    }
+
     static class MockInjector extends RebootEscrowManager.Injector {
         private final IRebootEscrow mRebootEscrow;
         private final UserManager mUserManager;
+        private final MockableRebootEscrowInjected mInjected;
 
-        MockInjector(Context context, UserManager userManager, IRebootEscrow rebootEscrow) {
+        MockInjector(Context context, UserManager userManager, IRebootEscrow rebootEscrow,
+                MockableRebootEscrowInjected injected) {
             super(context);
             mRebootEscrow = rebootEscrow;
             mUserManager = userManager;
+            mInjected = injected;
         }
 
         @Override
@@ -97,11 +114,21 @@
         public IRebootEscrow getRebootEscrow() {
             return mRebootEscrow;
         }
+
+        @Override
+        public int getBootCount() {
+            return mInjected.getBootCount();
+        }
+
+        @Override
+        public void reportMetric(boolean success) {
+            mInjected.reportMetric(success);
+        }
     }
 
     @Before
     public void setUp_baseServices() throws Exception {
-        mContext = mock(Context.class);
+        mContext = new ContextWrapper(InstrumentationRegistry.getContext());
         mUserManager = mock(UserManager.class);
         mCallbacks = mock(RebootEscrowManager.Callbacks.class);
         mRebootEscrow = mock(IRebootEscrow.class);
@@ -119,8 +146,9 @@
         when(mCallbacks.isUserSecure(WORK_PROFILE_USER_ID)).thenReturn(true);
         when(mCallbacks.isUserSecure(NONSECURE_SECONDARY_USER_ID)).thenReturn(false);
         when(mCallbacks.isUserSecure(SECURE_SECONDARY_USER_ID)).thenReturn(true);
-        mService = new RebootEscrowManager(new MockInjector(mContext, mUserManager, mRebootEscrow),
-                mCallbacks, mStorage);
+        mInjected = mock(MockableRebootEscrowInjected.class);
+        mService = new RebootEscrowManager(new MockInjector(mContext, mUserManager, mRebootEscrow,
+                mInjected), mCallbacks, mStorage);
     }
 
     @Test
@@ -160,7 +188,11 @@
         verify(mockListener).onPreparedForReboot(eq(true));
         verify(mRebootEscrow, never()).storeKey(any());
 
+        assertNull(
+                mStorage.getString(RebootEscrowManager.REBOOT_ESCROW_ARMED_KEY, null, USER_SYSTEM));
         assertTrue(mService.armRebootEscrowIfNeeded());
+        assertNotNull(
+                mStorage.getString(RebootEscrowManager.REBOOT_ESCROW_ARMED_KEY, null, USER_SYSTEM));
         verify(mRebootEscrow).storeKey(any());
 
         assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
@@ -180,7 +212,15 @@
                 FAKE_AUTH_TOKEN);
         verify(mRebootEscrow, never()).storeKey(any());
 
+        assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+        assertTrue(mStorage.hasRebootEscrow(SECURE_SECONDARY_USER_ID));
+        assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
+
+        assertNull(
+                mStorage.getString(RebootEscrowManager.REBOOT_ESCROW_ARMED_KEY, null, USER_SYSTEM));
         assertTrue(mService.armRebootEscrowIfNeeded());
+        assertNotNull(
+                mStorage.getString(RebootEscrowManager.REBOOT_ESCROW_ARMED_KEY, null, USER_SYSTEM));
         verify(mRebootEscrow, times(1)).storeKey(any());
 
         assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
@@ -200,4 +240,163 @@
         assertFalse(mService.armRebootEscrowIfNeeded());
         verifyNoMoreInteractions(mRebootEscrow);
     }
+
+    @Test
+    public void loadRebootEscrowDataIfAvailable_NothingAvailable_Success() throws Exception {
+        mService.loadRebootEscrowDataIfAvailable();
+    }
+
+    @Test
+    public void loadRebootEscrowDataIfAvailable_Success() throws Exception {
+        when(mInjected.getBootCount()).thenReturn(0);
+
+        RebootEscrowListener mockListener = mock(RebootEscrowListener.class);
+        mService.setRebootEscrowListener(mockListener);
+        mService.prepareRebootEscrow();
+
+        clearInvocations(mRebootEscrow);
+        mService.callToRebootEscrowIfNeeded(PRIMARY_USER_ID, FAKE_SP_VERSION, FAKE_AUTH_TOKEN);
+        verify(mockListener).onPreparedForReboot(eq(true));
+
+        verify(mRebootEscrow, never()).storeKey(any());
+
+        ArgumentCaptor<byte[]> keyByteCaptor = ArgumentCaptor.forClass(byte[].class);
+        assertTrue(mService.armRebootEscrowIfNeeded());
+        verify(mRebootEscrow).storeKey(keyByteCaptor.capture());
+
+        assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+        assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
+
+        // pretend reboot happens here
+
+        when(mInjected.getBootCount()).thenReturn(1);
+        ArgumentCaptor<Boolean> metricsSuccessCaptor = ArgumentCaptor.forClass(Boolean.class);
+        doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture());
+        when(mRebootEscrow.retrieveKey()).thenAnswer(invocation -> keyByteCaptor.getValue());
+
+        mService.loadRebootEscrowDataIfAvailable();
+        verify(mRebootEscrow).retrieveKey();
+        assertTrue(metricsSuccessCaptor.getValue());
+    }
+
+    @Test
+    public void loadRebootEscrowDataIfAvailable_TooManyBootsInBetween_NoMetrics() throws Exception {
+        when(mInjected.getBootCount()).thenReturn(0);
+
+        RebootEscrowListener mockListener = mock(RebootEscrowListener.class);
+        mService.setRebootEscrowListener(mockListener);
+        mService.prepareRebootEscrow();
+
+        clearInvocations(mRebootEscrow);
+        mService.callToRebootEscrowIfNeeded(PRIMARY_USER_ID, FAKE_SP_VERSION, FAKE_AUTH_TOKEN);
+        verify(mockListener).onPreparedForReboot(eq(true));
+
+        verify(mRebootEscrow, never()).storeKey(any());
+
+        assertTrue(mService.armRebootEscrowIfNeeded());
+        verify(mRebootEscrow).storeKey(any());
+
+        assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+        assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
+
+        // pretend reboot happens here
+
+        when(mInjected.getBootCount()).thenReturn(10);
+        when(mRebootEscrow.retrieveKey()).thenReturn(new byte[32]);
+
+        mService.loadRebootEscrowDataIfAvailable();
+        verify(mRebootEscrow).retrieveKey();
+        verify(mInjected, never()).reportMetric(anyBoolean());
+    }
+
+    @Test
+    public void loadRebootEscrowDataIfAvailable_ManualReboot_Failure_NoMetrics() throws Exception {
+        when(mInjected.getBootCount()).thenReturn(0);
+
+        RebootEscrowListener mockListener = mock(RebootEscrowListener.class);
+        mService.setRebootEscrowListener(mockListener);
+        mService.prepareRebootEscrow();
+
+        clearInvocations(mRebootEscrow);
+        mService.callToRebootEscrowIfNeeded(PRIMARY_USER_ID, FAKE_SP_VERSION, FAKE_AUTH_TOKEN);
+        verify(mockListener).onPreparedForReboot(eq(true));
+
+        verify(mRebootEscrow, never()).storeKey(any());
+
+        assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+        assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
+
+        // pretend reboot happens here
+
+        when(mInjected.getBootCount()).thenReturn(10);
+        when(mRebootEscrow.retrieveKey()).thenReturn(new byte[32]);
+
+        mService.loadRebootEscrowDataIfAvailable();
+        verify(mInjected, never()).reportMetric(anyBoolean());
+    }
+
+    @Test
+    public void loadRebootEscrowDataIfAvailable_OTAFromBeforeArmedStatus_SuccessMetrics()
+            throws Exception {
+        when(mInjected.getBootCount()).thenReturn(0);
+
+        RebootEscrowListener mockListener = mock(RebootEscrowListener.class);
+        mService.setRebootEscrowListener(mockListener);
+        mService.prepareRebootEscrow();
+
+        clearInvocations(mRebootEscrow);
+        mService.callToRebootEscrowIfNeeded(PRIMARY_USER_ID, FAKE_SP_VERSION, FAKE_AUTH_TOKEN);
+        verify(mockListener).onPreparedForReboot(eq(true));
+
+        verify(mRebootEscrow, never()).storeKey(any());
+
+        ArgumentCaptor<byte[]> keyByteCaptor = ArgumentCaptor.forClass(byte[].class);
+        assertTrue(mService.armRebootEscrowIfNeeded());
+        verify(mRebootEscrow).storeKey(keyByteCaptor.capture());
+
+        assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+        assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
+
+        // Delete key to simulate old version that didn't have it.
+        mStorage.removeKey(RebootEscrowManager.REBOOT_ESCROW_ARMED_KEY, USER_SYSTEM);
+
+        // pretend reboot happens here
+
+        when(mInjected.getBootCount()).thenReturn(10);
+        when(mRebootEscrow.retrieveKey()).thenAnswer(invocation -> keyByteCaptor.getValue());
+
+        mService.loadRebootEscrowDataIfAvailable();
+        verify(mInjected).reportMetric(eq(true));
+    }
+
+    @Test
+    public void loadRebootEscrowDataIfAvailable_RestoreUnsuccessful_Failure() throws Exception {
+        when(mInjected.getBootCount()).thenReturn(0);
+
+        RebootEscrowListener mockListener = mock(RebootEscrowListener.class);
+        mService.setRebootEscrowListener(mockListener);
+        mService.prepareRebootEscrow();
+
+        clearInvocations(mRebootEscrow);
+        mService.callToRebootEscrowIfNeeded(PRIMARY_USER_ID, FAKE_SP_VERSION, FAKE_AUTH_TOKEN);
+        verify(mockListener).onPreparedForReboot(eq(true));
+
+        verify(mRebootEscrow, never()).storeKey(any());
+
+        assertTrue(mService.armRebootEscrowIfNeeded());
+        verify(mRebootEscrow).storeKey(any());
+
+        assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+        assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
+
+        // pretend reboot happens here.
+
+        when(mInjected.getBootCount()).thenReturn(1);
+        ArgumentCaptor<Boolean> metricsSuccessCaptor = ArgumentCaptor.forClass(Boolean.class);
+        doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture());
+        when(mRebootEscrow.retrieveKey()).thenAnswer(invocation -> new byte[32]);
+        mService.loadRebootEscrowDataIfAvailable();
+        verify(mRebootEscrow).retrieveKey();
+        assertFalse(metricsSuccessCaptor.getValue());
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java
index c4fea77..f35eecf 100644
--- a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java
+++ b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java
@@ -30,6 +30,7 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.function.BiConsumer;
 
 @RunWith(AndroidJUnit4.class)
 public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceImplTestsBase {
@@ -132,57 +133,115 @@
     }
 
     @Test
-    public void testMutabilityChange() {
+    public void testMutableEnabledToImmutableEnabled() {
         final OverlayManagerServiceImpl impl = getImpl();
         installTargetPackage(TARGET, USER);
 
-        addOverlayPackage(OVERLAY, TARGET, USER, false, true, 0);
-        impl.updateOverlaysForUser(USER);
-        final OverlayInfo o1 = impl.getOverlayInfo(OVERLAY, USER);
-        assertNotNull(o1);
-        assertTrue(o1.isEnabled());
-        assertFalse(o1.isMutable);
+        final BiConsumer<Boolean, Boolean> setOverlay = (mutable, enabled) -> {
+            addOverlayPackage(OVERLAY, TARGET, USER, mutable, enabled, 0);
+            impl.updateOverlaysForUser(USER);
+            final OverlayInfo o1 = impl.getOverlayInfo(OVERLAY, USER);
+            assertNotNull(o1);
+            assertEquals(enabled, o1.isEnabled());
+            assertEquals(mutable, o1.isMutable);
+        };
 
-        addOverlayPackage(OVERLAY, TARGET, USER, true, false, 0);
-        impl.updateOverlaysForUser(USER);
-        final OverlayInfo o2 = impl.getOverlayInfo(OVERLAY, USER);
-        assertNotNull(o2);
-        assertFalse(o2.isEnabled());
-        assertTrue(o2.isMutable);
+        // Immutable/enabled -> mutable/enabled
+        setOverlay.accept(false /* mutable */, true /* enabled */);
+        setOverlay.accept(true /* mutable */, true /* enabled */);
 
-        addOverlayPackage(OVERLAY, TARGET, USER, false, false, 0);
-        impl.updateOverlaysForUser(USER);
-        final OverlayInfo o3 = impl.getOverlayInfo(OVERLAY, USER);
-        assertNotNull(o3);
-        assertFalse(o3.isEnabled());
-        assertFalse(o3.isMutable);
+        // Mutable/enabled -> immutable/enabled
+        setOverlay.accept(false /* mutable */, true /* enabled */);
+
+        // Immutable/enabled -> mutable/disabled
+        setOverlay.accept(true /* mutable */, false /* enabled */);
+
+        // Mutable/disabled -> immutable/enabled
+        setOverlay.accept(false /* mutable */, true /* enabled */);
+
+        // Immutable/enabled -> immutable/disabled
+        setOverlay.accept(false /* mutable */, false /* enabled */);
+
+        // Immutable/disabled -> mutable/enabled
+        setOverlay.accept(true /* mutable */, true /* enabled */);
+
+        // Mutable/enabled -> immutable/disabled
+        setOverlay.accept(false /* mutable */, false /* enabled */);
+
+        // Immutable/disabled -> mutable/disabled
+        setOverlay.accept(true /* mutable */, false /* enabled */);
+
+        // Mutable/disabled -> immutable/disabled
+        setOverlay.accept(false /* mutable */, false /* enabled */);
     }
 
     @Test
-    public void testPriorityChange() {
+    public void testMutablePriorityChange() {
         final OverlayManagerServiceImpl impl = getImpl();
         installTargetPackage(TARGET, USER);
+        addOverlayPackage(OVERLAY, TARGET, USER, true, true, 0);
+        addOverlayPackage(OVERLAY2, TARGET, USER, true, true, 1);
+        impl.updateOverlaysForUser(USER);
 
+        final OverlayInfo o1 = impl.getOverlayInfo(OVERLAY, USER);
+        assertNotNull(o1);
+        assertEquals(0, o1.priority);
+
+        final OverlayInfo o2 = impl.getOverlayInfo(OVERLAY2, USER);
+        assertNotNull(o2);
+        assertEquals(1, o2.priority);
+
+        // Overlay priority changing between reboots should not affect enable state of mutable
+        // overlays
+        impl.setEnabled(OVERLAY, true, USER);
+
+        // Reorder the overlays
+        addOverlayPackage(OVERLAY, TARGET, USER, true, true, 1);
+        addOverlayPackage(OVERLAY2, TARGET, USER, true, true, 0);
+        impl.updateOverlaysForUser(USER);
+
+        final OverlayInfo o3 = impl.getOverlayInfo(OVERLAY, USER);
+        assertNotNull(o3);
+        assertEquals(1, o3.priority);
+
+        final OverlayInfo o4 = impl.getOverlayInfo(OVERLAY2, USER);
+        assertNotNull(o4);
+        assertEquals(0, o4.priority);
+        assertTrue(o1.isEnabled());
+    }
+
+    @Test
+    public void testImmutablePriorityChange() {
+        final OverlayManagerServiceImpl impl = getImpl();
+        installTargetPackage(TARGET, USER);
         addOverlayPackage(OVERLAY, TARGET, USER, false, true, 0);
         addOverlayPackage(OVERLAY2, TARGET, USER, false, true, 1);
         impl.updateOverlaysForUser(USER);
 
         final OverlayInfo o1 = impl.getOverlayInfo(OVERLAY, USER);
-        final OverlayInfo o2 = impl.getOverlayInfo(OVERLAY2, USER);
         assertNotNull(o1);
-        assertNotNull(o2);
         assertEquals(0, o1.priority);
+
+        final OverlayInfo o2 = impl.getOverlayInfo(OVERLAY2, USER);
+        assertNotNull(o2);
         assertEquals(1, o2.priority);
 
+        // Overlay priority changing between reboots should not affect enable state of mutable
+        // overlays
+        impl.setEnabled(OVERLAY, true, USER);
+
+        // Reorder the overlays
         addOverlayPackage(OVERLAY, TARGET, USER, false, true, 1);
         addOverlayPackage(OVERLAY2, TARGET, USER, false, true, 0);
         impl.updateOverlaysForUser(USER);
 
         final OverlayInfo o3 = impl.getOverlayInfo(OVERLAY, USER);
-        final OverlayInfo o4 = impl.getOverlayInfo(OVERLAY2, USER);
         assertNotNull(o3);
-        assertNotNull(o4);
         assertEquals(1, o3.priority);
+
+        final OverlayInfo o4 = impl.getOverlayInfo(OVERLAY2, USER);
+        assertNotNull(o4);
         assertEquals(0, o4.priority);
+        assertTrue(o1.isEnabled());
     }
 }
diff --git a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
index e57df24..624b67c 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
@@ -335,9 +335,9 @@
             throws IntentFilter.MalformedMimeTypeException {
         mDataManager.onUserUnlocked(USER_ID_PRIMARY);
         AppTarget appTarget = new AppTarget.Builder(
-                    new AppTargetId(TEST_SHORTCUT_ID),
-                    TEST_PKG_NAME,
-                    UserHandle.of(USER_ID_PRIMARY))
+                new AppTargetId(TEST_SHORTCUT_ID),
+                TEST_PKG_NAME,
+                UserHandle.of(USER_ID_PRIMARY))
                 .setClassName(TEST_CLASS_NAME)
                 .build();
         AppTargetEvent appTargetEvent =
@@ -347,8 +347,7 @@
 
         mDataManager.reportShareTargetEvent(appTargetEvent, intentFilter);
 
-        List<Range<Long>> activeShareTimeSlots = getActiveSlotsForTestShortcut(
-                Event.SHARE_EVENT_TYPES);
+        List<Range<Long>> activeShareTimeSlots = getActiveSlotsForAppShares();
         assertEquals(1, activeShareTimeSlots.size());
     }
 
@@ -692,8 +691,7 @@
         return conversations;
     }
 
-    private List<Range<Long>> getActiveSlotsForTestShortcut(
-            Set<Integer> eventTypes) {
+    private List<Range<Long>> getActiveSlotsForTestShortcut(Set<Integer> eventTypes) {
         List<Range<Long>> activeSlots = new ArrayList<>();
         mDataManager.forPackagesInProfile(USER_ID_PRIMARY, packageData ->
                 activeSlots.addAll(
@@ -703,6 +701,16 @@
         return activeSlots;
     }
 
+    private List<Range<Long>> getActiveSlotsForAppShares() {
+        List<Range<Long>> activeSlots = new ArrayList<>();
+        mDataManager.forPackagesInProfile(USER_ID_PRIMARY, packageData ->
+                activeSlots.addAll(
+                        packageData.getClassLevelEventHistory(TEST_CLASS_NAME)
+                                .getEventIndex(Event.SHARE_EVENT_TYPES)
+                                .getActiveTimeSlots()));
+        return activeSlots;
+    }
+
     private ShortcutInfo buildShortcutInfo(String packageName, int userId, String id,
             @Nullable Person person) {
         Context mockContext = mock(Context.class);
diff --git a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java
index 0ee2f55..5e8de42 100644
--- a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java
@@ -842,66 +842,6 @@
     }
 
     @Test
-    public void testSuppressAmbientDisplay_suppressed() throws Exception {
-        createService();
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", true);
-
-        assertThat(Settings.Secure.getInt(mContextSpy.getContentResolver(),
-            Settings.Secure.SUPPRESS_DOZE)).isEqualTo(1);
-    }
-
-    @Test
-    public void testSuppressAmbientDisplay_multipleCallers_suppressed() throws Exception {
-        createService();
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test1", true);
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test2", false);
-
-        assertThat(Settings.Secure.getInt(mContextSpy.getContentResolver(),
-            Settings.Secure.SUPPRESS_DOZE)).isEqualTo(1);
-    }
-
-    @Test
-    public void testSuppressAmbientDisplay_suppressTwice_suppressed() throws Exception {
-        createService();
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", true);
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", true);
-
-        assertThat(Settings.Secure.getInt(mContextSpy.getContentResolver(),
-            Settings.Secure.SUPPRESS_DOZE)).isEqualTo(1);
-    }
-
-    @Test
-    public void testSuppressAmbientDisplay_suppressTwiceThenUnsuppress_notSuppressed()
-            throws Exception {
-        createService();
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", true);
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", true);
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", false);
-
-        assertThat(Settings.Secure.getInt(mContextSpy.getContentResolver(),
-            Settings.Secure.SUPPRESS_DOZE)).isEqualTo(0);
-    }
-
-    @Test
-    public void testSuppressAmbientDisplay_notSuppressed() throws Exception {
-        createService();
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", false);
-
-        assertThat(Settings.Secure.getInt(mContextSpy.getContentResolver(),
-            Settings.Secure.SUPPRESS_DOZE)).isEqualTo(0);
-    }
-
-    @Test
-    public void testSuppressAmbientDisplay_unsuppressTwice_notSuppressed() throws Exception {
-        createService();
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", false);
-        mService.getBinderServiceInstance().suppressAmbientDisplay("test", false);
-
-        assertThat(Settings.Secure.getInt(mContextSpy.getContentResolver(),
-            Settings.Secure.SUPPRESS_DOZE)).isEqualTo(0);
-    }
-
-    @Test
     public void testIsAmbientDisplaySuppressed_default_notSuppressed() throws Exception {
         createService();
 
diff --git a/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java b/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java
index c56034a..06b5fe4 100644
--- a/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java
+++ b/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java
@@ -60,6 +60,8 @@
 import android.os.IHwBinder;
 import android.os.IHwInterface;
 import android.os.RemoteException;
+import android.os.SharedMemory;
+import android.system.ErrnoException;
 import android.util.Pair;
 
 import org.junit.Before;
@@ -71,6 +73,9 @@
 import org.mockito.Mockito;
 import org.mockito.stubbing.Answer;
 
+import java.io.FileDescriptor;
+import java.nio.ByteBuffer;
+
 @RunWith(Parameterized.class)
 public class SoundTriggerMiddlewareImplTest {
     private static final String TAG = "SoundTriggerMiddlewareImplTest";
@@ -104,12 +109,25 @@
         return createSoundModel(SoundModelType.GENERIC);
     }
 
+    private static FileDescriptor byteArrayToFileDescriptor(byte[] data) {
+        try {
+            SharedMemory shmem = SharedMemory.create("", data.length);
+            ByteBuffer buffer = shmem.mapReadWrite();
+            buffer.put(data);
+            return shmem.getFileDescriptor();
+        } catch (ErrnoException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     private static SoundModel createSoundModel(int type) {
         SoundModel model = new SoundModel();
         model.type = type;
         model.uuid = "12345678-2345-3456-4567-abcdef987654";
         model.vendorUuid = "87654321-5432-6543-7654-456789fedcba";
-        model.data = new byte[]{91, 92, 93, 94, 95};
+        byte[] data = new byte[]{91, 92, 93, 94, 95};
+        model.data = byteArrayToFileDescriptor(data);
+        model.dataSize = data.length;
         return model;
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/tv/TvRemoteProviderWatcherTest.java b/services/tests/servicestests/src/com/android/server/tv/TvRemoteProviderWatcherTest.java
new file mode 100644
index 0000000..0a2bb62
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/tv/TvRemoteProviderWatcherTest.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2020 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.tv;
+
+import static org.hamcrest.Matchers.not;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.when;
+import static org.mockito.hamcrest.MockitoHamcrest.argThat;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
+import android.os.Looper;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+public class TvRemoteProviderWatcherTest {
+    private static final String TV_REMOTE_SERVICE_PACKAGE_NAME =
+            "com.google.android.tv.remote.service";
+
+    @Mock
+    Context mMockContext;
+    @Mock
+    PackageManager mMockPackageManager;
+    @Mock
+    Resources mMockResources;
+
+    private TvRemoteProviderWatcher mTvRemoteProviderWatcher;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
+        when(mMockContext.getResources()).thenReturn(mMockResources);
+
+        when(mMockResources.getString(com.android.internal.R.string.config_tvRemoteServicePackage))
+                .thenReturn(TV_REMOTE_SERVICE_PACKAGE_NAME);
+
+
+        when(mMockPackageManager.checkPermission(
+                argThat(not(Manifest.permission.TV_VIRTUAL_REMOTE_CONTROLLER)),
+                anyString())).thenReturn(
+                PackageManager.PERMISSION_DENIED);
+
+        when(mMockPackageManager.checkPermission(
+                anyString(),
+                argThat(not(TV_REMOTE_SERVICE_PACKAGE_NAME)))).thenReturn(
+                PackageManager.PERMISSION_DENIED);
+
+        when(mMockPackageManager.checkPermission(Manifest.permission.TV_VIRTUAL_REMOTE_CONTROLLER,
+                TV_REMOTE_SERVICE_PACKAGE_NAME)).thenReturn(PackageManager.PERMISSION_GRANTED);
+
+        mTvRemoteProviderWatcher = new TvRemoteProviderWatcher(mMockContext, new Object());
+    }
+
+    @Test
+    public void tvServiceIsTrusted() {
+        assertTrue(mTvRemoteProviderWatcher.verifyServiceTrusted(createTvServiceInfo()));
+    }
+
+    @Test
+    public void permissionIsRequired() {
+        ServiceInfo serviceInfo = createTvServiceInfo();
+        serviceInfo.permission = null;
+
+        assertFalse(mTvRemoteProviderWatcher.verifyServiceTrusted(serviceInfo));
+    }
+
+    @Test
+    public void permissionMustBeBindRemote() {
+        ServiceInfo serviceInfo = createTvServiceInfo();
+        serviceInfo.permission = Manifest.permission.BIND_TV_INPUT;
+        assertFalse(mTvRemoteProviderWatcher.verifyServiceTrusted(serviceInfo));
+    }
+
+    @Test
+    public void packageNameMustMatch() {
+        ServiceInfo serviceInfo = createTvServiceInfo();
+        serviceInfo.packageName = "some.random.package";
+        assertFalse(mTvRemoteProviderWatcher.verifyServiceTrusted(serviceInfo));
+    }
+
+    @Test
+    public void packageManagerPermissionIsRequired() {
+        reset(mMockPackageManager);
+        when(mMockPackageManager.checkPermission(anyString(), anyString())).thenReturn(
+                PackageManager.PERMISSION_DENIED);
+
+        assertFalse(mTvRemoteProviderWatcher.verifyServiceTrusted(createTvServiceInfo()));
+    }
+
+    @Test
+    public void whitelistingPackageNameIsRequired() {
+        reset(mMockResources);
+        when(mMockResources.getString(anyInt())).thenReturn("");
+
+        // Create a new watcher, as the resources are read in the constructor of the class
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        TvRemoteProviderWatcher watcher =
+                new TvRemoteProviderWatcher(mMockContext, new Object());
+        assertFalse(watcher.verifyServiceTrusted(createTvServiceInfo()));
+    }
+
+    private ServiceInfo createTvServiceInfo() {
+        ServiceInfo serviceInfo = new ServiceInfo();
+
+        serviceInfo.name = "ATV Remote Service";
+        serviceInfo.packageName = TV_REMOTE_SERVICE_PACKAGE_NAME;
+        serviceInfo.permission = Manifest.permission.BIND_TV_REMOTE_SERVICE;
+
+        return serviceInfo;
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
index 192c6fe..bd63f3c 100644
--- a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
@@ -36,6 +36,8 @@
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
 
+import com.google.common.truth.Correspondence;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -45,6 +47,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 /**
  * Tests for {@link TunerResourceManagerService} class.
@@ -58,6 +61,37 @@
     private TunerResourceManagerService mTunerResourceManagerService;
     private int mReclaimingId;
 
+    // A correspondence to compare a FrontendResource and a TunerFrontendInfo.
+    private static final Correspondence<FrontendResource, TunerFrontendInfo> FR_TFI_COMPARE =
+            new Correspondence<FrontendResource, TunerFrontendInfo>() {
+            @Override
+            public boolean compare(FrontendResource actual, TunerFrontendInfo expected) {
+                if (actual == null || expected == null) {
+                    return (actual == null) && (expected == null);
+                }
+
+                return actual.getId() == expected.getId()
+                        && actual.getType() == expected.getFrontendType()
+                        && actual.getExclusiveGroupId() == expected.getExclusiveGroupId();
+            }
+
+            @Override
+            public String toString() {
+                return "is correctly configured from ";
+            }
+        };
+
+    private static <T> List<T> sparseArrayToList(SparseArray<T> sparseArray) {
+        if (sparseArray == null) {
+            return null;
+        }
+        List<T> arrayList = new ArrayList<T>(sparseArray.size());
+        for (int i = 0; i < sparseArray.size(); i++) {
+            arrayList.add(sparseArray.valueAt(i));
+        }
+        return arrayList;
+    }
+
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
@@ -86,14 +120,16 @@
 
         SparseArray<FrontendResource> resources =
                 mTunerResourceManagerService.getFrontendResources();
-        assertThat(resources.size()).isEqualTo(infos.length);
         for (int id = 0; id < infos.length; id++) {
-            FrontendResource fe = resources.get(infos[id].getId());
-            assertThat(fe.getId()).isEqualTo(infos[id].getId());
-            assertThat(fe.getType()).isEqualTo(infos[id].getFrontendType());
-            assertThat(fe.getExclusiveGroupId()).isEqualTo(infos[id].getExclusiveGroupId());
-            assertThat(fe.getExclusiveGroupMemberFeIds().size()).isEqualTo(0);
+            assertThat(resources.get(infos[id].getId())
+                    .getExclusiveGroupMemberFeIds().size()).isEqualTo(0);
         }
+        for (int id = 0; id < infos.length; id++) {
+            assertThat(resources.get(infos[id].getId())
+                    .getExclusiveGroupMemberFeIds().size()).isEqualTo(0);
+        }
+        assertThat(sparseArrayToList(resources)).comparingElementsUsing(FR_TFI_COMPARE)
+                .containsExactlyElementsIn(Arrays.asList(infos));
     }
 
     @Test
@@ -112,13 +148,8 @@
 
         SparseArray<FrontendResource> resources =
                 mTunerResourceManagerService.getFrontendResources();
-        assertThat(resources.size()).isEqualTo(infos.length);
-        for (int id = 0; id < infos.length; id++) {
-            FrontendResource fe = resources.get(infos[id].getId());
-            assertThat(fe.getId()).isEqualTo(infos[id].getId());
-            assertThat(fe.getType()).isEqualTo(infos[id].getFrontendType());
-            assertThat(fe.getExclusiveGroupId()).isEqualTo(infos[id].getExclusiveGroupId());
-        }
+        assertThat(sparseArrayToList(resources)).comparingElementsUsing(FR_TFI_COMPARE)
+                .containsExactlyElementsIn(Arrays.asList(infos));
 
         assertThat(resources.get(0).getExclusiveGroupMemberFeIds())
                 .isEqualTo(new ArrayList<Integer>());
@@ -169,14 +200,12 @@
 
         SparseArray<FrontendResource> resources =
                 mTunerResourceManagerService.getFrontendResources();
-        assertThat(resources.size()).isEqualTo(infos1.length);
         for (int id = 0; id < infos1.length; id++) {
-            FrontendResource fe = resources.get(infos1[id].getId());
-            assertThat(fe.getId()).isEqualTo(infos1[id].getId());
-            assertThat(fe.getType()).isEqualTo(infos1[id].getFrontendType());
-            assertThat(fe.getExclusiveGroupId()).isEqualTo(infos1[id].getExclusiveGroupId());
-            assertThat(fe.getExclusiveGroupMemberFeIds().size()).isEqualTo(0);
+            assertThat(resources.get(infos1[id].getId())
+                    .getExclusiveGroupMemberFeIds().size()).isEqualTo(0);
         }
+        assertThat(sparseArrayToList(resources)).comparingElementsUsing(FR_TFI_COMPARE)
+                .containsExactlyElementsIn(Arrays.asList(infos1));
     }
 
     @Test
@@ -198,14 +227,12 @@
 
         SparseArray<FrontendResource> resources =
                 mTunerResourceManagerService.getFrontendResources();
-        assertThat(resources.size()).isEqualTo(infos1.length);
         for (int id = 0; id < infos1.length; id++) {
-            FrontendResource fe = resources.get(infos1[id].getId());
-            assertThat(fe.getId()).isEqualTo(infos1[id].getId());
-            assertThat(fe.getType()).isEqualTo(infos1[id].getFrontendType());
-            assertThat(fe.getExclusiveGroupId()).isEqualTo(infos1[id].getExclusiveGroupId());
-            assertThat(fe.getExclusiveGroupMemberFeIds().size()).isEqualTo(0);
+            assertThat(resources.get(infos1[id].getId())
+                    .getExclusiveGroupMemberFeIds().size()).isEqualTo(0);
         }
+        assertThat(sparseArrayToList(resources)).comparingElementsUsing(FR_TFI_COMPARE)
+                .containsExactlyElementsIn(Arrays.asList(infos1));
     }
 
     @Test
diff --git a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
index 23613e0..387e62d 100644
--- a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
@@ -161,7 +161,7 @@
         long mElapsedRealtime;
         boolean mIsAppIdleEnabled = true;
         boolean mIsCharging;
-        List<String> mPowerSaveWhitelistExceptIdle = new ArrayList<>();
+        List<String> mNonIdleWhitelistApps = new ArrayList<>();
         boolean mDisplayOn;
         DisplayManager.DisplayListener mDisplayListener;
         String mBoundWidgetPackage = PACKAGE_EXEMPTED_1;
@@ -203,8 +203,8 @@
         }
 
         @Override
-        boolean isPowerSaveWhitelistExceptIdleApp(String packageName) throws RemoteException {
-            return mPowerSaveWhitelistExceptIdle.contains(packageName);
+        boolean isNonIdleWhitelisted(String packageName) throws RemoteException {
+            return mNonIdleWhitelistApps.contains(packageName);
         }
 
         @Override
diff --git a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
index 22046a5..93ca34a 100644
--- a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
@@ -28,6 +28,8 @@
 import android.content.res.Resources;
 import android.os.Handler;
 import android.os.PowerManager;
+import android.os.PowerManagerInternal;
+import android.os.PowerSaveState;
 import android.os.RemoteException;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
@@ -42,6 +44,7 @@
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.ZoneId;
+import java.util.function.Consumer;
 
 import static android.app.UiModeManager.MODE_NIGHT_AUTO;
 import static android.app.UiModeManager.MODE_NIGHT_CUSTOM;
@@ -79,29 +82,34 @@
     @Mock
     private Resources mResources;
     @Mock
-    TwilightManager mTwilightManager;
+    private TwilightManager mTwilightManager;
     @Mock
-    PowerManager.WakeLock mWakeLock;
+    private PowerManager.WakeLock mWakeLock;
     @Mock
-    AlarmManager mAlarmManager;
+    private AlarmManager mAlarmManager;
     @Mock
-    PowerManager mPowerManager;
+    private PowerManager mPowerManager;
     @Mock
-    TwilightState mTwilightState;
+    private TwilightState mTwilightState;
+    @Mock
+    PowerManagerInternal mLocalPowerManager;
 
     private BroadcastReceiver mScreenOffCallback;
     private BroadcastReceiver mTimeChangedCallback;
     private AlarmManager.OnAlarmListener mCustomListener;
+    private Consumer<PowerSaveState> mPowerSaveConsumer;
 
     @Before
     public void setUp() {
         initMocks(this);
-        mUiManagerService = new UiModeManagerService(mContext,
-                mWindowManager, mAlarmManager, mPowerManager,
-                mWakeLock, mTwilightManager, true);
-        mService = mUiManagerService.getService();
         when(mContext.checkCallingOrSelfPermission(anyString()))
                 .thenReturn(PackageManager.PERMISSION_GRANTED);
+        doAnswer(inv -> {
+            mPowerSaveConsumer = (Consumer<PowerSaveState>) inv.getArgument(1);
+            return null;
+        }).when(mLocalPowerManager).registerLowPowerModeObserver(anyInt(), any());
+        when(mLocalPowerManager.getLowPowerState(anyInt()))
+                .thenReturn(new PowerSaveState.Builder().setBatterySaverEnabled(false).build());
         when(mContext.getResources()).thenReturn(mResources);
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
         when(mPowerManager.isInteractive()).thenReturn(true);
@@ -127,6 +135,14 @@
             mCustomListener = () -> {};
             return null;
         }).when(mAlarmManager).cancel(eq(mCustomListener));
+
+        mUiManagerService = new UiModeManagerService(mContext,
+                mWindowManager, mAlarmManager, mPowerManager,
+                mWakeLock, mTwilightManager, mLocalPowerManager, true);
+        try {
+            mUiManagerService.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY);
+        } catch (SecurityException e) {/* ignore for permission denial */}
+        mService = mUiManagerService.getService();
     }
 
     @Test
@@ -151,6 +167,31 @@
     }
 
     @Test
+    public void setNightModeActivated_fromNoToYesAndBAck() throws RemoteException {
+        mService.setNightMode(MODE_NIGHT_NO);
+        mService.setNightModeActivated(true);
+        assertTrue(isNightModeActivated());
+        mService.setNightModeActivated(false);
+        assertFalse(isNightModeActivated());
+    }
+
+    @Test
+    public void autoNightModeSwitch_batterySaverOn() throws RemoteException {
+        mService.setNightMode(MODE_NIGHT_NO);
+        when(mTwilightState.isNight()).thenReturn(false);
+        mService.setNightMode(MODE_NIGHT_AUTO);
+
+        // night NO
+        assertFalse(isNightModeActivated());
+
+        mPowerSaveConsumer.accept(
+                new PowerSaveState.Builder().setBatterySaverEnabled(true).build());
+
+        // night YES
+        assertTrue(isNightModeActivated());
+    }
+
+    @Test
     public void setAutoMode_clearCache() throws RemoteException {
         try {
             mService.setNightMode(MODE_NIGHT_AUTO);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
index f029bc8..afd10dd 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
@@ -846,6 +846,18 @@
     }
 
     @Test
+    public void testPostSilently() throws Exception {
+        NotificationRecord r = getBuzzyNotification();
+        r.setPostSilently(true);
+
+        mService.buzzBeepBlinkLocked(r);
+
+        verifyNeverBeep();
+        assertFalse(r.isInterruptive());
+        assertEquals(-1, r.getLastAudiblyAlertedMs());
+    }
+
+    @Test
     public void testGroupAlertSummarySilenceChild() throws Exception {
         NotificationRecord child = getBeepyNotificationRecord("a", GROUP_ALERT_SUMMARY);
 
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelLoggerFake.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelLoggerFake.java
new file mode 100644
index 0000000..b6ea063
--- /dev/null
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelLoggerFake.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2020 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.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class NotificationChannelLoggerFake implements NotificationChannelLogger {
+    static class CallRecord {
+        public NotificationChannelEvent event;
+        CallRecord(NotificationChannelEvent event) {
+            this.event = event;
+        }
+    }
+
+    private List<CallRecord> mCalls = new ArrayList<>();
+
+    List<CallRecord> getCalls() {
+        return mCalls;
+    }
+
+    CallRecord get(int index) {
+        return mCalls.get(index);
+    }
+
+    @Override
+    public void logNotificationChannel(NotificationChannelEvent event, NotificationChannel channel,
+            int uid, String pkg, int oldImportance, int newImportance) {
+        mCalls.add(new CallRecord(event));
+    }
+
+    @Override
+    public void logNotificationChannelGroup(NotificationChannelEvent event,
+            NotificationChannelGroup channelGroup, int uid, String pkg, boolean wasBlocked) {
+        mCalls.add(new CallRecord(event));
+    }
+}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java
index a328568..b9ffd65 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java
@@ -22,8 +22,8 @@
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
 import android.app.Notification;
 import android.app.NotificationChannel;
@@ -33,6 +33,7 @@
 import android.content.pm.PackageManager;
 import android.media.session.MediaSession;
 import android.os.Build;
+import android.os.Process;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.service.notification.StatusBarNotification;
@@ -140,7 +141,7 @@
 
         Notification n3 = new Notification.Builder(mContext, TEST_CHANNEL_ID)
                 .setStyle(new Notification.MediaStyle()
-                        .setMediaSession(new MediaSession.Token(null)))
+                        .setMediaSession(new MediaSession.Token(Process.myUid(), null)))
                 .build();
         mRecordDefaultMedia = new NotificationRecord(mContext, new StatusBarNotification(pkg2,
                 pkg2, 1, "media", uid2, uid2, n3, new UserHandle(userId),
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryDatabaseTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryDatabaseTest.java
index 99b4fd9..3991d8d 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryDatabaseTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryDatabaseTest.java
@@ -64,7 +64,6 @@
     Context mContext;
     @Mock
     AlarmManager mAlarmManager;
-    TestFileAttrProvider mFileAttrProvider;
 
     NotificationHistoryDatabase mDataBase;
 
@@ -103,11 +102,9 @@
         when(mContext.getUser()).thenReturn(getContext().getUser());
         when(mContext.getPackageName()).thenReturn(getContext().getPackageName());
 
-        mFileAttrProvider = new TestFileAttrProvider();
         mRootDir = new File(mContext.getFilesDir(), "NotificationHistoryDatabaseTest");
 
-        mDataBase = new NotificationHistoryDatabase(
-                mContext, mFileWriteHandler, mRootDir, mFileAttrProvider);
+        mDataBase = new NotificationHistoryDatabase(mContext, mFileWriteHandler, mRootDir);
         mDataBase.init();
     }
 
@@ -127,7 +124,7 @@
         // add 5 files with a creation date of "today"
         for (long i = cal.getTimeInMillis(); i >= 5; i--) {
             File file = mock(File.class);
-            mFileAttrProvider.creationDates.put(file, i);
+            when(file.getName()).thenReturn(String.valueOf(i));
             AtomicFile af = new AtomicFile(file);
             expectedFiles.add(af);
             mDataBase.mHistoryFiles.addLast(af);
@@ -137,7 +134,7 @@
         // Add 5 more files more than retainDays old
         for (int i = 5; i >= 0; i--) {
             File file = mock(File.class);
-            mFileAttrProvider.creationDates.put(file, cal.getTimeInMillis() - i);
+            when(file.getName()).thenReturn(String.valueOf(cal.getTimeInMillis() - i));
             AtomicFile af = new AtomicFile(file);
             mDataBase.mHistoryFiles.addLast(af);
         }
@@ -165,10 +162,10 @@
     }
 
     @Test
-    public void testOnlyOneWriteRunnableInQueue() {
+    public void testForceWriteToDisk_bypassesExistingWrites() {
         when(mFileWriteHandler.hasCallbacks(any())).thenReturn(true);
         mDataBase.forceWriteToDisk();
-        verify(mFileWriteHandler, never()).post(any());
+        verify(mFileWriteHandler, times(1)).post(any());
     }
 
     @Test
@@ -332,12 +329,25 @@
         verify(af, never()).startWrite();
     }
 
-    private class TestFileAttrProvider implements NotificationHistoryDatabase.FileAttrProvider {
-        public Map<File, Long> creationDates = new HashMap<>();
+    @Test
+    public void testWriteBufferRunnable() throws Exception {
+        NotificationHistory nh = mock(NotificationHistory.class);
+        when(nh.getPooledStringsToWrite()).thenReturn(new String[]{});
+        when(nh.getNotificationsToWrite()).thenReturn(new ArrayList<>());
+        NotificationHistoryDatabase.WriteBufferRunnable wbr =
+                mDataBase.new WriteBufferRunnable();
 
-        @Override
-        public long getCreationTime(File file) {
-            return creationDates.get(file);
-        }
+        mDataBase.mBuffer = nh;
+        wbr.currentTime = 5;
+        wbr.latestNotificationsFile = mock(AtomicFile.class);
+        File file = mock(File.class);
+        when(file.getName()).thenReturn("5");
+        when(wbr.latestNotificationsFile.getBaseFile()).thenReturn(file);
+
+        wbr.run();
+
+        assertThat(mDataBase.mHistoryFiles.size()).isEqualTo(1);
+        assertThat(mDataBase.mBuffer).isNotEqualTo(nh);
+        verify(mAlarmManager, times(1)).setExactAndAllowWhileIdle(anyInt(), anyLong(), any());
     }
 }
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java
index da0e03d..dc8d010 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java
@@ -35,9 +35,12 @@
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.PendingIntent;
+import android.app.Person;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.ShortcutInfo;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Icon;
 import android.os.Binder;
@@ -118,6 +121,7 @@
             assertEquals(canBubble(i), ranking.canBubble());
             assertEquals(visuallyInterruptive(i), ranking.visuallyInterruptive());
             assertEquals(isConversation(i), ranking.isConversation());
+            assertEquals(getShortcutInfo(i).getId(), ranking.getShortcutInfo().getId());
         }
     }
 
@@ -186,7 +190,8 @@
                 (ArrayList) tweak.getSmartReplies(),
                 tweak.canBubble(),
                 tweak.visuallyInterruptive(),
-                tweak.isConversation()
+                tweak.isConversation(),
+                tweak.getShortcutInfo()
         );
         assertNotEquals(nru, nru2);
     }
@@ -264,7 +269,8 @@
                     getSmartReplies(key, i),
                     canBubble(i),
                     visuallyInterruptive(i),
-                    isConversation(i)
+                    isConversation(i),
+                    getShortcutInfo(i)
             );
             rankings[i] = ranking;
         }
@@ -377,6 +383,17 @@
         return index % 4 == 0;
     }
 
+    private ShortcutInfo getShortcutInfo(int index) {
+        ShortcutInfo si = new ShortcutInfo(
+                index, String.valueOf(index), "packageName", new ComponentName("1", "1"), null,
+                "title", 0, "titleResName", "text", 0, "textResName",
+                "disabledMessage", 0, "disabledMessageResName",
+                null, null, 0, null, 0, 0,
+                0, "iconResName", "bitmapPath", 0,
+                null, null);
+        return si;
+    }
+
     private void assertActionsEqual(
             List<Notification.Action> expecteds, List<Notification.Action> actuals) {
         assertEquals(expecteds.size(), actuals.size());
@@ -411,6 +428,7 @@
         assertEquals(comment, a.getSmartReplies(), b.getSmartReplies());
         assertEquals(comment, a.canBubble(), b.canBubble());
         assertEquals(comment, a.isConversation(), b.isConversation());
+        assertEquals(comment, a.getShortcutInfo().getId(), b.getShortcutInfo().getId());
         assertActionsEqual(a.getSmartActions(), b.getSmartActions());
     }
 
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerTest.java
index f051fa4..1e6270d 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerTest.java
@@ -60,16 +60,16 @@
 
     @Test
     public void testSmallHash() {
-        assertEquals(0, NotificationRecordLogger.NotificationRecordPair.smallHash(0));
-        final int maxHash = NotificationRecordLogger.NotificationRecordPair.MAX_HASH;
+        assertEquals(0, NotificationRecordLogger.smallHash(0));
+        final int maxHash = NotificationRecordLogger.MAX_HASH;
         assertEquals(0,
-                NotificationRecordLogger.NotificationRecordPair.smallHash(maxHash));
+                NotificationRecordLogger.smallHash(maxHash));
         assertEquals(0,
-                NotificationRecordLogger.NotificationRecordPair.smallHash(17 * maxHash));
+                NotificationRecordLogger.smallHash(17 * maxHash));
         assertEquals(maxHash - 1,
-                NotificationRecordLogger.NotificationRecordPair.smallHash(maxHash - 1));
+                NotificationRecordLogger.smallHash(maxHash - 1));
         assertEquals(maxHash - 1,
-                NotificationRecordLogger.NotificationRecordPair.smallHash(-1));
+                NotificationRecordLogger.smallHash(-1));
     }
 
     @Test
@@ -78,10 +78,10 @@
                 getNotificationRecordPair(0, null).getNotificationIdHash());
         assertEquals(1,
                 getNotificationRecordPair(1, null).getNotificationIdHash());
-        assertEquals(NotificationRecordLogger.NotificationRecordPair.MAX_HASH - 1,
+        assertEquals(NotificationRecordLogger.MAX_HASH - 1,
                 getNotificationRecordPair(-1, null).getNotificationIdHash());
         final String tag = "someTag";
-        final int hash = NotificationRecordLogger.NotificationRecordPair.smallHash(tag.hashCode());
+        final int hash = NotificationRecordLogger.smallHash(tag.hashCode());
         assertEquals(hash, getNotificationRecordPair(0, tag).getNotificationIdHash());
         // We xor the tag and hashcode together before compressing the range. The order of
         // operations doesn't matter if id is small.
@@ -89,19 +89,19 @@
                 getNotificationRecordPair(1, tag).getNotificationIdHash());
         // But it does matter for an id with more 1 bits than fit in the small hash.
         assertEquals(
-                NotificationRecordLogger.NotificationRecordPair.smallHash(-1 ^ tag.hashCode()),
+                NotificationRecordLogger.smallHash(-1 ^ tag.hashCode()),
                 getNotificationRecordPair(-1, tag).getNotificationIdHash());
         assertNotEquals(-1 ^ hash,
-                NotificationRecordLogger.NotificationRecordPair.smallHash(-1 ^ tag.hashCode()));
+                NotificationRecordLogger.smallHash(-1 ^ tag.hashCode()));
     }
 
     @Test
     public void testGetChannelIdHash() {
         assertEquals(
-                NotificationRecordLogger.NotificationRecordPair.smallHash(CHANNEL_ID.hashCode()),
+                NotificationRecordLogger.smallHash(CHANNEL_ID.hashCode()),
                 getNotificationRecordPair(0, null).getChannelIdHash());
         assertNotEquals(
-                NotificationRecordLogger.NotificationRecordPair.smallHash(CHANNEL_ID.hashCode()),
+                NotificationRecordLogger.smallHash(CHANNEL_ID.hashCode()),
                 CHANNEL_ID.hashCode());
     }
 
@@ -113,7 +113,7 @@
         final String group = "someGroup";
         p.r.setOverrideGroupKey(group);
         assertEquals(
-                NotificationRecordLogger.NotificationRecordPair.smallHash(group.hashCode()),
+                NotificationRecordLogger.smallHash(group.hashCode()),
                 p.getGroupIdHash());
     }
 }
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 5829961..af60511 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
@@ -134,6 +134,7 @@
 
     private PreferencesHelper mHelper;
     private AudioAttributes mAudioAttributes;
+    private NotificationChannelLoggerFake mLogger = new NotificationChannelLoggerFake();
 
     @Before
     public void setUp() throws Exception {
@@ -183,7 +184,7 @@
         mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0,
                 NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND, 0);
         when(mMockZenModeHelper.getNotificationPolicy()).thenReturn(mTestNotificationPolicy);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         resetZenModeHelper();
 
         mAudioAttributes = new AudioAttributes.Builder()
@@ -1107,6 +1108,22 @@
     }
 
     @Test
+    public void testDoubleDeleteChannel() throws Exception {
+        NotificationChannel channel = getChannel();
+        mHelper.createNotificationChannel(PKG_N_MR1, UID_N_MR1, channel, true, false);
+        mHelper.deleteNotificationChannel(PKG_N_MR1, UID_N_MR1, channel.getId());
+        mHelper.deleteNotificationChannel(PKG_N_MR1, UID_N_MR1, channel.getId());
+        assertEquals(2, mLogger.getCalls().size());
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent.NOTIFICATION_CHANNEL_CREATED,
+                mLogger.get(0).event);
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent.NOTIFICATION_CHANNEL_DELETED,
+                mLogger.get(1).event);
+        // No log for the second delete of the same channel.
+    }
+
+    @Test
     public void testGetDeletedChannel() throws Exception {
         NotificationChannel channel = getChannel();
         channel.setSound(new Uri.Builder().scheme("test").build(), mAudioAttributes);
@@ -1444,7 +1461,7 @@
         mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0,
                 NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND, 0);
         when(mMockZenModeHelper.getNotificationPolicy()).thenReturn(mTestNotificationPolicy);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         assertFalse(mHelper.areChannelsBypassingDnd());
         verify(mMockZenModeHelper, times(1)).setNotificationPolicy(any());
         resetZenModeHelper();
@@ -1455,7 +1472,7 @@
         // start notification policy off with mAreChannelsBypassingDnd = false
         mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0, 0, 0);
         when(mMockZenModeHelper.getNotificationPolicy()).thenReturn(mTestNotificationPolicy);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         assertFalse(mHelper.areChannelsBypassingDnd());
         verify(mMockZenModeHelper, never()).setNotificationPolicy(any());
         resetZenModeHelper();
@@ -1525,6 +1542,11 @@
         // Old settings not overridden
         compareChannels(channel,
                 mHelper.getNotificationChannel(PKG_N_MR1, UID_N_MR1, newChannel.getId(), false));
+
+        assertEquals(1, mLogger.getCalls().size());
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent.NOTIFICATION_CHANNEL_CREATED,
+                mLogger.get(0).event);
     }
 
     @Test
@@ -1594,6 +1616,16 @@
         assertEquals(1, mHelper.getNotificationChannelGroups(PKG_N_MR1, UID_N_MR1).size());
 
         verify(mHandler, never()).requestSort();
+
+        assertEquals(7, mLogger.getCalls().size());
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_GROUP_DELETED,
+                mLogger.get(5).event);  // Next-to-last log is the deletion of the channel group.
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_DELETED,
+                mLogger.get(6).event);  // Final log is the deletion of the channel.
     }
 
     @Test
@@ -1739,6 +1771,11 @@
         assertEquals(ncg,
                 mHelper.getNotificationChannelGroups(PKG_N_MR1, UID_N_MR1).iterator().next());
         verify(mHandler, never()).requestSort();
+        assertEquals(1, mLogger.getCalls().size());
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_GROUP_CREATED,
+                mLogger.get(0).event);
     }
 
     @Test
@@ -1751,6 +1788,7 @@
             fail("Created a channel with a bad group");
         } catch (IllegalArgumentException e) {
         }
+        assertEquals(0, mLogger.getCalls().size());
     }
 
     @Test
@@ -1905,6 +1943,17 @@
         assertEquals(IMPORTANCE_DEFAULT, actual.getImportance());
 
         verify(mHandler, times(1)).requestSort();
+        assertEquals(3, mLogger.getCalls().size());
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_GROUP_CREATED,
+                mLogger.get(0).event);
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent.NOTIFICATION_CHANNEL_CREATED,
+                mLogger.get(1).event);
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent.NOTIFICATION_CHANNEL_UPDATED,
+                mLogger.get(2).event);
     }
 
     @Test
@@ -2189,7 +2238,7 @@
                 + "content_type=\"4\" flags=\"0\" show_badge=\"true\" />\n"
                 + "</package>\n"
                 + "</ranking>\n";
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadByteArrayXml(preQXml.getBytes(), true, UserHandle.USER_SYSTEM);
 
         assertEquals(PreferencesHelper.DEFAULT_HIDE_SILENT_STATUS_BAR_ICONS,
@@ -2201,7 +2250,7 @@
         mHelper.setHideSilentStatusIcons(!PreferencesHelper.DEFAULT_HIDE_SILENT_STATUS_BAR_ICONS);
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         assertEquals(!PreferencesHelper.DEFAULT_HIDE_SILENT_STATUS_BAR_ICONS,
@@ -2297,7 +2346,7 @@
         mHelper.setImportance(PKG_O, UID_O, IMPORTANCE_UNSPECIFIED);
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
@@ -2308,7 +2357,7 @@
         mHelper.setNotificationDelegate(PKG_O, UID_O, "other", 53);
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         assertEquals("other", mHelper.getNotificationDelegate(PKG_O, UID_O));
@@ -2320,7 +2369,7 @@
         mHelper.revokeNotificationDelegate(PKG_O, UID_O);
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
@@ -2332,7 +2381,7 @@
         mHelper.toggleNotificationDelegate(PKG_O, UID_O, false);
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         // appears disabled
@@ -2350,7 +2399,7 @@
         mHelper.revokeNotificationDelegate(PKG_O, UID_O);
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         // appears disabled
@@ -2368,7 +2417,7 @@
         assertTrue(mHelper.areBubblesAllowed(PKG_O, UID_O));
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         assertTrue(mHelper.areBubblesAllowed(PKG_O, UID_O));
@@ -2383,7 +2432,7 @@
                 mHelper.getAppLockedFields(PKG_O, UID_O));
 
         ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
         loadStreamXml(baos, false, UserHandle.USER_ALL);
 
         assertFalse(mHelper.areBubblesAllowed(PKG_O, UID_O));
@@ -2876,7 +2925,7 @@
     public void testPlaceholderConversationId_flagOn() throws Exception {
         Settings.Global.putString(
                 mContext.getContentResolver(), NOTIF_CONVO_BYPASS_SHORTCUT_REQ, "true");
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
 
         final String xml = "<ranking version=\"1\">\n"
                 + "<package name=\"" + PKG_O + "\" uid=\"" + UID_O + "\" >\n"
@@ -2896,7 +2945,7 @@
     public void testPlaceholderConversationId_flagOff() throws Exception {
         Settings.Global.putString(
                 mContext.getContentResolver(), NOTIF_CONVO_BYPASS_SHORTCUT_REQ, "false");
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
 
         final String xml = "<ranking version=\"1\">\n"
                 + "<package name=\"" + PKG_O + "\" uid=\"" + UID_O + "\" >\n"
@@ -2916,7 +2965,7 @@
     public void testNormalConversationId_flagOff() throws Exception {
         Settings.Global.putString(
                 mContext.getContentResolver(), NOTIF_CONVO_BYPASS_SHORTCUT_REQ, "false");
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
 
         final String xml = "<ranking version=\"1\">\n"
                 + "<package name=\"" + PKG_O + "\" uid=\"" + UID_O + "\" >\n"
@@ -2936,7 +2985,7 @@
     public void testNoConversationId_flagOff() throws Exception {
         Settings.Global.putString(
                 mContext.getContentResolver(), NOTIF_CONVO_BYPASS_SHORTCUT_REQ, "false");
-        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
+        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper, mLogger);
 
         final String xml = "<ranking version=\"1\">\n"
                 + "<package name=\"" + PKG_O + "\" uid=\"" + UID_O + "\" >\n"
@@ -3171,5 +3220,33 @@
         assertEquals(channel, mHelper.getNotificationChannel(PKG_O, UID_O, channel.getId(), true));
         assertEquals(channel2,
                 mHelper.getNotificationChannel(PKG_O, UID_O, channel2.getId(), true));
+
+        assertEquals(7, mLogger.getCalls().size());
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent.NOTIFICATION_CHANNEL_CREATED,
+                mLogger.get(0).event);  // Channel messages
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent.NOTIFICATION_CHANNEL_CREATED,
+                mLogger.get(1).event);  // Channel calls
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_CONVERSATION_CREATED,
+                mLogger.get(2).event);  // Channel channel - Conversation A person msgs
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_CONVERSATION_CREATED,
+                mLogger.get(3).event);  // Channel noMatch - Conversation B person msgs
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_CONVERSATION_CREATED,
+                mLogger.get(4).event);  // Channel channel2 - Conversation A person calls
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_CONVERSATION_DELETED,
+                mLogger.get(5).event);  // Delete Channel channel - Conversation A person msgs
+        assertEquals(
+                NotificationChannelLogger.NotificationChannelEvent
+                        .NOTIFICATION_CHANNEL_CONVERSATION_DELETED,
+                mLogger.get(6).event);  // Delete Channel channel2 - Conversation A person calls
     }
 }
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
index 816e8e5..3deeea2 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
@@ -22,6 +22,7 @@
 import static junit.framework.Assert.assertNull;
 import static junit.framework.Assert.assertTrue;
 
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
@@ -249,7 +250,7 @@
         ArgumentCaptor<Long> captor = ArgumentCaptor.forClass(Long.class);
         verify(mAm, times(1)).setExactAndAllowWhileIdle(
                 anyInt(), captor.capture(), any(PendingIntent.class));
-        long actualSnoozedUntilDuration = captor.getValue() - SystemClock.elapsedRealtime();
+        long actualSnoozedUntilDuration = captor.getValue() - System.currentTimeMillis();
         assertTrue(Math.abs(actualSnoozedUntilDuration - 1000) < 250);
         assertTrue(mSnoozeHelper.isSnoozed(
                 UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
@@ -363,8 +364,8 @@
 
         mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), "one", 1);
 
-        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM);
-        verify(mCallback, never()).repost(UserHandle.USER_SYSTEM, r);
+        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM, false);
+        verify(mCallback, never()).repost(UserHandle.USER_SYSTEM, r, false);
     }
 
     @Test
@@ -374,8 +375,8 @@
         NotificationRecord r2 = getNotificationRecord("pkg", 2, "one", UserHandle.ALL);
         mSnoozeHelper.snooze(r2, 1000);
         reset(mAm);
-        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM);
-        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r);
+        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM, false);
+        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r, false);
         ArgumentCaptor<PendingIntent> captor = ArgumentCaptor.forClass(PendingIntent.class);
         verify(mAm).cancel(captor.capture());
         assertEquals(r.getKey(), captor.getValue().getIntent().getStringExtra(EXTRA_KEY));
@@ -388,8 +389,8 @@
         NotificationRecord r2 = getNotificationRecord("pkg", 2, "one", UserHandle.ALL);
         mSnoozeHelper.snooze(r2, 1000);
         reset(mAm);
-        mSnoozeHelper.repost(r.getKey());
-        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r);
+        mSnoozeHelper.repost(r.getKey(), false);
+        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r, false);
         verify(mAm).cancel(any(PendingIntent.class));
     }
 
@@ -400,10 +401,10 @@
         r.getNotification().category = "NEW CATEGORY";
 
         mSnoozeHelper.update(UserHandle.USER_SYSTEM, r);
-        verify(mCallback, never()).repost(anyInt(), any(NotificationRecord.class));
+        verify(mCallback, never()).repost(anyInt(), any(NotificationRecord.class), anyBoolean());
 
-        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM);
-        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r);
+        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM, false);
+        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r, false);
     }
 
     @Test
@@ -420,13 +421,23 @@
         mSnoozeHelper.update(UserHandle.USER_SYSTEM, r);
 
         // verify callback is called when repost (snooze is expired)
-        verify(mCallback, never()).repost(anyInt(), any(NotificationRecord.class));
-        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM);
-        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r);
+        verify(mCallback, never()).repost(anyInt(), any(NotificationRecord.class), anyBoolean());
+        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM, false);
+        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r, false);
         assertFalse(r.isCanceled);
     }
 
     @Test
+    public void testReport_passesFlag() throws Exception {
+        // snooze a notification
+        NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
+        mSnoozeHelper.snooze(r , 1000);
+
+        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM, true);
+        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r, true);
+    }
+
+    @Test
     public void testGetSnoozedBy() throws Exception {
         NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
         NotificationRecord r2 = getNotificationRecord("pkg", 2, "two", UserHandle.SYSTEM);
@@ -523,7 +534,7 @@
         mSnoozeHelper.snooze(r2, 1000);
         mSnoozeHelper.repostGroupSummary("pkg", UserHandle.USER_SYSTEM, "group1");
 
-        verify(mCallback, never()).repost(UserHandle.USER_SYSTEM, r);
+        verify(mCallback, never()).repost(eq(UserHandle.USER_SYSTEM), eq(r), anyBoolean());
     }
 
     @Test
@@ -542,8 +553,8 @@
 
         mSnoozeHelper.repostGroupSummary("pkg", UserHandle.USER_SYSTEM, r.getGroupKey());
 
-        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r);
-        verify(mCallback, never()).repost(UserHandle.USER_SYSTEM, r2);
+        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r, false);
+        verify(mCallback, never()).repost(UserHandle.USER_SYSTEM, r2, false);
 
         assertEquals(1, mSnoozeHelper.getSnoozed().size());
         assertEquals(1, mSnoozeHelper.getSnoozed(UserHandle.USER_SYSTEM, "pkg").size());
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
index b6b3bc6..1796d85 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
@@ -40,6 +40,7 @@
 import android.content.pm.ApplicationInfo;
 import android.content.res.Configuration;
 import android.os.Build;
+import android.os.Bundle;
 import android.os.UserHandle;
 import android.service.voice.IVoiceInteractionSession;
 
@@ -112,6 +113,7 @@
         private int mLaunchedFromPid;
         private int mLaunchedFromUid;
         private WindowProcessController mWpc;
+        private Bundle mIntentExtras;
 
         ActivityBuilder(ActivityTaskManagerService service) {
             mService = service;
@@ -127,6 +129,11 @@
             return this;
         }
 
+        ActivityBuilder setIntentExtras(Bundle extras) {
+            mIntentExtras = extras;
+            return this;
+        }
+
         static ComponentName getDefaultComponent() {
             return ComponentName.createRelative(DEFAULT_COMPONENT_PACKAGE_NAME,
                     DEFAULT_COMPONENT_PACKAGE_NAME);
@@ -231,6 +238,9 @@
 
             Intent intent = new Intent();
             intent.setComponent(mComponent);
+            if (mIntentExtras != null) {
+                intent.putExtras(mIntentExtras);
+            }
             final ActivityInfo aInfo = new ActivityInfo();
             aInfo.applicationInfo = new ApplicationInfo();
             aInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.CUR_DEVELOPMENT;
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
index 683fca4..6cc57f4 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
@@ -34,7 +34,6 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_AFTER_ANIM;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_BEFORE_ANIM;
@@ -209,50 +208,6 @@
     }
 
     @Test
-    @FlakyTest(bugId = 149760957)
-    public void testSizeCompatBounds() {
-        // Disable the real configuration resolving because we only simulate partial flow.
-        // TODO: Have test use full flow.
-        doNothing().when(mTask).computeConfigResourceOverrides(any(), any());
-        final Rect fixedBounds = mActivity.getRequestedOverrideConfiguration().windowConfiguration
-                .getBounds();
-        fixedBounds.set(0, 0, 1200, 1600);
-        mActivity.getRequestedOverrideConfiguration().windowConfiguration.setAppBounds(fixedBounds);
-        final Configuration newParentConfig = mTask.getConfiguration();
-
-        // Change the size of the container to two times smaller with insets.
-        newParentConfig.windowConfiguration.setAppBounds(200, 0, 800, 800);
-        final Rect containerAppBounds = newParentConfig.windowConfiguration.getAppBounds();
-        final Rect containerBounds = newParentConfig.windowConfiguration.getBounds();
-        containerBounds.set(0, 0, 600, 800);
-        mActivity.onConfigurationChanged(newParentConfig);
-
-        assertTrue(mActivity.hasSizeCompatBounds());
-        assertEquals(containerAppBounds, mActivity.getBounds());
-        assertEquals((float) containerAppBounds.width() / fixedBounds.width(),
-                mActivity.getSizeCompatScale(), 0.0001f /* delta */);
-
-        // Change the width of the container to two times bigger.
-        containerAppBounds.set(0, 0, 2400, 1600);
-        containerBounds.set(containerAppBounds);
-        mActivity.onConfigurationChanged(newParentConfig);
-
-        assertTrue(mActivity.hasSizeCompatBounds());
-        // Don't scale up, so the bounds keep the same as the fixed width.
-        assertEquals(fixedBounds.width(), mActivity.getBounds().width());
-        // Assert the position is horizontal center.
-        assertEquals((containerAppBounds.width() - fixedBounds.width()) / 2,
-                mActivity.getBounds().left);
-        assertEquals(1f, mActivity.getSizeCompatScale(), 0.0001f  /* delta */);
-
-        // Change the width of the container to fit the fixed bounds.
-        containerBounds.set(0, 0, 1200, 2000);
-        mActivity.onConfigurationChanged(newParentConfig);
-        // Assert don't use fixed bounds because the region is enough.
-        assertFalse(mActivity.hasSizeCompatBounds());
-    }
-
-    @Test
     @Presubmit
     public void testGetOrientation() {
         mActivity.setVisible(true);
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
index 2b0ad89..e2c27ea 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
@@ -50,6 +50,7 @@
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.spy;
 
+import android.app.WindowConfiguration;
 import android.graphics.Insets;
 import android.graphics.PixelFormat;
 import android.graphics.Rect;
@@ -268,6 +269,26 @@
         assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
     }
 
+    @Test
+    public void layoutWindowLw_fitDisplayCutout() {
+        assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
+        addDisplayCutout();
+
+        mWindow.mAttrs.setFitInsetsTypes(Type.displayCutout());
+        mWindow.mAttrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+        addWindow(mWindow);
+
+        mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+        mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+        assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+        assertInsetByTopBottom(mWindow.getDisplayFrameLw(), DISPLAY_CUTOUT_HEIGHT, 0);
+        assertInsetByTopBottom(mWindow.getParentFrame(), DISPLAY_CUTOUT_HEIGHT, 0);
+        assertInsetByTopBottom(mWindow.getVisibleFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+        assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+        assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
+    }
+
     // TODO(b/118118435): remove after migration
     @Test
     public void layoutWindowLw_appDrawsBarsLegacy() {
@@ -855,9 +876,8 @@
         final DisplayCutout.ParcelableWrapper outDisplayCutout =
                 new DisplayCutout.ParcelableWrapper();
 
-        mDisplayPolicy.getLayoutHintLw(mWindow.mAttrs, null, mFrames,
-                false /* floatingStack */, outFrame, outContentInsets, outStableInsets,
-                outDisplayCutout);
+        mDisplayPolicy.getLayoutHint(mWindow.mAttrs, null /* windowToken */, outFrame,
+                outContentInsets, outStableInsets, outDisplayCutout);
 
         assertThat(outFrame, is(mFrames.mUnrestricted));
         assertThat(outContentInsets, is(new Rect(0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT)));
@@ -874,6 +894,9 @@
         mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
 
         final Rect taskBounds = new Rect(100, 100, 200, 200);
+        final Task task = mWindow.getTask();
+        // Force the bounds because the task may resolve different bounds from Task#setBounds.
+        task.getWindowConfiguration().setBounds(taskBounds);
 
         final Rect outFrame = new Rect();
         final Rect outContentInsets = new Rect();
@@ -881,9 +904,8 @@
         final DisplayCutout.ParcelableWrapper outDisplayCutout =
                 new DisplayCutout.ParcelableWrapper();
 
-        mDisplayPolicy.getLayoutHintLw(mWindow.mAttrs, taskBounds, mFrames,
-                false /* floatingStack */, outFrame, outContentInsets, outStableInsets,
-                outDisplayCutout);
+        mDisplayPolicy.getLayoutHint(mWindow.mAttrs, mWindow.mToken, outFrame,
+                outContentInsets, outStableInsets, outDisplayCutout);
 
         assertThat(outFrame, is(taskBounds));
         assertThat(outContentInsets, is(new Rect()));
@@ -904,15 +926,20 @@
         final Rect taskBounds = new Rect(100, mFrames.mContent.bottom + 1,
                 200, mFrames.mContent.bottom + 10);
 
+        final Task task = mWindow.getTask();
+        // Make the task floating.
+        task.setWindowingMode(WindowConfiguration.WINDOWING_MODE_FREEFORM);
+        // Force the bounds because the task may resolve different bounds from Task#setBounds.
+        task.getWindowConfiguration().setBounds(taskBounds);
+
         final Rect outFrame = new Rect();
         final Rect outContentInsets = new Rect();
         final Rect outStableInsets = new Rect();
         final DisplayCutout.ParcelableWrapper outDisplayCutout =
                 new DisplayCutout.ParcelableWrapper();
 
-        mDisplayPolicy.getLayoutHintLw(mWindow.mAttrs, taskBounds, mFrames,
-                true /* floatingStack */, outFrame, outContentInsets, outStableInsets,
-                outDisplayCutout);
+        mDisplayPolicy.getLayoutHint(mWindow.mAttrs, mWindow.mToken, outFrame, outContentInsets,
+                outStableInsets, outDisplayCutout);
 
         assertThat(outFrame, is(taskBounds));
         assertThat(outContentInsets, is(new Rect()));
@@ -939,6 +966,8 @@
         final InsetsState simulatedInsetsState = new InsetsState();
         final DisplayFrames simulatedDisplayFrames = createDisplayFrames();
         mDisplayPolicy.beginLayoutLw(mFrames, uiMode);
+        // Force the display bounds because it is not synced with display frames in policy test.
+        mDisplayContent.getWindowConfiguration().setBounds(mFrames.mUnrestricted);
         mDisplayContent.getInsetsStateController().onPostLayout();
         mDisplayPolicy.simulateLayoutDisplay(simulatedDisplayFrames, simulatedInsetsState, uiMode);
 
@@ -947,20 +976,18 @@
         final StringWriter simulatedFramesDump = new StringWriter();
         simulatedDisplayFrames.dump(prefix, new PrintWriter(simulatedFramesDump));
 
-        assertEquals(realFramesDump.toString(), simulatedFramesDump.toString());
+        assertEquals(new ToStringComparatorWrapper<>(realFramesDump),
+                new ToStringComparatorWrapper<>(simulatedFramesDump));
 
-        final StringWriter realInsetsDump = new StringWriter();
         final InsetsState realInsetsState = new InsetsState(
                 mDisplayContent.getInsetsStateController().getRawInsetsState());
         // Exclude comparing IME insets because currently the simulated layout only focuses on the
         // insets from status bar and navigation bar.
         realInsetsState.removeSource(InsetsState.ITYPE_IME);
         realInsetsState.removeSource(InsetsState.ITYPE_CAPTION_BAR);
-        realInsetsState.dump(prefix, new PrintWriter(realInsetsDump));
-        final StringWriter simulatedInsetsDump = new StringWriter();
-        simulatedInsetsState.dump(prefix, new PrintWriter(simulatedInsetsDump));
 
-        assertEquals(realInsetsDump.toString(), simulatedInsetsDump.toString());
+        assertEquals(new ToStringComparatorWrapper<>(realInsetsState),
+                new ToStringComparatorWrapper<>(simulatedInsetsState));
     }
 
     @Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
index eae007d..5e30477 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
@@ -120,7 +120,6 @@
         assertNull(controls);
     }
 
-    // TODO: adjust this test if we pretend to the app that it's still able to control it.
     @Test
     public void testControlsForDispatch_forceStatusBarVisible() {
         addWindow(TYPE_STATUS_BAR, "statusBar").mAttrs.privateFlags |=
@@ -129,9 +128,9 @@
 
         final InsetsSourceControl[] controls = addAppWindowAndGetControlsForDispatch();
 
-        // The app must not control the status bar.
+        // The focused app window can control both system bars.
         assertNotNull(controls);
-        assertEquals(1, controls.length);
+        assertEquals(2, controls.length);
     }
 
     @Test
@@ -143,9 +142,9 @@
 
         final InsetsSourceControl[] controls = addAppWindowAndGetControlsForDispatch();
 
-        // The app must not control the navigation bar.
+        // The focused app window can control both system bars.
         assertNotNull(controls);
-        assertEquals(1, controls.length);
+        assertEquals(2, controls.length);
     }
 
     @Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index 9a898fd..66566bc 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -1020,6 +1020,29 @@
         verify(controller, times(4)).notifyTaskListUpdated();
     }
 
+    @Test
+    public void testTaskInfo_expectNoExtras() {
+        doNothing().when(mRecentTasks).loadUserRecentsLocked(anyInt());
+        doReturn(true).when(mRecentTasks).isUserRunning(anyInt(), anyInt());
+
+        final Bundle data = new Bundle();
+        data.putInt("key", 100);
+        final Task task1 = createTaskBuilder(".Task").build();
+        final ActivityRecord r1 = new ActivityBuilder(mService)
+                .setTask(task1)
+                .setIntentExtras(data)
+                .build();
+        mRecentTasks.add(r1.getTask());
+
+        final List<RecentTaskInfo> infos = mRecentTasks.getRecentTasks(MAX_VALUE, 0 /* flags */,
+                true /* getTasksAllowed */, TEST_USER_0_ID, 0).getList();
+        assertTrue(infos.size() == 1);
+        for (int i = 0; i < infos.size(); i++)  {
+            final Bundle extras = infos.get(i).baseIntent.getExtras();
+            assertTrue(extras == null || extras.isEmpty());
+        }
+    }
+
     /**
      * Ensures that the raw recent tasks list is in the provided order. Note that the expected tasks
      * should be ordered from least to most recent.
@@ -1040,8 +1063,7 @@
         doNothing().when(mRecentTasks).loadUserRecentsLocked(anyInt());
         doReturn(true).when(mRecentTasks).isUserRunning(anyInt(), anyInt());
         List<RecentTaskInfo> infos = mRecentTasks.getRecentTasks(MAX_VALUE, getRecentTaskFlags,
-                true /* getTasksAllowed */, false /* getDetailedTasks */,
-                TEST_USER_0_ID, 0).getList();
+                true /* getTasksAllowed */, TEST_USER_0_ID, 0).getList();
         assertTrue(expectedTasks.length == infos.size());
         for (int i = 0; i < infos.size(); i++)  {
             assertTrue(expectedTasks[i].mTaskId == infos.get(i).taskId);
@@ -1329,11 +1351,9 @@
 
         @Override
         ParceledListSlice<RecentTaskInfo> getRecentTasks(int maxNum, int flags,
-                boolean getTasksAllowed,
-                boolean getDetailedTasks, int userId, int callingUid) {
+                boolean getTasksAllowed, int userId, int callingUid) {
             mLastAllowed = getTasksAllowed;
-            return super.getRecentTasks(maxNum, flags, getTasksAllowed, getDetailedTasks, userId,
-                    callingUid);
+            return super.getRecentTasks(maxNum, flags, getTasksAllowed, userId, callingUid);
         }
 
         @Override
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
index 5c36f5c..406affc 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
@@ -28,14 +28,12 @@
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.atLeast;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyNoMoreInteractions;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
-import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
 import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
 import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_ORIGINAL_POSITION;
 import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_TOP;
@@ -51,6 +49,7 @@
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.clearInvocations;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 
@@ -95,20 +94,24 @@
     @Mock RecentsAnimationController.RecentsAnimationCallbacks mAnimationCallbacks;
     @Mock TaskSnapshot mMockTaskSnapshot;
     private RecentsAnimationController mController;
+    private DisplayContent mDefaultDisplay;
+    private ActivityStack mRootHomeTask;
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         doNothing().when(mWm.mRoot).performSurfacePlacement(anyBoolean());
-        doReturn(mDisplayContent).when(mWm.mRoot).getDisplayContent(anyInt());
         when(mMockRunner.asBinder()).thenReturn(new Binder());
+        mDefaultDisplay = mWm.mRoot.getDefaultDisplay();
         mController = spy(new RecentsAnimationController(mWm, mMockRunner, mAnimationCallbacks,
                 DEFAULT_DISPLAY));
+        mRootHomeTask = mDefaultDisplay.getRootHomeTask();
+        assertNotNull(mRootHomeTask);
     }
 
     @Test
     public void testRemovedBeforeStarted_expectCanceled() throws Exception {
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         AnimationAdapter adapter = mController.addAnimation(activity.getTask(),
                 false /* isRecentTaskInvisible */);
@@ -128,7 +131,7 @@
 
     @Test
     public void testCancelAfterRemove_expectIgnored() {
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         AnimationAdapter adapter = mController.addAnimation(activity.getTask(),
                 false /* isRecentTaskInvisible */);
@@ -149,20 +152,14 @@
     @Test
     public void testIncludedApps_expectTargetAndVisible() {
         mWm.setRecentsAnimationController(mController);
-        final ActivityStack homeStack = mDisplayContent.getOrCreateStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        final ActivityRecord homeActivity =
-                new ActivityTestsBase.ActivityBuilder(mWm.mAtmService)
-                        .setStack(homeStack)
-                        .setCreateTask(true)
-                        .build();
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord homeActivity = createHomeActivity();
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final ActivityRecord hiddenActivity = createActivityRecord(mDisplayContent,
+        final ActivityRecord hiddenActivity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         hiddenActivity.setVisible(false);
-        mDisplayContent.getConfiguration().windowConfiguration.setRotation(
-                mDisplayContent.getRotation());
+        mDefaultDisplay.getConfiguration().windowConfiguration.setRotation(
+                mDefaultDisplay.getRotation());
         mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeActivity);
 
         // Ensure that we are animating the target activity as well
@@ -174,53 +171,41 @@
     @Test
     public void testWallpaperIncluded_expectTarget() throws Exception {
         mWm.setRecentsAnimationController(mController);
-        final ActivityStack homeStack = mDisplayContent.getOrCreateStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        final ActivityRecord homeAppWindow =
-                new ActivityTestsBase.ActivityBuilder(mWm.mAtmService)
-                        .setStack(homeStack)
-                        .setCreateTask(true)
-                        .build();
-        final ActivityRecord appWindow = createActivityRecord(mDisplayContent,
+        final ActivityRecord homeActivity = createHomeActivity();
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, appWindow, "win1");
-        appWindow.addWindow(win1);
+        final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, activity, "win1");
+        activity.addWindow(win1);
         final WallpaperWindowToken wallpaperWindowToken = new WallpaperWindowToken(mWm,
-                mock(IBinder.class), true, mDisplayContent, true /* ownerCanManageAppTokens */);
-        spyOn(mDisplayContent.mWallpaperController);
-        doReturn(true).when(mDisplayContent.mWallpaperController).isWallpaperVisible();
+                mock(IBinder.class), true, mDefaultDisplay, true /* ownerCanManageAppTokens */);
+        spyOn(mDefaultDisplay.mWallpaperController);
+        doReturn(true).when(mDefaultDisplay.mWallpaperController).isWallpaperVisible();
 
-        mDisplayContent.getConfiguration().windowConfiguration.setRotation(
-                mDisplayContent.getRotation());
-        mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeAppWindow);
+        mDefaultDisplay.getConfiguration().windowConfiguration.setRotation(
+                mDefaultDisplay.getRotation());
+        mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeActivity);
         mController.startAnimation();
 
         // Ensure that we are animating the app and wallpaper target
-        assertTrue(mController.isAnimatingTask(appWindow.getTask()));
+        assertTrue(mController.isAnimatingTask(activity.getTask()));
         assertTrue(mController.isAnimatingWallpaper(wallpaperWindowToken));
     }
 
     @Test
     public void testWallpaperAnimatorCanceled_expectAnimationKeepsRunning() throws Exception {
         mWm.setRecentsAnimationController(mController);
-        final ActivityStack homeStack = mDisplayContent.getOrCreateStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        final ActivityRecord homeActivity =
-                new ActivityTestsBase.ActivityBuilder(mWm.mAtmService)
-                        .setStack(homeStack)
-                        .setCreateTask(true)
-                        .build();
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord homeActivity = createHomeActivity();
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, activity, "win1");
         activity.addWindow(win1);
         final WallpaperWindowToken wallpaperWindowToken = new WallpaperWindowToken(mWm,
-                mock(IBinder.class), true, mDisplayContent, true /* ownerCanManageAppTokens */);
-        spyOn(mDisplayContent.mWallpaperController);
-        doReturn(true).when(mDisplayContent.mWallpaperController).isWallpaperVisible();
+                mock(IBinder.class), true, mDefaultDisplay, true /* ownerCanManageAppTokens */);
+        spyOn(mDefaultDisplay.mWallpaperController);
+        doReturn(true).when(mDefaultDisplay.mWallpaperController).isWallpaperVisible();
 
-        mDisplayContent.getConfiguration().windowConfiguration.setRotation(
-                mDisplayContent.getRotation());
+        mDefaultDisplay.getConfiguration().windowConfiguration.setRotation(
+                mDefaultDisplay.getRotation());
         mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeActivity);
         mController.startAnimation();
 
@@ -234,29 +219,27 @@
     @Test
     public void testFinish_expectTargetAndWallpaperAdaptersRemoved() {
         mWm.setRecentsAnimationController(mController);
-        final ActivityStack homeStack = mDisplayContent.getOrCreateStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        final ActivityRecord homeActivity =
-                new ActivityTestsBase.ActivityBuilder(mWm.mAtmService)
-                        .setStack(homeStack)
-                        .setCreateTask(true)
-                        .build();
+        final ActivityRecord homeActivity = createHomeActivity();
         final WindowState hwin1 = createWindow(null, TYPE_BASE_APPLICATION, homeActivity, "hwin1");
         homeActivity.addWindow(hwin1);
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, activity, "win1");
         activity.addWindow(win1);
         final WallpaperWindowToken wallpaperWindowToken = new WallpaperWindowToken(mWm,
-                mock(IBinder.class), true, mDisplayContent, true /* ownerCanManageAppTokens */);
-        spyOn(mDisplayContent.mWallpaperController);
-        doReturn(true).when(mDisplayContent.mWallpaperController).isWallpaperVisible();
+                mock(IBinder.class), true, mDefaultDisplay, true /* ownerCanManageAppTokens */);
+        spyOn(mDefaultDisplay.mWallpaperController);
+        doReturn(true).when(mDefaultDisplay.mWallpaperController).isWallpaperVisible();
 
         // Start and finish the animation
         mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeActivity);
         mController.startAnimation();
+
+        assertTrue(mController.isAnimatingTask(homeActivity.getTask()));
+        assertTrue(mController.isAnimatingTask(activity.getTask()));
+
         // Reset at this point since we may remove adapters that couldn't be created
-        reset(mController);
+        clearInvocations(mController);
         mController.cleanupAnimation(REORDER_MOVE_TO_TOP);
 
         // Ensure that we remove the task (home & app) and wallpaper adapters
@@ -267,7 +250,7 @@
     @Test
     public void testDeferCancelAnimation() throws Exception {
         mWm.setRecentsAnimationController(mController);
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, activity, "win1");
         activity.addWindow(win1);
@@ -290,7 +273,7 @@
     @Test
     public void testDeferCancelAnimationWithScreenShot() throws Exception {
         mWm.setRecentsAnimationController(mController);
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, activity, "win1");
         activity.addWindow(win1);
@@ -322,7 +305,7 @@
     @Test
     public void testShouldAnimateWhenNoCancelWithDeferredScreenshot() {
         mWm.setRecentsAnimationController(mController);
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, activity, "win1");
         activity.addWindow(win1);
@@ -343,19 +326,10 @@
         mWm.mIsFixedRotationTransformEnabled = true;
         mWm.setRecentsAnimationController(mController);
 
-        final ActivityStack homeStack = mDisplayContent.getOrCreateStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        final ActivityRecord homeAppWindow =
-                new ActivityTestsBase.ActivityBuilder(mWm.mAtmService)
-                        .setStack(homeStack)
-                        .setCreateTask(true)
-                        .build();
-        final ActivityRecord appWindow = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final WindowState win0 = createWindow(null, TYPE_BASE_APPLICATION, appWindow, "win1");
-        appWindow.addWindow(win0);
+        final ActivityRecord homeActivity = createHomeActivity();
+        homeActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
 
-        final ActivityRecord landActivity = createActivityRecord(mDisplayContent,
+        final ActivityRecord landActivity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         landActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, landActivity, "win1");
@@ -367,13 +341,13 @@
         // Ensure that the display is in Landscape
         landActivity.onDescendantOrientationChanged(landActivity.token, landActivity);
         assertEquals(Configuration.ORIENTATION_LANDSCAPE,
-                mDisplayContent.getConfiguration().orientation);
+                mDefaultDisplay.getConfiguration().orientation);
 
-        mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeAppWindow);
+        mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeActivity);
 
         // Check that the home app is in portrait
         assertEquals(Configuration.ORIENTATION_PORTRAIT,
-                homeAppWindow.getConfiguration().orientation);
+                homeActivity.getConfiguration().orientation);
     }
 
     @Test
@@ -381,16 +355,8 @@
         mWm.mIsFixedRotationTransformEnabled = true;
         mWm.setRecentsAnimationController(mController);
 
-        // Create a portrait home stack, a wallpaper and a landscape application displayed on top.
-
-        // Home stack
-        final ActivityStack homeStack = mDisplayContent.getOrCreateStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        final ActivityRecord homeActivity =
-                new ActivityTestsBase.ActivityBuilder(mWm.mAtmService)
-                        .setStack(homeStack)
-                        .setCreateTask(true)
-                        .build();
+        // Create a portrait home activity, a wallpaper and a landscape activity displayed on top.
+        final ActivityRecord homeActivity = createHomeActivity();
         homeActivity.setOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
 
         final WindowState homeWindow = createWindow(null, TYPE_BASE_APPLICATION, homeActivity,
@@ -399,7 +365,7 @@
         homeWindow.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
 
         // Landscape application
-        final ActivityRecord activity = createActivityRecord(mDisplayContent,
+        final ActivityRecord activity = createActivityRecord(mDefaultDisplay,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         final WindowState applicationWindow = createWindow(null, TYPE_BASE_APPLICATION, activity,
                 "applicationWindow");
@@ -408,28 +374,26 @@
 
         // Wallpaper
         final WallpaperWindowToken wallpaperWindowToken = new WallpaperWindowToken(mWm,
-                mock(IBinder.class), true, mDisplayContent, true /* ownerCanManageAppTokens */);
+                mock(IBinder.class), true, mDefaultDisplay, true /* ownerCanManageAppTokens */);
         final WindowState wallpaperWindow = createWindow(null, TYPE_WALLPAPER, wallpaperWindowToken,
                 "wallpaperWindow");
 
         // Make sure the landscape activity is on top and the display is in landscape
         activity.moveFocusableActivityToTop("test");
-        mDisplayContent.getConfiguration().windowConfiguration.setRotation(
-                mDisplayContent.getRotation());
+        mDefaultDisplay.getConfiguration().windowConfiguration.setRotation(
+                mDefaultDisplay.getRotation());
 
-
-        spyOn(mDisplayContent.mWallpaperController);
-        doReturn(true).when(mDisplayContent.mWallpaperController).isWallpaperVisible();
+        spyOn(mDefaultDisplay.mWallpaperController);
+        doReturn(true).when(mDefaultDisplay.mWallpaperController).isWallpaperVisible();
 
         // Start the recents animation
-        mController
-                .initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeActivity);
+        mController.initialize(ACTIVITY_TYPE_HOME, new SparseBooleanArray(), homeActivity);
 
-        mDisplayContent.mWallpaperController.adjustWallpaperWindows();
+        mDefaultDisplay.mWallpaperController.adjustWallpaperWindows();
 
         // Check preconditions
         ArrayList<WallpaperWindowToken> wallpapers = new ArrayList<>(1);
-        mDisplayContent.forAllWallpaperWindows(wallpapers::add);
+        mDefaultDisplay.forAllWallpaperWindows(wallpapers::add);
 
         Truth.assertThat(wallpapers).hasSize(1);
         Truth.assertThat(wallpapers.get(0).getTopChild()).isEqualTo(wallpaperWindow);
@@ -437,6 +401,25 @@
         // Actual check
         assertEquals(Configuration.ORIENTATION_PORTRAIT,
                 wallpapers.get(0).getConfiguration().orientation);
+
+        // Wallpaper's transform state is controlled by home, so the invocation should be no-op.
+        wallpaperWindowToken.clearFixedRotationTransform();
+        assertTrue(wallpaperWindowToken.hasFixedRotationTransform());
+
+        // Wallpaper's transform state should be cleared with home.
+        homeActivity.clearFixedRotationTransform();
+        assertFalse(wallpaperWindowToken.hasFixedRotationTransform());
+    }
+
+    private ActivityRecord createHomeActivity() {
+        final ActivityRecord homeActivity = new ActivityTestsBase.ActivityBuilder(mWm.mAtmService)
+                .setStack(mRootHomeTask)
+                .setCreateTask(true)
+                .build();
+        // Avoid {@link RecentsAnimationController.TaskAnimationAdapter#createRemoteAnimationTarget}
+        // returning null when calling {@link RecentsAnimationController#createAppAnimations}.
+        homeActivity.setVisibility(true);
+        return homeActivity;
     }
 
     private static void verifyNoMoreInteractionsExceptAsBinder(IInterface binder) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
index 6272070..0d55654 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
@@ -22,9 +22,11 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import android.app.ActivityManager.RunningTaskInfo;
 import android.content.ComponentName;
+import android.os.Bundle;
 import android.platform.test.annotations.Presubmit;
 import android.util.ArraySet;
 
@@ -58,8 +60,7 @@
     public void testCollectTasksByLastActiveTime() {
         // Create a number of stacks with tasks (of incrementing active time)
         final ArrayList<DisplayContent> displays = new ArrayList<>();
-        final DisplayContent display =
-                new TestDisplayContent.Builder(mService, 1000, 2500).build();
+        final DisplayContent display = new TestDisplayContent.Builder(mService, 1000, 2500).build();
         displays.add(display);
 
         final int numStacks = 2;
@@ -74,7 +75,7 @@
         final int numTasks = 10;
         int activeTime = 0;
         for (int i = 0; i < numTasks; i++) {
-            createTask(display.getStackAt(i % numStacks), ".Task" + i, i, activeTime++);
+            createTask(display.getStackAt(i % numStacks), ".Task" + i, i, activeTime++, null);
         }
 
         // Ensure that the latest tasks were returned in order of decreasing last active time,
@@ -101,11 +102,39 @@
         }
     }
 
+    @Test
+    public void testTaskInfo_expectNoExtras() {
+        final DisplayContent display = new TestDisplayContent.Builder(mService, 1000, 2500).build();
+        final int numTasks = 10;
+        for (int i = 0; i < numTasks; i++) {
+            final ActivityStack stack = new StackBuilder(mRootWindowContainer)
+                    .setCreateActivity(false)
+                    .setDisplay(display)
+                    .setOnTop(true)
+                    .build();
+            final Bundle data = new Bundle();
+            data.putInt("key", 100);
+            createTask(stack, ".Task" + i, i, i, data);
+        }
+
+        final int numFetchTasks = 5;
+        final ArrayList<RunningTaskInfo> tasks = new ArrayList<>();
+        mRunningTasks.getTasks(numFetchTasks, tasks, ACTIVITY_TYPE_UNDEFINED,
+                WINDOWING_MODE_UNDEFINED, mRootWindowContainer, -1 /* callingUid */,
+                true /* allowed */, true /*crossUser */, PROFILE_IDS);
+        assertThat(tasks).hasSize(numFetchTasks);
+        for (int i = 0; i < tasks.size(); i++) {
+            final Bundle extras = tasks.get(i).baseIntent.getExtras();
+            assertTrue(extras == null || extras.isEmpty());
+        }
+    }
+
+
     /**
      * Create a task with a single activity in it, with the given last active time.
      */
     private Task createTask(ActivityStack stack, String className, int taskId,
-            int lastActiveTime) {
+            int lastActiveTime, Bundle extras) {
         final Task task = new TaskBuilder(mService.mStackSupervisor)
                 .setComponent(new ComponentName(mContext.getPackageName(), className))
                 .setTaskId(taskId)
@@ -115,6 +144,7 @@
         final ActivityRecord activity = new ActivityBuilder(mService)
                 .setTask(task)
                 .setComponent(new ComponentName(mContext.getPackageName(), ".TaskActivity"))
+                .setIntentExtras(extras)
                 .build();
         return task;
     }
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 890e4ab..ba4a82f 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
@@ -45,6 +45,7 @@
 import android.graphics.Rect;
 import android.os.IBinder;
 import android.platform.test.annotations.Presubmit;
+import android.view.WindowManager;
 
 import androidx.test.filters.MediumTest;
 
@@ -73,13 +74,14 @@
         mActivity = mTask.getTopNonFinishingActivity();
     }
 
-    private void ensureActivityConfiguration() {
-        mActivity.ensureActivityConfiguration(0 /* globalChanges */, false /* preserveWindow */);
+    private void setUpDisplaySizeWithApp(int dw, int dh) {
+        final TestDisplayContent.Builder builder = new TestDisplayContent.Builder(mService, dw, dh);
+        setUpApp(builder.build());
     }
 
     @Test
     public void testRestartProcessIfVisible() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+        setUpDisplaySizeWithApp(1000, 2500);
         doNothing().when(mSupervisor).scheduleRestartTimeout(mActivity);
         mActivity.mVisibleRequested = true;
         mActivity.setSavedState(null /* savedState */);
@@ -116,43 +118,54 @@
         c.windowConfiguration.setWindowingMode(WindowConfiguration.WINDOWING_MODE_FULLSCREEN);
         display.onRequestedOverrideConfigurationChanged(c);
 
-        // check if dimensions stay the same
-        assertTrue(mActivity.inSizeCompatMode());
+        // Check if dimensions on screen stay the same by scaling.
+        assertScaled();
         assertEquals(bounds.width(), mActivity.getBounds().width());
         assertEquals(bounds.height(), mActivity.getBounds().height());
         assertEquals(density, mActivity.getConfiguration().densityDpi);
     }
 
     @Test
-    public void testFixedAspectRatioBoundsWithDecor() {
-        final int decorHeight = 200; // e.g. The device has cutout.
-        setUpApp(new TestDisplayContent.Builder(mService, 600, 800)
-                .setNotch(decorHeight).build());
+    public void testFixedAspectRatioBoundsWithDecorInSquareDisplay() {
+        final int notchHeight = 100;
+        setUpApp(new TestDisplayContent.Builder(mService, 600, 800).setNotch(notchHeight).build());
+        // Rotation is ignored so because the display size is close to square (700/600<1.333).
+        assertTrue(mActivity.mDisplayContent.ignoreRotationForApps());
 
-        mActivity.info.minAspectRatio = mActivity.info.maxAspectRatio = 1;
+        final Rect displayBounds = mActivity.mDisplayContent.getBounds();
+        final float aspectRatio = 1.2f;
+        mActivity.info.minAspectRatio = mActivity.info.maxAspectRatio = aspectRatio;
         prepareUnresizable(-1f, SCREEN_ORIENTATION_UNSPECIFIED);
+        final Rect appBounds = mActivity.getWindowConfiguration().getAppBounds();
 
         // The parent configuration doesn't change since the first resolved configuration, so the
-        // activity shouldn't be in the size compatibility mode.
-        assertFalse(mActivity.inSizeCompatMode());
-
-        final Rect appBounds = mActivity.getWindowConfiguration().getAppBounds();
+        // activity should fit in the parent naturally. (size=583x700).
+        assertFitted();
+        final int offsetX = (int) ((1f + displayBounds.width() - appBounds.width()) / 2);
+        // The bounds must be horizontal centered.
+        assertEquals(offsetX, appBounds.left);
+        assertEquals(appBounds.height(), displayBounds.height() - notchHeight);
         // Ensure the app bounds keep the declared aspect ratio.
-        assertEquals(appBounds.width(), appBounds.height());
+        assertEquals(appBounds.height(), appBounds.width() * aspectRatio, 0.5f /* delta */);
         // The decor height should be a part of the effective bounds.
-        assertEquals(mActivity.getBounds().height(), appBounds.height() + decorHeight);
+        assertEquals(mActivity.getBounds().height(), appBounds.height() + notchHeight);
 
-        mTask.getConfiguration().windowConfiguration.setRotation(ROTATION_90);
-        mActivity.onConfigurationChanged(mTask.getConfiguration());
-        // After changing orientation, the aspect ratio should be the same.
-        assertEquals(appBounds.width(), appBounds.height());
-        // The decor height will be included in width.
-        assertEquals(mActivity.getBounds().width(), appBounds.width() + decorHeight);
+        mActivity.setRequestedOrientation(SCREEN_ORIENTATION_LANDSCAPE);
+        assertFitted();
+
+        // After the orientation of activity is changed, even display is not rotated, the aspect
+        // ratio should be the same (bounds=[0, 0 - 600, 600], appBounds=[0, 100 - 600, 600]).
+        assertEquals(appBounds.width(), appBounds.height() * aspectRatio, 0.5f /* delta */);
+        // The notch is still on top.
+        assertEquals(mActivity.getBounds().height(), appBounds.height() + notchHeight);
+
+        mActivity.setRequestedOrientation(SCREEN_ORIENTATION_PORTRAIT);
+        assertFitted();
     }
 
     @Test
     public void testFixedScreenConfigurationWhenMovingToDisplay() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+        setUpDisplaySizeWithApp(1000, 2500);
 
         // Make a new less-tall display with lower density
         final DisplayContent newDisplay =
@@ -175,107 +188,133 @@
         assertEquals(originalBounds.width(), mActivity.getBounds().width());
         assertEquals(originalBounds.height(), mActivity.getBounds().height());
         assertEquals(originalDpi, mActivity.getConfiguration().densityDpi);
-        assertTrue(mActivity.inSizeCompatMode());
+        assertScaled();
     }
 
     @Test
     public void testFixedScreenBoundsWhenDisplaySizeChanged() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+        setUpDisplaySizeWithApp(1000, 2500);
         prepareUnresizable(-1f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
-        assertFalse(mActivity.inSizeCompatMode());
+        assertFitted();
 
         final Rect origBounds = new Rect(mActivity.getBounds());
+        final Rect currentBounds = mActivity.getWindowConfiguration().getBounds();
 
         // Change the size of current display.
         resizeDisplay(mStack.getDisplay(), 1000, 2000);
-        ensureActivityConfiguration();
 
-        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
-        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
-        assertTrue(mActivity.inSizeCompatMode());
+        assertEquals(origBounds.width(), currentBounds.width());
+        assertEquals(origBounds.height(), currentBounds.height());
+        assertScaled();
+
+        // The position of configuration bounds should be the same as compat bounds.
+        assertEquals(mActivity.getBounds().left, currentBounds.left);
+        assertEquals(mActivity.getBounds().top, currentBounds.top);
 
         // Change display size to a different orientation
         resizeDisplay(mStack.getDisplay(), 2000, 1000);
-        ensureActivityConfiguration();
-        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
-        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
+        assertEquals(origBounds.width(), currentBounds.width());
+        assertEquals(origBounds.height(), currentBounds.height());
     }
 
     @Test
-    public void testLetterboxFullscreenBounds() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+    public void testLetterboxFullscreenBoundsAndNotImeAttachable() {
+        final int displayWidth = 2500;
+        setUpDisplaySizeWithApp(displayWidth, 1000);
 
-        // Fill out required fields on default display since WM-side is mocked out
-        prepareUnresizable(-1.f /* maxAspect */, SCREEN_ORIENTATION_LANDSCAPE);
-        assertFalse(mActivity.inSizeCompatMode());
-        assertTrue(mActivity.getBounds().width() > mActivity.getBounds().height());
+        final float maxAspect = 1.5f;
+        prepareUnresizable(maxAspect, SCREEN_ORIENTATION_LANDSCAPE);
+        assertFitted();
+
+        final Rect bounds = mActivity.getBounds();
+        assertEquals(bounds.width(), bounds.height() * maxAspect, 0.0001f /* delta */);
+        // The position should be horizontal centered.
+        assertEquals((displayWidth - bounds.width()) / 2, bounds.left);
+
+        final WindowTestUtils.TestWindowState w = new WindowTestUtils.TestWindowState(
+                mService.mWindowManager, mock(Session.class), new TestIWindow(),
+                new WindowManager.LayoutParams(), mActivity);
+        mActivity.addWindow(w);
+        mActivity.mDisplayContent.mInputMethodTarget = w;
+        // Make sure IME cannot attach to the app, otherwise IME window will also be shifted.
+        assertFalse(mActivity.mDisplayContent.isImeAttachedToApp());
     }
 
     @Test
     public void testMoveToDifferentOrientDisplay() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
-
-        final DisplayContent newDisplay =
-                new TestDisplayContent.Builder(mService, 2000, 1000)
-                        .setCanRotate(false).build();
-
+        setUpDisplaySizeWithApp(1000, 2500);
         prepareUnresizable(-1.f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
-        assertFalse(mActivity.inSizeCompatMode());
+        assertFitted();
 
-        final Rect origBounds = new Rect(mActivity.getBounds());
+        final Rect configBounds = mActivity.getWindowConfiguration().getBounds();
+        final int origWidth = configBounds.width();
+        final int origHeight = configBounds.height();
+
+        final int notchHeight = 100;
+        final DisplayContent newDisplay = new TestDisplayContent.Builder(mService, 2000, 1000)
+                .setCanRotate(false).setNotch(notchHeight).build();
 
         // Move the non-resizable activity to the new display.
-        mStack.reparent(newDisplay.mDisplayContent, true /* onTop */);
-        ensureActivityConfiguration();
-        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
-        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
-        assertTrue(mActivity.inSizeCompatMode());
+        mStack.reparent(newDisplay, true /* onTop */);
+        // The configuration bounds should keep the same.
+        assertEquals(origWidth, configBounds.width());
+        assertEquals(origHeight, configBounds.height());
+        assertScaled();
+
+        // The scaled bounds should exclude notch area (1000 - 100 == 360 * 2500 / 1000 = 900).
+        assertEquals(newDisplay.getBounds().height() - notchHeight,
+                (int) ((float) mActivity.getBounds().width() * origHeight / origWidth));
     }
 
     @Test
     public void testFixedOrientRotateCutoutDisplay() {
         // Create a display with a notch/cutout
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).setNotch(60).build());
+        final int notchHeight = 60;
+        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500)
+                .setNotch(notchHeight).build());
+        // Bounds=[0, 0 - 1000, 1460], AppBounds=[0, 60 - 1000, 1460].
         prepareUnresizable(1.4f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
 
-        final Rect origBounds = new Rect(mActivity.getBounds());
-        final Rect origAppBounds = new Rect(mActivity.getWindowConfiguration().getAppBounds());
+        final Rect currentBounds = mActivity.getWindowConfiguration().getBounds();
+        final Rect appBounds = mActivity.getWindowConfiguration().getAppBounds();
+        final Rect origBounds = new Rect(currentBounds);
+        final Rect origAppBounds = new Rect(appBounds);
 
-        // Rotate the display
-        Configuration c = new Configuration();
-        mStack.getDisplay().mDisplayContent.getDisplayRotation().setRotation(ROTATION_270);
-        mStack.getDisplay().mDisplayContent.computeScreenConfiguration(c);
-        mStack.getDisplay().onRequestedOverrideConfigurationChanged(c);
-
-        // Make sure the app size is the same
+        // Although the activity is fixed orientation, force rotate the display.
+        rotateDisplay(mActivity.mDisplayContent, ROTATION_270);
         assertEquals(ROTATION_270, mStack.getWindowConfiguration().getRotation());
-        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
-        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
-        assertEquals(origAppBounds.width(),
-                mActivity.getWindowConfiguration().getAppBounds().width());
-        assertEquals(origAppBounds.height(),
-                mActivity.getWindowConfiguration().getAppBounds().height());
+
+        assertEquals(origBounds.width(), currentBounds.width());
+        // The notch is on horizontal side, so current height changes from 1460 to 1400.
+        assertEquals(origBounds.height() - notchHeight, currentBounds.height());
+        // Make sure the app size is the same
+        assertEquals(origAppBounds.width(), appBounds.width());
+        assertEquals(origAppBounds.height(), appBounds.height());
+        // The activity is 1000x1400 and the display is 2500x1000.
+        assertScaled();
+        // The position in configuration should be global coordinates.
+        assertEquals(mActivity.getBounds().left, currentBounds.left);
+        assertEquals(mActivity.getBounds().top, currentBounds.top);
     }
 
     @Test
     public void testFixedAspOrientChangeOrient() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+        setUpDisplaySizeWithApp(1000, 2500);
 
-        prepareUnresizable(1.4f /* maxAspect */, SCREEN_ORIENTATION_LANDSCAPE);
+        final float maxAspect = 1.4f;
+        prepareUnresizable(maxAspect, SCREEN_ORIENTATION_PORTRAIT);
         // The display aspect ratio 2.5 > 1.4 (max of activity), so the size is fitted.
-        assertFalse(mActivity.inSizeCompatMode());
+        assertFitted();
 
         final Rect originalBounds = new Rect(mActivity.getBounds());
         final Rect originalAppBounds = new Rect(mActivity.getWindowConfiguration().getAppBounds());
 
-        // Change the fixed orientation
-        mActivity.mOrientation = SCREEN_ORIENTATION_PORTRAIT;
-        mActivity.info.screenOrientation = SCREEN_ORIENTATION_PORTRAIT;
-        // TaskRecord's configuration actually depends on the activity config right now for
-        // pillarboxing.
-        mActivity.getTask().onRequestedOverrideConfigurationChanged(
-                mActivity.getTask().getRequestedOverrideConfiguration());
+        assertEquals((int) (originalBounds.width() * maxAspect), originalBounds.height());
 
+        // Change the fixed orientation.
+        mActivity.setRequestedOrientation(SCREEN_ORIENTATION_LANDSCAPE);
+
+        assertFitted();
         assertEquals(originalBounds.width(), mActivity.getBounds().height());
         assertEquals(originalBounds.height(), mActivity.getBounds().width());
         assertEquals(originalAppBounds.width(),
@@ -286,7 +325,7 @@
 
     @Test
     public void testFixedScreenLayoutSizeBits() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+        setUpDisplaySizeWithApp(1000, 2500);
         final int fixedScreenLayout = Configuration.SCREENLAYOUT_LONG_NO
                 | Configuration.SCREENLAYOUT_SIZE_NORMAL
                 | Configuration.SCREENLAYOUT_COMPAT_NEEDED;
@@ -314,7 +353,7 @@
 
     @Test
     public void testResetNonVisibleActivity() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+        setUpDisplaySizeWithApp(1000, 2500);
         prepareUnresizable(1.5f, SCREEN_ORIENTATION_UNSPECIFIED);
         final DisplayContent display = mStack.getDisplay();
         // Resize the display so the activity is in size compatibility mode.
@@ -325,23 +364,20 @@
         mActivity.app.setReportedProcState(ActivityManager.PROCESS_STATE_CACHED_ACTIVITY);
 
         // Simulate the display changes orientation.
-        final Configuration c = new Configuration();
-        display.getDisplayRotation().setRotation(ROTATION_90);
-        display.computeScreenConfiguration(c);
-        display.onRequestedOverrideConfigurationChanged(c);
+        final Configuration rotatedConfig = rotateDisplay(display, ROTATION_90);
         // Size compatibility mode is able to handle orientation change so the process shouldn't be
         // restarted and the override configuration won't be cleared.
         verify(mActivity, never()).restartProcessIfVisible();
-        assertTrue(mActivity.inSizeCompatMode());
+        assertScaled();
 
         // Change display density
         display.mBaseDisplayDensity = (int) (0.7f * display.mBaseDisplayDensity);
-        display.computeScreenConfiguration(c);
+        display.computeScreenConfiguration(rotatedConfig);
         mService.mAmInternal = mock(ActivityManagerInternal.class);
-        display.onRequestedOverrideConfigurationChanged(c);
+        display.onRequestedOverrideConfigurationChanged(rotatedConfig);
 
         // The override configuration should be reset and the activity's process will be killed.
-        assertFalse(mActivity.inSizeCompatMode());
+        assertFitted();
         verify(mActivity).restartProcessIfVisible();
         waitHandlerIdle(mService.mH);
         verify(mService.mAmInternal).killProcess(
@@ -354,11 +390,11 @@
      */
     @Test
     public void testHandleActivitySizeCompatMode() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2000).build());
+        setUpDisplaySizeWithApp(1000, 2000);
         ActivityRecord activity = mActivity;
         activity.setState(ActivityStack.ActivityState.RESUMED, "testHandleActivitySizeCompatMode");
         prepareUnresizable(-1.f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
-        assertFalse(mActivity.inSizeCompatMode());
+        assertFitted();
 
         final ArrayList<IBinder> compatTokens = new ArrayList<>();
         mService.getTaskChangeNotificationController().registerTaskStackListener(
@@ -393,7 +429,7 @@
 
     @Test
     public void testShouldUseSizeCompatModeOnResizableTask() {
-        setUpApp(new TestDisplayContent.Builder(mService, 1000, 2500).build());
+        setUpDisplaySizeWithApp(1000, 2500);
 
         // Make the task root resizable.
         mActivity.info.resizeMode = ActivityInfo.RESIZE_MODE_RESIZEABLE;
@@ -418,6 +454,29 @@
         assertFalse(activity.shouldUseSizeCompatMode());
     }
 
+    @Test
+    public void testLaunchWithFixedRotationTransform() {
+        mService.mWindowManager.mIsFixedRotationTransformEnabled = true;
+        final int dw = 1000;
+        final int dh = 2500;
+        setUpDisplaySizeWithApp(dw, dh);
+        mActivity.mDisplayContent.prepareAppTransition(WindowManager.TRANSIT_ACTIVITY_OPEN,
+                false /* alwaysKeepCurrent */);
+        mActivity.mDisplayContent.mOpeningApps.add(mActivity);
+        final float maxAspect = 1.8f;
+        prepareUnresizable(maxAspect, SCREEN_ORIENTATION_LANDSCAPE);
+
+        assertFitted();
+        assertTrue(mActivity.isFixedRotationTransforming());
+        // Display keeps in original orientation.
+        assertEquals(Configuration.ORIENTATION_PORTRAIT,
+                mActivity.mDisplayContent.getConfiguration().orientation);
+        // Activity bounds should be [350, 0 - 2150, 1000] in landscape. Its width=1000*1.8=1800.
+        assertEquals((int) (dw * maxAspect), mActivity.getBounds().width());
+        // The bounds should be horizontal centered: (2500-1900)/2=350.
+        assertEquals((dh - mActivity.getBounds().width()) / 2, mActivity.getBounds().left);
+    }
+
     /**
      * Setup {@link #mActivity} as a size-compat-mode-able activity with fixed aspect and/or
      * orientation.
@@ -429,22 +488,48 @@
             mActivity.info.maxAspectRatio = maxAspect;
         }
         if (screenOrientation != SCREEN_ORIENTATION_UNSPECIFIED) {
-            mActivity.mOrientation = screenOrientation;
             mActivity.info.screenOrientation = screenOrientation;
-            // TaskRecord's configuration actually depends on the activity config right now for
-            // pillarboxing.
-            mActivity.getTask().onRequestedOverrideConfigurationChanged(
-                    mActivity.getTask().getRequestedOverrideConfiguration());
+            mActivity.setRequestedOrientation(screenOrientation);
         }
-        ensureActivityConfiguration();
+        // Make sure to use the provided configuration to construct the size compat fields.
+        mActivity.clearSizeCompatMode();
+        mActivity.ensureActivityConfiguration(0 /* globalChanges */, false /* preserveWindow */);
+        // Make sure the display configuration reflects the change of activity.
+        if (mActivity.mDisplayContent.updateOrientation()) {
+            mActivity.mDisplayContent.sendNewConfiguration();
+        }
     }
 
-    private void resizeDisplay(DisplayContent display, int width, int height) {
-        final DisplayContent displayContent = display.mDisplayContent;
+    /** Asserts that the size of activity is larger than its parent so it is scaling. */
+    private void assertScaled() {
+        assertTrue(mActivity.inSizeCompatMode());
+        assertNotEquals(1f, mActivity.getSizeCompatScale(), 0.0001f /* delta */);
+    }
+
+    /** Asserts that the activity is best fitted in the parent. */
+    private void assertFitted() {
+        final boolean inSizeCompatMode = mActivity.inSizeCompatMode();
+        final String failedConfigInfo = inSizeCompatMode
+                ? ("ParentConfig=" + mActivity.getParent().getConfiguration()
+                        + " ActivityConfig=" + mActivity.getConfiguration())
+                : "";
+        assertFalse(failedConfigInfo, inSizeCompatMode);
+        assertFalse(mActivity.hasSizeCompatBounds());
+    }
+
+    private static Configuration rotateDisplay(DisplayContent display, int rotation) {
+        final Configuration c = new Configuration();
+        display.getDisplayRotation().setRotation(rotation);
+        display.computeScreenConfiguration(c);
+        display.onRequestedOverrideConfigurationChanged(c);
+        return c;
+    }
+
+    private static void resizeDisplay(DisplayContent displayContent, int width, int height) {
         displayContent.mBaseDisplayWidth = width;
         displayContent.mBaseDisplayHeight = height;
-        Configuration c = new Configuration();
+        final Configuration c = new Configuration();
         displayContent.computeScreenConfiguration(c);
-        display.onRequestedOverrideConfigurationChanged(c);
+        displayContent.onRequestedOverrideConfigurationChanged(c);
     }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java
index 7e31895..f6ed314 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java
@@ -60,4 +60,26 @@
     <T> T awaitInWmLock(Callable<T> callable) {
         return mLockRule.waitForLocked(callable);
     }
+
+    /**
+     * Utility class to compare the output of T#toString. It is convenient to have readable output
+     * of assertion if the string content can represent the expected states.
+     */
+    static class ToStringComparatorWrapper<T> {
+        final T mObject;
+
+        ToStringComparatorWrapper(T object) {
+            mObject = object;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            return mObject.toString().equals(obj.toString());
+        }
+
+        @Override
+        public String toString() {
+            return mObject.toString();
+        }
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
index 45b51cf..e501452 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
@@ -293,8 +293,7 @@
 
         // Info should reflect new membership
         List<TaskTile> tiles = getTaskTiles(mDisplayContent);
-        info1 = new RunningTaskInfo();
-        tiles.get(0).fillTaskInfo(info1);
+        info1 = tiles.get(0).getTaskInfo();
         assertEquals(ACTIVITY_TYPE_STANDARD, info1.topActivityType);
 
         // Children inherit configuration
@@ -307,9 +306,8 @@
 
         tile1.removeChild(stack);
         assertEquals(mDisplayContent.getWindowingMode(), stack.getWindowingMode());
-        info1 = new RunningTaskInfo();
         tiles = getTaskTiles(mDisplayContent);
-        tiles.get(0).fillTaskInfo(info1);
+        info1 = tiles.get(0).getTaskInfo();
         assertEquals(ACTIVITY_TYPE_UNDEFINED, info1.topActivityType);
     }
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
index feadd0a..a25acae 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
@@ -111,7 +111,6 @@
 
     @Before
     public void setUp() throws Exception {
-        Task.setTaskFactory(null);
         mParentBounds = new Rect(10 /*left*/, 30 /*top*/, 80 /*right*/, 60 /*bottom*/);
         removeGlobalMinSizeRestriction();
     }
@@ -148,11 +147,16 @@
         TestTaskFactory factory = new TestTaskFactory();
         Task.setTaskFactory(factory);
 
-        assertFalse(factory.mCreated);
+        try {
+            assertFalse(factory.mCreated);
 
-        Task.create(null, 0, null, null, null, null);
+            Task.create(mService, 0 /*taskId*/, 0 /*activityType*/,
+                    new ActivityInfo(), new Intent());
 
-        assertTrue(factory.mCreated);
+            assertTrue(factory.mCreated);
+        } finally {
+            Task.setTaskFactory(null);
+        }
     }
 
     @Test
@@ -273,8 +277,8 @@
     public void testFullscreenBoundsForcedOrientation() {
         final Rect fullScreenBounds = new Rect(0, 0, 1920, 1080);
         final Rect fullScreenBoundsPort = new Rect(0, 0, 1080, 1920);
-        DisplayContent display = new TestDisplayContent.Builder(
-                mService, fullScreenBounds.width(), fullScreenBounds.height()).build();
+        final DisplayContent display = new TestDisplayContent.Builder(mService,
+                fullScreenBounds.width(), fullScreenBounds.height()).setCanRotate(false).build();
         assertTrue(mRootWindowContainer.getDisplayContent(display.mDisplayId) != null);
         // Fix the display orientation to landscape which is the natural rotation (0) for the test
         // display.
@@ -392,7 +396,7 @@
         // Setup the display with a top stable inset. The later assertion will ensure the inset is
         // excluded from screenHeightDp.
         final int statusBarHeight = 100;
-        final DisplayContent displayContent = mock(DisplayContent.class);
+        final DisplayContent displayContent = task.mDisplayContent;
         final DisplayPolicy policy = mock(DisplayPolicy.class);
         doAnswer(invocationOnMock -> {
             final Rect insets = invocationOnMock.<Rect>getArgument(0);
@@ -406,9 +410,7 @@
         // Without limiting to be inside the parent bounds, the out screen size should keep relative
         // to the input bounds.
         final ActivityRecord.CompatDisplayInsets compatIntsets =
-                new ActivityRecord.CompatDisplayInsets(displayContent, new Rect(0, 0,
-                        displayContent.mBaseDisplayWidth, displayContent.mBaseDisplayHeight),
-                        false);
+                new ActivityRecord.CompatDisplayInsets(displayContent, task);
         task.computeConfigResourceOverrides(inOutConfig, parentConfig, compatIntsets);
 
         assertEquals((shortSide - statusBarHeight) * DENSITY_DEFAULT / parentConfig.densityDpi,
@@ -509,7 +511,7 @@
         info.targetActivity = targetClassName;
 
         final Task task = Task.create(mService, 1 /* taskId */, info, intent,
-                null /* taskDescription */, null /*stack*/);
+                null /* voiceSession */, null /* voiceInteractor */, null /*stack*/);
         assertEquals("The alias activity component should be saved in task intent.", aliasClassName,
                 task.intent.getComponent().getClassName());
 
@@ -997,17 +999,16 @@
         private boolean mCreated = false;
 
         @Override
-        Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
-                Intent intent, IVoiceInteractionSession voiceSession,
-                IVoiceInteractor voiceInteractor, ActivityStack stack) {
+        Task create(ActivityTaskManagerService service, int taskId, int activityType,
+                ActivityInfo info, Intent intent) {
             mCreated = true;
             return null;
         }
 
         @Override
         Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
-                Intent intent, ActivityManager.TaskDescription taskDescription,
-                ActivityStack stack) {
+                Intent intent, IVoiceInteractionSession voiceSession,
+                IVoiceInteractor voiceInteractor, ActivityStack stack) {
             mCreated = true;
             return null;
         }
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java
index 056836b..f9f161a 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java
@@ -49,6 +49,10 @@
     @Mock
     TaskSnapshot mSnapshot;
 
+    public TaskSnapshotCacheTest() {
+        super(0.8f, 0.5f);
+    }
+
     @Override
     @Before
     public void setUp() {
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java
new file mode 100644
index 0000000..2fb0b4c
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import android.app.ActivityManager.TaskSnapshot;
+import android.content.res.Configuration;
+import android.graphics.Rect;
+import android.platform.test.annotations.Presubmit;
+import android.util.ArraySet;
+
+import androidx.test.filters.MediumTest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+import java.io.File;
+
+/**
+ * Test class for {@link TaskSnapshotPersister} and {@link TaskSnapshotLoader}
+ *
+ * Build/Install/Run:
+ * atest TaskSnapshotPersisterLoaderTest
+ */
+@MediumTest
+@Presubmit
+@RunWith(WindowTestRunner.class)
+public class TaskSnapshotLowResDisabledTest extends TaskSnapshotPersisterTestBase {
+
+    private static final Rect TEST_INSETS = new Rect(10, 20, 30, 40);
+
+    private TaskSnapshotCache mCache;
+
+    public TaskSnapshotLowResDisabledTest() {
+        super(0.8f, 0.0f);
+    }
+
+    @Override
+    @Before
+    public void setUp() {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+        mCache = new TaskSnapshotCache(mWm, mLoader);
+    }
+
+    @Test
+    public void testPersistAndLoadSnapshot() {
+        mPersister.persistSnapshot(1, mTestUserId, createSnapshot());
+        mPersister.waitForQueueEmpty();
+        final File[] files = new File[]{
+                new File(FILES_DIR.getPath() + "/snapshots/1.proto"),
+                new File(FILES_DIR.getPath() + "/snapshots/1.jpg")};
+        final File[] nonExistsFiles = new File[]{
+                new File(FILES_DIR.getPath() + "/snapshots/1_reduced.jpg")};
+        assertTrueForFiles(files, File::exists, " must exist");
+        assertTrueForFiles(nonExistsFiles, file -> !file.exists(), " must not exist");
+        final TaskSnapshot snapshot = mLoader.loadTask(1, mTestUserId, false /* isLowResolution */);
+        assertNotNull(snapshot);
+        assertEquals(MOCK_SNAPSHOT_ID, snapshot.getId());
+        assertEquals(TEST_INSETS, snapshot.getContentInsets());
+        assertNotNull(snapshot.getSnapshot());
+        assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation());
+    }
+
+
+    @Test
+    public void testRemoveObsoleteFiles() {
+        mPersister.persistSnapshot(1, mTestUserId, createSnapshot());
+        mPersister.persistSnapshot(2, mTestUserId, createSnapshot());
+        final ArraySet<Integer> taskIds = new ArraySet<>();
+        taskIds.add(1);
+        mPersister.removeObsoleteFiles(taskIds, new int[]{mTestUserId});
+        mPersister.waitForQueueEmpty();
+        final File[] existsFiles = new File[]{
+                new File(FILES_DIR.getPath() + "/snapshots/1.proto"),
+                new File(FILES_DIR.getPath() + "/snapshots/1.jpg")};
+        final File[] nonExistsFiles = new File[]{
+                new File(FILES_DIR.getPath() + "/snapshots/1_reduced.jpg"),
+                new File(FILES_DIR.getPath() + "/snapshots/2.proto"),
+                new File(FILES_DIR.getPath() + "/snapshots/2.jpg"),
+                new File(FILES_DIR.getPath() + "/snapshots/2_reduced.jpg")};
+        assertTrueForFiles(existsFiles, File::exists, " must exist");
+        assertTrueForFiles(nonExistsFiles, file -> !file.exists(), " must not exist");
+    }
+
+    @Test
+    public void testRemoveObsoleteFiles_addedOneInTheMeantime() {
+        mPersister.persistSnapshot(1, mTestUserId, createSnapshot());
+        final ArraySet<Integer> taskIds = new ArraySet<>();
+        taskIds.add(1);
+        mPersister.removeObsoleteFiles(taskIds, new int[]{mTestUserId});
+        mPersister.persistSnapshot(2, mTestUserId, createSnapshot());
+        mPersister.waitForQueueEmpty();
+        final File[] existsFiles = new File[]{
+                new File(FILES_DIR.getPath() + "/snapshots/1.proto"),
+                new File(FILES_DIR.getPath() + "/snapshots/1.jpg"),
+                new File(FILES_DIR.getPath() + "/snapshots/2.proto"),
+                new File(FILES_DIR.getPath() + "/snapshots/2.jpg")};
+        final File[] nonExistsFiles = new File[]{
+                new File(FILES_DIR.getPath() + "/snapshots/1_reduced.jpg"),
+                new File(FILES_DIR.getPath() + "/snapshots/2_reduced.jpg")};
+        assertTrueForFiles(existsFiles, File::exists, " must exist");
+        assertTrueForFiles(nonExistsFiles, file -> !file.exists(), " must not exist");
+    }
+
+    @Test
+    public void testReduced_notCached() {
+        final WindowState window = createWindow(null, FIRST_APPLICATION_WINDOW, "window");
+        mPersister.persistSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, createSnapshot());
+        mPersister.waitForQueueEmpty();
+        assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId,
+                false /* restoreFromDisk */, false /* isLowResolution */));
+
+        // Load it from disk
+        assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId,
+                true /* restoreFromDisk */, true /* isLowResolution */));
+
+        // Make sure it's not in the cache now.
+        assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId,
+                false /* restoreFromDisk */, false /* isLowResolution */));
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java
index 40f15b7..9a9abba 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java
@@ -48,7 +48,6 @@
 import org.mockito.MockitoSession;
 
 import java.io.File;
-import java.util.function.Predicate;
 
 /**
  * Test class for {@link TaskSnapshotPersister} and {@link TaskSnapshotLoader}
@@ -65,6 +64,10 @@
 
     private static final Rect TEST_INSETS = new Rect(10, 20, 30, 40);
 
+    public TaskSnapshotPersisterLoaderTest() {
+        super(0.8f, 0.5f);
+    }
+
     @Test
     public void testPersistAndLoadSnapshot() {
         mPersister.persistSnapshot(1, mTestUserId, createSnapshot());
@@ -81,13 +84,6 @@
         assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation());
     }
 
-    private static void assertTrueForFiles(File[] files, Predicate<File> predicate,
-            String message) {
-        for (File file : files) {
-            assertTrue(file.getName() + message, predicate.test(file));
-        }
-    }
-
     @Test
     public void testTaskRemovedFromRecents() {
         mPersister.persistSnapshot(1, mTestUserId, createSnapshot());
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java
index fa6663c..6d78658 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java
@@ -23,8 +23,14 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
 import android.app.ActivityManager.TaskSnapshot;
 import android.content.ComponentName;
+import android.content.ContextWrapper;
+import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.ColorSpace;
@@ -39,6 +45,7 @@
 import org.junit.Before;
 
 import java.io.File;
+import java.util.function.Predicate;
 
 /**
  * Base class for tests that use a {@link TaskSnapshotPersister}.
@@ -49,14 +56,35 @@
     static final File FILES_DIR = getInstrumentation().getTargetContext().getFilesDir();
     static final long MOCK_SNAPSHOT_ID = 12345678;
 
+    private ContextWrapper mContextSpy;
+    private Resources mResourcesSpy;
     TaskSnapshotPersister mPersister;
     TaskSnapshotLoader mLoader;
     int mTestUserId;
+    float mHighResScale;
+    float mLowResScale;
+
+    TaskSnapshotPersisterTestBase(float highResScale, float lowResScale) {
+        super();
+        mHighResScale = highResScale;
+        mLowResScale = lowResScale;
+    }
 
     @Before
     public void setUp() {
         final UserManager um = UserManager.get(getInstrumentation().getTargetContext());
         mTestUserId = um.getUserHandle();
+
+        mContextSpy = spy(new ContextWrapper(mWm.mContext));
+        mResourcesSpy = spy(mContextSpy.getResources());
+        when(mContextSpy.getResources()).thenReturn(mResourcesSpy);
+        when(mResourcesSpy.getFloat(
+                com.android.internal.R.dimen.config_highResTaskSnapshotScale))
+                .thenReturn(mHighResScale);
+        when(mResourcesSpy.getFloat(
+                com.android.internal.R.dimen.config_lowResTaskSnapshotScale))
+                .thenReturn(mLowResScale);
+
         mPersister = new TaskSnapshotPersister(mWm, userId -> FILES_DIR);
         mLoader = new TaskSnapshotLoader(mPersister);
         mPersister.start();
@@ -84,6 +112,13 @@
                 .build();
     }
 
+    protected static void assertTrueForFiles(File[] files, Predicate<File> predicate,
+            String message) {
+        for (File file : files) {
+            assertTrue(file.getName() + message, predicate.test(file));
+        }
+    }
+
     /**
      * Builds a TaskSnapshot.
      */
diff --git a/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java b/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java
index 77af5ee..fc8cc96 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java
@@ -36,18 +36,15 @@
 import android.view.DisplayInfo;
 
 class TestDisplayContent extends DisplayContent {
-    private final ActivityStackSupervisor mSupervisor;
 
-    private TestDisplayContent(ActivityStackSupervisor supervisor, Display display) {
-        super(display, supervisor.mService.mRootWindowContainer);
+    private TestDisplayContent(RootWindowContainer rootWindowContainer, Display display) {
+        super(display, rootWindowContainer);
         // Normally this comes from display-properties as exposed by WM. Without that, just
         // hard-code to FULLSCREEN for tests.
         setWindowingMode(WINDOWING_MODE_FULLSCREEN);
-        mSupervisor = supervisor;
         spyOn(this);
-        spyOn(mDisplayContent);
 
-        final DisplayRotation displayRotation = mDisplayContent.getDisplayRotation();
+        final DisplayRotation displayRotation = getDisplayRotation();
         spyOn(displayRotation);
         doAnswer(invocation -> {
             // Bypass all the rotation animation and display freezing stuff for testing and just
@@ -58,12 +55,12 @@
             if (oldRotation == rotation) {
                 return false;
             }
-            mDisplayContent.setLayoutNeeded();
+            setLayoutNeeded();
             displayRotation.setRotation(rotation);
             return true;
         }).when(displayRotation).updateRotationUnchecked(anyBoolean());
 
-        final InputMonitor inputMonitor = mDisplayContent.getInputMonitor();
+        final InputMonitor inputMonitor = getInputMonitor();
         spyOn(inputMonitor);
         doNothing().when(inputMonitor).resumeDispatchingLw(any());
     }
@@ -133,9 +130,9 @@
             final Display display = new Display(DisplayManagerGlobal.getInstance(), displayId,
                     mInfo, DEFAULT_DISPLAY_ADJUSTMENTS);
             final TestDisplayContent newDisplay =
-                    new TestDisplayContent(mService.mStackSupervisor, display);
+                    new TestDisplayContent(mService.mRootWindowContainer, display);
             // disable the normal system decorations
-            final DisplayPolicy displayPolicy = newDisplay.mDisplayContent.getDisplayPolicy();
+            final DisplayPolicy displayPolicy = newDisplay.getDisplayPolicy();
             spyOn(displayPolicy);
             if (mSystemDecorations) {
                 doReturn(true).when(newDisplay).supportsSystemDecorations();
@@ -145,13 +142,12 @@
                 doReturn(false).when(newDisplay).supportsSystemDecorations();
             }
             Configuration c = new Configuration();
-            newDisplay.mDisplayContent.computeScreenConfiguration(c);
+            newDisplay.computeScreenConfiguration(c);
             c.windowConfiguration.setWindowingMode(mWindowingMode);
             newDisplay.onRequestedOverrideConfigurationChanged(c);
-            // This is a rotating display
-            if (mCanRotate) {
-                doReturn(false).when(newDisplay.mDisplayContent)
-                        .handlesOrientationChangeFromDescendant();
+            if (!mCanRotate) {
+                final DisplayRotation displayRotation = newDisplay.getDisplayRotation();
+                doReturn(false).when(displayRotation).respectAppRequestedOrientation();
             }
             // Please add stubbing before this line. Services will start using this display in other
             // threads immediately after adding it to hierarchy. Calling doAnswer() type of stubbing
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 14d8a9d..aa66524 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
@@ -16,19 +16,30 @@
 
 package com.android.server.wm;
 
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
 import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.graphics.Rect;
 import android.os.IBinder;
 import android.platform.test.annotations.Presubmit;
+import android.view.DisplayInfo;
+import android.view.Gravity;
+import android.view.Surface;
+import android.view.WindowManager;
 
 import androidx.test.filters.SmallTest;
 
+import com.android.server.wm.utils.WmDisplayCutout;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -72,4 +83,60 @@
         wallpaperWindow.mWinAnimator.mLastAlpha = 1;
         assertTrue(dc.mWallpaperController.canScreenshotWallpaper());
     }
+
+    @Test
+    public void testWallpaperSizeWithFixedTransform() {
+        // No wallpaper
+        final DisplayContent dc = createNewDisplay();
+        dc.mWmService.mIsFixedRotationTransformEnabled = true;
+
+        // No wallpaper WSA Surface
+        WindowToken wallpaperWindowToken = new WallpaperWindowToken(mWm, mock(IBinder.class),
+                true, dc, true /* ownerCanManageAppTokens */);
+        WindowState wallpaperWindow = createWindow(null /* parent */, TYPE_WALLPAPER,
+                wallpaperWindowToken, "wallpaperWindow");
+
+        WindowManager.LayoutParams attrs = wallpaperWindow.getAttrs();
+        Rect bounds = dc.getBounds();
+        int displayHeight = dc.getBounds().height();
+
+        // Use a wallpaper with a different ratio than the display
+        int wallpaperWidth = bounds.width() * 2;
+        int wallpaperHeight = (int) (bounds.height() * 1.10);
+
+        // Simulate what would be done on the client's side
+        attrs.width = wallpaperWidth;
+        attrs.height = wallpaperHeight;
+        attrs.flags |= FLAG_LAYOUT_NO_LIMITS;
+        attrs.gravity = Gravity.TOP | Gravity.LEFT;
+        wallpaperWindow.getWindowFrames().mParentFrame.set(dc.getBounds());
+
+        // Calling layoutWindowLw a first time, so adjustWindowParams gets the correct data
+        dc.getDisplayPolicy().layoutWindowLw(wallpaperWindow, null, dc.mDisplayFrames);
+
+        wallpaperWindowToken.adjustWindowParams(wallpaperWindow, attrs);
+        dc.getDisplayPolicy().layoutWindowLw(wallpaperWindow, null, dc.mDisplayFrames);
+
+        assertEquals(Configuration.ORIENTATION_PORTRAIT, dc.getConfiguration().orientation);
+        int expectedWidth = (int) (wallpaperWidth * (displayHeight / (double) wallpaperHeight));
+
+        // Check that the wallpaper is correctly scaled
+        assertEquals(new Rect(0, 0, expectedWidth, displayHeight), wallpaperWindow.getFrameLw());
+        Rect portraitFrame = wallpaperWindow.getFrameLw();
+
+        // Rotate the display
+        dc.getDisplayRotation().updateOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, true);
+        dc.sendNewConfiguration();
+
+        // Apply the fixed transform
+        Configuration config = new Configuration();
+        final DisplayInfo info = dc.computeScreenConfiguration(config, Surface.ROTATION_0);
+        final WmDisplayCutout cutout = dc.calculateDisplayCutoutForRotation(Surface.ROTATION_0);
+        final DisplayFrames displayFrames = new DisplayFrames(dc.getDisplayId(), info, cutout);
+        wallpaperWindowToken.applyFixedRotationTransform(info, displayFrames, config);
+
+        // Check that the wallpaper has the same frame in landscape than in portrait
+        assertEquals(Configuration.ORIENTATION_LANDSCAPE, dc.getConfiguration().orientation);
+        assertEquals(portraitFrame, wallpaperWindow.getFrameLw());
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java b/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java
index 63b50b5..e6b4e0f 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java
@@ -31,7 +31,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;
-import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
 
@@ -376,7 +376,8 @@
         final WindowState navBarPanel =
                 createWindow(null, TYPE_NAVIGATION_BAR_PANEL, mDisplayContent, "NavBarPanel");
         final WindowState statusBarPanel =
-                createWindow(null, TYPE_STATUS_BAR_PANEL, mDisplayContent, "StatusBarPanel");
+                createWindow(null, TYPE_STATUS_BAR_ADDITIONAL, mDisplayContent,
+                        "StatusBarAdditional");
         final WindowState statusBarSubPanel =
                 createWindow(null, TYPE_STATUS_BAR_SUB_PANEL, mDisplayContent, "StatusBarSubPanel");
         mDisplayContent.assignChildLayers(mTransaction);
diff --git a/services/tests/wmtests/src/com/android/server/wm/utils/RotationAnimationUtilsTest.java b/services/tests/wmtests/src/com/android/server/wm/utils/RotationAnimationUtilsTest.java
index 9cda084..e5497a2 100644
--- a/services/tests/wmtests/src/com/android/server/wm/utils/RotationAnimationUtilsTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/utils/RotationAnimationUtilsTest.java
@@ -50,7 +50,7 @@
     public void blackLuma() {
         Bitmap swBitmap = createBitmap(0);
         GraphicBuffer gb = swBitmapToGraphicsBuffer(swBitmap);
-        float borderLuma = RotationAnimationUtils.getAvgBorderLuma(gb, mColorSpace);
+        float borderLuma = RotationAnimationUtils.getMedianBorderLuma(gb, mColorSpace);
         assertEquals(0, borderLuma, 0);
     }
 
@@ -58,7 +58,15 @@
     public void whiteLuma() {
         Bitmap swBitmap = createBitmap(1);
         GraphicBuffer gb = swBitmapToGraphicsBuffer(swBitmap);
-        float borderLuma = RotationAnimationUtils.getAvgBorderLuma(gb, mColorSpace);
+        float borderLuma = RotationAnimationUtils.getMedianBorderLuma(gb, mColorSpace);
+        assertEquals(1, borderLuma, 0);
+    }
+
+    @Test
+    public void unevenBitmapDimens() {
+        Bitmap swBitmap = createBitmap(1, BITMAP_WIDTH + 1, BITMAP_HEIGHT + 1);
+        GraphicBuffer gb = swBitmapToGraphicsBuffer(swBitmap);
+        float borderLuma = RotationAnimationUtils.getMedianBorderLuma(gb, mColorSpace);
         assertEquals(1, borderLuma, 0);
     }
 
@@ -67,7 +75,7 @@
         Bitmap swBitmap = createBitmap(1);
         setBorderLuma(swBitmap, 0);
         GraphicBuffer gb = swBitmapToGraphicsBuffer(swBitmap);
-        float borderLuma = RotationAnimationUtils.getAvgBorderLuma(gb, mColorSpace);
+        float borderLuma = RotationAnimationUtils.getMedianBorderLuma(gb, mColorSpace);
         assertEquals(0, borderLuma, 0);
     }
 
@@ -76,7 +84,7 @@
         Bitmap swBitmap = createBitmap(0);
         setBorderLuma(swBitmap, 1);
         GraphicBuffer gb = swBitmapToGraphicsBuffer(swBitmap);
-        float borderLuma = RotationAnimationUtils.getAvgBorderLuma(gb, mColorSpace);
+        float borderLuma = RotationAnimationUtils.getMedianBorderLuma(gb, mColorSpace);
         assertEquals(1, borderLuma, 0);
     }
 
@@ -123,9 +131,13 @@
     }
 
     private Bitmap createBitmap(float luma) {
-        Bitmap bitmap = Bitmap.createBitmap(BITMAP_WIDTH, BITMAP_HEIGHT, ARGB_8888);
-        for (int i = 0; i < BITMAP_WIDTH; i++) {
-            for (int j = 0; j < BITMAP_HEIGHT; j++) {
+        return createBitmap(luma, BITMAP_WIDTH, BITMAP_HEIGHT);
+    }
+
+    private Bitmap createBitmap(float luma, int width, int height) {
+        Bitmap bitmap = Bitmap.createBitmap(width, height, ARGB_8888);
+        for (int i = 0; i < width; i++) {
+            for (int j = 0; j < height; j++) {
                 bitmap.setPixel(i, j, Color.argb(1, luma, luma, luma));
             }
         }
diff --git a/startop/iorap/functional_tests/AndroidTest.xml b/startop/iorap/functional_tests/AndroidTest.xml
index ef56fc8..3d5a229 100644
--- a/startop/iorap/functional_tests/AndroidTest.xml
+++ b/startop/iorap/functional_tests/AndroidTest.xml
@@ -48,6 +48,8 @@
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="com.google.android.startop.iorap.tests" />
         <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
+        <!-- test-timeout unit is ms, value = 30 min -->
+        <option name="test-timeout" value="1800000" />
     </test>
 
 </configuration>
diff --git a/startop/iorap/functional_tests/src/com/google/android/startop/iorap/IorapWorkFlowTest.java b/startop/iorap/functional_tests/src/com/google/android/startop/iorap/IorapWorkFlowTest.java
index 4002387..9abbcd7 100644
--- a/startop/iorap/functional_tests/src/com/google/android/startop/iorap/IorapWorkFlowTest.java
+++ b/startop/iorap/functional_tests/src/com/google/android/startop/iorap/IorapWorkFlowTest.java
@@ -70,7 +70,7 @@
   private static final Duration TIMEOUT = Duration.ofSeconds(300L);
 
   private static final String READAHEAD_INDICATOR =
-      "Description = /data/misc/iorapd/com.android.settings/none/com.android.settings.Settings/compiled_traces/compiled_trace.pb";
+      "Description = /data/misc/iorapd/com.android.settings/-?\\d+/com.android.settings.Settings/compiled_traces/compiled_trace.pb";
 
   private UiDevice mDevice;
 
@@ -326,14 +326,14 @@
       return false;
     }
 
-    String log = executeShellCommand("logcat -s iorapd -d");
+    String log = executeShellCommand("logcat -d");
 
     Pattern p = Pattern.compile(
-        ".*" + READAHEAD_INDICATOR
-            + ".*Total File Paths=(\\d+) \\(good: (\\d+)%\\)\n"
-            + ".*Total Entries=(\\d+) \\(good: (\\d+)%\\)\n"
-            + ".*Total Bytes=(\\d+) \\(good: (\\d+)%\\).*",
-        Pattern.DOTALL);
+    ".*" + READAHEAD_INDICATOR
+        + ".*Total File Paths=(\\d+) \\(good: (\\d+[.]?\\d*)%\\)\n"
+        + ".*Total Entries=(\\d+) \\(good: (\\d+[.]?\\d*)%\\)\n"
+        + ".*Total Bytes=(\\d+) \\(good: (\\d+[.]?\\d*)%\\).*",
+    Pattern.DOTALL);
     Matcher m = p.matcher(log);
 
     if (!m.matches()) {
diff --git a/startop/iorap/src/com/google/android/startop/iorap/JobScheduledEvent.java b/startop/iorap/src/com/google/android/startop/iorap/JobScheduledEvent.java
index 9b3bfcb..2055b20 100644
--- a/startop/iorap/src/com/google/android/startop/iorap/JobScheduledEvent.java
+++ b/startop/iorap/src/com/google/android/startop/iorap/JobScheduledEvent.java
@@ -40,7 +40,7 @@
     public static final int TYPE_START_JOB = 0;
     /** JobService#onJobStopped */
     public static final int TYPE_STOP_JOB = 1;
-    private static final int TYPE_MAX = 0;
+    private static final int TYPE_MAX = 1;
 
     /** @hide */
     @IntDef(flag = true, prefix = { "TYPE_" }, value = {
diff --git a/startop/scripts/iorap/analyze_prefetch_file.py b/startop/scripts/iorap/analyze_prefetch_file.py
new file mode 100755
index 0000000..343cd54
--- /dev/null
+++ b/startop/scripts/iorap/analyze_prefetch_file.py
@@ -0,0 +1,168 @@
+#!/usr/bin/env python3
+#
+# Copyright 2020, 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.
+
+import argparse
+import os
+import sys
+from typing import Dict, List, NamedTuple, Tuple
+
+DIR = os.path.abspath(os.path.dirname(__file__))
+sys.path.append(os.path.dirname(DIR))  # framework/base/startop/script
+import lib.print_utils as print_utils
+
+# Include generated protos.
+dir_name = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(dir_name + "/generated")
+
+from TraceFile_pb2 import *
+
+def parse_options(argv: List[str] = None):
+  """Parses command line arguments and returns an argparse Namespace object."""
+  parser = argparse.ArgumentParser(description="Analyze compiled_trace iorap protos.")
+  required_named = parser.add_argument_group('required named arguments')
+
+  required_named.add_argument('-i', dest='input', metavar='FILE',
+                              help='Read protobuf file as input')
+
+  optional_named = parser.add_argument_group('optional named arguments')
+
+  optional_named.add_argument('-up', dest='upper_percent', type=float,
+                              default=95.0,
+                              help='Only show the top-most entries up to this value.')
+
+  optional_named.add_argument('-r', dest='raw', action='store_true',
+                              help='Output entire raw file.')
+  optional_named.add_argument('-o', dest='output',
+                              help='The results are stored into the output file')
+  optional_named.add_argument('-d', dest='debug', action='store_true'
+                              , help='Activity of the app to be compiled')
+
+  return parser.parse_args(argv)
+
+def open_iorap_prefetch_file(file_path: str) -> TraceFile:
+  with open(file_path, "rb") as f:
+    tf = TraceFile()
+    tf.ParseFromString(f.read())
+    return tf
+
+def print_stats_summary(trace_file: TraceFile, upper_percent):
+  tf_dict = convert_to_dict(trace_file)
+  print_utils.debug_print(tf_dict)
+
+  total_length = 0
+  summaries = []
+  for name, entries_list in tf_dict.items():
+    summary = entries_sum(entries_list)
+    summaries.append(summary)
+
+    total_length += summary.length
+
+  # Sort by length
+  summaries.sort(reverse=True, key=lambda s: s.length)
+
+  percent_sum = 0.0
+  skipped_entries = 0
+
+  print("===========================================")
+  print("Total length: {:,} bytes".format(total_length))
+  print("Displayed upper percent: {:0.2f}%".format(upper_percent))
+  print("===========================================")
+  print("")
+  print("name,length,percent_of_total,upper_percent")
+  for sum in summaries:
+    percent_of_total = (sum.length * 1.0) / (total_length * 1.0) * 100.0
+
+    percent_sum += percent_of_total
+
+    if percent_sum > upper_percent:
+      skipped_entries = skipped_entries + 1
+      continue
+
+    #print("%s,%d,%.2f%%" %(sum.name, sum.length, percent_of_total))
+    print("{:s},{:d},{:0.2f}%,{:0.2f}%".format(sum.name, sum.length, percent_of_total, percent_sum))
+
+  if skipped_entries > 0:
+    print("[WARNING] Skipped {:d} entries, use -up=100 to show everything".format(skipped_entries))
+
+  pass
+
+class FileEntry(NamedTuple):
+  id: int
+  name: str
+  offset: int
+  length: int
+
+class FileEntrySummary(NamedTuple):
+  name: str
+  length: int
+
+def entries_sum(entries: List[FileEntry]) -> FileEntrySummary:
+  if not entries:
+    return None
+
+  summary = FileEntrySummary(name=entries[0].name, length=0)
+  for entry in entries:
+    summary = FileEntrySummary(summary.name, summary.length + entry.length)
+
+  return summary
+
+def convert_to_dict(trace_file: TraceFile) -> Dict[str, FileEntry]:
+  trace_file_index = trace_file.index
+
+  # entries.id -> entry.file_name
+  entries_map = {}
+
+  index_entries = trace_file_index.entries
+  for entry in index_entries:
+    entries_map[entry.id] = entry.file_name
+
+  final_map = {}
+
+  file_entries_map = {}
+  file_entries = trace_file.list.entries
+  for entry in file_entries:
+    print_utils.debug_print(entry)
+
+    lst = file_entries_map.get(entry.index_id, [])
+    file_entries_map[entry.index_id] = lst
+
+    file_name = entries_map[entry.index_id]
+    file_entry = \
+        FileEntry(id=entry.index_id, name=file_name, offset=entry.file_offset, length=entry.file_length)
+
+    lst.append(file_entry)
+
+    final_map[file_name] = lst
+
+  return final_map
+
+def main(argv: List[str]) -> int:
+  opts = parse_options(argv[1:])
+  if opts.debug:
+    print_utils.DEBUG = opts.debug
+  print_utils.debug_print(opts)
+
+  prefetch_file = open_iorap_prefetch_file(opts.input)
+
+  if opts.raw:
+    print(prefetch_file)
+
+  print_stats_summary(prefetch_file, opts.upper_percent)
+
+  return 0
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv))
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index c5fcf67..ead90bb 100755
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -2075,6 +2075,17 @@
 
     /**
      * Returns the child {@link Call} in a generic conference that is currently active.
+     *
+     * A "generic conference" is the mechanism used to support two simultaneous calls on a device
+     * in CDMA networks. It is effectively equivalent to having one call active and one call on hold
+     * in GSM or IMS calls. This method returns the currently active call.
+     *
+     * In a generic conference, the network exposes the conference to us as a single call, and we
+     * switch between talking to the two participants using a CDMA flash command. Since the network
+     * exposes no additional information about the call, the only way we know which caller we're
+     * currently talking to is by keeping track of the flash commands that we've sent to the
+     * network.
+     *
      * For calls that are not generic conferences, or when the generic conference has more than
      * 2 children, returns {@code null}.
      * @see Details#PROPERTY_GENERIC_CONFERENCE
diff --git a/telephony/common/com/android/internal/telephony/CarrierAppUtils.java b/telephony/common/com/android/internal/telephony/CarrierAppUtils.java
index e97cfaf..d9ae48f 100644
--- a/telephony/common/com/android/internal/telephony/CarrierAppUtils.java
+++ b/telephony/common/com/android/internal/telephony/CarrierAppUtils.java
@@ -22,21 +22,21 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
+import android.os.SystemConfigManager;
 import android.os.UserHandle;
 import android.permission.PermissionManager;
 import android.provider.Settings;
 import android.telephony.TelephonyManager;
 import android.util.ArrayMap;
-import android.util.ArraySet;
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.util.ArrayUtils;
-import com.android.server.SystemConfig;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * Utilities for handling carrier applications.
@@ -53,19 +53,19 @@
      * Handle preinstalled carrier apps which should be disabled until a matching SIM is inserted.
      *
      * Evaluates the list of applications in
-     * {@link SystemConfig#getDisabledUntilUsedPreinstalledCarrierApps()}. We want to disable each
-     * such application which is present on the system image until the user inserts a SIM which
-     * causes that application to gain carrier privilege (indicating a "match"), without interfering
-     * with the user if they opt to enable/disable the app explicitly.
+     * {@link SystemConfigManager#getDisabledUntilUsedPreinstalledCarrierApps()}. We want to disable
+     * each such application which is present on the system image until the user inserts a SIM
+     * which causes that application to gain carrier privilege (indicating a "match"), without
+     * interfering with the user if they opt to enable/disable the app explicitly.
      *
      * So, for each such app, we either disable until used IFF the app is not carrier privileged AND
      * in the default state (e.g. not explicitly DISABLED/DISABLED_BY_USER/ENABLED), or we enable if
      * the app is carrier privileged and in either the default state or DISABLED_UNTIL_USED.
      *
      * In addition, there is a list of carrier-associated applications in
-     * {@link SystemConfig#getDisabledUntilUsedPreinstalledCarrierAssociatedApps}. Each app in this
-     * list is associated with a carrier app. When the given carrier app is enabled/disabled per the
-     * above, the associated applications are enabled/disabled to match.
+     * {@link SystemConfigManager#getDisabledUntilUsedPreinstalledCarrierAssociatedApps}. Each app
+     * in this list is associated with a carrier app. When the given carrier app is enabled/disabled
+     * per the above, the associated applications are enabled/disabled to match.
      *
      * When enabling a carrier app we also grant it default permissions.
      *
@@ -78,10 +78,10 @@
         if (DEBUG) {
             Log.d(TAG, "disableCarrierAppsUntilPrivileged");
         }
-        SystemConfig config = SystemConfig.getInstance();
-        ArraySet<String> systemCarrierAppsDisabledUntilUsed =
+        SystemConfigManager config = context.getSystemService(SystemConfigManager.class);
+        Set<String> systemCarrierAppsDisabledUntilUsed =
                 config.getDisabledUntilUsedPreinstalledCarrierApps();
-        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
+        Map<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
                 config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
         ContentResolver contentResolver = getContentResolverForUser(context, userId);
         disableCarrierAppsUntilPrivileged(callingPackage, telephonyManager, contentResolver,
@@ -105,11 +105,11 @@
         if (DEBUG) {
             Log.d(TAG, "disableCarrierAppsUntilPrivileged");
         }
-        SystemConfig config = SystemConfig.getInstance();
-        ArraySet<String> systemCarrierAppsDisabledUntilUsed =
+        SystemConfigManager config = context.getSystemService(SystemConfigManager.class);
+        Set<String> systemCarrierAppsDisabledUntilUsed =
                 config.getDisabledUntilUsedPreinstalledCarrierApps();
 
-        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
+        Map<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
                 config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
         ContentResolver contentResolver = getContentResolverForUser(context, userId);
         disableCarrierAppsUntilPrivileged(callingPackage, null /* telephonyManager */,
@@ -139,8 +139,8 @@
     @VisibleForTesting
     public static void disableCarrierAppsUntilPrivileged(String callingPackage,
             @Nullable TelephonyManager telephonyManager, ContentResolver contentResolver,
-            int userId, ArraySet<String> systemCarrierAppsDisabledUntilUsed,
-            ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed,
+            int userId, Set<String> systemCarrierAppsDisabledUntilUsed,
+            Map<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed,
             Context context) {
         PackageManager packageManager = context.getPackageManager();
         PermissionManager permissionManager =
@@ -340,26 +340,22 @@
      */
     public static List<ApplicationInfo> getDefaultCarrierAppCandidates(
             int userId, Context context) {
-        ArraySet<String> systemCarrierAppsDisabledUntilUsed =
-                SystemConfig.getInstance().getDisabledUntilUsedPreinstalledCarrierApps();
+        Set<String> systemCarrierAppsDisabledUntilUsed =
+                context.getSystemService(SystemConfigManager.class)
+                        .getDisabledUntilUsedPreinstalledCarrierApps();
         return getDefaultCarrierAppCandidatesHelper(userId, systemCarrierAppsDisabledUntilUsed,
                 context);
     }
 
     private static List<ApplicationInfo> getDefaultCarrierAppCandidatesHelper(
-            int userId, ArraySet<String> systemCarrierAppsDisabledUntilUsed, Context context) {
-        if (systemCarrierAppsDisabledUntilUsed == null) {
+            int userId, Set<String> systemCarrierAppsDisabledUntilUsed, Context context) {
+        if (systemCarrierAppsDisabledUntilUsed == null
+                || systemCarrierAppsDisabledUntilUsed.isEmpty()) {
             return null;
         }
 
-        int size = systemCarrierAppsDisabledUntilUsed.size();
-        if (size == 0) {
-            return null;
-        }
-
-        List<ApplicationInfo> apps = new ArrayList<>(size);
-        for (int i = 0; i < size; i++) {
-            String packageName = systemCarrierAppsDisabledUntilUsed.valueAt(i);
+        List<ApplicationInfo> apps = new ArrayList<>(systemCarrierAppsDisabledUntilUsed.size());
+        for (String packageName : systemCarrierAppsDisabledUntilUsed) {
             ApplicationInfo ai =
                     getApplicationInfoIfSystemApp(userId, packageName, context);
             if (ai != null) {
@@ -370,14 +366,14 @@
     }
 
     private static Map<String, List<ApplicationInfo>> getDefaultCarrierAssociatedAppsHelper(
-            int userId, ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed,
+            int userId, Map<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed,
             Context context) {
         int size = systemCarrierAssociatedAppsDisabledUntilUsed.size();
         Map<String, List<ApplicationInfo>> associatedApps = new ArrayMap<>(size);
-        for (int i = 0; i < size; i++) {
-            String carrierAppPackage = systemCarrierAssociatedAppsDisabledUntilUsed.keyAt(i);
-            List<String> associatedAppPackages =
-                    systemCarrierAssociatedAppsDisabledUntilUsed.valueAt(i);
+        for (Map.Entry<String, List<String>> entry
+                : systemCarrierAssociatedAppsDisabledUntilUsed.entrySet()) {
+            String carrierAppPackage = entry.getKey();
+            List<String> associatedAppPackages = entry.getValue();
             for (int j = 0; j < associatedAppPackages.size(); j++) {
                 ApplicationInfo ai =
                         getApplicationInfoIfSystemApp(
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index 6a40487..c5c08c2 100755
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -3032,6 +3032,13 @@
             "ascii_7_bit_support_for_long_message_bool";
 
     /**
+     * Controls whether to show wifi calling icon in statusbar when wifi calling is available.
+     * @hide
+     */
+    public static final String KEY_SHOW_WIFI_CALLING_ICON_IN_STATUS_BAR_BOOL =
+            "show_wifi_calling_icon_in_status_bar_bool";
+
+    /**
      * Controls RSRP threshold at which OpportunisticNetworkService will decide whether
      * the opportunistic network is good enough for internet data.
      */
@@ -3457,7 +3464,7 @@
      * @hide
      */
     public static final String KEY_DATA_SWITCH_VALIDATION_MIN_GAP_LONG =
-            "data_switch_validation_min_gap_LONG";
+            "data_switch_validation_min_gap_long";
 
     /**
     * A boolean property indicating whether this subscription should be managed as an opportunistic
@@ -3484,14 +3491,14 @@
         /**
          * Delay in milliseconds to turn off wifi when IMS is registered over wifi.
          */
-        public static final String KEY_WIFI_OFF_DEFERRING_TIME_INT =
-                KEY_PREFIX + "wifi_off_deferring_time_int";
+        public static final String KEY_WIFI_OFF_DEFERRING_TIME_MILLIS_INT =
+                KEY_PREFIX + "wifi_off_deferring_time_millis_int";
 
         private Ims() {}
 
         private static PersistableBundle getDefaults() {
             PersistableBundle defaults = new PersistableBundle();
-            defaults.putInt(KEY_WIFI_OFF_DEFERRING_TIME_INT, 0);
+            defaults.putInt(KEY_WIFI_OFF_DEFERRING_TIME_MILLIS_INT, 4000);
             return defaults;
         }
     }
@@ -3740,7 +3747,7 @@
         sDefaults.putInt(KEY_IMS_DTMF_TONE_DELAY_INT, 0);
         sDefaults.putInt(KEY_CDMA_DTMF_TONE_DELAY_INT, 100);
         sDefaults.putBoolean(KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL, false);
-        sDefaults.putBoolean(KEY_IGNORE_RTT_MODE_SETTING_BOOL, false);
+        sDefaults.putBoolean(KEY_IGNORE_RTT_MODE_SETTING_BOOL, true);
         sDefaults.putInt(KEY_CDMA_3WAYCALL_FLASH_DELAY_INT , 0);
         sDefaults.putBoolean(KEY_SUPPORT_ADHOC_CONFERENCE_CALLS_BOOL, false);
         sDefaults.putBoolean(KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL, false);
@@ -4022,6 +4029,7 @@
         sDefaults.putBoolean(KEY_UNMETERED_NR_NSA_MMWAVE_BOOL, false);
         sDefaults.putBoolean(KEY_UNMETERED_NR_NSA_SUB6_BOOL, false);
         sDefaults.putBoolean(KEY_ASCII_7_BIT_SUPPORT_FOR_LONG_MESSAGE_BOOL, false);
+        sDefaults.putBoolean(KEY_SHOW_WIFI_CALLING_ICON_IN_STATUS_BAR_BOOL, false);
         /* Default value is minimum RSRP level needed for SIGNAL_STRENGTH_GOOD */
         sDefaults.putInt(KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSRP_INT, -108);
         /* Default value is minimum RSRP level needed for SIGNAL_STRENGTH_MODERATE */
diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java
index d672c77..b4ce162 100644
--- a/telephony/java/android/telephony/CellIdentityLte.java
+++ b/telephony/java/android/telephony/CellIdentityLte.java
@@ -25,10 +25,9 @@
 import android.text.TextUtils;
 import android.util.ArraySet;
 
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 
@@ -56,7 +55,7 @@
     // cell bandwidth, in kHz
     private final int mBandwidth;
     // cell bands
-    private final List<Integer> mBands;
+    private final int[] mBands;
 
     // a list of additional PLMN-IDs reported for this cell
     private final ArraySet<String> mAdditionalPlmns;
@@ -73,7 +72,7 @@
         mPci = CellInfo.UNAVAILABLE;
         mTac = CellInfo.UNAVAILABLE;
         mEarfcn = CellInfo.UNAVAILABLE;
-        mBands = Collections.emptyList();
+        mBands = new int[] {};
         mBandwidth = CellInfo.UNAVAILABLE;
         mAdditionalPlmns = new ArraySet<>();
         mCsgInfo = null;
@@ -91,7 +90,7 @@
      */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
     public CellIdentityLte(int mcc, int mnc, int ci, int pci, int tac) {
-        this(ci, pci, tac, CellInfo.UNAVAILABLE, Collections.emptyList(), CellInfo.UNAVAILABLE,
+        this(ci, pci, tac, CellInfo.UNAVAILABLE, new int[] {}, CellInfo.UNAVAILABLE,
                 String.valueOf(mcc), String.valueOf(mnc), null, null, new ArraySet<>(),
                 null);
     }
@@ -112,16 +111,17 @@
      *
      * @hide
      */
-    public CellIdentityLte(int ci, int pci, int tac, int earfcn, List<Integer> bands, int bandwidth,
-            @Nullable String mccStr, @Nullable String mncStr, @Nullable String alphal,
-            @Nullable String alphas, @NonNull Collection<String> additionalPlmns,
+    public CellIdentityLte(int ci, int pci, int tac, int earfcn, @NonNull int[] bands,
+            int bandwidth, @Nullable String mccStr, @Nullable String mncStr,
+            @Nullable String alphal, @Nullable String alphas,
+            @NonNull Collection<String> additionalPlmns,
             @Nullable ClosedSubscriberGroupInfo csgInfo) {
         super(TAG, CellInfo.TYPE_LTE, mccStr, mncStr, alphal, alphas);
         mCi = inRangeOrUnavailable(ci, 0, MAX_CI);
         mPci = inRangeOrUnavailable(pci, 0, MAX_PCI);
         mTac = inRangeOrUnavailable(tac, 0, MAX_TAC);
         mEarfcn = inRangeOrUnavailable(earfcn, 0, MAX_EARFCN);
-        mBands = new ArrayList<>(bands);
+        mBands = bands;
         mBandwidth = inRangeOrUnavailable(bandwidth, 0, MAX_BANDWIDTH);
         mAdditionalPlmns = new ArraySet<>(additionalPlmns.size());
         for (String plmn : additionalPlmns) {
@@ -134,13 +134,13 @@
 
     /** @hide */
     public CellIdentityLte(@NonNull android.hardware.radio.V1_0.CellIdentityLte cid) {
-        this(cid.ci, cid.pci, cid.tac, cid.earfcn, Collections.emptyList(),
+        this(cid.ci, cid.pci, cid.tac, cid.earfcn, new int[] {},
                 CellInfo.UNAVAILABLE, cid.mcc, cid.mnc, "", "", new ArraySet<>(), null);
     }
 
     /** @hide */
     public CellIdentityLte(@NonNull android.hardware.radio.V1_2.CellIdentityLte cid) {
-        this(cid.base.ci, cid.base.pci, cid.base.tac, cid.base.earfcn, Collections.emptyList(),
+        this(cid.base.ci, cid.base.pci, cid.base.tac, cid.base.earfcn, new int[] {},
                 cid.bandwidth, cid.base.mcc, cid.base.mnc, cid.operatorNames.alphaLong,
                 cid.operatorNames.alphaShort, new ArraySet<>(), null);
     }
@@ -148,9 +148,10 @@
     /** @hide */
     public CellIdentityLte(@NonNull android.hardware.radio.V1_5.CellIdentityLte cid) {
         this(cid.base.base.ci, cid.base.base.pci, cid.base.base.tac, cid.base.base.earfcn,
-                cid.bands, cid.base.bandwidth, cid.base.base.mcc, cid.base.base.mnc,
-                cid.base.operatorNames.alphaLong, cid.base.operatorNames.alphaShort,
-                cid.additionalPlmns, cid.optionalCsgInfo.csgInfo() != null
+                cid.bands.stream().mapToInt(Integer::intValue).toArray(), cid.base.bandwidth,
+                cid.base.base.mcc, cid.base.base.mnc, cid.base.operatorNames.alphaLong,
+                cid.base.operatorNames.alphaShort, cid.additionalPlmns,
+                cid.optionalCsgInfo.csgInfo() != null
                         ? new ClosedSubscriberGroupInfo(cid.optionalCsgInfo.csgInfo()) : null);
     }
 
@@ -228,11 +229,11 @@
      *
      * Reference: 3GPP TS 36.101 section 5.5
      *
-     * @return List of band number or empty list if not available.
+     * @return Array of band number or empty array if not available.
      */
     @NonNull
-    public List<Integer> getBands() {
-        return Collections.unmodifiableList(mBands);
+    public int[] getBands() {
+        return Arrays.copyOf(mBands, mBands.length);
     }
 
     /**
@@ -314,8 +315,8 @@
 
     @Override
     public int hashCode() {
-        return Objects.hash(mCi, mPci, mTac,
-                mAdditionalPlmns.hashCode(), mCsgInfo, super.hashCode());
+        return Objects.hash(mCi, mPci, mTac, mEarfcn, Arrays.hashCode(mBands),
+                mBandwidth, mAdditionalPlmns.hashCode(), mCsgInfo, super.hashCode());
     }
 
     @Override
@@ -333,6 +334,7 @@
                 && mPci == o.mPci
                 && mTac == o.mTac
                 && mEarfcn == o.mEarfcn
+                && Arrays.equals(mBands, o.mBands)
                 && mBandwidth == o.mBandwidth
                 && TextUtils.equals(mMccStr, o.mMccStr)
                 && TextUtils.equals(mMncStr, o.mMncStr)
@@ -368,7 +370,7 @@
         dest.writeInt(mPci);
         dest.writeInt(mTac);
         dest.writeInt(mEarfcn);
-        dest.writeList(mBands);
+        dest.writeIntArray(mBands);
         dest.writeInt(mBandwidth);
         dest.writeArraySet(mAdditionalPlmns);
         dest.writeParcelable(mCsgInfo, flags);
@@ -381,7 +383,7 @@
         mPci = in.readInt();
         mTac = in.readInt();
         mEarfcn = in.readInt();
-        mBands = in.readArrayList(null);
+        mBands = in.createIntArray();
         mBandwidth = in.readInt();
         mAdditionalPlmns = (ArraySet<String>) in.readArraySet(null);
         mCsgInfo = in.readParcelable(null);
diff --git a/telephony/java/android/telephony/CellIdentityNr.java b/telephony/java/android/telephony/CellIdentityNr.java
index cba500a..69cf7e7d 100644
--- a/telephony/java/android/telephony/CellIdentityNr.java
+++ b/telephony/java/android/telephony/CellIdentityNr.java
@@ -24,10 +24,9 @@
 import android.telephony.gsm.GsmCellLocation;
 import android.util.ArraySet;
 
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 
@@ -46,7 +45,7 @@
     private final int mPci;
     private final int mTac;
     private final long mNci;
-    private final List<Integer> mBands;
+    private final int[] mBands;
 
     // a list of additional PLMN-IDs reported for this cell
     private final ArraySet<String> mAdditionalPlmns;
@@ -66,7 +65,7 @@
      *
      * @hide
      */
-    public CellIdentityNr(int pci, int tac, int nrArfcn, @NgranBand List<Integer> bands,
+    public CellIdentityNr(int pci, int tac, int nrArfcn, @NonNull @NgranBand int[] bands,
                           @Nullable String mccStr, @Nullable String mncStr, long nci,
                           @Nullable String alphal, @Nullable String alphas,
                           @NonNull Collection<String> additionalPlmns) {
@@ -74,7 +73,8 @@
         mPci = inRangeOrUnavailable(pci, 0, MAX_PCI);
         mTac = inRangeOrUnavailable(tac, 0, MAX_TAC);
         mNrArfcn = inRangeOrUnavailable(nrArfcn, 0, MAX_NRARFCN);
-        mBands = new ArrayList<>(bands);
+        // TODO: input validation for bands
+        mBands = bands;
         mNci = inRangeOrUnavailable(nci, 0, MAX_NCI);
         mAdditionalPlmns = new ArraySet<>(additionalPlmns.size());
         for (String plmn : additionalPlmns) {
@@ -86,15 +86,16 @@
 
     /** @hide */
     public CellIdentityNr(@NonNull android.hardware.radio.V1_4.CellIdentityNr cid) {
-        this(cid.pci, cid.tac, cid.nrarfcn, Collections.emptyList(), cid.mcc, cid.mnc, cid.nci,
+        this(cid.pci, cid.tac, cid.nrarfcn, new int[] {}, cid.mcc, cid.mnc, cid.nci,
                 cid.operatorNames.alphaLong, cid.operatorNames.alphaShort,
                 new ArraySet<>());
     }
 
     /** @hide */
     public CellIdentityNr(@NonNull android.hardware.radio.V1_5.CellIdentityNr cid) {
-        this(cid.base.pci, cid.base.tac, cid.base.nrarfcn, cid.bands, cid.base.mcc, cid.base.mnc,
-                cid.base.nci, cid.base.operatorNames.alphaLong,
+        this(cid.base.pci, cid.base.tac, cid.base.nrarfcn,
+                cid.bands.stream().mapToInt(Integer::intValue).toArray(), cid.base.mcc,
+                cid.base.mnc, cid.base.nci, cid.base.operatorNames.alphaLong,
                 cid.base.operatorNames.alphaShort, cid.additionalPlmns);
     }
 
@@ -119,18 +120,22 @@
     @Override
     public int hashCode() {
         return Objects.hash(super.hashCode(), mPci, mTac,
-                mNrArfcn, mBands.hashCode(), mNci, mAdditionalPlmns.hashCode());
+                mNrArfcn, Arrays.hashCode(mBands), mNci, mAdditionalPlmns.hashCode());
     }
 
     @Override
     public boolean equals(Object other) {
+        if (this == other) {
+            return true;
+        }
+
         if (!(other instanceof CellIdentityNr)) {
             return false;
         }
 
         CellIdentityNr o = (CellIdentityNr) other;
         return super.equals(o) && mPci == o.mPci && mTac == o.mTac && mNrArfcn == o.mNrArfcn
-                && mBands.equals(o.mBands) && mNci == o.mNci
+                && Arrays.equals(mBands, o.mBands) && mNci == o.mNci
                 && mAdditionalPlmns.equals(o.mAdditionalPlmns);
     }
 
@@ -163,12 +168,12 @@
      * Reference: TS 38.101-1 table 5.2-1
      * Reference: TS 38.101-2 table 5.2-1
      *
-     * @return List of band number or empty list if not available.
+     * @return Array of band number or empty array if not available.
      */
     @NgranBand
     @NonNull
-    public List<Integer> getBands() {
-        return Collections.unmodifiableList(mBands);
+    public int[] getBands() {
+        return Arrays.copyOf(mBands, mBands.length);
     }
 
     /**
@@ -242,7 +247,7 @@
         dest.writeInt(mPci);
         dest.writeInt(mTac);
         dest.writeInt(mNrArfcn);
-        dest.writeList(mBands);
+        dest.writeIntArray(mBands);
         dest.writeLong(mNci);
         dest.writeArraySet(mAdditionalPlmns);
     }
@@ -253,7 +258,7 @@
         mPci = in.readInt();
         mTac = in.readInt();
         mNrArfcn = in.readInt();
-        mBands = in.readArrayList(null);
+        mBands = in.createIntArray();
         mNci = in.readLong();
         mAdditionalPlmns = (ArraySet<String>) in.readArraySet(null);
     }
diff --git a/telephony/java/android/telephony/ImsManager.java b/telephony/java/android/telephony/ImsManager.java
index 704e5aa..d504b38 100644
--- a/telephony/java/android/telephony/ImsManager.java
+++ b/telephony/java/android/telephony/ImsManager.java
@@ -103,10 +103,7 @@
      * @param subscriptionId The ID of the subscription that this ImsRcsManager will use.
      * @throws IllegalArgumentException if the subscription is invalid.
      * @return a ImsRcsManager instance with the specific subscription ID.
-     * @hide
      */
-    @SystemApi
-    @TestApi
     @NonNull
     public ImsRcsManager getImsRcsManager(int subscriptionId) {
         if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) {
diff --git a/telephony/java/android/telephony/ModemActivityInfo.java b/telephony/java/android/telephony/ModemActivityInfo.java
index 1ba21f2..e815aec 100644
--- a/telephony/java/android/telephony/ModemActivityInfo.java
+++ b/telephony/java/android/telephony/ModemActivityInfo.java
@@ -16,6 +16,7 @@
 
 package android.telephony;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.os.Parcel;
@@ -23,6 +24,8 @@
 import android.os.SystemClock;
 import android.util.Range;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -43,6 +46,38 @@
      * </ul>
      */
     public static final int TX_POWER_LEVELS = 5;
+    /**
+     * Tx(transmit) power level 0: tx_power < 0dBm
+     */
+    public static final int TX_POWER_LEVEL_0 = 0;
+    /**
+     * Tx(transmit) power level 1: 0dBm < tx_power < 5dBm
+     */
+    public static final int TX_POWER_LEVEL_1 = 1;
+    /**
+     * Tx(transmit) power level 2: 5dBm < tx_power < 15dBm
+     */
+    public static final int TX_POWER_LEVEL_2 = 2;
+    /**
+     * Tx(transmit) power level 3: 15dBm < tx_power < 20dBm.
+     */
+    public static final int TX_POWER_LEVEL_3 = 3;
+    /**
+     * Tx(transmit) power level 4: tx_power > 20dBm
+     */
+    public static final int TX_POWER_LEVEL_4 = 4;
+
+    /** @hide */
+    @IntDef(prefix = {"TX_POWER_LEVEL_"}, value = {
+            TX_POWER_LEVEL_0,
+            TX_POWER_LEVEL_1,
+            TX_POWER_LEVEL_2,
+            TX_POWER_LEVEL_3,
+            TX_POWER_LEVEL_4,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface TxPowerLevel {}
+
     private static final Range<Integer>[] TX_POWER_RANGES = new Range[] {
         new Range<>(Integer.MIN_VALUE, 0),
         new Range<>(0, 5),
diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java
index bc84738..90ddf2c 100644
--- a/telephony/java/android/telephony/RadioAccessFamily.java
+++ b/telephony/java/android/telephony/RadioAccessFamily.java
@@ -260,24 +260,6 @@
         return raf;
     }
 
-    /**
-     * Returns the highest capability of the RadioAccessFamily (4G > 3G > 2G).
-     * @param raf The RadioAccessFamily that we wish to filter
-     * @return The highest radio capability
-     */
-    public static int getHighestRafCapability(int raf) {
-        if ((LTE & raf) > 0) {
-            return TelephonyManager.NETWORK_CLASS_4_G;
-        }
-        if ((EVDO|HS|WCDMA & raf) > 0) {
-            return TelephonyManager.NETWORK_CLASS_3_G;
-        }
-        if((GSM|CDMA & raf) > 0) {
-            return TelephonyManager.NETWORK_CLASS_2_G;
-        }
-        return TelephonyManager.NETWORK_CLASS_UNKNOWN;
-    }
-
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
     @PrefNetworkMode
     public static int getNetworkTypeFromRaf(int raf) {
@@ -395,4 +377,34 @@
         }
         return result;
     }
+
+    /**
+     * Compare two sets of network types to see which is more capable.
+     *
+     * This algorithm first tries to see see if a set has a strict superset of RAT support for
+     * each generation, from newest to oldest; if that results in a tie, then it returns the set
+     * that supports the most RAT types.
+     */
+    public static int compare(long networkTypeBitmaskL, long networkTypeBitmaskR) {
+        final long[] prioritizedNetworkClassBitmasks = new long[] {
+            TelephonyManager.NETWORK_CLASS_BITMASK_5G,
+            TelephonyManager.NETWORK_CLASS_BITMASK_4G,
+            TelephonyManager.NETWORK_CLASS_BITMASK_3G,
+            TelephonyManager.NETWORK_CLASS_BITMASK_2G,
+        };
+
+        long lhsUnique = networkTypeBitmaskL & ~networkTypeBitmaskR;
+        long rhsUnique = networkTypeBitmaskR & ~networkTypeBitmaskL;
+
+        // See if one has a strict super-set of capabilities, generation by generation.
+        for (long classBitmask : prioritizedNetworkClassBitmasks) {
+            int result = 0;
+            if ((lhsUnique & classBitmask) != 0) ++result;
+            if ((rhsUnique & classBitmask) != 0) --result;
+            if (result != 0) return result;
+        }
+
+        // Without a clear winner, return the one that supports the most types.
+        return Long.bitCount(networkTypeBitmaskL) - Long.bitCount(networkTypeBitmaskR);
+    }
 }
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index a5a1ebc..08614b9 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -1992,7 +1992,6 @@
      * @return the copied ServiceState with location info sanitized.
      * @hide
      */
-    @SystemApi
     @NonNull
     public ServiceState createLocationInfoSanitizedCopy(boolean removeCoarseLocation) {
         ServiceState state = new ServiceState(this);
@@ -2023,11 +2022,11 @@
     /**
      * The current registered raw data network operator name in long alphanumeric format.
      *
+     * The long format can be up to 16 characters long.
+     *
      * @return long raw name of operator, null if unregistered or unknown
-     * @hide
      */
     @Nullable
-    @SystemApi
     public String getOperatorAlphaLongRaw() {
         return mOperatorAlphaLongRaw;
     }
@@ -2042,11 +2041,11 @@
     /**
      * The current registered raw data network operator name in short alphanumeric format.
      *
+     * The short format can be up to 8 characters long.
+     *
      * @return short raw name of operator, null if unregistered or unknown
-     * @hide
      */
     @Nullable
-    @SystemApi
     public String getOperatorAlphaShortRaw() {
         return mOperatorAlphaShortRaw;
     }
diff --git a/telephony/java/android/telephony/SmsMessage.java b/telephony/java/android/telephony/SmsMessage.java
index 37d3d32..bc5cc96 100644
--- a/telephony/java/android/telephony/SmsMessage.java
+++ b/telephony/java/android/telephony/SmsMessage.java
@@ -20,6 +20,7 @@
 
 import android.Manifest;
 import android.annotation.IntDef;
+import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
@@ -719,9 +720,9 @@
      *                      23.040 9.2.3.24.16
      * @param languageShiftTable GSM national language shift table to use, specified by 3GPP
      *                           23.040 9.2.3.24.15
-     * @param refNumber parameter to create SmsHeader
-     * @param seqNumber parameter to create SmsHeader
-     * @param msgCount parameter to create SmsHeader
+     * @param refNumber reference number of concatenated SMS, specified by 3GPP 23.040 9.2.3.24.1
+     * @param seqNumber sequence number of concatenated SMS, specified by 3GPP 23.040 9.2.3.24.1
+     * @param msgCount count of messages of concatenated SMS, specified by 3GPP 23.040 9.2.3.24.2
      * @return a byte[] containing the encoded message
      *
      * @hide
@@ -730,11 +731,14 @@
     @SystemApi
     @NonNull
     public static byte[] getSubmitPduEncodedMessage(boolean isTypeGsm,
-            @NonNull String destinationAddress,
-            @NonNull String message,
-            @EncodingSize int encoding, int languageTable,
-            int languageShiftTable, int refNumber,
-            int seqNumber, int msgCount) {
+                                                    @NonNull String destinationAddress,
+                                                    @NonNull String message,
+                                                    @EncodingSize int encoding,
+                                                    @IntRange(from = 0) int languageTable,
+                                                    @IntRange(from = 0) int languageShiftTable,
+                                                    @IntRange(from = 0, to = 255) int refNumber,
+                                                    @IntRange(from = 1, to = 255) int seqNumber,
+                                                    @IntRange(from = 1, to = 255) int msgCount) {
         byte[] data;
         SmsHeader.ConcatRef concatRef = new SmsHeader.ConcatRef();
         concatRef.refNumber = refNumber;
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index 336aa0e..0ec3d55 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -826,7 +826,7 @@
                 + " hplmns=" + Arrays.toString(mHplmns)
                 + " subscriptionType=" + mSubscriptionType
                 + " mGroupOwner=" + mGroupOwner
-                + " carrierConfigAccessRules=" + mCarrierConfigAccessRules
+                + " carrierConfigAccessRules=" + Arrays.toString(mCarrierConfigAccessRules)
                 + " mAreUiccApplicationsEnabled=" + mAreUiccApplicationsEnabled + "}";
     }
 
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index b32e9d7..8ac9023b 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -2575,8 +2575,8 @@
      * @hide
      */
     @SystemApi
-    public boolean canManageSubscription(@Nullable SubscriptionInfo info,
-            @Nullable String packageName) {
+    public boolean canManageSubscription(@NonNull SubscriptionInfo info,
+            @NonNull String packageName) {
         if (info == null || info.getAllAccessRules() == null || packageName == null) {
             return false;
         }
@@ -3081,13 +3081,13 @@
      *
      * Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
      *
-     * @param enabled whether uicc applications are enabled or disabled.
      * @param subscriptionId which subscription to operate on.
+     * @param enabled whether uicc applications are enabled or disabled.
      * @hide
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
-    public void setUiccApplicationsEnabled(boolean enabled, int subscriptionId) {
+    public void setUiccApplicationsEnabled(int subscriptionId, boolean enabled) {
         if (VDBG) {
             logd("setUiccApplicationsEnabled subId= " + subscriptionId + " enable " + enabled);
         }
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 31d9654..27bbe68 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -1057,7 +1057,7 @@
      * or that all steps during multi-SIM change are done. To know those information you still need
      * to listen to SIM_STATE changes or active subscription changes.
      *
-     * See extra of {@link #EXTRA_NUM_OF_ACTIVE_SIM_SUPPORTED} for updated value.
+     * See extra of {@link #EXTRA_ACTIVE_SIM_SUPPORTED_COUNT} for updated value.
      */
     public static final String ACTION_MULTI_SIM_CONFIG_CHANGED =
             "android.telephony.action.MULTI_SIM_CONFIG_CHANGED";
@@ -1067,6 +1067,8 @@
      * The number of active SIM supported by current multi-SIM config. It's not related to how many
      * SIM/subscriptions are currently active.
      *
+     * Same value will be returned by {@link #getActiveModemCount()}.
+     *
      * For single SIM mode, it's 1.
      * For DSDS or DSDA mode, it's 2.
      * For triple-SIM mode, it's 3.
@@ -1075,8 +1077,8 @@
      *
      * type: integer
      */
-    public static final String EXTRA_NUM_OF_ACTIVE_SIM_SUPPORTED =
-            "android.telephony.extra.NUM_OF_ACTIVE_SIM_SUPPORTED";
+    public static final String EXTRA_ACTIVE_SIM_SUPPORTED_COUNT =
+            "android.telephony.extra.ACTIVE_SIM_SUPPORTED_COUNT";
 
     /**
      * @hide
@@ -2831,6 +2833,17 @@
         }
     }
 
+    /**
+     * @hide
+     * @deprecated Use {@link #getNetworkCountryIso(int)} instead.
+     */
+    @Deprecated
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q,
+            publicAlternatives = "Use {@link #getNetworkCountryIso(int)} instead.")
+    public String getNetworkCountryIsoForPhone(int phoneId) {
+        return getNetworkCountryIso(phoneId);
+    }
+
     /*
      * When adding a network type to the list below, make sure to add the correct icon to
      * MobileSignalController.mapIconSets() as well as NETWORK_TYPES
@@ -3075,64 +3088,6 @@
     }
 
     /**
-     * Network Class Definitions.
-     * Do not change this order, it is used for sorting during emergency calling in
-     * {@link TelephonyConnectionService#getFirstPhoneForEmergencyCall()}. Any newer technologies
-     * should be added after the current definitions.
-     */
-    /** Unknown network class. {@hide} */
-    public static final int NETWORK_CLASS_UNKNOWN = 0;
-    /** Class of broadly defined "2G" networks. {@hide} */
-    @UnsupportedAppUsage
-    public static final int NETWORK_CLASS_2_G = 1;
-    /** Class of broadly defined "3G" networks. {@hide} */
-    @UnsupportedAppUsage
-    public static final int NETWORK_CLASS_3_G = 2;
-    /** Class of broadly defined "4G" networks. {@hide} */
-    @UnsupportedAppUsage
-    public static final int NETWORK_CLASS_4_G = 3;
-    /** Class of broadly defined "5G" networks. {@hide} */
-    public static final int NETWORK_CLASS_5_G = 4;
-
-    /**
-     * Return general class of network type, such as "3G" or "4G". In cases
-     * where classification is contentious, this method is conservative.
-     *
-     * @hide
-     */
-    @UnsupportedAppUsage
-    public static int getNetworkClass(int networkType) {
-        switch (networkType) {
-            case NETWORK_TYPE_GPRS:
-            case NETWORK_TYPE_GSM:
-            case NETWORK_TYPE_EDGE:
-            case NETWORK_TYPE_CDMA:
-            case NETWORK_TYPE_1xRTT:
-            case NETWORK_TYPE_IDEN:
-                return NETWORK_CLASS_2_G;
-            case NETWORK_TYPE_UMTS:
-            case NETWORK_TYPE_EVDO_0:
-            case NETWORK_TYPE_EVDO_A:
-            case NETWORK_TYPE_HSDPA:
-            case NETWORK_TYPE_HSUPA:
-            case NETWORK_TYPE_HSPA:
-            case NETWORK_TYPE_EVDO_B:
-            case NETWORK_TYPE_EHRPD:
-            case NETWORK_TYPE_HSPAP:
-            case NETWORK_TYPE_TD_SCDMA:
-                return NETWORK_CLASS_3_G;
-            case NETWORK_TYPE_LTE:
-            case NETWORK_TYPE_IWLAN:
-            case NETWORK_TYPE_LTE_CA:
-                return NETWORK_CLASS_4_G;
-            case NETWORK_TYPE_NR:
-                return NETWORK_CLASS_5_G;
-            default:
-                return NETWORK_CLASS_UNKNOWN;
-        }
-    }
-
-    /**
      * Returns a string representation of the radio technology (network type)
      * currently in use on the device.
      * @return the name of the radio technology
@@ -3937,19 +3892,19 @@
     }
 
     /**
-     * Return if the current radio has global mode enabled, meaning it supports
-     * both 3GPP and 3GPP2 radio technologies at the same time.
+     * Return if the current radio can support both 3GPP and 3GPP2 radio technologies at the same
+     * time. This is also known as global mode, which includes LTE, CDMA, EvDo and GSM/WCDMA.
      *
      * <p>If this object has been created with {@link #createForSubscriptionId}, applies to the
      * given subId. Otherwise, applies to {@link SubscriptionManager#getDefaultSubscriptionId()}.
      *
-     * @return {@code true} if global mode is enabled
-     *         {@code false} if global mode is not enabled or unknown
+     * @return {@code true} if 3GPP and 3GPP2 radio technologies can be supported at the same time
+     *         {@code false} if not supported or unknown
      * @hide
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public boolean isGlobalModeEnabled() {
+    public boolean isLteCdmaEvdoGsmWcdmaEnabled() {
         return getLteOnCdmaMode(getSubId()) == PhoneConstants.LTE_ON_CDMA_TRUE;
     }
 
@@ -8007,21 +7962,19 @@
      * app has carrier privileges (see {@link #hasCarrierPrivileges}).
      *
      * @param operatorNumeric the PLMN ID of the network to select.
-     * @param ran the initial suggested radio access network type.
-     *         If registration fails, the RAN is not available after, the RAN is not within the
-     *         network types specified by {@link #setPreferredNetworkTypeBitmask}, or the value is
-     *         {@link AccessNetworkConstants.AccessNetworkType#UNKNOWN}, modem will select
-     *         the next best RAN for network registration.
      * @param persistSelection whether the selection will persist until reboot.
      *         If true, only allows attaching to the selected PLMN until reboot; otherwise,
      *         attach to the chosen PLMN and resume normal network selection next time.
+     * @param ran the initial suggested radio access network type.
+     *         If registration fails, the RAN is not available after, the RAN is not within the
+     *         network types specified by the preferred network types, or the value is
+     *         {@link AccessNetworkConstants.AccessNetworkType#UNKNOWN}, modem will select
+     *         the next best RAN for network registration.
      * @return {@code true} on success; {@code false} on any failure.
-     * @hide
      */
     @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
-    @SystemApi
     public boolean setNetworkSelectionModeManual(@NonNull String operatorNumeric,
-            @AccessNetworkConstants.RadioAccessNetworkType int ran, boolean persistSelection) {
+            boolean persistSelection, @AccessNetworkConstants.RadioAccessNetworkType int ran) {
         return setNetworkSelectionModeManual(new OperatorInfo("" /* operatorAlphaLong */,
                 "" /* operatorAlphaShort */, operatorNumeric, ran), persistSelection);
     }
@@ -11600,6 +11553,55 @@
     @SystemApi
     public static final long NETWORK_TYPE_BITMASK_IWLAN = (1 << (NETWORK_TYPE_IWLAN -1));
 
+    /** @hide */
+    public static final long NETWORK_CLASS_BITMASK_2G = NETWORK_TYPE_BITMASK_GSM
+                | NETWORK_TYPE_BITMASK_GPRS
+                | NETWORK_TYPE_BITMASK_EDGE
+                | NETWORK_TYPE_BITMASK_CDMA
+                | NETWORK_TYPE_BITMASK_1xRTT;
+
+    /** @hide */
+    public static final long NETWORK_CLASS_BITMASK_3G = NETWORK_TYPE_BITMASK_EVDO_0
+            | NETWORK_TYPE_BITMASK_EVDO_A
+            | NETWORK_TYPE_BITMASK_EVDO_B
+            | NETWORK_TYPE_BITMASK_EHRPD
+            | NETWORK_TYPE_BITMASK_HSUPA
+            | NETWORK_TYPE_BITMASK_HSDPA
+            | NETWORK_TYPE_BITMASK_HSPA
+            | NETWORK_TYPE_BITMASK_HSPAP
+            | NETWORK_TYPE_BITMASK_UMTS
+            | NETWORK_TYPE_BITMASK_TD_SCDMA;
+
+    /** @hide */
+    public static final long NETWORK_CLASS_BITMASK_4G = NETWORK_TYPE_BITMASK_LTE
+            | NETWORK_TYPE_BITMASK_LTE_CA
+            | NETWORK_TYPE_BITMASK_IWLAN;
+
+    /** @hide */
+    public static final long NETWORK_CLASS_BITMASK_5G = NETWORK_TYPE_BITMASK_NR;
+
+    /** @hide */
+    public static final long NETWORK_STANDARDS_FAMILY_BITMASK_3GPP = NETWORK_TYPE_BITMASK_GSM
+            | NETWORK_TYPE_BITMASK_GPRS
+            | NETWORK_TYPE_BITMASK_EDGE
+            | NETWORK_TYPE_BITMASK_HSUPA
+            | NETWORK_TYPE_BITMASK_HSDPA
+            | NETWORK_TYPE_BITMASK_HSPA
+            | NETWORK_TYPE_BITMASK_HSPAP
+            | NETWORK_TYPE_BITMASK_UMTS
+            | NETWORK_TYPE_BITMASK_TD_SCDMA
+            | NETWORK_TYPE_BITMASK_LTE
+            | NETWORK_TYPE_BITMASK_LTE_CA
+            | NETWORK_TYPE_BITMASK_NR;
+
+    /** @hide */
+    public static final long NETWORK_STANDARDS_FAMILY_BITMASK_3GPP2 = NETWORK_TYPE_BITMASK_CDMA
+            | NETWORK_TYPE_BITMASK_1xRTT
+            | NETWORK_TYPE_BITMASK_EVDO_0
+            | NETWORK_TYPE_BITMASK_EVDO_A
+            | NETWORK_TYPE_BITMASK_EVDO_B
+            | NETWORK_TYPE_BITMASK_EHRPD;
+
     /**
      * @return Modem supported radio access family bitmask
      *
@@ -12610,14 +12612,32 @@
     @TestApi
     @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
     public void setSystemSelectionChannels(@NonNull List<RadioAccessSpecifier> specifiers,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull Consumer<Boolean> callback) {
+        Objects.requireNonNull(specifiers, "Specifiers must not be null.");
+        Objects.requireNonNull(executor, "Executor must not be null.");
+        Objects.requireNonNull(callback, "Callback must not be null.");
+        setSystemSelectionChannelsInternal(specifiers, executor, callback);
+    }
+
+    /**
+     * Same as {@link #setSystemSelectionChannels(List, Executor, Consumer<Boolean>)}, but to be
+     * used when the caller does not need feedback on the results of the operation.
+     * @param specifiers which bands to scan.
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+    public void setSystemSelectionChannels(@NonNull List<RadioAccessSpecifier> specifiers) {
+        Objects.requireNonNull(specifiers, "Specifiers must not be null.");
+        setSystemSelectionChannelsInternal(specifiers, null, null);
+    }
+
+
+    private void setSystemSelectionChannelsInternal(@NonNull List<RadioAccessSpecifier> specifiers,
             @Nullable @CallbackExecutor Executor executor,
             @Nullable Consumer<Boolean> callback) {
-        Objects.requireNonNull(specifiers, "Specifiers must not be null.");
-        if (callback != null) {
-            Objects.requireNonNull(executor, "Executor must not be null when"
-                    + " the callback is nonnull");
-        }
-
         IBooleanConsumer aidlConsumer = callback == null ? null : new IBooleanConsumer.Stub() {
             @Override
             public void accept(boolean result) {
diff --git a/telephony/java/android/telephony/ims/ImsException.java b/telephony/java/android/telephony/ims/ImsException.java
index 643f452..1c3d58d 100644
--- a/telephony/java/android/telephony/ims/ImsException.java
+++ b/telephony/java/android/telephony/ims/ImsException.java
@@ -47,11 +47,12 @@
     public static final int CODE_ERROR_SERVICE_UNAVAILABLE = 1;
 
     /**
-     * This device or carrier configuration does not support IMS for this subscription.
+     * This device or carrier configuration does not support this feature for this subscription.
      * <p>
-     * This is a permanent configuration error and there should be no retry. Usually this is
-     * because {@link PackageManager#FEATURE_TELEPHONY_IMS} is not available
-     * or the device has no ImsService implementation to service this request.
+     * This is a permanent configuration error and there should be no retry until the subscription
+     * changes if this operation is denied due to a carrier configuration. If this is due to a
+     * device configuration, the feature {@link PackageManager#FEATURE_TELEPHONY_IMS} is not
+     * available or the device has no ImsService implementation to service this request.
      */
     public static final int CODE_ERROR_UNSUPPORTED_OPERATION = 2;
 
diff --git a/telephony/java/android/telephony/ims/ImsRcsManager.java b/telephony/java/android/telephony/ims/ImsRcsManager.java
index c506cd5..151fb59 100644
--- a/telephony/java/android/telephony/ims/ImsRcsManager.java
+++ b/telephony/java/android/telephony/ims/ImsRcsManager.java
@@ -20,13 +20,15 @@
 import android.annotation.CallbackExecutor;
 import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
-import android.annotation.SystemApi;
-import android.annotation.TestApi;
+import android.annotation.SdkConstant;
 import android.content.Context;
+import android.content.Intent;
 import android.os.Binder;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.provider.Settings;
 import android.telephony.AccessNetworkConstants;
+import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyFrameworkInitializer;
 import android.telephony.ims.aidl.IImsCapabilityCallback;
@@ -46,14 +48,34 @@
  * (UCE) service, as well as managing user settings.
  *
  * Use {@link ImsManager#getImsRcsManager(int)} to create an instance of this manager.
- * @hide
  */
-@SystemApi
-@TestApi
 public class ImsRcsManager implements RegistrationManager {
     private static final String TAG = "ImsRcsManager";
 
     /**
+     * Activity Action: Show the opt-in dialog for enabling or disabling RCS contact discovery
+     * using User Capability Exchange (UCE).
+     * <p>
+     * An application that depends on contact discovery being enabled may send this intent
+     * using {@link Context#startActivity(Intent)} to ask the user to opt-in for contacts upload for
+     * capability exchange if it is currently disabled. Whether or not this setting has been enabled
+     * can be queried using {@link RcsUceAdapter#isUceSettingEnabled()}.
+     * <p>
+     * This intent should only be sent if the carrier supports RCS capability exchange, which can be
+     * queried using the key {@link CarrierConfigManager#KEY_USE_RCS_PRESENCE_BOOL}. Otherwise, the
+     * setting will not be present.
+     * <p>
+     * Input: A mandatory {@link Settings#EXTRA_SUB_ID} extra containing the subscription that the
+     * setting will be be shown for.
+     * <p>
+     * Output: Nothing
+     * @see RcsUceAdapter
+     */
+    @SdkConstant(SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN =
+            "android.telephony.ims.action.SHOW_CAPABILITY_DISCOVERY_OPT_IN";
+
+    /**
      * Receives RCS availability status updates from the ImsService.
      *
      * @see #isAvailable(int)
@@ -145,11 +167,10 @@
      */
     @NonNull
     public RcsUceAdapter getUceAdapter() {
-        return new RcsUceAdapter(mSubId);
+        return new RcsUceAdapter(mContext, mSubId);
     }
 
     /**
-     * {@inheritDoc}
      * @hide
      */
     @Override
@@ -181,7 +202,6 @@
     }
 
     /**
-     * {@inheritDoc
      * @hide
      */
     @Override
@@ -206,7 +226,6 @@
     }
 
     /**
-     * {@inheritDoc}
      * @hide
      */
     @Override
@@ -239,7 +258,6 @@
     }
 
     /**
-     * {@inheritDoc}
      * @hide
      */
     @Override
diff --git a/telephony/java/android/telephony/ims/RcsUceAdapter.java b/telephony/java/android/telephony/ims/RcsUceAdapter.java
index fc7c1ee..58e9b70 100644
--- a/telephony/java/android/telephony/ims/RcsUceAdapter.java
+++ b/telephony/java/android/telephony/ims/RcsUceAdapter.java
@@ -23,10 +23,13 @@
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
+import android.content.Context;
+import android.database.ContentObserver;
 import android.net.Uri;
 import android.os.Binder;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.provider.Telephony;
 import android.telephony.TelephonyFrameworkInitializer;
 import android.telephony.ims.aidl.IImsRcsController;
 import android.telephony.ims.aidl.IRcsUceControllerCallback;
@@ -42,10 +45,7 @@
  * Manages RCS User Capability Exchange for the subscription specified.
  *
  * @see ImsRcsManager#getUceAdapter() for information on creating an instance of this class.
- * @hide
  */
-@SystemApi
-@TestApi
 public class RcsUceAdapter {
     private static final String TAG = "RcsUceAdapter";
 
@@ -215,6 +215,7 @@
         }
     }
 
+    private final Context mContext;
     private final int mSubId;
 
     /**
@@ -222,7 +223,8 @@
      * {@link ImsRcsManager#getUceAdapter()} to instantiate this manager class.
      * @hide
      */
-    RcsUceAdapter(int subId) {
+    RcsUceAdapter(Context context, int subId) {
+        mContext = context;
         mSubId = subId;
     }
 
@@ -290,7 +292,8 @@
         };
 
         try {
-            imsRcsController.requestCapabilities(mSubId, contactNumbers, internalCallback);
+            imsRcsController.requestCapabilities(mSubId, mContext.getOpPackageName(),
+                    mContext.getFeatureId(), contactNumbers, internalCallback);
         } catch (RemoteException e) {
             Log.e(TAG, "Error calling IImsRcsController#requestCapabilities", e);
             throw new ImsException("Remote IMS Service is not available",
@@ -340,7 +343,7 @@
      * available. This can happen if the ImsService has crashed, for example, or if the subscription
      * becomes inactive. See {@link ImsException#getCode()} for more information on the error codes.
      */
-    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
     public boolean isUceSettingEnabled() throws ImsException {
         IImsRcsController imsRcsController = getIImsRcsController();
         if (imsRcsController == null) {
@@ -348,9 +351,10 @@
             throw new ImsException("Can not find remote IMS service",
                     ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
         }
-
         try {
-            return imsRcsController.isUceSettingEnabled(mSubId);
+            // Telephony.SimInfo#IMS_RCS_UCE_ENABLED can also be used to listen to changes to this.
+            return imsRcsController.isUceSettingEnabled(mSubId, mContext.getOpPackageName(),
+                    mContext.getFeatureId());
         } catch (RemoteException e) {
             Log.e(TAG, "Error calling IImsRcsController#isUceSettingEnabled", e);
             throw new ImsException("Remote IMS Service is not available",
@@ -361,6 +365,10 @@
     /**
      * Change the user’s setting for whether or not UCE is enabled for the associated subscription.
      * <p>
+     * If an application Requires UCE, they may launch an Activity using the Intent
+     * {@link ImsRcsManager#ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN}, which will ask the user if
+     * they wish to enable this feature.
+     * <p>
      * Note: This setting does not affect whether or not the device publishes its service
      * capabilities if the subscription supports presence publication.
      *
@@ -370,7 +378,10 @@
      * {@link RcsUceAdapter} is valid, but the ImsService associated with the subscription is not
      * available. This can happen if the ImsService has crashed, for example, or if the subscription
      * becomes inactive. See {@link ImsException#getCode()} for more information on the error codes.
+     * @hide
      */
+    @SystemApi
+    @TestApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setUceSettingEnabled(boolean isEnabled) throws ImsException {
         IImsRcsController imsRcsController = getIImsRcsController();
diff --git a/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl b/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl
index 6f6aa44..483c66e 100644
--- a/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl
+++ b/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl
@@ -42,8 +42,9 @@
     boolean isAvailable(int subId, int capability);
 
     // ImsUceAdapter specific
-    void requestCapabilities(int subId, in List<Uri> contactNumbers, IRcsUceControllerCallback c);
+    void requestCapabilities(int subId, String callingPackage, String callingFeatureId,
+            in List<Uri> contactNumbers, IRcsUceControllerCallback c);
     int getUcePublishState(int subId);
-    boolean isUceSettingEnabled(int subId);
+    boolean isUceSettingEnabled(int subId, String callingPackage, String callingFeatureId);
     void setUceSettingEnabled(int subId, boolean isEnabled);
 }
diff --git a/test-mock/src/android/test/mock/MockContext.java b/test-mock/src/android/test/mock/MockContext.java
index 2c66047..784ee85 100644
--- a/test-mock/src/android/test/mock/MockContext.java
+++ b/test-mock/src/android/test/mock/MockContext.java
@@ -17,7 +17,6 @@
 package android.test.mock;
 
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.app.IApplicationThread;
 import android.app.IServiceConnection;
@@ -480,10 +479,11 @@
         throw new UnsupportedOperationException();
     }
 
+    /** @hide */
     @Override
-    public void sendOrderedBroadcast(Intent intent, String receiverPermission, String receiverAppOp,
-            Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode,
-            String initialData, Bundle initialExtras) {
+    public void sendOrderedBroadcast(Intent intent, int initialCode, String receiverPermission,
+            String receiverAppOp, BroadcastReceiver resultReceiver, Handler scheduler,
+            String initialData, Bundle initialExtras, Bundle options) {
         throw new UnsupportedOperationException();
     }
 
diff --git a/tests/ApkVerityTest/Android.bp b/tests/ApkVerityTest/Android.bp
index c8d1ce1..2482068 100644
--- a/tests/ApkVerityTest/Android.bp
+++ b/tests/ApkVerityTest/Android.bp
@@ -16,7 +16,7 @@
     name: "ApkVerityTest",
     srcs: ["src/**/*.java"],
     libs: ["tradefed", "compatibility-tradefed", "compatibility-host-util"],
-    test_suites: ["general-tests"],
+    test_suites: ["general-tests", "vts-core"],
     target_required: [
         "block_device_writer_module",
     ],
diff --git a/tests/ApkVerityTest/block_device_writer/Android.bp b/tests/ApkVerityTest/block_device_writer/Android.bp
index 78850c5..65cb364 100644
--- a/tests/ApkVerityTest/block_device_writer/Android.bp
+++ b/tests/ApkVerityTest/block_device_writer/Android.bp
@@ -47,6 +47,6 @@
         },
     },
 
-    test_suites: ["general-tests", "pts"],
+    test_suites: ["general-tests", "pts", "vts-core"],
     gtest: false,
 }
diff --git a/apex/appsearch/service/Android.bp b/tests/AppResourcesLoaders/Android.bp
similarity index 65%
copy from apex/appsearch/service/Android.bp
copy to tests/AppResourcesLoaders/Android.bp
index 04f385e..e5739db 100644
--- a/apex/appsearch/service/Android.bp
+++ b/tests/AppResourcesLoaders/Android.bp
@@ -1,4 +1,5 @@
-// Copyright (C) 2019 The Android Open Source Project
+//
+// Copyright (C) 2020 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.
@@ -11,14 +12,11 @@
 // 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.
-java_library {
-    name: "service-appsearch",
-    installable: true,
-    srcs: ["java/**/*.java"],
-    libs: [
-        "framework",
-        "framework-appsearch",
-        "services.core",
-    ],
-    apex_available: ["com.android.appsearch"],
+//
+
+android_test {
+    name: "AppResourcesLoaders",
+    srcs: ["**/*.java"],
+    sdk_version: "current",
+    java_resources: [":AppResourcesLoaders_Overlay"]
 }
diff --git a/tests/AppResourcesLoaders/AndroidManifest.xml b/tests/AppResourcesLoaders/AndroidManifest.xml
new file mode 100644
index 0000000..cb403b9
--- /dev/null
+++ b/tests/AppResourcesLoaders/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.example.loaders">
+    <application android:label="AppResourcesLoaders"
+                 android:name=".LoadersApplication">
+        <activity android:name=".LoaderActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name=".LoaderActivityIsolated"
+                  android:process="com.android.phone" />
+    </application>
+</manifest>
diff --git a/apex/appsearch/service/Android.bp b/tests/AppResourcesLoaders/Overlay/Android.bp
similarity index 65%
rename from apex/appsearch/service/Android.bp
rename to tests/AppResourcesLoaders/Overlay/Android.bp
index 04f385e..80443f6 100644
--- a/apex/appsearch/service/Android.bp
+++ b/tests/AppResourcesLoaders/Overlay/Android.bp
@@ -1,4 +1,5 @@
-// Copyright (C) 2019 The Android Open Source Project
+//
+// Copyright (C) 2020 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.
@@ -11,14 +12,8 @@
 // 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.
-java_library {
-    name: "service-appsearch",
-    installable: true,
-    srcs: ["java/**/*.java"],
-    libs: [
-        "framework",
-        "framework-appsearch",
-        "services.core",
-    ],
-    apex_available: ["com.android.appsearch"],
+//
+
+android_test_helper_app {
+    name: "AppResourcesLoaders_Overlay",
 }
diff --git a/tests/AppResourcesLoaders/Overlay/AndroidManifest.xml b/tests/AppResourcesLoaders/Overlay/AndroidManifest.xml
new file mode 100644
index 0000000..083ba37
--- /dev/null
+++ b/tests/AppResourcesLoaders/Overlay/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.example.loaders">
+    <application android:hasCode="false" />
+</manifest>
diff --git a/tests/AppResourcesLoaders/Overlay/res/values/values.xml b/tests/AppResourcesLoaders/Overlay/res/values/values.xml
new file mode 100644
index 0000000..8f6e462
--- /dev/null
+++ b/tests/AppResourcesLoaders/Overlay/res/values/values.xml
@@ -0,0 +1,20 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+
+<resources>
+    <string name="loader_present">Loaders present: true</string>
+    <public type="string" name="loader_present" id="0x7f010000" />
+</resources>
\ No newline at end of file
diff --git a/tests/AppResourcesLoaders/res/layout/activity_isolated.xml b/tests/AppResourcesLoaders/res/layout/activity_isolated.xml
new file mode 100644
index 0000000..0a13f00
--- /dev/null
+++ b/tests/AppResourcesLoaders/res/layout/activity_isolated.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2020 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_height="match_parent"
+              android:layout_width="match_parent"
+              android:gravity="center"
+              android:orientation="vertical">
+
+    <TextView android:text="@string/loader_present"
+              style="@style/ButtonStyle"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/tests/AppResourcesLoaders/res/layout/activity_main.xml b/tests/AppResourcesLoaders/res/layout/activity_main.xml
new file mode 100644
index 0000000..7277700
--- /dev/null
+++ b/tests/AppResourcesLoaders/res/layout/activity_main.xml
@@ -0,0 +1,29 @@
+<!--
+  ~ Copyright (C) 2020 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_height="match_parent"
+              android:layout_width="match_parent"
+              android:gravity="center"
+              android:orientation="vertical">
+
+    <TextView android:text="@string/loader_present"
+              style="@style/ButtonStyle"/>
+
+    <Button android:id="@+id/btn_isolated_activity"
+            android:text="Launch Isolated Activity"
+            style="@style/ButtonStyle"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/tests/AppResourcesLoaders/res/values/styles.xml b/tests/AppResourcesLoaders/res/values/styles.xml
new file mode 100644
index 0000000..ee73d65
--- /dev/null
+++ b/tests/AppResourcesLoaders/res/values/styles.xml
@@ -0,0 +1,23 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+
+<resources>
+    <style name="ButtonStyle" >
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">40dp</item>
+        <item name="android:layout_centerInParent">true</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/tests/AppResourcesLoaders/res/values/values.xml b/tests/AppResourcesLoaders/res/values/values.xml
new file mode 100644
index 0000000..af128b6
--- /dev/null
+++ b/tests/AppResourcesLoaders/res/values/values.xml
@@ -0,0 +1,20 @@
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+
+<resources>
+    <string name="loader_present">Loaders present: false</string>
+    <public type="string" name="loader_present" id="0x7f010000" />
+</resources>
\ No newline at end of file
diff --git a/tests/AppResourcesLoaders/src/com/android/example/loaders/LoaderActivity.java b/tests/AppResourcesLoaders/src/com/android/example/loaders/LoaderActivity.java
new file mode 100644
index 0000000..49ef46f
--- /dev/null
+++ b/tests/AppResourcesLoaders/src/com/android/example/loaders/LoaderActivity.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2020 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.example.loaders;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+
+public class LoaderActivity extends Activity {
+
+    @Override
+    protected void attachBaseContext(Context newBase) {
+        super.attachBaseContext(newBase);
+        final String loaderPresentOnAttach =
+                newBase.getResources().getString(R.string.loader_present);
+        if (loaderPresentOnAttach == null || !loaderPresentOnAttach.endsWith("true")) {
+            throw new AssertionError("Loader not present in attachBaseContext");
+        }
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+        findViewById(R.id.btn_isolated_activity).setOnClickListener((v) -> {
+            startActivity(new Intent(this, LoaderActivityIsolated.class));
+        });
+    }
+}
diff --git a/tests/AppResourcesLoaders/src/com/android/example/loaders/LoaderActivityIsolated.java b/tests/AppResourcesLoaders/src/com/android/example/loaders/LoaderActivityIsolated.java
new file mode 100644
index 0000000..04550b9
--- /dev/null
+++ b/tests/AppResourcesLoaders/src/com/android/example/loaders/LoaderActivityIsolated.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2020 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.example.loaders;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+
+public class LoaderActivityIsolated extends Activity {
+
+    @Override
+    protected void attachBaseContext(Context newBase) {
+        super.attachBaseContext(newBase);
+        final String loaderPresentOnAttach =
+                newBase.getResources().getString(R.string.loader_present);
+        if (loaderPresentOnAttach == null || !loaderPresentOnAttach.endsWith("true")) {
+            throw new AssertionError("Loader not present in attachBaseContext");
+        }
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_isolated);
+    }
+}
diff --git a/tests/AppResourcesLoaders/src/com/android/example/loaders/LoadersApplication.java b/tests/AppResourcesLoaders/src/com/android/example/loaders/LoadersApplication.java
new file mode 100644
index 0000000..709c208
--- /dev/null
+++ b/tests/AppResourcesLoaders/src/com/android/example/loaders/LoadersApplication.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2020 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.example.loaders;
+
+import android.app.Application;
+import android.content.res.Resources;
+import android.content.res.loader.ResourcesLoader;
+import android.content.res.loader.ResourcesProvider;
+import android.os.ParcelFileDescriptor;
+import android.util.Log;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class LoadersApplication extends Application {
+    private static final String TAG = "LoadersApplication";
+    private static final String LOADER_RESOURCES_APK = "AppResourcesLoaders_Overlay.apk";
+
+    @Override
+    public void onCreate() {
+        try {
+            final Resources resources = getResources();
+            final ResourcesLoader loader = new ResourcesLoader();
+            loader.addProvider(ResourcesProvider.loadFromApk(copyResource(LOADER_RESOURCES_APK)));
+            resources.addLoaders(loader);
+        } catch (IOException e) {
+            throw new IllegalStateException("Failed to load loader resources ", e);
+        }
+    }
+
+    private ParcelFileDescriptor copyResource(String fileName) throws IOException {
+        final File apkFile = new File(getFilesDir(), fileName);
+        final InputStream is = getClassLoader().getResourceAsStream(LOADER_RESOURCES_APK);
+        final FileOutputStream os = new FileOutputStream(apkFile);
+        byte[] buffer = new byte[8192];
+        int count;
+        while ((count = is.read(buffer)) != -1) {
+            os.write(buffer, 0, count);
+        }
+        return ParcelFileDescriptor.open(apkFile, ParcelFileDescriptor.MODE_READ_ONLY);
+    }
+}
diff --git a/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java b/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
index f96766a..504bd17 100644
--- a/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
+++ b/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
@@ -15,6 +15,9 @@
  */
 package com.android.utils.blob;
 
+import static com.android.utils.blob.Utils.BUFFER_SIZE_BYTES;
+import static com.android.utils.blob.Utils.copy;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.app.blob.BlobHandle;
@@ -23,22 +26,17 @@
 import android.os.FileUtils;
 import android.os.ParcelFileDescriptor;
 
-import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.io.RandomAccessFile;
-import java.nio.file.Files;
 import java.security.MessageDigest;
 import java.util.Random;
 import java.util.concurrent.TimeUnit;
 
 public class DummyBlobData {
     private static final long DEFAULT_SIZE_BYTES = 10 * 1024L * 1024L;
-    private static final int BUFFER_SIZE_BYTES = 16 * 1024;
 
     private final Context mContext;
     private final Random mRandom;
@@ -83,7 +81,7 @@
     }
 
     public BlobHandle getBlobHandle() throws Exception {
-        return BlobHandle.createWithSha256(createSha256Digest(mFile), mLabel,
+        return BlobHandle.createWithSha256(mFileDigest, mLabel,
                 mExpiryTimeMs, "test_tag");
     }
 
@@ -106,11 +104,7 @@
     public void writeToSession(BlobStoreManager.Session session,
             long offsetBytes, long lengthBytes) throws Exception {
         try (FileInputStream in = new FileInputStream(mFile)) {
-            in.getChannel().position(offsetBytes);
-            try (FileOutputStream out = new ParcelFileDescriptor.AutoCloseOutputStream(
-                    session.openWrite(offsetBytes, lengthBytes))) {
-                copy(in, out, lengthBytes);
-            }
+            Utils.writeToSession(session, in, offsetBytes, lengthBytes);
         }
     }
 
@@ -123,16 +117,8 @@
         }
     }
 
-    private void copy(InputStream in, OutputStream out, long lengthBytes) throws Exception {
-        final byte[] buffer = new byte[BUFFER_SIZE_BYTES];
-        long bytesWrittern = 0;
-        while (bytesWrittern < lengthBytes) {
-            final int toWrite = (bytesWrittern + buffer.length <= lengthBytes)
-                    ? buffer.length : (int) (lengthBytes - bytesWrittern);
-            in.read(buffer, 0, toWrite);
-            out.write(buffer, 0, toWrite);
-            bytesWrittern += toWrite;
-        }
+    public ParcelFileDescriptor openForRead() throws Exception {
+        return ParcelFileDescriptor.open(mFile, ParcelFileDescriptor.MODE_READ_ONLY);
     }
 
     public void readFromSessionAndVerifyBytes(BlobStoreManager.Session session,
@@ -198,19 +184,6 @@
         return digest.digest();
     }
 
-    private byte[] createSha256Digest(File file) throws Exception {
-        final MessageDigest digest = MessageDigest.getInstance("SHA-256");
-        try (BufferedInputStream in = new BufferedInputStream(
-                Files.newInputStream(file.toPath()))) {
-            final byte[] buffer = new byte[BUFFER_SIZE_BYTES];
-            int bytesRead;
-            while ((bytesRead = in.read(buffer)) > 0) {
-                digest.update(buffer, 0, bytesRead);
-            }
-        }
-        return digest.digest();
-    }
-
     private void writeRandomData(RandomAccessFile file, long fileSize)
             throws Exception {
         long bytesWritten = 0;
diff --git a/tests/BlobStoreTestUtils/src/com/android/utils/blob/Utils.java b/tests/BlobStoreTestUtils/src/com/android/utils/blob/Utils.java
new file mode 100644
index 0000000..c35385c
--- /dev/null
+++ b/tests/BlobStoreTestUtils/src/com/android/utils/blob/Utils.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2020 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.utils.blob;
+
+import android.app.blob.BlobStoreManager;
+import android.os.ParcelFileDescriptor;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class Utils {
+    public static final int BUFFER_SIZE_BYTES = 16 * 1024;
+
+    public static void copy(InputStream in, OutputStream out, long lengthBytes)
+            throws IOException {
+        final byte[] buffer = new byte[BUFFER_SIZE_BYTES];
+        long bytesWrittern = 0;
+        while (bytesWrittern < lengthBytes) {
+            final int toWrite = (bytesWrittern + buffer.length <= lengthBytes)
+                    ? buffer.length : (int) (lengthBytes - bytesWrittern);
+            in.read(buffer, 0, toWrite);
+            out.write(buffer, 0, toWrite);
+            bytesWrittern += toWrite;
+        }
+    }
+
+    public static void writeToSession(BlobStoreManager.Session session, ParcelFileDescriptor input,
+            long lengthBytes) throws IOException {
+        try (FileInputStream in = new ParcelFileDescriptor.AutoCloseInputStream(input)) {
+            writeToSession(session, in, 0, lengthBytes);
+        }
+    }
+
+    public static void writeToSession(BlobStoreManager.Session session, FileInputStream in,
+            long offsetBytes, long lengthBytes) throws IOException {
+        in.getChannel().position(offsetBytes);
+        try (FileOutputStream out = new ParcelFileDescriptor.AutoCloseOutputStream(
+                session.openWrite(offsetBytes, lengthBytes))) {
+            copy(in, out, lengthBytes);
+        }
+    }
+}
diff --git a/tests/BootImageProfileTest/DISABLED_TEST_MAPPING b/tests/BootImageProfileTest/TEST_MAPPING
similarity index 100%
rename from tests/BootImageProfileTest/DISABLED_TEST_MAPPING
rename to tests/BootImageProfileTest/TEST_MAPPING
diff --git a/tests/ProtoInputStreamTests/src/com/android/test/protoinputstream/ProtoInputStreamIncompleteValueTest.java b/tests/ProtoInputStreamTests/src/com/android/test/protoinputstream/ProtoInputStreamIncompleteValueTest.java
new file mode 100644
index 0000000..167d5a4
--- /dev/null
+++ b/tests/ProtoInputStreamTests/src/com/android/test/protoinputstream/ProtoInputStreamIncompleteValueTest.java
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2020 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.test.protoinputstream;
+
+import android.util.proto.ProtoInputStream;
+import android.util.proto.ProtoParseException;
+import android.util.proto.ProtoStream;
+
+import junit.framework.TestCase;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class ProtoInputStreamIncompleteValueTest extends TestCase {
+
+    /**
+     * Test that an incomplete varint at the end of a stream throws an exception
+     */
+    public void testIncompleteVarint() throws IOException {
+        final long fieldFlags = ProtoStream.FIELD_COUNT_SINGLE | ProtoStream.FIELD_TYPE_INT32;
+
+        final long fieldId1 = fieldFlags | ((long) 1 & 0x0ffffffffL);
+
+        final byte[] protobuf = new byte[]{
+                // 1 : varint -> invalid varint value
+                (byte) 0x08,
+                (byte) 0xff,
+        };
+
+        InputStream stream = new ByteArrayInputStream(protobuf);
+        final ProtoInputStream pi = new ProtoInputStream(stream);
+
+        while (pi.nextField() != ProtoInputStream.NO_MORE_FIELDS) {
+            try {
+                switch (pi.getFieldNumber()) {
+                    case (int) fieldId1:
+                        pi.readInt(fieldId1);
+                        fail("Should have thrown a ProtoParseException");
+                        break;
+                    default:
+                        fail("Unexpected field id " + pi.getFieldNumber());
+                }
+            } catch (ProtoParseException ppe) {
+                // good
+                stream.close();
+                return;
+            }
+        }
+        stream.close();
+        fail("Test should not have reached this point...");
+    }
+
+    /**
+     * Test that an incomplete fixed64 at the end of a stream throws an exception
+     */
+    public void testIncompleteFixed64() throws IOException {
+        final long fieldFlags = ProtoStream.FIELD_COUNT_SINGLE | ProtoStream.FIELD_TYPE_FIXED64;
+
+        final long fieldId2 = fieldFlags | ((long) 2 & 0x0ffffffffL);
+
+        final byte[] protobuf = new byte[]{
+                // 2 -> invalid fixed64
+                (byte) 0x11,
+                (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
+                (byte) 0x00, (byte) 0x00, (byte) 0x00,
+        };
+
+        InputStream stream = new ByteArrayInputStream(protobuf);
+        final ProtoInputStream pi = new ProtoInputStream(stream);
+
+        while (pi.nextField() != ProtoInputStream.NO_MORE_FIELDS) {
+            try {
+                switch (pi.getFieldNumber()) {
+                    case (int) fieldId2:
+                        pi.readLong(fieldId2);
+                        fail("Should have thrown a ProtoParseException");
+                        break;
+                    default:
+                        fail("Unexpected field id " + pi.getFieldNumber());
+                }
+            } catch (ProtoParseException ppe) {
+                // good
+                stream.close();
+                return;
+            }
+        }
+        stream.close();
+        fail("Test should not have reached this point...");
+    }
+
+    /**
+     * Test that an incomplete length delimited value at the end of a stream throws an exception
+     */
+    public void testIncompleteLengthDelimited() throws IOException {
+        final long fieldFlags = ProtoStream.FIELD_COUNT_SINGLE | ProtoStream.FIELD_TYPE_BYTES;
+
+        final long fieldId5 = fieldFlags | ((long) 5 & 0x0ffffffffL);
+
+        final byte[] protobuf = new byte[]{
+                // 5 -> invalid byte array (has size 5 but only 4 values)
+                (byte) 0x2a,
+                (byte) 0x05,
+                (byte) 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03,
+        };
+
+        InputStream stream = new ByteArrayInputStream(protobuf);
+        final ProtoInputStream pi = new ProtoInputStream(stream);
+
+        while (pi.nextField() != ProtoInputStream.NO_MORE_FIELDS) {
+            try {
+                switch (pi.getFieldNumber()) {
+                    case (int) fieldId5:
+                        pi.readBytes(fieldId5);
+                        fail("Should have thrown a ProtoParseException");
+                        break;
+                    default:
+                        fail("Unexpected field id " + pi.getFieldNumber());
+                }
+            } catch (ProtoParseException ppe) {
+                // good
+                stream.close();
+                return;
+            }
+        }
+        stream.close();
+        fail("Test should not have reached this point...");
+    }
+
+    /**
+     * Test that an incomplete fixed32 at the end of a stream throws an exception
+     */
+    public void testIncompleteFixed32() throws IOException {
+        final long fieldFlags = ProtoStream.FIELD_COUNT_SINGLE | ProtoStream.FIELD_TYPE_FIXED32;
+
+        final long fieldId2 = fieldFlags | ((long) 2 & 0x0ffffffffL);
+
+        final byte[] protobuf = new byte[]{
+                // 2 ->  invalid fixed32
+                (byte) 0x15,
+                (byte) 0x01, (byte) 0x00, (byte) 0x00,
+        };
+
+        InputStream stream = new ByteArrayInputStream(protobuf);
+        final ProtoInputStream pi = new ProtoInputStream(stream);
+
+        while (pi.nextField() != ProtoInputStream.NO_MORE_FIELDS) {
+            try {
+                switch (pi.getFieldNumber()) {
+                    case (int) fieldId2:
+                        pi.readInt(fieldId2);
+                        fail("Should have thrown a ProtoParseException");
+                        break;
+                    default:
+                        fail("Unexpected field id " + pi.getFieldNumber());
+                }
+            } catch (ProtoParseException ppe) {
+                // good
+                stream.close();
+                return;
+            }
+        }
+        stream.close();
+        fail("Test should not have reached this point...");
+    }
+}
diff --git a/tests/ProtoInputStreamTests/src/com/android/test/protoinputstream/ProtoTests.java b/tests/ProtoInputStreamTests/src/com/android/test/protoinputstream/ProtoTests.java
index cdf6ae2..685110c 100644
--- a/tests/ProtoInputStreamTests/src/com/android/test/protoinputstream/ProtoTests.java
+++ b/tests/ProtoInputStreamTests/src/com/android/test/protoinputstream/ProtoTests.java
@@ -39,6 +39,7 @@
         suite.addTestSuite(ProtoInputStreamBytesTest.class);
         suite.addTestSuite(ProtoInputStreamEnumTest.class);
         suite.addTestSuite(ProtoInputStreamObjectTest.class);
+        suite.addTestSuite(ProtoInputStreamIncompleteValueTest.class);
 
         return suite;
     }
diff --git a/tests/RollbackTest/MultiUserRollbackTest.xml b/tests/RollbackTest/MultiUserRollbackTest.xml
index 41cec46..ba86c3f 100644
--- a/tests/RollbackTest/MultiUserRollbackTest.xml
+++ b/tests/RollbackTest/MultiUserRollbackTest.xml
@@ -15,9 +15,6 @@
 -->
 <configuration description="Runs rollback tests for multiple users">
     <option name="test-suite-tag" value="MultiUserRollbackTest" />
-    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
-        <option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
-    </target_preparer>
     <test class="com.android.tradefed.testtype.HostTest" >
         <option name="class" value="com.android.tests.rollback.host.MultiUserRollbackTest" />
     </test>
diff --git a/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java b/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java
index e616ac4..4c29e72e 100644
--- a/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java
+++ b/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java
@@ -40,15 +40,20 @@
     private static final long SWITCH_USER_COMPLETED_NUMBER_OF_POLLS = 60;
     private static final long SWITCH_USER_COMPLETED_POLL_INTERVAL_IN_MILLIS = 1000;
 
+    private void cleanUp() throws Exception {
+        getDevice().executeShellCommand("pm rollback-app com.android.cts.install.lib.testapp.A");
+        getDevice().executeShellCommand("pm uninstall com.android.cts.install.lib.testapp.A");
+    }
 
     @After
     public void tearDown() throws Exception {
-        getDevice().executeShellCommand("pm uninstall com.android.cts.install.lib.testapp.A");
+        cleanUp();
         removeSecondaryUserIfNecessary();
     }
 
     @Before
     public void setup() throws Exception {
+        cleanUp();
         mOriginalUserId = getDevice().getCurrentUser();
         createAndStartSecondaryUser();
         // TODO(b/149733368): Remove the '-g' workaround when the bug is fixed.
diff --git a/tests/RollbackTest/NetworkStagedRollbackTest.xml b/tests/RollbackTest/NetworkStagedRollbackTest.xml
index a465a4f..2ab907a 100644
--- a/tests/RollbackTest/NetworkStagedRollbackTest.xml
+++ b/tests/RollbackTest/NetworkStagedRollbackTest.xml
@@ -19,6 +19,12 @@
         <option name="cleanup-apks" value="true" />
         <option name="test-file-name" value="RollbackTest.apk" />
     </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+        <option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\\*' --esa flags &quot;ModuleConfig__immediate_commit_packages&quot; --esa types &quot;bytes&quot; --esa values &quot;CgA=&quot; com.google.android.gms" />
+        <option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\\*' --esa flags &quot;ModuleConfig__versioned_immediate_commit_packages&quot; --esa types &quot;bytes&quot; --esa values &quot;Cm5vdGFwYWNrYWdlOgA=&quot; com.google.android.gms" />
+        <option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\*' --esa flag &quot;ModuleConfig__immediate_commit_packages&quot; com.google.android.gms" />
+        <option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\*' --esa flag &quot;ModuleConfig__versioned_immediate_commit_packages&quot; com.google.android.gms" />
+    </target_preparer>
     <test class="com.android.tradefed.testtype.HostTest" >
         <option name="class" value="com.android.tests.rollback.host.NetworkStagedRollbackTest" />
     </test>
diff --git a/tests/net/common/java/android/net/NetworkScoreTest.kt b/tests/net/common/java/android/net/NetworkScoreTest.kt
index a63d58d..30836b7 100644
--- a/tests/net/common/java/android/net/NetworkScoreTest.kt
+++ b/tests/net/common/java/android/net/NetworkScoreTest.kt
@@ -16,7 +16,7 @@
 
 package android.net
 
-import android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN
+import android.os.Parcelable
 import androidx.test.filters.SmallTest
 import androidx.test.runner.AndroidJUnit4
 import com.android.testutils.assertParcelSane
@@ -28,49 +28,77 @@
 import org.junit.runner.RunWith
 
 private const val TEST_SCORE = 80
+private const val KEY_DEFAULT_CAPABILITIES = "DEFAULT_CAPABILITIES"
 
 @RunWith(AndroidJUnit4::class)
 @SmallTest
 class NetworkScoreTest {
     @Test
     fun testParcelNetworkScore() {
+        val networkScore = NetworkScore()
         val defaultCap = NetworkCapabilities()
-        val builder = NetworkScore.Builder().setLegacyScore(TEST_SCORE)
-        assertEquals(TEST_SCORE, builder.build().getLegacyScore())
-        assertParcelSane(builder.build(), 7)
+        networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES))
+        networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
+        assertParcelSane(networkScore, 1)
+    }
 
-        builder.addPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI)
-                .addPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION)
-                .setLinkLayerMetrics(NetworkScore.Metrics(44 /* latency */,
-                        380 /* downlinkBandwidth */, BANDWIDTH_UNKNOWN /* uplinkBandwidth */))
-                .setEndToEndMetrics(NetworkScore.Metrics(11 /* latency */,
-                        BANDWIDTH_UNKNOWN /* downlinkBandwidth */, 100_000 /* uplinkBandwidth */))
-                .setRange(NetworkScore.RANGE_MEDIUM)
-        assertParcelSane(builder.build(), 7)
-        builder.clearPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI)
-        val ns = builder.build()
-        assertParcelSane(ns, 7)
-        assertFalse(ns.hasPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI))
-        assertTrue(ns.hasPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION))
+    @Test
+    fun testNullKeyAndValue() {
+        val networkScore = NetworkScore()
+        val defaultCap = NetworkCapabilities()
+        networkScore.putIntExtension(null, TEST_SCORE)
+        assertEquals(TEST_SCORE, networkScore.getIntExtension(null))
+        networkScore.putExtension(null, defaultCap)
+        assertEquals(defaultCap, networkScore.getExtension(null))
+        networkScore.putExtension(null, null)
+        val result: Parcelable? = networkScore.getExtension(null)
+        assertEquals(null, result)
+    }
 
-        val exitingNs = ns.withExiting(true)
-        assertNotEquals(ns.isExiting, exitingNs.isExiting)
-        assertNotEquals(ns, exitingNs)
-        assertParcelSane(exitingNs, 7)
+    @Test
+    fun testRemoveExtension() {
+        val networkScore = NetworkScore()
+        val defaultCap = NetworkCapabilities()
+        networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES))
+        assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
+        networkScore.removeExtension(KEY_DEFAULT_CAPABILITIES)
+        networkScore.removeExtension(NetworkScore.LEGACY_SCORE)
+        val result: Parcelable? = networkScore.getExtension(KEY_DEFAULT_CAPABILITIES)
+        assertEquals(null, result)
+        assertEquals(0, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
     }
 
     @Test
     fun testEqualsNetworkScore() {
-        val builder1 = NetworkScore.Builder()
-        val builder2 = NetworkScore.Builder()
-        assertTrue(builder1.build().equals(builder2.build()))
-        assertEquals(builder1.build().hashCode(), builder2.build().hashCode())
+        val ns1 = NetworkScore()
+        val ns2 = NetworkScore()
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
 
-        builder1.setLegacyScore(TEST_SCORE)
-        assertFalse(builder1.build().equals(builder2.build()))
-        assertNotEquals(builder1.hashCode(), builder2.hashCode())
-        builder2.setLegacyScore(TEST_SCORE)
-        assertTrue(builder1.build().equals(builder2.build()))
-        assertEquals(builder1.build().hashCode(), builder2.build().hashCode())
+        ns1.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertFalse(ns1.equals(ns2))
+        assertNotEquals(ns1.hashCode(), ns2.hashCode())
+        ns2.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
+
+        val defaultCap = NetworkCapabilities()
+        ns1.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        assertFalse(ns1.equals(ns2))
+        assertNotEquals(ns1.hashCode(), ns2.hashCode())
+        ns2.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
+
+        ns1.putIntExtension(null, 10)
+        assertFalse(ns1.equals(ns2))
+        assertNotEquals(ns1.hashCode(), ns2.hashCode())
+        ns2.putIntExtension(null, 10)
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
     }
 }
diff --git a/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java b/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java
index 7ae9e95..a35fb40 100644
--- a/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java
+++ b/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java
@@ -40,7 +40,6 @@
 import android.net.NetworkCapabilities;
 import android.net.NetworkInfo;
 import android.net.NetworkProvider;
-import android.net.NetworkScore;
 import android.net.NetworkSpecifier;
 import android.net.SocketKeepalive;
 import android.net.UidRange;
@@ -156,13 +155,9 @@
         }
     }
 
-    private NetworkScore makeNetworkScore(final int legacyScore) {
-        return new NetworkScore.Builder().setLegacyScore(legacyScore).build();
-    }
-
     public void adjustScore(int change) {
         mScore += change;
-        mNetworkAgent.sendNetworkScore(makeNetworkScore(mScore));
+        mNetworkAgent.sendNetworkScore(mScore);
     }
 
     public int getScore() {
diff --git a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
index 25e9057..e863266 100644
--- a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
+++ b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
@@ -353,7 +353,8 @@
         NetworkCapabilities caps = new NetworkCapabilities();
         caps.addCapability(0);
         caps.addTransportType(transport);
-        NetworkScore ns = new NetworkScore.Builder().setLegacyScore(50).build();
+        NetworkScore ns = new NetworkScore();
+        ns.putIntExtension(NetworkScore.LEGACY_SCORE, 50);
         NetworkAgentInfo nai = new NetworkAgentInfo(null, null, new Network(netId), info, null,
                 caps, ns, mCtx, null, null /* config */, mConnService, mNetd, mDnsResolver, mNMS,
                 NetworkProvider.ID_NONE);
diff --git a/tests/utils/testutils/java/com/android/server/wm/test/filters/FrameworksTestsFilter.java b/tests/utils/testutils/java/com/android/server/wm/test/filters/FrameworksTestsFilter.java
index aed62d0..3026e0b 100644
--- a/tests/utils/testutils/java/com/android/server/wm/test/filters/FrameworksTestsFilter.java
+++ b/tests/utils/testutils/java/com/android/server/wm/test/filters/FrameworksTestsFilter.java
@@ -46,7 +46,8 @@
             "android.view.InsetsSourceTest",
             "android.view.InsetsSourceConsumerTest",
             "android.view.InsetsStateTest",
-            "android.view.WindowMetricsTest"
+            "android.view.WindowMetricsTest",
+            "android.view.PendingInsetsControllerTest"
     };
 
     public FrameworksTestsFilter(Bundle testArgs) {
diff --git a/tools/stats_log_api_gen/Android.bp b/tools/stats_log_api_gen/Android.bp
index d5031d7..843e820 100644
--- a/tools/stats_log_api_gen/Android.bp
+++ b/tools/stats_log_api_gen/Android.bp
@@ -121,7 +121,6 @@
     shared_libs: [
         "liblog",
         "libcutils",
-        "libstatssocket",
     ],
     apex_available: [
         "//apex_available:platform",
@@ -129,5 +128,13 @@
         "com.android.os.statsd",
         "test_com.android.os.statsd",
     ],
+    target: {
+        android: {
+            shared_libs: ["libstatssocket"],
+        },
+        host: {
+            static_libs: ["libstatssocket"],
+        },
+    },
 }
 
diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp
index 8bccd71..aa356f1 100644
--- a/tools/stats_log_api_gen/Collation.cpp
+++ b/tools/stats_log_api_gen/Collation.cpp
@@ -237,6 +237,16 @@
         errorCount++;
         continue;
     }
+
+    if (field->is_repeated() &&
+        !(javaType == JAVA_TYPE_ATTRIBUTION_CHAIN || javaType == JAVA_TYPE_KEY_VALUE_PAIR)) {
+        print_error(field,
+                    "Repeated fields are not supported in atoms. Please make field %s not "
+                    "repeated.\n",
+                    field->name().c_str());
+        errorCount++;
+        continue;
+    }
   }
 
   // Check that if there's an attribution chain, it's at position 1.
diff --git a/tools/stats_log_api_gen/test.proto b/tools/stats_log_api_gen/test.proto
index b892194..eab622d 100644
--- a/tools/stats_log_api_gen/test.proto
+++ b/tools/stats_log_api_gen/test.proto
@@ -41,21 +41,20 @@
 
 message AllTypesAtom {
   repeated android.os.statsd.AttributionNode attribution_chain = 1;
-  optional double double_field = 2;
-  optional float float_field = 3;
-  optional int64 int64_field = 4;
-  optional uint64 uint64_field = 5;
-  optional int32 int32_field = 6;
-  optional fixed64 fixed64_field = 7;
-  optional fixed32 fixed32_field = 8;
-  optional bool bool_field = 9;
-  optional string string_field = 10;
-  optional uint32 uint32_field = 11;
-  optional AnEnum enum_field = 12;
-  optional sfixed32 sfixed32_field = 13;
-  optional sfixed64 sfixed64_field = 14;
-  optional sint32 sint32_field = 15;
-  optional sint64 sint64_field = 16;
+  optional float float_field = 2;
+  optional int64 int64_field = 3;
+  optional uint64 uint64_field = 4;
+  optional int32 int32_field = 5;
+  optional fixed64 fixed64_field = 6;
+  optional fixed32 fixed32_field = 7;
+  optional bool bool_field = 8;
+  optional string string_field = 9;
+  optional uint32 uint32_field = 10;
+  optional AnEnum enum_field = 11;
+  optional sfixed32 sfixed32_field = 12;
+  optional sfixed64 sfixed64_field = 13;
+  optional sint32 sint32_field = 14;
+  optional sint64 sint64_field = 15;
 }
 
 message Event {
@@ -70,6 +69,8 @@
 message BadTypesAtom {
     optional IntAtom bad_int_atom = 1;
     optional bytes bad_bytes = 2;
+    repeated int32 repeated_field = 3;
+    optional double double_field = 4;
 }
 
 message BadTypesEvent {
diff --git a/tools/stats_log_api_gen/test_collation.cpp b/tools/stats_log_api_gen/test_collation.cpp
index bcf18ae..a972e23 100644
--- a/tools/stats_log_api_gen/test_collation.cpp
+++ b/tools/stats_log_api_gen/test_collation.cpp
@@ -98,7 +98,6 @@
     EXPECT_SET_CONTAINS_SIGNATURE(
         atoms.signatures_to_modules,
         JAVA_TYPE_ATTRIBUTION_CHAIN, // AttributionChain
-        JAVA_TYPE_DOUBLE,            // double
         JAVA_TYPE_FLOAT,             // float
         JAVA_TYPE_LONG,              // int64
         JAVA_TYPE_LONG,              // uint64
@@ -157,13 +156,13 @@
 }
 
 /**
- * Test that atoms that have non-primitive types are rejected.
+ * Test that atoms that have non-primitive types or repeated fields are rejected.
  */
 TEST(CollationTest, FailOnBadTypes) {
     Atoms atoms;
     int errorCount = collate_atoms(BadTypesEvent::descriptor(), &atoms);
 
-    EXPECT_EQ(2, errorCount);
+    EXPECT_EQ(4, errorCount);
 }
 
 /**
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl
index 3025caf..30a76e4 100644
--- a/wifi/java/android/net/wifi/IWifiManager.aidl
+++ b/wifi/java/android/net/wifi/IWifiManager.aidl
@@ -97,7 +97,7 @@
 
     void setMacRandomizationSettingPasspointEnabled(String fqdn, boolean enable);
 
-    void setMeteredOverridePasspoint(String fqdn, int meteredOverride);
+    void setPasspointMeteredOverride(String fqdn, int meteredOverride);
 
     boolean startScan(String packageName, String featureId);
 
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 0229b84..5a7bf4b 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -2442,16 +2442,23 @@
             if (TextUtils.isEmpty(keyMgmt)) {
                 throw new IllegalStateException("Not an EAP network");
             }
+            String keyId = trimStringForKeyId(SSID) + "_" + keyMgmt + "_"
+                    + trimStringForKeyId(enterpriseConfig.getKeyId(current != null
+                    ? current.enterpriseConfig : null));
 
-            return trimStringForKeyId(SSID) + "_" + keyMgmt + "_" +
-                    trimStringForKeyId(enterpriseConfig.getKeyId(current != null ?
-                            current.enterpriseConfig : null));
+            if (!fromWifiNetworkSuggestion) {
+                return keyId;
+            }
+            return keyId + "_" + trimStringForKeyId(BSSID) + "_" + trimStringForKeyId(creatorName);
         } catch (NullPointerException e) {
             throw new IllegalStateException("Invalid config details");
         }
     }
 
     private String trimStringForKeyId(String string) {
+        if (string == null) {
+            return "";
+        }
         // Remove quotes and spaces
         return string.replace("\"", "").replace(" ", "");
     }
@@ -2554,6 +2561,8 @@
             key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_PSK];
         } else if (allowedKeyManagement.get(KeyMgmt.WAPI_CERT)) {
             key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_CERT];
+        } else if (allowedKeyManagement.get(KeyMgmt.OSEN)) {
+            key = SSID + KeyMgmt.strings[KeyMgmt.OSEN];
         } else {
             key = SSID + KeyMgmt.strings[KeyMgmt.NONE];
         }
diff --git a/wifi/java/android/net/wifi/WifiEnterpriseConfig.java b/wifi/java/android/net/wifi/WifiEnterpriseConfig.java
index fb6e9ed5..2e4e7f5 100644
--- a/wifi/java/android/net/wifi/WifiEnterpriseConfig.java
+++ b/wifi/java/android/net/wifi/WifiEnterpriseConfig.java
@@ -482,7 +482,7 @@
             return false;
         }
 
-        if (mEapMethod != Eap.TLS && mPhase2Method != Phase2.NONE) {
+        if (mEapMethod != Eap.TLS && mEapMethod != Eap.UNAUTH_TLS && mPhase2Method != Phase2.NONE) {
             boolean is_autheap = mEapMethod == Eap.TTLS && mPhase2Method == Phase2.GTC;
             String prefix = is_autheap ? Phase2.AUTHEAP_PREFIX : Phase2.AUTH_PREFIX;
             String value = convertToQuotedString(prefix + Phase2.strings[mPhase2Method]);
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 48526ab..9703fa6 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -2820,7 +2820,8 @@
 
     /**
      * Get the country code.
-     * @return the country code in ISO 3166 format, or null if there is no country code configured.
+     * @return the country code in ISO 3166 alpha-2 (2-letter) uppercase format, or null if
+     * there is no country code configured.
      * @hide
      */
     @Nullable
@@ -4430,19 +4431,21 @@
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
-    public void setMeteredOverridePasspoint(@NonNull String fqdn, int meteredOverride) {
+    public void setPasspointMeteredOverride(@NonNull String fqdn,
+            @WifiConfiguration.MeteredOverride int meteredOverride) {
         try {
-            mService.setMeteredOverridePasspoint(fqdn, meteredOverride);
+            mService.setPasspointMeteredOverride(fqdn, meteredOverride);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
     }
 
     /**
-     * Disable an ephemeral network.
+     * Temporarily disable a network. Should always trigger with user disconnect network.
      *
-     * @param ssid in the format of WifiConfiguration's SSID.
-     *
+     * @param network Input can be SSID or FQDN. And caller must ensure that the SSID passed thru
+     *                this API matched the WifiConfiguration.SSID rules, and thus be surrounded by
+     *                quotes.
      * @hide
      */
     @SystemApi
@@ -4450,12 +4453,12 @@
             android.Manifest.permission.NETWORK_SETTINGS,
             android.Manifest.permission.NETWORK_STACK
     })
-    public void disableEphemeralNetwork(@NonNull String ssid) {
-        if (TextUtils.isEmpty(ssid)) {
+    public void disableEphemeralNetwork(@NonNull String network) {
+        if (TextUtils.isEmpty(network)) {
             throw new IllegalArgumentException("SSID cannot be null or empty!");
         }
         try {
-            mService.disableEphemeralNetwork(ssid, mContext.getOpPackageName());
+            mService.disableEphemeralNetwork(network, mContext.getOpPackageName());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
diff --git a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java
index 4507cc2..d1d1780 100644
--- a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java
+++ b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java
@@ -722,7 +722,7 @@
         if (mSubscriptionUpdate != null && !mSubscriptionUpdate.validate()) {
             return false;
         }
-        return validateForCommonR1andR2(true);
+        return validateForCommonR1andR2();
     }
 
     /**
@@ -741,17 +741,17 @@
         if (mSubscriptionUpdate == null || !mSubscriptionUpdate.validate()) {
             return false;
         }
-        return validateForCommonR1andR2(false);
+        return validateForCommonR1andR2();
     }
 
-    private boolean validateForCommonR1andR2(boolean isR1) {
+    private boolean validateForCommonR1andR2() {
         // Required: PerProviderSubscription/<X+>/HomeSP
         if (mHomeSp == null || !mHomeSp.validate()) {
             return false;
         }
 
         // Required: PerProviderSubscription/<X+>/Credential
-        if (mCredential == null || !mCredential.validate(isR1)) {
+        if (mCredential == null || !mCredential.validate()) {
             return false;
         }
 
diff --git a/wifi/java/android/net/wifi/hotspot2/pps/Credential.java b/wifi/java/android/net/wifi/hotspot2/pps/Credential.java
index 9c01d36..65e8b3d 100644
--- a/wifi/java/android/net/wifi/hotspot2/pps/Credential.java
+++ b/wifi/java/android/net/wifi/hotspot2/pps/Credential.java
@@ -1081,11 +1081,10 @@
     /**
      * Validate the configuration data.
      *
-     * @param isR1 {@code true} if the configuration is for R1
      * @return true on success or false on failure
      * @hide
      */
-    public boolean validate(boolean isR1) {
+    public boolean validate() {
         if (TextUtils.isEmpty(mRealm)) {
             Log.d(TAG, "Missing realm");
             return false;
@@ -1098,11 +1097,11 @@
 
         // Verify the credential.
         if (mUserCredential != null) {
-            if (!verifyUserCredential(isR1)) {
+            if (!verifyUserCredential()) {
                 return false;
             }
         } else if (mCertCredential != null) {
-            if (!verifyCertCredential(isR1)) {
+            if (!verifyCertCredential()) {
                 return false;
             }
         } else if (mSimCredential != null) {
@@ -1143,11 +1142,11 @@
 
     /**
      * Verify user credential.
+     * If no CA certificate is provided, then the system uses the CAs in the trust store.
      *
-     * @param isR1 {@code true} if credential is for R1
      * @return true if user credential is valid, false otherwise.
      */
-    private boolean verifyUserCredential(boolean isR1) {
+    private boolean verifyUserCredential() {
         if (mUserCredential == null) {
             Log.d(TAG, "Missing user credential");
             return false;
@@ -1160,24 +1159,17 @@
             return false;
         }
 
-        // CA certificate is required for R1 Passpoint profile.
-        // For R2, it is downloaded using cert URL provided in PPS MO after validation completes.
-        if (isR1 && mCaCertificates == null) {
-            Log.d(TAG, "Missing CA Certificate for user credential");
-            return false;
-        }
-
         return true;
     }
 
     /**
      * Verify certificate credential, which is used for EAP-TLS.  This will verify
      * that the necessary client key and certificates are provided.
+     * If no CA certificate is provided, then the system uses the CAs in the trust store.
      *
-     * @param isR1 {@code true} if credential is for R1
      * @return true if certificate credential is valid, false otherwise.
      */
-    private boolean verifyCertCredential(boolean isR1) {
+    private boolean verifyCertCredential() {
         if (mCertCredential == null) {
             Log.d(TAG, "Missing certificate credential");
             return false;
@@ -1191,13 +1183,6 @@
             return false;
         }
 
-        // Verify required key and certificates for certificate credential.
-        // CA certificate is required for R1 Passpoint profile.
-        // For R2, it is downloaded using cert URL provided in PPS MO after validation completes.
-        if (isR1 && mCaCertificates == null) {
-            Log.d(TAG, "Missing CA Certificate for certificate credential");
-            return false;
-        }
         if (mClientPrivateKey == null) {
             Log.d(TAG, "Missing client private key for certificate credential");
             return false;
diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
index 00790d5..047a64b 100644
--- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
@@ -253,6 +253,67 @@
     }
 
     /**
+     * Verifies that getKeyIdForCredentials returns the expected string for Suggestion Enterprise
+     * networks
+     * @throws Exception
+     */
+    @Test
+    public void testGetKeyIdForCredentialsForSuggestion() throws Exception {
+        WifiConfiguration config = new WifiConfiguration();
+        final String mSsid = "TestAP";
+        final String packageName = "TestApp";
+        final String bSsid = MacAddressUtils.createRandomUnicastAddress().toString();
+        String suggestionSuffix = "_" + bSsid + "_" + packageName;
+        config.SSID = mSsid;
+        config.fromWifiNetworkSuggestion = true;
+        config.creatorName = packageName;
+        config.BSSID = bSsid;
+
+        // Test various combinations
+        // EAP with TLS
+        config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
+        config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.TLS);
+        config.enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.NONE);
+        String keyId = config.getKeyIdForCredentials(config);
+        assertEquals(keyId, mSsid + "_WPA_EAP_TLS_NULL" + suggestionSuffix);
+
+        // EAP with TTLS & MSCHAPv2
+        config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
+        config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.TTLS);
+        config.enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.MSCHAPV2);
+        keyId = config.getKeyIdForCredentials(config);
+        assertEquals(keyId, mSsid + "_WPA_EAP_TTLS_MSCHAPV2" + suggestionSuffix);
+
+        // Suite-B 192 with PWD & GTC
+        config.allowedKeyManagement.clear();
+        config.allowedKeyManagement.set(KeyMgmt.SUITE_B_192);
+        config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.PWD);
+        config.enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.GTC);
+        keyId = config.getKeyIdForCredentials(config);
+        assertEquals(keyId, mSsid + "_SUITE_B_192_PWD_GTC" + suggestionSuffix);
+
+        // IEEE8021X with SIM
+        config.allowedKeyManagement.clear();
+        config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
+        config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.SIM);
+        config.enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.NONE);
+        keyId = config.getKeyIdForCredentials(config);
+        assertEquals(keyId, mSsid + "_IEEE8021X_SIM_NULL" + suggestionSuffix);
+
+        // Try calling this method with non-Enterprise network, expect an exception
+        boolean exceptionThrown = false;
+        try {
+            config.allowedKeyManagement.clear();
+            config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
+            config.preSharedKey = "TestPsk";
+            keyId = config.getKeyIdForCredentials(config);
+        } catch (IllegalStateException e) {
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+    }
+
+    /**
      * Verifies that getSsidAndSecurityTypeString returns the correct String for networks of
      * various different security types
      */
diff --git a/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java b/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java
index d8db4ce..320c187 100644
--- a/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java
@@ -521,4 +521,23 @@
             // expected exception.
         }
     }
+
+    /** Verifies that the EAP inner method is reset when we switch to Unauth-TLS */
+    @Test
+    public void eapPhase2MethodForUnauthTls() {
+        // Initially select an EAP method that supports an phase2.
+        mEnterpriseConfig.setEapMethod(Eap.PEAP);
+        mEnterpriseConfig.setPhase2Method(Phase2.MSCHAPV2);
+        assertEquals("PEAP", getSupplicantEapMethod());
+        assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
+
+        // Change the EAP method to another type which supports a phase2.
+        mEnterpriseConfig.setEapMethod(Eap.TTLS);
+        assertEquals("TTLS", getSupplicantEapMethod());
+        assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
+
+        // Change the EAP method to Unauth-TLS which does not support a phase2.
+        mEnterpriseConfig.setEapMethod(Eap.UNAUTH_TLS);
+        assertEquals(null, getSupplicantPhase2Method());
+    }
 }
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index 234d929..76ac837 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -1803,10 +1803,10 @@
      * {@link WifiManager#setMacRandomizationSettingPasspointEnabled(String, boolean)}
      */
     @Test
-    public void testSetMeteredOverridePasspoint() throws Exception {
+    public void testSetPasspointMeteredOverride() throws Exception {
         final String fqdn = "FullyQualifiedDomainName";
-        mWifiManager.setMeteredOverridePasspoint(fqdn, METERED_OVERRIDE_METERED);
-        verify(mWifiService).setMeteredOverridePasspoint(fqdn, METERED_OVERRIDE_METERED);
+        mWifiManager.setPasspointMeteredOverride(fqdn, METERED_OVERRIDE_METERED);
+        verify(mWifiService).setPasspointMeteredOverride(fqdn, METERED_OVERRIDE_METERED);
     }
 
     /**
diff --git a/wifi/tests/src/android/net/wifi/hotspot2/pps/CredentialTest.java b/wifi/tests/src/android/net/wifi/hotspot2/pps/CredentialTest.java
index 0a3e989..c682582 100644
--- a/wifi/tests/src/android/net/wifi/hotspot2/pps/CredentialTest.java
+++ b/wifi/tests/src/android/net/wifi/hotspot2/pps/CredentialTest.java
@@ -158,7 +158,7 @@
     }
 
     /**
-     * Verify parcel read/write for an user credential.
+     * Verify parcel read/write for a user credential.
      *
      * @throws Exception
      */
@@ -176,14 +176,14 @@
         Credential cred = createCredentialWithUserCredential();
 
         // For R1 validation
-        assertTrue(cred.validate(true));
+        assertTrue(cred.validate());
 
         // For R2 validation
-        assertTrue(cred.validate(false));
+        assertTrue(cred.validate());
     }
 
     /**
-     * Verify that an user credential without CA Certificate is invalid.
+     * Verify that a user credential without CA Certificate is valid.
      *
      * @throws Exception
      */
@@ -192,15 +192,12 @@
         Credential cred = createCredentialWithUserCredential();
         cred.setCaCertificate(null);
 
-        // For R1 validation
-        assertFalse(cred.validate(true));
-
-        // For R2 validation
-        assertTrue(cred.validate(false));
+        // Accept a configuration with no CA certificate, the system will use the default cert store
+        assertTrue(cred.validate());
     }
 
     /**
-     * Verify that an user credential with EAP type other than EAP-TTLS is invalid.
+     * Verify that a user credential with EAP type other than EAP-TTLS is invalid.
      *
      * @throws Exception
      */
@@ -210,15 +207,15 @@
         cred.getUserCredential().setEapType(EAPConstants.EAP_TLS);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
 
     /**
-     * Verify that an user credential without realm is invalid.
+     * Verify that a user credential without realm is invalid.
      *
      * @throws Exception
      */
@@ -228,14 +225,14 @@
         cred.setRealm(null);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
-     * Verify that an user credential without username is invalid.
+     * Verify that a user credential without username is invalid.
      *
      * @throws Exception
      */
@@ -245,14 +242,14 @@
         cred.getUserCredential().setUsername(null);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
-     * Verify that an user credential without password is invalid.
+     * Verify that a user credential without password is invalid.
      *
      * @throws Exception
      */
@@ -262,14 +259,14 @@
         cred.getUserCredential().setPassword(null);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
-     * Verify that an user credential without auth methoh (non-EAP inner method) is invalid.
+     * Verify that a user credential without auth methoh (non-EAP inner method) is invalid.
      *
      * @throws Exception
      */
@@ -279,10 +276,10 @@
         cred.getUserCredential().setNonEapInnerMethod(null);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
@@ -297,10 +294,10 @@
         Credential cred = createCredentialWithCertificateCredential();
 
         // For R1 validation
-        assertTrue(cred.validate(true));
+        assertTrue(cred.validate());
 
         // For R2 validation
-        assertTrue(cred.validate(true));
+        assertTrue(cred.validate());
     }
 
     /**
@@ -313,11 +310,8 @@
         Credential cred = createCredentialWithCertificateCredential();
         cred.setCaCertificate(null);
 
-        // For R1 validation
-        assertFalse(cred.validate(true));
-
-        // For R2 validation
-        assertTrue(cred.validate(false));
+        // Accept a configuration with no CA certificate, the system will use the default cert store
+        assertTrue(cred.validate());
     }
 
     /**
@@ -331,10 +325,10 @@
         cred.setClientCertificateChain(null);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
@@ -348,10 +342,10 @@
         cred.setClientPrivateKey(null);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
@@ -366,10 +360,10 @@
         cred.getCertCredential().setCertSha256Fingerprint(new byte[32]);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
@@ -382,10 +376,10 @@
         Credential cred = createCredentialWithSimCredential();
 
         // For R1 validation
-        assertTrue(cred.validate(true));
+        assertTrue(cred.validate());
 
         // For R2 validation
-        assertTrue(cred.validate(false));
+        assertTrue(cred.validate());
     }
 
     /**
@@ -399,10 +393,10 @@
         cred.getSimCredential().setEapType(EAPConstants.EAP_AKA);
 
         // For R1 validation
-        assertTrue(cred.validate(true));
+        assertTrue(cred.validate());
 
         // For R2 validation
-        assertTrue(cred.validate(false));
+        assertTrue(cred.validate());
     }
 
     /**
@@ -416,10 +410,10 @@
         cred.getSimCredential().setEapType(EAPConstants.EAP_AKA_PRIME);
 
         // For R1 validation
-        assertTrue(cred.validate(true));
+        assertTrue(cred.validate());
 
         // For R2 validation
-        assertTrue(cred.validate(false));
+        assertTrue(cred.validate());
     }
 
     /**
@@ -433,10 +427,10 @@
         cred.getSimCredential().setImsi(null);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
@@ -450,10 +444,10 @@
         cred.getSimCredential().setImsi("dummy");
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
@@ -467,14 +461,14 @@
         cred.getSimCredential().setEapType(EAPConstants.EAP_TLS);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**
-     * Verify that a credential contained both an user and a SIM credential is invalid.
+     * Verify that a credential contained both a user and a SIM credential is invalid.
      *
      * @throws Exception
      */
@@ -488,10 +482,10 @@
         cred.setSimCredential(simCredential);
 
         // For R1 validation
-        assertFalse(cred.validate(true));
+        assertFalse(cred.validate());
 
         // For R2 validation
-        assertFalse(cred.validate(false));
+        assertFalse(cred.validate());
     }
 
     /**